2 Punkte von GN⁺ 2025-04-30 | 1 Kommentare | Auf WhatsApp teilen
  • Der Großteil des Web-Traffics stammt von Bots, von denen einige für bösartige Zwecke eingesetzt werden
  • Eine Zip-Bomb ist eine kleine komprimierte Datei, die sich beim Entpacken jedoch zu einer sehr großen Datei ausdehnt und dadurch einen Server überlasten kann
  • Komprimierungstechniken werden im Web genutzt, um Daten effizient zu übertragen, und auch Bots machen sich das zunutze
  • Wenn bösartige Bots erkannt werden, liefert der Server eine mit gzip komprimierte Datei aus, um die Bots unschädlich zu machen
  • Zip-Bombs sind keine perfekte Lösung, aber wirksam, um einfache Bots zu stoppen

Server mit Zip-Bombs schützen

  • Der Großteil des Web-Traffics stammt von Bots, von denen einige für bösartige Zwecke eingesetzt werden
  • Bösartige Bots können Schwachstellen auf dem Server finden und bösartige Skripte einschleusen, um den Server in ein Botnet zu verwandeln
  • Eine Zip-Bomb ist eine kleine komprimierte Datei, die sich beim Entpacken jedoch zu einer sehr großen Datei ausdehnt und dadurch einen Server überlasten kann

Einsatz von Komprimierungstechniken

  • gzip ist eine Komprimierungstechnik, die im Web für eine effiziente Datenübertragung verwendet wird
  • Sowohl Webbrowser als auch Bots unterstützen gzip und nutzen es, um die verfügbare Bandbreite maximal auszuschöpfen
  • Wenn bösartige Bots erkannt werden, liefert der Server eine mit gzip komprimierte Datei aus, um die Bots unschädlich zu machen

So wird eine Zip-Bomb erzeugt

  • Mit dem Befehl dd werden 10 GB an Daten erzeugt, die anschließend mit gzip zu einer 10-MB-Datei komprimiert werden
  • Erkennt der Server bösartige Anfragen, liefert er die 10 MB große Zip-Bomb-Datei aus, um die Bots unschädlich zu machen

Grenzen von Zip-Bombs

  • Zip-Bombs sind keine perfekte Lösung, und einige Bots können sie erkennen und umgehen
  • Dennoch sind sie wirksam, um einfache Bots zu stoppen, und ein nützliches Werkzeug zum Schutz von Servern

Verwandte Artikel

  • Wie man 1,3 Millionen Web-Anfragen verarbeitet
  • Apache-Server-Signatur ändern
  • Do Not Track in Google Analytics einhalten

1 Kommentare

 
GN⁺ 2025-04-30
Hacker-News-Kommentare
  • Ich erinnere mich, dass ich als Kind aus Spaß auf meiner Homepage ln -s /dev/zero index.html gemacht habe. Die Browser damals mochten das nicht, und das System fror ein oder stürzte sogar ab
    • Später begannen Browser, den tatsächlichen Inhalt zu prüfen, und brachen solche Anfragen dann ab
  • Heutzutage unterstützen fast alle Browser zstd und brotli, daher könnten solche Bomben noch effektiver sein
    • In einem älteren Kommentar wurde ein Kompressionsverhältnis von 1.2M:1 gezeigt, und zstd liefert noch bessere Leistung
  • Bots unterstützen moderne Kompressionsstandards möglicherweise nicht
    • Das könnte eine gute Methode sein, um Bots zu blockieren: Da alle modernen Browser zstd unterstützen, könnte man es für nicht auf der Whitelist stehende Browser-Agents erzwingen und so Scraper verwirren
  • In meiner früheren Firma haben Bots einmal eine WordPress-Schwachstelle gefunden und ein bösartiges Skript auf dem Server eingeschleust
    • Es ist irgendwie lustig, dass ich nicht der Einzige bin, der erlebt hat, wie nur eine Stunde nach dem Aufsetzen von WordPress schon eine PHP-Shell auf dem Server ausgerollt war
  • Zip-Bomben sind unterhaltsam. Ich habe einmal eine Schwachstelle in einem Sicherheitsprodukt gefunden, das Zip-Archive ab einer bestimmten Größe nicht korrekt geprüft hat
    • Dadurch konnte man eine Zip-Bombe in ein Office-XML-Dokument einbetten, und das Produkt ließ es durch, selbst wenn klar identifizierbare Malware enthalten war
  • Ich habe herausgefunden, wie man SSH-Clients zum Absturz bringt, die per SSH versuchen, das Root-Passwort zu erraten
    • Am Ende haben Script-Kiddies meinen Server mit DDoS angegriffen
    • Ich bin dann dazu übergegangen, "bad actors" zu identifizieren und ihre IPs per Firewall-Regeln zu blockieren
    • Mit IPv6 wird das immer schwieriger
  • Leute, die Webseiten schreiben, könnten Zip-Bomben in für Menschen unsichtbaren Links unterbringen (weiße Schrift auf weißem Hintergrund, keine Hervorhebung bei Hover/Klick-Ankern)
    • Bots laden das herunter und prüfen es (genauso wie Crawler und AI-Scraper)
  • Das hier ist eine gzip-Bombe (sie funktioniert wie eine normal komprimierte Webseite), nicht die klassische Zip-Datei zum Blockieren von Viren
  • Ich habe das statt eines üblichen Honeypot-Skripts eingesetzt
    • Es funktioniert nicht besonders gut
    • In den Webserver-Logs kann man sehen, dass Bots nicht die gesamten 10 Megabyte Gift herunterladen
    • Sie brechen bei unterschiedlichen Längen ab. Bisher habe ich nie gesehen, dass mehr als etwa 1.5Mb geholt wurde
    • Oder funktioniert es vielleicht doch? Dekodieren sie den Stream in Echtzeit und stürzen dann ab? Könnte zum Beispiel etwas, das als 1.5Mb gelesen protokolliert ist, in Echtzeit zu 1.5Gb im RAM dekodiert werden und dann abstürzen?
    • Es gibt keine Möglichkeit, das herauszufinden
  • Vor einiger Zeit gab es einen Vorfall, bei dem die Anti-Zensur-Infrastruktur des Tor Project auf einer Site betrieben wurde, auf der auch ein Blogpost über Zip-Bomben lag
    • Google crawlete eine der Zip-Dateien und setzte die Domain auf eine Liste bösartiger Domains, wodurch ein wichtiger Teil von Tors Snowflake-Tool beschädigt wurde
    • Es dauerte mehrere Wochen, das Problem zu beheben
  • In einer meiner Anwendungen habe ich zum Schutz von Uploads eine temporäre Festplattenpartition fester Größe von 10 MB erstellt, um die Auswirkungen zu begrenzen, falls eine zu große Datei hochgeladen wird
  • Mit einem Skript, das ich über mehrere Jahre zusammengestellt habe, mache ich etwas Ähnliches
    • Jedes Jahr prüfe ich die 404-Logs und füge die beliebtesten Pfade für Schwachstellen der Blacklist hinzu
    • Wenn diese URL dreimal angefragt wird, setze ich den Host auf eine Grauliste, die nur noch eingeschränkte legitime Pfade erlaubt