Bundesamt für Sicherheit in der Informationstechnik

G 4.22 Software-Schwachstellen oder -Fehler

Für jede Art von Software gilt: je komplexer sie ist, desto häufiger treten Programmier- oder Designfehler auf. Unter Software-Schwachstellen sollen unbeabsichtigte Programmfehler verstanden werden, die dem Anwender nicht oder noch nicht bekannt sind und ein Sicherheitsrisiko für das IT -System darstellen. Es werden ständig neue Sicherheitslücken in vorhandener, auch in weitverbreiteter oder ganz neuer Software gefunden.

Zu Fehlern oder Schwachstellen in Software kann es durch eine Vielzahl von Gründen kommen. Dazu gehören beispielsweise Kommunikationsfehler zwischen Kunden und Entwicklern, unzureichende Ausbildung der Programmierer oder ungenügende Tests. Auch zu hohe Erwartungen der Anwender und zeitlich zu knapp bemessene Fertigstellungstermine können dazu führen, dass die Hersteller ihre Produkte teilweise unausgereift oder nicht fehlerfrei anbieten.

Werden Softwarefehler nicht erkannt, können die bei der Anwendung entstehenden Fehler zu weitreichenden Folgen führen. Bei weitverbreiteter Standardsoftware können Software-Schwachstellen schnell dazu führen, dass weltweit schwerwiegende Sicherheitsprobleme für alle Arten von Institutionen entstehen können.

Beispiele:

  • Ein Software-Fehler in der Sicherheitssoftware RACF des z/OS -Betriebssystems kann bedeuten, dass nicht nur RACF den Dienst einstellt, sondern dadurch das ganze System nicht mehr funktionsfähig ist und neu gestartet werden muss.
  • Die Stärke der in Standardsoftware implementierten Sicherheitsfunktionalitäten (wie Passwö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, dass 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, dass diese Software von Angreifern missbraucht 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 dass 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 zum Beispiel 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.
  • Die unzureichende Absicherung der Registrierung zur Nutzung eines Cloud Services führt dazu, dass ein Benutzer den Service in der Folge unter einem falschen Namen missbrauchen kann. Der Benutzer registriert sich dabei beim Cloud Service im Namen eines anderen Cloud-Service-Benutzers. Bei der Registrierung wird auf eine ausreichende Absicherung, beispielsweise mithilfe eines Aktivierungs-Links unter der angegebenen E-Mail-Adresse, verzichtet.

Stand: 14. EL Stand 2014