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-Schwachstellen — SQL-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:
- A.8.28 — Sicheres Coding: Sichere Entwicklungsrichtlinien verhindern, dass typische Schwachstellen in den Code gelangen.
- A.8.8 — Management technischer Schwachstellen: Systematisches Patching schließt bekannte Schwachstellen zeitnah.
- A.8.25 — Sicherer Entwicklungslebenszyklus: Security-by-Design von der Anforderungsanalyse bis zum Deployment.
- A.8.29 — Sicherheitstests in Entwicklung und Abnahme: Penetrationstests und Code-Reviews vor dem Produktiveinsatz.
- A.8.19 — Installation von Software: Kontrollierte Freigabeprozesse verhindern den Einsatz unsicherer Versionen.
Erkennung:
- A.5.7 — Bedrohungsintelligenz: Threat-Intelligence-Feeds und CERT-Warnmeldungen informieren über neue Schwachstellen.
- A.8.16 — Überwachungsaktivitäten: Aktives Monitoring erkennt Angriffsversuche gegen bekannte Schwachstellen.
Reaktion:
- A.5.24 — Planung der Informationssicherheitsvorfallreaktion: Verfahren für den Fall, dass eine Schwachstelle aktiv ausgenutzt wird.
- A.5.29 — Informationssicherheit bei Störungen: Notfallmaßnahmen, wenn ein kritischer Patch nicht sofort eingespielt werden kann.
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
- BSI: Die Lage der IT-Sicherheit in Deutschland — Jahreslagebericht mit Statistiken zu Software-Schwachstellen
- BSI IT-Grundschutz: Elementare Gefährdungen, G 0.28 — Originalbeschreibung der elementaren Gefährdung
- ISO/IEC 27002:2022 Abschnitt 8.28 — Umsetzungshinweise zu sicherem Coding