Hi! Im folgenden Tutorial erkläre ich, was eine Archivbombe (RAR-Bombe bzw. ZIP-Bombe) ist, wie sie funktioniert und aufgebaut ist, und wie man sich schützen kann.
Was ist eine Archiv-Bombe?
Eine große Datei die aus einem sich immer wieder wiederholenden Zeichen besteht, wird in einer Archiv Datei komprimiert.
Beispiel: In der Original Datei steht: „0000000000000“, dann muss nur gespeichert werden, dass 13 mal „0“ vorhanden ist.
Kein Problem. Aber es ist auch möglich, dass 13 Milliarden mal “0″ in der Datei steht.
Was ist daran jetzt so gefährlich?
Aktuelle Virenscanner sind darauf eingestellt, auch Archivierte Dateien zu scannen, z.B. ZIP Dateien aus E-Mails, oder RAR-Downloads. Damit die Dateien gescannt werden können, wird das Archiv entpackt.
Ein potentieller Angreifer kann so ohne großen Aufwand die Festplatte seines Opfers mit sinnlosen Daten überfluten.
Eine Datei mit minimaler Größe wird nicht für verdächtig befunden sondern wird per E-Mail heruntergeladen oder als Download auf einer Webseite. Diese minimale Größe wird dann allerdings beim (automatischen) entpacken stark multipliziert. Meist kann die Festplatte bzw. der Arbeitsspeicher diese gigantische Datenmenge nicht verwalten. So kann ein System komplett zum Stillstand kommen, der Scanvorgang dauert unnötig Zeit, oder die Festplatte ist mit den sinnlosen Daten überflutet. Deshalb kann man eine Archivbombe auch als (lokale) DoS Attacke einstufen.
Nach dieser Methode funktioniert das ‘Virus’ 42.zip (probierts aus ;))! Die Webseite unforgettable.dk schreibt über 42.zip:
Die Datei enthält 16 gezippte Dateien,
die wiederum 16 gezippte Dateien enthalten,
die wiederum 16 gezippte Dateien enthalten,
die wiederum 16 gezippte Dateien enthalten,
die wiederum 16 gezippte Dateien enthalten,
die jeweils 1 Datei mit der Größe 4.3 GB enthält.16 x 4294967295 = 68.719.476.720 (68GB)
16 x 68719476720 = 1.099.511.627.520 (1TB)
16 x 1099511627520 = 17.592.186.040.320 (17TB)
16 x 17592186040320 = 281.474.976.645.120 (281TB)
16 x 281474976645120 = 4.503.599.626.321.920 (4,5PB)
Das will ich doch gleich mal ausprobieren!
Aus Demonstrationszwecken habe ich ein kleines PHP-Skript geschrieben, das auf die schnelle, abhängig von einigen Einstellungen, eine große Datei generieren kann.
$character ist der Buchstabe mit dem die Datei gefüllt werden soll.
$filename ist der Name der Datei die generiert werden soll.
$lines ist die Anzahl der Zeilen die geschrieben werden sollen. Das ist ungefähr der MB Wert der Datei die generiert wird
Jetzt führen wir die Datei aus und generieren uns eine große Datei.
Unter Windows funktioniert das mit XAMPP ungefähr so:
C:\Programme\xampp\php\php.exe C:\mcsecu\bomb.php
Danach packen wir die erstellte Datei mit WinRAR. Wir nehmen folgende Optionen:
Archivformat: RAR
Kompressionsmethode: Sehr gut
Und unter Erweitert -> Kompression
Text-Kompression: Erzwingen
Wörterbuchgröße: 64kb
Und warten einen Moment…
Wenn du die Parameter gelassen hast, wie sie waren, war die Datei anfangs ca. 86mb groß, und ist sie jetzt nur noch 9kb groß!
Das ganze funktioniert natürlich auch in größeren Dimensionen, siehe 42.zip.
Einige ganz clevere Leute modifizieren auch die Header Informationen in den Archiv Dateien, sodass Dateien z.B. als 10kb angesehen werden, aber wenn sie entpackt werden in wirklichkeit viel mehr Speicherplatz einnehmen.
Und wie kann ich mich schützen?
Man kann sich gegen Archivbomben schützen, indem man prinzipiell nur Dateien annimmt von Personen und Webseiten, von denen man weiß, dass man ihnen vertrauen kann. Ein technischer Schutz wäre, in seinem Anti-Viren-Programm einzustellen, dass Archiv-Dateien nicht automatisch entpackt & gescannt werden! Vor einiger Zeit wurde mir dann noch ein interessanter Tipp genannt (Danke an d!zZ0r): Man erstellt sich eine extra Partition mit z.B. 5 oder 10 GigaByte und lagert dann das Tempverzeichnis des Anti-Virus Programmes auf diese Partition aus. Wenn das Anti-Virus nun ein solches Archiv automatisch entpackt, ist das kein Problem. Gegebenenfalls kann man die Partition dann einfach leeren :-). Du solltest aber einfach immer daran denken: Technik allein schützt dich nicht. Dein Computer ist nur so gut geschützt, wie der schwächste Faktor. Und das bist du! Also immer die Augen offen halten und paranoid sein. Das hilft. Wirklich.
Greetz to Makkuro, brabbelj, LuTroX und d!zZ0r, neo2k4, m0rph, AnubizZ, stalker69, katharsis, Luna, -DX-, …
Hallo!
Von nun an sind alle Einstellungen wie Fullscreen, Steuerung und ähnliches in eine Konfigurationsdatei ausgeagert.
Benutzt wird dabei eine Klasse zum Lesen und Schreiben von INI-Dateien, die mir von AlienDwarf zur Verfügung gestellt wurde. Sie wurde in den BK-Status erhoben und ist ab sofort ein vollwertiges Mitglied der Engine. (Schließlich wurde sie auch extra dafür geschrieben.)
Wer sich nun fragt: Warum hat er sie nicht selber geschrieben?
Wie man sieht bin ich ein sehr bequemer Mensch, was mich allerdings nicht davon abgehalten hat, direkt nach erhalten der Klasse heute, die gesamte Steuerung und Verwaltung auf eine INI auszulagern.
Und wisst ihr was? Es läuft ohne Probleme!
Danke nocheinmal an Aliendwarf! So einen großen Zwerg hat die Welt noch nicht gesehen!
Guten Tag noch!
Guten Tag!
Auch wenn ich noch nicht fertig bin: Es gibt einen 3DS-Support!
Er ermöglicht das Laden und Zeichnen von 3DS-Modellen. Dabei kann das Objekt mit beliebigen Texturen überzogen werden. Später werden auch weitere designtechnische Möglichkeiten verfügbar. (Etwa Alphablending, mehrere Texturen pro Model, usw)
Weitere Model Formate sind geplant. Besonderes Augenmerk gilt dabei sicherlich dem eigenen Modelformat, dass ich schon am entwerfen bin. Es wird durch besonders einfaches Laden und Speichern ausgezeichnet sein. (So zumindest die Theorie…)
Weitere Features, die geplant sind, sind Boneanimations und enginespezifische Effekte, die über ID’s und ähnliches angewendet/geladen werden können. (Beispielsweise Spotlights, Fog- und Fireanimationen und Ähnliches.)
Guten Tag!
In diesem Beitrag möchte ich gerne das Grundkonzept der Engine vorstellen. Worauf ich besonderes Augenmerk lege ist natürlich die Einfachheit. Die Benutzung der Engine soll so einfach wie möglich gehalten werden!
Erreichen möchte ich das ganze durch die Bereitstellung einer großen Palette an einfach zu benuztenden Werkzeugen. (Die Einfachheit der Benutzung bezieht sich selbstverständlich auf die Kenntnis der Programmierer. Ein C++-Neuling wird wohl keine Chance haben mit der Engine umzugehen. Ich versuche sie allerdings auh für unerfahrene Nutzer interessant zu halten!)
So können beispielsweise mit wenigen Befehlen Modelle geladen und angezeigt, primitive und dreidimensionale Grundformen gezeichnet und mit winzigem Aufwand eine Kamera aufgesetzt werden, die das Bewegen im dreidimensionalen Raum ermöglicht.
Die Engine ist aufgeteilt in mehrere Klassen, die später wohl durch Vererbung und andere Vorzüge der objektorientierten Programmierung zu einer Hauptklasse zusammengefasst werden, über die man auf alle Komponenten der Engine zugreifen kann. Natürlich kann man auch weiterhin eigenständige Instanzen der einzelnen Klassen erstellen und nutzen!
Dadurch möchte ich ein höheres Maß an benutzerfreundlichkeit erreichen. Es ist einfacher ein einziges Objekt zu erstellen und zu verwalten, als gleich zig verschiedene Instanzen verschiedener Klassen zu erstellen und zu harmonisieren. Zwar verlangt dieses aufsplitten in mehrere Klassen, und vorallem das spätere Zusammenfügen zu einer einzigen, ein hohes
Maß an Vorsicht, was Überschneidungen und ähnliches angeht. Dafür nutze ich allerdings Präfixe, die diese Überschneidungen verhindern sollten.
TBC
Hallöchen allerseits :-)!

Ich hab ja lange nichts mehr geposted, weil einfach gar nichts los war, aber jetzt ist wieder was los:
IPserve bekommt ein Update. Ein kleines. Ein ganz kleines. Der Mirror für das IP-Skript bei WeThePeople war einfach zu unzuverlässig. Mehrmals gab es Serverprobleme die nicht einfach nur dafür gesorgt haben, dass die IP-Adresse nicht angezeigt wird, sondern stattdessen wurde eine komplette HTML-Error-Page im IPserve Feld angezeigt. So kann es nicht gehen, also werden ab jetzt nur noch 2 Server benutzt um die IP abzufragen.
CSS · © 2007 McSecu