G 4.22 Software-Schwachstellen oder -Fehler
Wie für jede Software gilt auch für Standardsoftware: je komplexer
sie ist, desto häufiger treten Programmierfehler auf. Es ist zu
beobachten, daß hohe Erwartungen der Anwender und zeitlich zu knapp
bemessene Erscheinungstermine bei Standardsoftwareprodukten auch dazu
führen, daß die Hersteller ihre Produkte teilweise unausgereift oder
nicht fehlerfrei anbieten. Werden diese Softwarefehler nicht erkannt,
können die bei der Anwendung entstehenden Fehler zu weitreichenden Folgen
führen.
Beispiele:
- Die Stärke der in Standardsoftware implementierten
Sicherheitsfunktionalitäten (wie Paßwörter oder
Verschlüsselungsalgorithmen) wird vom Anwender häufig zu hoch
eingeschätzt. Häufig können diese
Sicherheitsfunktionalitäten einem sachkundigen Angriff nicht dauerhaft
standhalten. Dies gilt z. B. für die
Verschlüsselungsfunktionen, die in vielen Textverarbeitungsprogrammen
integriert sind. Für fast alle davon gibt es im Internet zahlreiche Tools,
um diese Verschlüsselung zu überwinden.
- Nachweislich führte das Auftreten eines bestimmten Wortes in der
Rechtschreibprüfung eines Textverarbeitungsprogrammes immer zu dessen
Absturz.
- Vielfach enthält Standardsoftware nicht dokumentierte Funktionen, wie
sog. "Ostereier"
oder "Gagscreens" mit denen sich die Entwickler
des Produktes verewigt haben. Zum einen werden hierdurch zusätzliche
IT-Ressourcen verbraucht, zum anderen wird dadurch auch deutlich, daß im
Softwaretest die gesamte Funktionalität des Produktes nicht bis ins letzte
geklärt werden kann.
- Die meisten Warnmeldungen der Computer Emergency Response Teams in den
letzten Jahren bezogen sich auf sicherheitsrelevante Programmierfehler. Dies
sind Fehler, die bei der Erstellung von Software entstehen und dazu
führen, daß diese Software von Angreifern mißbraucht werden
kann. Der größte Teil dieser Fehler wurde durch
Speicherüberläufe (Buffer Overflow) hervorgerufen. Hierbei handelt es
um Fehler, bei denen eine Routine zum Einlesen von Zeichen nicht prüft, ob
die Länge der eingegebenen Zeichenkette mit der Länge des dafür
vorgesehenen Speicherbereiches übereinstimmt. Dadurch ist es Angreifern
möglich, eine überlange Zeichenfolge zu übertragen, so daß
hinter dem für die Eingabe reservierten Speicherbereich zusätzliche
Befehle gespeichert werden können, die zur Ausführung gebracht
werden. Diese Befehle können z. B. beliebige Programme sein.
- Die meisten Warnmeldungen der Computer Emergency Response Teams in den
letzten Jahren bezogen sich auf sicherheitsrelevante Programmierfehler. Dies
sind Fehler, die bei der Erstellung von Software entstehen und dazu
führen, daß diese Software von Angreifern mißbraucht werden
kann. Der größte Teil dieser Fehler wurde durch
Speicherüberläufe (Buffer Overflow) hervorgerufen. Hierbei handelt es
um Fehler, bei denen eine Routine zum Einlesen von Zeichen nicht prüft, ob
die Länge der eingegebenen Zeichenkette mit der Länge des dafür
vorgesehenen Speicherbereiches übereinstimmt. Dadurch ist es Angreifern
möglich, eine überlange Zeichenfolge zu übertragen, so daß
hinter dem für die Eingabe reservierten Speicherbereich zusätzliche
Befehle gespeichert werden können, die zur Ausführung gebracht
werden. Diese Befehle können z. B. beliebige Programme sein.
- Eine weitere große Anzahl von Warnmeldungen wurde durch
Verfügbarkeitsangriffe (Denial of Service, DoS) verursacht, bei denen
durch Fehler in einzelnen Routinen, die für die Netzdatenverarbeitung
eingesetzt werden, der gesamte Rechner zum Absturz gebracht werden kann (siehe
z. B. CERT Advisory 97.28 zu IP Denial-of-Service Attacks: Teardrop and
Land-Attack).
© Copyright by Bundesamt für Sicherheit in der Informationstechnik
2000