Adapter le concept de la Zip Bomb pour défendre son site web des scripts kiddies

Originally published at: http://korben.info/adapter-concept-de-zip-bomb-defendre-site-web-scripts-kiddies.html

Hier, le développeur Christian Haschek a publié sur son blog un article qui explique comment il a dépoussiéré le concept de “zip bomb” pour en faire une méthode de défense contre les scanners de vulnérabilités. Mais avant d’aller plus loin, qu’est-ce qu’une “zip bomb” ? Et bien cela consiste à créer un fichier zip contenant de…

“consiste à créé”=créer

1 « J'aime »

GENIUS :smiley:
ça me rappelle les firewall agressifs de l’époque qui DOSaient une IP si elle envoyait un peu trop de SYN

Ne pourrions nous pas adapter le concept de la zip bomb pour reduire considerablement la taille de nos fichiers zip ?

Merci pour l’info … mais ce n’est (techniquement) pas clair du tout !
Oui dsl de ne pas tester la bombe pour essayer de comprendre …

“Les navigateurs ne sachant pas décompresser du zip, il a donc fabriqué une gzip bomb … qu’il envoie ensuite via une page PHP lorsqu’il détecte le user-agent d’un scanner de vuln”

Ce qui veut dire quoi ?
Q1 - Que l’on peut forcer à auto-décrompresser automatiquement un fichier gzip sur une machine client simplement en lui faisant consulter une page web ?

“Et bien cela consiste à créer un fichier zip contenant de la donnée ultra répétitive qui ne pèsera que quelques kb dans sa version compressée, mais qui générera un fichier de plusieurs petabytes si vous tentez de le décompresser”

En se rendant sur le lien on voit que l’on peut en compressant quelques Ko de données répétitive obtenir un fichier de 4.3 Go, OK! … Puis on lit :

“The file contains 16 zipped files, which again contains 16 zipped files, which again contains 16 zipped files, which again contains 16 zipped, which again contains 16 zipped files, which contain 1 file, with the size of 4.3GB”

Q2 - Que l’auto-decompression par le navigateur s’il y’a ? (précédente question) fera en plus automatiquement de la decompression récursive ?

Chez moi si je décompresse ce genre de structure je me retrouve seulement avec 16 zip files décompressé, mon décompresseur ne va pas automatiquement décompresser de manière récursive le reste de la structure.

Deplus (ou alors j’ai rien compris) mais vu la structure même si cela se faisait automatiquement il faut 16 x 16 x 16 x 16 x 16 = 1 048 576 noms de fichiers différent à l’intérieur de l’archive pour ne pas que la décompression écrase récursivement le précédent fichier, auquel cas ou le système de décompression pourrait encore poser la question sur l’éxistance d’un fichier de 4.2 Go portant le même nom, ce qui bloquerait immédiatement le processus …

Q3 - Donc merci de m’expliquer, parce que moi simple et pas vraiment comprendre comment tout cela mis bout à bout puisse réellement fonctionner !

Deplus, dans son cas je suppose que pour s’adapter il suffirait juste de changer l’user-agent dudit scanner du Vuln, non ?

Merci

Non => “contenant de la donnée ultra répétitive”

Ha oui j’avais pas tout lu ^^

Si j’ai bien compris, il ne s’agit pas du téléchargement d’un fichier gzippé mais d’une page HTML gzippée.
En effet, le protocole HTTP permet de transmettre du contenu gzippé afin de réduire le traffic : la décompression est donc automatiquement faite par le navigateur, ceci afin d’accéder à la source de la page.

Si j’ai bien compris, ici le développeur a forgé une page web de 10Go afin que celle-ci, une fois compressée ne pèse que 10Mo. Le navigateur sera dupé en pensant qu’il s’agit d’une page HTML classique compressée et tentera automatiquement et sans action de l’utilisateur de la décompresser pour accéder à la source.

C’est bien un cas de figure différent d’un lien qui pointerait vers un fichier .gzip et qui serait enregistré sur le disque du visiteur (téléchargement classique) et qui ne serait pas décompressé sans l’autorisation de la personne.

“En effet, le protocole HTTP permet de transmettre du contenu gzippé afin de réduire le traffic”

Ok, je ne savais pas !

J’ai donc mélanger 2 concepts différent, j’aurai peut-être due aller voir la source car l’article Korben n’était pas méga clair pour le coup …

Pour le coté HTML, je pense qu’il n’est du coup pas trop difficile de faire passer un scanner de vuln pour un navigateur légitime … sans compter que ca ne devrait pas être trop dur à corriger du coup dans les prochaine version des navigateurs non ? C’est juste que ce cas là n’est pas pris en charge ! (cad aucune limitation)

Pour le coté du fichier zip je ne comprend toujours pas, puisque pour moi (ou du moins chez moi) les compresseurs ne décompresse jamais les archives de façon récursives sans compter les pb évoqué dans mon précédent comment !

Merci pour ce début d’explication donc !

Bon je me répond à moi même !

J’ai pas tester la page html/gzip mais le fichier zip bomb …

Alors comme je le pensais et c’est confirmé donc, la decompression ne se fait pas de manière recursive !
(du moins par défaut). Donc à priori aucun risque !

Deplus Windows Defender Security Center le détecte comme un Virus:
DoS:Win32/ZipBomb.A

Captures à l’appuie …

Des développeurs qui vont implémenter la zipbomb sur leur site, il ne risque pas d’y en avoir beaucoup surtout que ça doit amener forcement certains problèmes du genre site marqué comme dangereux par google ou déférencé. Par contre des script kiddie qui vont spammer les boites mails avec le lien html “zipbombé” de l’article, avec comme titre “ma soeur sous la douche”… C’est moins sur :slight_smile:

Pour répondre à islogged, le fichier que Korben a mis en lien n’est pas une zip bomb, mais une demonstration par l’auteur du hack qu’on peut compresser des fichiers de 4,5 Go en un fichier de 42Ko. Je n’ai pas pu le decompresser sur mon mac, ni dans le terminal mais j’ai reussi sous linux dans un vm et effectivement, la decompression se fait a la main si tu veux récupérer les 4,5go.

Par contre j’ai essayé le lien toujours dans ma vm kali, firefox n’a pas planté mais effectivement dans le moniteur systeme on voit qu’il charge des données et la page reste blanche donc j’ai killé le processus après 500 Mo bouffé sur ma 4G :).

Donc effectivement ca semble fonctionner et le code sera plus utilisé pour faire une page malveillante plus qu’un anti scanner à mon avis.

Il me semble que KORBEN affiche des articles style “blogs” assez généralistes pour tout public, et que si l’internate vue tplus de détails, il peut aller chercher lui-même via les liens/URL fournis ou en tapant dans un moteur de recherche…Il est toujours délicat de vouloir satisfaire tous les types de lecteurs, ce qui est quasiment impossible dans un seul article.

Je pense que le but de KORBEN est de partager avec vous cette news, et qu’en suite on est libre d’approfondir. Korben ne peut pas approfondir directement dans un article d’annonce, par risque de déterrer les lecteurs “néophytes” oyu qui n’y connaissent rien en informatique.

Compromos entre vulgarisation et expertise = Korben atteint cet objectif je pense!

Donc faut arrêter de critiquer à tout bout de champ, c’est pas évident à faire, j’en sais quelque chose car j’ai 2 sites Webs à moi et il faut cibler .

1 « J'aime »

Korben passe beaucoup moins de temps sur son blog qu’il ne le faisait il y a 7 ou 8 ans et la qualité s’en ressent. La frustration de ceux qui étaient là au début et qui ont contribué au succès du site n’y trouvent plus leur compte et personne ne les a avertis que la ligne éditoriale du site changeait pour viser plus large. C’est la même méthode en politique, on s’adresse d’abord aux plus intéressés/concernés au début (ils sont peu, mais plus déterminés, plus engagés, plus fidèles, ils ont plus d’énergie, etc.) puis arrive un moment ou le nombre des derniers arrivés fait basculer le rapport de force en leur faveur. C’est ni bien ni mal, c’est une évolution naturelle tout simplement.

par risque de déterrer les lecteurs “néophytes”

Anglais -> to deter = décourager
Français -> déterrer = sortir de sous la terre.

2 « J'aime »

Mouai c’était pas la méga critique non plus !
Mais un manque de clarté du billet.

Si “blogueur” est un metier, pourquoi serait-il plus facile qu’un autre.
Hein ? :wink:

“Pour répondre à islogged, le fichier que Korben a mis en lien n’est pas une zip bomb, mais une demonstration par l’auteur du hack qu’on peut compresser des fichiers de 4,5 Go en un fichier de 42Ko.”

<=>

“Vous pouvez trouver une bombe zip en téléchargement ici, si vous voulez faire sauter votre disque dur.”

De plus il est bien détecter comme tel par Windows !

Oui il n’y a pas de processus d’automatisation pour dezipper les fichiers mais si tu le fais à la main en te concentrant sur le premier fichier et que tu vas jusqu’au bout des dossiers, tu te retrouve bien a dezippé un fichier dll de 4,3 go. Donc c’est un zip bomb sans charge utile, mais une belle bouse quand même.

Ma machine virtuelle vient de grossir de 4 giga, donc en faisant un dezippage par des “selectionner tout”, tu peux vite avoir des soucis.

Le site est lui parfaitement fonctionnel est automatisé, c’est impressionnant ce qu’on eut faire avec un peu de php. J’imagine bien le gars qui tombe sur ce lien en 3g avec un forfait de 500mo et depassement surtaxe et qui laisse l’onglet ouvert… Ca pourrait être marrant.

je partage avec vous ma version du Zipbomb un FileDummy de 32GB zipé il fait 26ko :stuck_out_tongue:

Pas mal mais l’auteur de 42.zip a compresse 4,5 peta-bytes dans 42 KB…

oui c’est faisable si tu modifie le fichier zip :stuck_out_tongue: mais globalement je pense pas que c’est un zip créé à partir d’une fichier réel . mais je peut faire pareil avec mon fichier juste que j’ai jugé logique de propose un fichier vrai sans trafiquer celui-ci.