Ce este o arhivă zip-bomb a morții. Testarea unei bombe cu zip de decompresie. Deci... Ce se întâmplă dacă rulezi acest script

Articolul menționează 9 straturi de fișiere zip, așa că acesta nu este un caz simplu de a lipi împreună o grămadă de zerouri. De ce 9, de ce 10 fișiere în fiecare?

În primul rând, articolul Wikipedia vorbește în prezent despre 5 straturi din 16 fișiere. Nu știu unde apare discrepanța, dar asta nu este tot ceea ce este relevant. Adevărata întrebare este de ce folosiți cuibărirea în primul rând.

DEFLATE, singura metodă de compresie acceptată pentru fișierele zip*, are un raport de compresie maxim de 1032. Acest lucru poate fi realizat asimptotic pentru orice secvență repetată de 1-3 octeți. Indiferent ce faceți cu fișierul zip, atâta timp cât este folosit doar cu DEFLATE, dimensiunea fișierului decomprimat nu va fi mai mare de 1032 de ori dimensiunea fișierului zip original.

Prin urmare, pentru a obține rapoarte de compresie cu adevărat scandaloase, trebuie să utilizați fișiere zip imbricate. Dacă aveți 2 straturi de compresie, raportul maxim este 1032^2 = 1065024. Pentru 3, este 1099104768 și așa mai departe. Pentru cele 5 straturi utilizate în 42.zip, raportul de compresie maxim teoretic este 1170572956434432. După cum puteți vedea, dimensiunea reală a 42.zip nu se apropie de acest nivel. O parte din aceasta este costul general al formatului zip și o parte este că pur și simplu nu le pasă.

Dacă ar fi să ghicesc, aș spune că 42.zip s-a format prin crearea unui fișier gol mare și copierea și copierea din nou și din nou. Nu există nicio modalitate de a depăși limitele de format sau de a maximiza compresia sau orice altceva - au ales în mod arbitrar 16 copii pe strat. Ideea a fost de a crea o sarcină utilă mare fără prea mult efort.

Nota. Alte formate de compresie, cum ar fi bzip2, oferă rate de compresie maxime mult, mult, mult mai mari. Cu toate acestea, majoritatea analizoarelor zip nu le acceptă.

P.S. Puteți crea un fișier zip care va extrage o copie a lui însuși (quine). De asemenea, puteți face unul care despachetează mai multe copii. Deci, dacă decomprimați recursiv fișierul pentru totdeauna, dimensiunea maximă posibilă este infinită. Singura limitare este că poate crește cu cel mult 1032 în fiecare iterație.

P.P.S. O valoare de 1032 presupune că datele fișierului din zip nu se suprapun. Una dintre caracteristicile formatului de fișier zip este că are un director central care listează fișierele din arhivă și offset-urile de date ale fișierului. Dacă creați mai multe intrări în fișiere care indică aceleași date, puteți obține rate de compresie mult mai mari chiar și fără imbricare, dar fișierul zip va fi probabil respins de analizatori.

Aproape în fiecare zi apar noi soiuri de viruși informatici, iar marea majoritate a programelor malware noi și modificate au ca scop extragerea de profit. Furtul de parole, numerele cardurilor bancare, utilizarea puterii de calcul a computerelor utilizatorilor prin crearea de botnet-uri, extorcare - pentru asta sunt creați în principal virușii. Dar printre malware se numără și cei al căror scop este sabotajul obișnuit.

Astfel de viruși erau obișnuiți la începutul erei computerelor și acum par să câștige din nou popularitate. Recent, cazuri de infectare a computerului cu așa-numitele arhivele morții- arhive rău intenționate, a căror despachetare umple complet hard disk-ul cu date și, după cum spun unii, poate chiar deteriora hardware-ul, punând o sarcină grea asupra acestuia. Virusul, care a terorizat odată utilizatorii în urmă cu câțiva ani, este unul dintre ele.

În exterior arată ca o arhivă obișnuită care cântărește 42 kilobyte, dar dacă îl despachetezi, vei primi 4,5 petabyte de informații! Crezi că acest lucru este imposibil? Indiferent cum ar fi. Pe cont propriu ZIP -o bombă nu este altceva decât un manechin, dar conține un algoritm special de generare a datelor. Dacă utilizatorul încearcă să despacheteze o astfel de arhivă, straturile pe care le conține o vor face 16 fișierele pe nivel vor începe să se desfășoare, generând o cantitate imensă de informații fără sens. Ca urmare "explozie" acest ZIP -bombe, discul se dovedește a fi umplut la capacitate maximă cu cache, iar sistemul se blochează sau se blochează complet BSOD.

În ceea ce privește defecțiunea hardware-ului computerului, aceasta este probabil o exagerare; sarcina componentelor va crește într-adevăr brusc, dar este puțin probabil să fie suficient de mare pentru ca acestea să se epuizeze. Dacă procesorul se supraîncălzi, protecția va funcționa și computerul se va reporni, deși nu există nicio garanție 100% că acest lucru se va întâmpla. La gunoi PC ZIP -bombele nu se vor transforma, fișierele aflate deja pe disc nu vor fi distruse, dar nervii utilizatorului vor fi uzați, asta este sigur. Antivirusurile recunosc astfel de amenințări? Da, programele antivirus pot recunoaște acest tip de malware, deși reprezintă o amenințare ZIP - bomba poate fi și pentru antivirus în sine: atunci când încearcă să despacheteze arhiva, antivirusul poate umple toată memoria și să nu găsească nimic.

Ca toți ceilalți ZIP -bombe, periculoase nu numai pentru Windows, ci și pentru alte sisteme de operare care acceptă lucrul cu arhive ZIP . Ce să faci dacă asta ZIP-A explodat bomba pe computerul tău? Este mai bine să nu așteptați ca sistemul să se blocheze, ci să opriți forțat computerul, să porniți în modul sigur sau de sub LiveCD, ștergeți arhiva și gunoiul pe care le-a produs deja și, în același timp, verificați pornirea, deoarece programul rău intenționat și-ar fi putut scrie acolo codul.

Testarea bombelor de decompresie

O bombă de decompresie este un fișier conceput pentru a doborî sau elimina un program sau un sistem inutil care îl citește, de exemplu. refuză serviciul. Fișierele din acest proiect pot fi folosite pentru a testa vulnerabilitatea unei aplicații la un anumit tip de atac.

Descărcați Bombs

O bombă zip, cunoscută și sub numele de bombă zip a morții sau de decompresie, este un fișier de arhivă rău intenționat conceput pentru a bloca sau a elimina un program sau un sistem inutil care îl citește. Este adesea folosit pentru a dezactiva software-ul antivirus pentru a crea o deschidere pentru viruși mai tradiționali. În loc să deturneze funcționarea normală a unui program, o bombă zip permite programului să ruleze conform așteptărilor, dar arhiva este procesată cu atenție, astfel încât despachetarea acesteia (de exemplu, utilizarea unui scanner de viruși pentru a căuta viruși) necesită prea mult timp, disc. spațiu sau memorie.

O bombă Zip este un fișier mic pentru a simplifica transferul și pentru a evita suspiciunea. Cu toate acestea, când încercați să despachetați acest fișier, conținutul acestuia solicită mai mult decât poate procesa sistemul. Un alt exemplu de bombă zip este fișierul 42.zip, care este un fișier zip care conține 42 kiloocteți de date comprimate, care conține cinci niveluri de fișiere zip imbricate în seturi de 16, fiecare arhivă de la nivel inferior conținând 4,3 gigaocteți (4.294.967.295 octeți, ~3,99 gib), într-un total de 4,5,929,623 peta, (4.294.967.295 octeți) octeți, ~3,99 PiB) de date necomprimate. Astfel de fișiere pot fi încă descărcate de pe diferite site-uri web de pe Internet. Multe scanere de viruși efectuează doar câteva niveluri de recursivitate pe arhive pentru a preveni atacurile care ar cauza o depășire a memoriei tampon, o stare de epuizare a memoriei sau depășirea timpului de execuție acceptabil al programului. Bombele Zip adesea (dacă nu întotdeauna) se bazează pe repetarea fișierelor identice pentru a-și atinge rapoartele de compresie finale. Tehnicile de programare dinamică pot fi folosite pentru a limita parcurgerea unor astfel de fișiere, astfel încât doar un fișier să fie executat recursiv la fiecare nivel, transformând efectiv creșterea lor exponențială în creștere liniară.

Când testați, este întotdeauna mai bine să începeți cu puțin și să vă urcați. Începeți să lucrați cu cel mai mare fișier poate dăuna grav aplicației sau sistemului - utilizați aceste bombe cu mare precauție.

Toate fișierele au fost bzippate pentru a ocoli limita de încărcare a fișierelor de 50 MB a GitMub. Grupuri de fișiere au fost arhivate și apoi bzipped din nou. Eliminați aceste pre-codări suplimentare înainte de scanare.

Surse suplimentare

  • HTTP/2: Analiză aprofundată a primelor patru defecte ale protocolului web de generație următoare
  • Nu te uiți la imaginea de ansamblu
  • În cuibul lui Compression Hornet: Un studiu de securitate al compresiei datelor în serviciile de rețea
  • Compresie HTTP diabolică - bombe de compresie (
[Actualizare] Acum sunt pe o listă de agenții de informații pentru că am scris un articol despre un fel de „bombă”, nu?

Dacă ați găzduit vreodată un site web sau ați administrat un server, probabil că sunteți bine conștienți de oamenii răi care încearcă să facă tot felul de lucruri rele proprietății dvs.

Când mi-am găzduit pentru prima dată micuța mea cutie Linux cu acces SSH la vârsta de 13 ani, m-am uitat la jurnalele și în fiecare zi am văzut adrese IP (în mare parte din China și Rusia) încercând să se conecteze la dulcea mea casetă (care este de fapt Era de fapt un vechi laptop ThinkPad T21 cu un display stricat, bâzâit sub pat). Am raportat aceste IP-uri furnizorilor lor.

De fapt, dacă aveți un server Linux cu SSH deschis, puteți vedea singur câte încercări de conectare au loc zilnic:

Grep „eșecuri de autentificare” /var/log/auth.log


Sute de încercări de autorizare nereușite, deși serverul are autentificarea prin parolă dezactivată și rulează pe un port non-standard

Wordpress ne-a condamnat

Bine, să recunoaștem, scanerele pentru vulnerabilități web existau înainte de Wordpress, dar după ce platforma a devenit atât de populară, majoritatea scanerelor au început să verifice dosarele wp-admin configurate greșit și pluginurile nepatchate.

Așadar, dacă o mică bandă de hackeri în devenire dorește să obțină niște conturi noi, ei vor descărca unul dintre aceste instrumente de scanare și îl vor pune pe o grămadă de site-uri web în speranța de a obține acces la un site și de a-l distruge.


Eșantion de jurnale atunci când scanați cu instrumentul Nikto

Acesta este motivul pentru care toate serverele și administratorii de site-uri web se ocupă de gigaocteți de jurnale pline de încercări de scanare. Așa că m-am gândit...

Este posibil să ripostezi?

După ce am experimentat cu potențiala utilizare a IDS sau Fail2ban, mi-am adus aminte de vechile bombe ZIP din trecut.

Ce fel de lucru este o bombă ZIP?

După cum se dovedește, compresia ZIP este excelentă la tratarea datelor repetitive, așa că dacă aveți un fișier text uriaș plin cu date repetitive precum toate zerourile, se va comprima foarte bine. Adică, FOARTE bine.

După cum a arătat 42.zip, este posibil să comprimați 4,5 petabytes (4.500.000 gigabytes) în 42 kilobytes. Când încercați să vizualizați conținutul arhivei (extrageți sau dezarhivați), probabil că veți rămâne fără spațiu pe disc sau RAM.

Cum să arunci o bombă ZIP pe un scaner de vulnerabilități?

Din păcate, browserele web nu înțeleg ZIP, dar înțeleg GZIP.

Deci, primul lucru pe care îl vom face este să creăm un fișier GZIP de 10 GB plin cu zerouri. Există multe compresii imbricate pe care le puteți face, dar să începem simplu.

Dd if=/dev/zero bs=1M count=10240 | gzip > 10G.gzip


Făcând o bombă și verificându-i dimensiunea

După cum puteți vedea, dimensiunea sa este de 10 MB. Ar fi putut fi comprimat mai bine, dar este suficient pentru moment.

Acum să instalăm un script PHP care îl va livra clientului.

Gata!

Acum îl putem folosi ca o simplă apărare:

Evident, acest script nu este simbolul eleganței, dar ne poate proteja de copiii script menționați mai devreme, care habar nu au că user-agent poate fi schimbat în scanere.

Deci... Ce se întâmplă dacă rulezi acest script?


(dacă ați testat bomba pe alte dispozitive/browsere/scripturi, vă rugăm