J’utilise des ZIP bombs pour protéger mon serveur
(idiallo.com)Introduction
- La majeure partie du trafic Internet provient de bots, dont certains ont des intentions malveillantes (spam, piratage, etc.).
- L’auteur a déjà subi des dommages à cause de bots, comme un serveur WordPress infecté ou un déréférencement de la recherche Google.
- Pour éviter cela, il a commencé à utiliser des ZIP bombs.
Développement
-
Qu’est-ce qu’une ZIP bomb ?
- Un fichier compressé de petite taille qui, une fois décompressé, s’étend à un volume très important.
- Un fichier compressé de 1 Mo peut s’étendre à 1 Go, et 10 Mo à 10 Go, jusqu’à paralyser un serveur.
-
La fonctionnalité gzip existante
- Sur le Web, la compression gzip est utilisée pour améliorer l’efficacité des transferts.
- La plupart des bots prennent eux aussi en charge la compression gzip.
-
Méthode de réponse avec une ZIP bomb
- Lorsqu’un bot est jugé malveillant, le serveur répond avec
200 OKet un fichier ZIP bomb compressé en gzip. - En essayant d’ouvrir ce fichier, le bot peut planter ou se figer sur son propre serveur.
- En général, on utilise une version de 1 Mo (extension à 1 Go) ou de 10 Mo (extension à 10 Go).
- Lorsqu’un bot est jugé malveillant, le serveur répond avec
-
Comment créer une ZIP bomb
dd if=/dev/zero bs=1G count=10 | gzip -c > 10GB.gz- Génère 10 Go de données nulles avec
/dev/zero, puis les compresse avec gzip. - Le résultat est une ZIP bomb d’environ 10 Mo.
- Génère 10 Go de données nulles avec
-
Exemple d’application côté serveur
- Si le middleware détecte une IP sur liste noire ou un motif malveillant, il envoie la ZIP bomb.
if (ipIsBlackListed() || isMalicious()) { header("Content-Encoding: deflate, gzip"); header("Content-Length: "+ filesize(ZIP_BOMB_FILE_10G)); readfile(ZIP_BOMB_FILE_10G); exit; }
Conclusion
- Une ZIP bomb n’est pas une défense parfaite.
- Des bots sophistiqués peuvent la détecter et la contourner.
- En revanche, c’est un moyen de défense efficace contre les bots basiques qui font du crawling Web indiscriminé.
- Même si cela consomme une partie des ressources du serveur, cela en vaut la peine pour la sécurité.
29 commentaires
Je pense que c’est une méthode qu’on peut essayer au moins une fois s’il n’existe pas de moyen efficace de bloquer les bots qui génèrent du trafic spam.
Je me suis bien amusé à le lire, on dirait un article sur le fait d’offrir une bombe à paillettes à un voleur de colis :)
Cette vidéo est amusante. C’est exactement pareil, haha.
Les publications sur Internet ne sont pas des colis appartenant à quelqu’un.
Si c’étaient des biens privés non publics, on aurait mis une procédure d’authentification.
On peut considérer que c’est un peu comme poser un tract dans la rue et l’enduire d’un poison mortel.
C’est un concept différent du fait d’afficher des tracts empoisonnés dans une intention malveillante.
Ce n’est pas une méthode très éthique. Et ce n’est pas non plus une solution de fond.
C’est la première fois que je vois quelque chose de ce genre, donc je me demande quelle est la solution fondamentale !!
Je suis d'accord.
Les bots malveillants, c’est une méthode éthique, hein ? lol
On ne peut pas vraiment attraper les bots malveillants de cette façon.
Même une bombe gzip ne fonctionne pas.
Considérez simplement qu’un inconnu a écrit un post amusant sur une bombe.
C’est ce genre de personnes qui rendent plus difficile la reconnaissance de la légitime défense, hein haha...
Pourquoi cela n’est-il pas considéré comme une bonne pratique sur le plan éthique ? Je suis curieux.
Article amusant ! C’est une méthode à laquelle je n’avais pas pensé, merci de l’avoir partagée !
Quel est le but de publier un tel article ?
Je pense qu’il y a très peu de chances que les entreprises qui font réellement tourner des crawlers lisent cet article et aillent jusqu’à l’exclure.
Alors, pour quels lecteurs cet article a-t-il été écrit ?
Est-ce un billet de présentation pour faire savoir aux autres personnes qui tiennent aussi un blog qu’il existe ce genre de méthode,
ou bien une provocation du style : mon blog est tellement sécurisé que, si vous pouvez, essayez donc de le crawler ?
Je suis vraiment curieux de savoir ce qu’on gagne à publier ce genre d’article
C’est juste pour dire que ce genre de méthode existe, non..
C’est mon blog personnel, je n’ai pas le droit d’y écrire n’importe quoi ? 🤔
Bien sûr, comme ce n’est pas un lieu public, c’était peut-être simplement un message posté sans trop y réfléchir.
Comme on peut aussi laisser un commentaire à la légère dans une communauté.
Je ne peux pas bloquer complètement les crawlers, donc l’idéal serait de ne même pas accepter les tentatives, mais je me demandais quelle était l’intention derrière le fait de chercher à provoquer.
Donc, si un bot est identifié via son IP, l’idée est aussi de lui envoyer une bombe. haha
On sent bien la colère de l’auteur. haha
L’idée, c’est d’« offrir une bombe » aux requêtes où l’agent arrive en se présentant comme un bot...
C’est vraiment trop malveillant. De toute façon, un agent peut facilement se dissimuler. Un bot vraiment malveillant n’affiche pas ses mauvaises intentions.
On voit de temps à autre des cas de dommages causés par un trafic excessif provenant de services récemment connectés à des LLM, et cela semble en fait pouvoir être considéré aussi comme une mesure pour ce type de situation. Par exemple, quand on regarde la fonction de recherche web de ChatGPT, vu les caractéristiques de son pool d’utilisateurs, il y a largement matière à ce qu’un trafic excessif mais « non malveillant » se produise, et j’ai entendu dire que ces cas se filtrent facilement avec un simple filtrage par agent. Si c’est vraiment l’intention, cela ne fait au final que gaspiller les frais de serveurs d’OpenAI (et sa réputation ?)..
Donc, c’est un texte sans intérêt.
OpenAI est déjà une entreprise suffisamment grande pour avoir ce niveau de courtoisie, je pense.
Et il me semble aussi qu’il est difficile que le simple fait, pour un utilisateur, de cliquer directement sur les résultats de recherche génère un trafic vraiment problématique ; le souci ne viendrait-il pas plutôt du fait que le crawler fonctionne de manière trop excessive ?
Je suis d’accord sur le fait que, qu’il s’agisse du User-Agent mentionné ou de la détection fondée sur l’IP évoquée dans le billet original, il est difficile d’affirmer qu’un accès est malveillant puisque les informations d’identification peuvent être maquillées. Un bot réellement malveillant s’y prendrait sans doute de manière plus subtile.
À mon avis, plutôt que ce type d’attaque, il serait plus réaliste comme « nudge » de proposer une API de crawling avec limitation de charge, afin d’autoriser les accès automatisés légitimes tout en protégeant les ressources du serveur. Haha
Il existe déjà depuis longtemps quelque chose sur quoi nous nous sommes mis d’accord : bots.txt..
C’est un commentaire sans rapport avec cet article, mais j’ai l’impression qu’il y a récemment une nette augmentation de quelques utilisateurs qui postent des commentaires malveillants sur hada, que je consulte régulièrement. L’ambiance me semble assez différente de celle de l’époque où il n’y avait pas de commentaires, ou seulement très peu.
Personnellement, je me dis qu’avoir soit une fonction de blocage, soit une fonction qui grise les commentaires après plusieurs signalements, pourrait être une bonne idée.
On suppose que les utilisateurs qui reçoivent beaucoup de recommandations se voient attribuer ce genre de fonctionnalité.
2222222222222222