Spezifizierbare Erkennung von API-Falschverwendungen in CI Pipelines

Überblick

Die korrekte Verwendung von APIs ist entscheidend für die Vermeidung von fehlerhaftem und unsicherem Code. Für Datensicherheit sind besonders kryptographische APIs wichtig, aber auch allgemeine (alle anderen) APIs müssen richtig verwendet werden, um sichere Software mit hoher Qualität zu entwickeln. Um die sichere und richtige Verwendung von APIs zu überprüfen, werden in der Praxis statische Analysewergzeuge eingesetzt.

Von Anfang an ist die Fachgruppe "Secure Software Engineering" Teil des Sonderforschungsbereichs SFB 1119 CROSSING, in dem an kryptographischen Lösungen für die Zukunft geforscht wird. Eine erfolreiche Entwicklung aus dieser Forschung ist das statische Analysewerkzeug CogniCrypt. CogniCrypt erkennt die Falschverwendung von kryptographischen APIs. Dazu verwendet CogniCrypt den sogenannten Erlaubnislistenansatz, bei dem die gewünschte, sichere Nutzung von kryptographischen APIs in Form von Regeln spezifiziert wird. CogniCrypt konfiguriert seine Analyse entsprechend des gewählten Regelsatzes und meldet bei jeder Nichteinhaltung eine Warnung. Auf diese Weise werden Entwickler*innen, die CogniCrypt einsetzen, auf sicherheitsrelevante Fehler aufmerksam gemacht und können diese korrigieren.

Dieser erfolgreich erprobte Ansatz wird nun weiter untersucht und führte im März 2023, im Rahmen des vom BMBF geförderten Software Campus, zum Start eines neuen Projekts. Ziel eines Software Campus Projekts ist es, in Zusammenarbeit mit der Industrie, praxisnahe Forschung zu betreiben. Das Projekt wird von einem Doktoranden geleitet, so dass praktische Projekterfahrungen gesammelt werden, die durch intensive Weiterbildung unterstützt und ergänzt werden.

Die Projektidee, den Ansatz von CogniCrypt zu verallgemeinern, stammt aus der Forschung sowohl zum besseren Verständnis von API-Falschverwendungen, deren Entstehung und der Klassifizierung, als auch dem dazugehörigen Klassifizierungsrahmen "FUM". Diese Forschung hat gezeigt, dass CogniCrypt sehr gut für APIs aus der Kryptographie geeignet ist, aber auch, dass andere Sprachmerkmale von API-Nutzungen in Programmiersprachen noch nicht abgedeckt sind.

Damit in Zukunft neben kryptographischen APIs auch Regeln für die korrekte Verwendung vieler anderer APIs spezifiziert werden können und daraus eine Analyse konfiguriert werden kann, wird in diesem Software Campus Projekt ein neues statisches Analysewerkzeug entwickelt, das die für allgemeine APIs erforderlichen Konfigurations-und Analysefunktionen bietet.

Die Verallgemeinerung des Erlaubnislistenansatzes bietet viele neue Möglichkeiten. Die Spezifikation von Regelsätzen für allgemeine APIs durch den Anwender ermöglicht einen flexibleren Einsatz des neuen statischen Analysewerkzeugs. Regelsätze können sowohl projektspezifisch zusammengestellt und angepasst werden, als auch für unternehmensinterne und externe APIs spezifiziert werden. Darüber hinaus können die bereits in CogniCrypt vorhandenen Regelsätze für Kryptographie, welche von Experten erstellt wurden, angewendet werden. Das bedeutet, dass das neue, allgemeine statische Analysewerkzeug die bereits aus CogniCrypt bekannte Sicherheitsanalyse für kryptografische APIs gemeinsam mit den benutzerkonfigurierten Analysen für allgemeine APIs bereitstellen kann, um auf Qualitätsmängel der entstehenden Softwareartefakte hinzuweisen.

Key Facts

Laufzeit:
02/2023 - 08/2024
Gefördert durch:
BMBF

Detailinformationen

Projektleitung

contact-box image

Prof. Dr. Eric Bodden

Heinz Nixdorf Institut

Zur Person

Projektmitglieder

contact-box image

Michael Schlichtig

Secure Software Engineering / Heinz Nixdorf Institut

Zur Person

Kooperationspartner

Software Campus

Kooperationspartner

Zur Website

TRUMPF Werkzeugmaschinen SE + Co. KG

Kooperationspartner

Zur Website