Zum Hauptinhalt springen
Elementare Gefährdung · BSI IT-Grundschutz

G 0.28 — Software-Schwachstellen oder -Fehler

Aktualisiert am 4 Min. Geprüft von: Cenedril-Redaktion
A.5.6A.5.7A.5.14A.5.15A.5.29A.5.34A.5.35A.7.13A.8.1A.8.3A.8.4A.8.5A.8.7A.8.8A.8.9A.8.14A.8.16A.8.19A.8.20A.8.21A.8.24A.8.25A.8.26A.8.27A.8.28A.8.29A.8.30A.8.31A.8.32A.8.33 BSI IT-GrundschutzISO 27001ISO 27002

Die meisten Sicherheitswarnungen der Computer Emergency Response Teams (CERTs) der letzten Jahre hatten eine gemeinsame Ursache: Programmierfehler. Ein einziger Buffer-Overflow in einer weit verbreiteten Bibliothek kann tausende Organisationen gleichzeitig verwundbar machen — unabhängig von Branche, Größe oder Standort.

Software-Schwachstellen und -Fehler (G 0.28) gehören zu den am häufigsten ausgenutzten Bedrohungskategorien. Die Komplexität moderner Software macht es praktisch unmöglich, alle Fehler vor der Auslieferung zu entdecken. Angreifer wissen das — und nutzen es systematisch aus.

Was steckt dahinter?

Jede Software enthält Fehler — und je komplexer sie ist, desto mehr. Intensive Tests vor der Auslieferung reduzieren die Zahl, eliminieren sie aber nie vollständig. Sicherheitsrelevante Fehler entstehen dort, wo Eingaben nicht ausreichend geprüft, Speicherbereiche nicht korrekt verwaltet oder Berechtigungsprüfungen fehlerhaft implementiert werden.

Schwachstellenarten

  • Speicherüberläufe (Buffer Overflow) — Die mit Abstand häufigste Schwachstellenart in C/C++-basierten Anwendungen. Ein Angreifer schreibt über die Grenzen eines Speicherbereichs hinaus und kann so eigenen Code zur Ausführung bringen.
  • Injection-SchwachstellenSQL-Injection, Command-Injection und ähnliche Angriffe schleusen Befehle über Eingabefelder ein, die von der Anwendung ungefiltert an die Datenbank oder das Betriebssystem weitergegeben werden.
  • Authentifizierungs- und Autorisierungsfehler — Fehlerhafte Session-Verwaltung, hartcodierte Zugangsdaten, unzureichende Berechtigungsprüfungen.
  • Logikfehler — Die Anwendung verhält sich technisch korrekt, aber die Geschäftslogik enthält Lücken, die sich ausnutzen lassen (z. B. negative Bestellmengen, die zu Gutschriften führen).
  • Kryptographische Schwächen — Verwendung veralteter Algorithmen, fehlerhafte Implementierung oder mangelhafte Schlüsselverwaltung.

Schadensausmass

Software-Schwachstellen sind der häufigste Einstiegspunkt für gezielte Angriffe. Über eine einzelne Schwachstelle in einem Internet-exponierten System kann ein Angreifer Zugang zum gesamten internen Netzwerk erlangen. Browser-Schwachstellen sind besonders kritisch, weil Browser sowohl für den Internet-Zugang als auch für interne Webanwendungen genutzt werden und auf nahezu jedem Arbeitsplatz installiert sind.

Praxisbeispiele

VPN-Gateway mit bekannter Schwachstelle. Ein Unternehmen betreibt ein VPN-Gateway, für das seit Monaten ein Sicherheitspatch verfügbar ist. Der Patch wurde im Change-Management eingeplant, aber mehrfach verschoben. Angreifer scannen systematisch nach dieser Schwachstelle, finden das ungeschützte System und nutzen es als Einstiegspunkt ins Firmennetz.

Schwachstelle in einer internen Webanwendung. Eine selbst entwickelte HR-Anwendung validiert Benutzereingaben unzureichend. Ein SQL-Injection-Angriff über das Suchfeld ermöglicht den Zugriff auf die gesamte Personaldatenbank — einschließlich Gehaltsinformationen, Sozialversicherungsnummern und Bewertungen.

Veraltete Bibliothek im Build-Prozess. Ein Entwicklungsteam verwendet eine Open-Source-Bibliothek für XML-Parsing, die seit über einem Jahr als verwundbar bekannt ist. Die Abhängigkeit wurde bei der Erstentwicklung eingebunden und seitdem nie aktualisiert. Ein Angreifer nutzt die Schwachstelle über eine manipulierte Importdatei aus.

Relevante Kontrollen

Die folgenden ISO-27001-Kontrollen wirken dieser Gefährdung entgegen. (Die vollständige Liste der 30 zugeordneten Kontrollen findest du unten im Abschnitt „Abdeckende ISO-27001-Kontrollen”.)

Prävention:

Erkennung:

Reaktion:

BSI IT-Grundschutz

G 0.28 verknüpft der BSI-Grundschutzkatalog mit den folgenden Bausteinen:

  • CON.8 (Software-Entwicklung) — Anforderungen an sichere Softwareentwicklung.
  • CON.10 (Entwicklung von Webanwendungen) — Spezifische Anforderungen an die Sicherheit von Webanwendungen.
  • OPS.1.1.3 (Patch- und Änderungsmanagement) — Prozesse für die zeitnahe Verteilung von Sicherheitspatches.
  • APP.4.6 (SAP ABAP-Programmierung) — Beispiel für anwendungsspezifische Entwicklungsrichtlinien.

Quellen

Abdeckende ISO-27001-Kontrollen

Häufig gestellte Fragen

Was ist der Unterschied zwischen einer Schwachstelle und einem Bug?

Ein Bug ist ein allgemeiner Programmierfehler, der zu unerwartetem Verhalten führt. Eine Schwachstelle (Vulnerability) ist ein Bug mit Sicherheitsrelevanz — er kann von einem Angreifer ausgenutzt werden, um unbefugt auf Daten zuzugreifen, Code auszuführen oder Systeme zu übernehmen. Jede Schwachstelle ist ein Bug, aber bei weitem nicht jeder Bug ist eine Schwachstelle.

Warum ist Schwachstellenmanagement so zeitkritisch?

Zwischen der Veröffentlichung einer Schwachstelle und den ersten aktiven Angriffen vergehen manchmal nur Stunden. Angreifer scannen automatisiert das Internet nach verwundbaren Systemen. Ein Patch, der erst Wochen nach Veröffentlichung eingespielt wird, schützt nicht vor den Angreifern, die am Tag nach dem Advisory zuschlagen.

Können auch selbst entwickelte Anwendungen betroffen sein?

Selbst entwickelte Software ist sogar besonders gefährdet, weil sie nicht den gleichen externen Review-Prozessen unterliegt wie verbreitete Standardsoftware. Sicherheitstests (SAST, DAST), Code-Reviews und die Einhaltung sicherer Entwicklungsrichtlinien (Secure SDLC) sind deshalb entscheidend.