Software-Schwachstellen - häufige Einfallstore für erfolgreiche Angriffe auf IT-Systeme

Sicher­heits­lücken führen jährlich zu Millionenschäden. Neben der Industrie sind auch die öffentliche Verwaltung, kritische Infrastrukturen wie Krankenhäuser, und zahlreiche Privatpersonen betroffen. Regelmäßige Berichte über Hacker-Angriffe und Datenlecks sind längst zur Normalität unserer vernetzten digitalen Welt geworden. Angreifer nutzen heute meist Schwachstellen und Fehler im Design und in der Implementierung der Anwendungslogik aus. Standardmaßnahmen wie Firewalls und Virenscanner sind nicht ausreichend, um gezielte Angriffe auf Lücken in Software zu verhindern, wie großflächige Ransomware-Angriffe zeigten.

Als Ursache dieser Lücken ist der Forschung eine breite Palette von Schwachstellenklassen bekannt, darunter fehlende oder falsche Authentifizierung, Probleme bei der Eingabensanitisierung, Fehlkonfiguration sensibler APIs wie krypto­grafische Funktionen, unsichere Backend-Kommunikation, unklare oder unsachgemäße Vertrauensmodelle zwischen Komponenten und viele andere.

Softwaresicherheit, genauer: das schnelle Erkennen und Beheben solcher Schwachstellen, ist essenziell, um einen angemessenen Schutz der Privatsphäre und Cybersicherheit zu gewährleisten.


Softwaresysteme – komplex, vielschichtig, angreifbar

Aufgrund der Komplexität und Größe moderner Softwaresysteme ist die manuelle Überprüfung ihres Codes schon lange nicht mehr sinnvoll und wird zunehmend unrealistischer. Systeme bestehen heutzutage aus einer Vielzahl einzelner heterogener Komponenten, die über verschiedene Schnittstellen mit­ei­nan­der interagieren, wobei selbst die einzelnen Komponenten hunderttausende oder sogar Millionen von Codezeilen haben können. Hinzu kommt, dass insbesondere Backoffice-Software in Unternehmen meist über Jahrzehnte mit unterschiedlichen Teams und Verantwortlichkeiten entwickelt, gewartet und angepasst wird. Diesen Produkten fehlt daher oft eine einheitliche, konsistente und leicht erkennbare Struktur. Bei einer Erweiterung des Systems wird daher oft auf einer bestehenden Codebasis aufgebaut, ohne die ursprünglichen Designentscheidungen oder Gründe zu kennen und ohne direkten Zugang zu den ursprünglichen Entwicklern zu haben. Trotzdem müssen neueste Tech­no­logien integriert und aktuelle Anforderungen erfüllt werden.


Sicher­heits­lücken in Software auffinden – effizient und automatisch

Der ATHENE-Forschungsbereich AVSV treibt den Stand der Technik bei der automatischen Erkennung von Sicher­heits­lücken voran. Ziel ist dabei, Code-Analyse-Tools und -Techniken bereitzustellen, die präzise und skalierbar sind und die Schwachstellentypen identifizieren, die von aktuellen Scannern übersehen werden.


Forschungsziele in AVSV

ATHENE definiert folgende Herausforderungen für einen idealen Code-Scanner:

Ziel 1

Das Tool muss sich nahtlos in bestehende Soft­ware­ent­wicklungs­prozesse einfügen, sowohl in klassische als auch in agile Prozesse. Es muss sich automatisch und mit möglichst wenig Eingriffen des Anwenders auf Basis des Eingabeprogramms konfigurieren, einschließlich der Auswahl der anwendbaren Prüfungen und Teststrategien. Falls Code-Generierungstechniken verwendet werden, müssen deren Konfigurationen mit dem Scannen verknüpft werden, das nach der Integration des Codes und eventuellen Anpassungen erfolgt.

Ziel 2

Das Tool muss in der Lage sein, so viele kontextbezogene Informationen über eine entdeckte Schwachstelle wie möglich zu liefern. Es muss dem Analysten ermöglichen, die Aus­wirkungen der Schwachstelle auf hochrangige Werte, z. B. Passwörter oder Anwendungsdaten, genau zu beurteilen. Sie muss es dem Entwickler ermöglichen, eine geeignete Abhilfe für das Problem zu finden.

Ziel 3

Die gemeldeten Schwachstellen müssen für verschiedene Stakeholder, einschließlich Entwickler und Produktmanager, verständlich sein, auch ohne einen ausgeprägten Hintergrund in IT-Sicherheit.

Ziel 4

Das Tool muss in der Lage sein, heterogene Softwaresysteme zu analysieren, die mehrere Plattformen und Programmiersprachen umfassen, auch wenn mehrere Komponenten über externe Schnittstellen wie REST-APIs oder Android-App-to-JavaScript-Schnittstellen interagieren.

Ziel 5

Das Werkzeug muss effizient sein und auf große Anwendungen und Softwaresysteme skalieren, d. h. mit vertretbarem Aufwand an Zeit und Ressourcen (CPU-Leistung, Speicherverbrauch) arbeiten.

Ziel 6

Das Tool sollte nur wirklich relevante Befunde melden, mit möglichst wenig Fehlalarmen. Es soll prüfen, welche Schwachstellen wahrscheinlich ausnutzbar sind und diese Befunde höher einstufen, zusammen mit einer Erklärung, wie ein Angreifer vorgehen könnte. Daher soll das Tool versuchen, seine Befunde nach Möglichkeit durch (halb-)automatische Ausnutzung zu validieren.


Auszeichnung für AVSV-Wissen­schaft­ler*innen

3. Platz beim Fraunhofer Ideenwettbewerb »Ramp up Resilience«

Für die Entwicklung des Codescanners VUSC wurden Dr. Steven Arzt und seine Mitarbeiter Sebald Ziegler und Marc Miltenberger mit dem dritten Platz beim Fraunhofer – Ideenwettbewerb „Ramp up Resilience“ ausgezeichnet. Die Preisverleihung fand im Rahmen des Fraunhofer-Symposiums »Netzwert « am 24. März 2021 statt. 

Mehr Informationen zum Ideenwettbewerb