
Die Bedeutung von Richtlinien und Regularien wie der Datenschutzgrundverordnung in der Softwareentwicklung nimmt immer weiter zu: Entwickler und Softwarehersteller stehen damit nicht nur vor der Herausforderung, sicherzustellen, dass ihre Produkte und Lösungen den Anforderungen entsprechen, gleichzeitig müssen sie auch noch Nachweise darüber erbringen, dass die Standards entsprechend umgesetzt wurden. Das Fraunhofer AISEC hat gemeinsam mit dem BSI das Analysetool Codyze entwickelt, das sowohl Entwickler als auch Auditoren bei der Programmierung und Evaluierung sicherheitskritischer Software unterstützt.
Die Themen IT-Sicherheit und Compliance gewinnen in der Softwareentwicklung immer mehr an Bedeutung. Doch die Einhaltung von Sicherheitsanforderungen und deren Dokumentation stellt viele Entwickler vor Herausforderungen. Durch die zunehmende Dynamik in der Softwareentwicklung und Ansätze wie Continuous Integration and Deployment, also der agilen und kontinuierlichen Weiterentwicklung von Software, wird der Zeitaufwand für manuelle Code-Überprüfungen für Unternehmen eine immer größere Hürde. Zwar verwenden viele Software-Hersteller heutzutage bereits Werkzeuge für die Code-Analyse, doch diese dienen in erster Linie dazu, typische Programmierfehler und sogenannte »Code Smells« zu identifizieren. Der Entwickler gewinnt damit zwar einen ersten Eindruck über mögliche Sicherheitslücken in der Software, die Einhaltung von Compliance-Vorgaben, wie beispielsweise die korrekte Verwendung von Kryptografie, kann damit allerdings nicht gewährleistet werden.
Hier setzt das Analysetool Codyze an, das in Zusammenarbeit zwischen dem Fraunhofer AISEC und dem BSI entwickelt wurde. Ziel des gemeinsamen Projekts war es, ein Tool zu entwickeln, um Auditoren bei der Zertifizierung und Zulassung sicherheitskritischer Software zu unterstützen. »Um die technologische Souveränität zu gewährleisten, ist es wichtig, die Sicherheit von Produkten und Lösungen beurteilen zu können,« sagt Christian Banse, Abteilungsleiter Service and Application Security am Fraunhofer AISEC. »Codyze ermöglicht es, die Sicherheit bereits während des Entwicklungsprozesses einzuschätzen. Es überprüft beispielsweise die Einhaltung von Compliance-Vorgaben, wie die Verwendung geeigneter Verschlüsselungsalgorithmen.« Dafür verwendet Codyze Techniken der statischen Analyse auf Basis von Quelltext. Anders als bisher verfügbare Analysetools ermöglicht Codyze auch die Überprüfung von Ausschnitten des Quellcodes. So können Nutzer beispielsweise auch dann entwicklungsbegleitende Überprüfungen durchführen, wenn noch keine lauffähigen bzw. noch nicht fertiggestellte Programmteile vorliegen.
Manuelle Code-Analysen und automatische Compliance-Prüfung
Codyze erstellt aus dem Quelltext eine sprachunabhängige Repräsentation in Form eines sog. Code Property Graphen, die auf zwei Arten genutzt wird. Einerseits können – ähnlich wie bei Datenbanken – Abfragen an den Quelltext gestellt werden, um den Code explorativ zu untersuchen. Mit Hilfe einer interaktiven Konsole und einer Query-Sprache können sowohl Entwickler als auch Auditoren Quelltext-Strukturen durchsuchen und so schnell Anti-Patterns, also risikobehaftete Programmierlogik, und etwaige Verwundbarkeiten entdecken.
Andererseits ermöglicht Codyze auch eine automatische Prüfung, welche mittels statischer Code-Analyse erfolgt und den Quelltext auf die Einhaltung von Sicherheitsanforderungen untersucht. Die Anforderungen können vorher in Form von Regeln in der dafür spezifisch entwickelten Modellierungssprache MARK hinterlegt werden. Sie beschreiben die korrekte und erwartete Verwendung von sicherheitskritischen APIs und Bibliotheken. Durch die Integration in gängige IDEs über eine LSP (Language Server Protocol)-Schnittstelle, informiert Codyze den Entwickler durch Verweise in der Dokumentation bereits früh in der Entwicklungsphase über mögliche Schwachstellen; die Integration in CI-Prozesse ermöglicht darüber hinaus eine kontinuierliche Überprüfung.
Korrekter Einsatz von kryptografischen Bibliotheken
Eine häufige Schwachstelle in der Programmierung von sicherheitskritischer Software entsteht durch die fehlerhafte Verwendung von kryptografischen Bibliotheken, z.B. durch die Auswahl von ungeeigneten Algorithmen. Aus diesem Grund hat das BSI die sogenannte Technische Richtlinie TR 02102-1 mit Empfehlungen zu Krypto-Verfahren und Schlüssellängen publiziert und zuletzt im Jahr 2020 aktualisiert.
Um Entwickler bei der korrekten Umsetzung und Auditoren bei der Überprüfung von Applikationen zu unterstützen, wurden im Rahmen des BSI-Projekts die Anforderungen der TR 02102-1 in MARK-Regeln für die weit verbreiteten Bibliotheken Bouncycastle (Java) und Botan2 (C++) abgebildet. Codyze überprüft hierbei nicht nur, ob die Auswahl der Algorithmen und deren Konfiguration korrekt erfolgt ist, sondern auch, ob die richtige Reihenfolge der Operationen wie beispielsweise Verschlüsselung oder Initialisierung eingehalten wurde.
In einem weiteren Schritt untersuchte das Fraunhofer AISEC die korrekte Umsetzung von Kryptografie in Open-Source-Projekten: Bei einer Überprüfung von 5.554 GitHub-Repositories, die diese Bibliotheken verwenden, wurden in 1.188 Dateien Verletzungen festgestellt. Die häufigsten Fehlerquellen waren dabei die fehlerhafte Reihenfolge von API-Aufrufen, was im Bereich der Kryptografie sehr schnell zu Verwundbarkeiten führen kann, und die Verwendung von unsicheren Krypto-Verfahren. An insgesamt 4.143 Programmen wurden Bouncycastle und Botan2 hingegen korrekterweise so verwendet, wie es die Technische Richtlinie erfordert.
Überprüfung weiterer Sicherheitsmerkmale
Codyze ist als Open Source-Projekt unter der Apache 2.0-Lizenz verfügbar und wird in Zusammenarbeit mit der Software-Industrie kontinuierlich weiterentwickelt. Ziel ist es, zukünftig MARK-Regeln für weitere Frameworks und Bibliotheken zu modellieren, welche über das Anwendungsfeld der Kryptografie hinausgehen. Somit wird es in Zukunft möglich mit Codyze sein, weitere Anforderungen aus Regularien automatisiert abprüfen zu können.
Das Fraunhofer AISEC wird Codyze am 27.Oktober 2020 im Rahmen der Fraunhofer Solution Days präsentieren.
Fachartikel

Cybersecurity im Gesundheitswesen: Warum Exposure Management der Schlüssel zur Prävention ist

Mehrdeutige Techniken: Warum der Kontext über Böswilligkeit entscheidet

Die 5 größten SAP-Sicherheitsrisiken und wie Sie diese mindern können

Vom Blocker zum Enabler: Wie Cybersicherheit geschäftlichen Mehrwert schafft

Forrester Unified Vulnerability Management (UVM) – Was es bedeutet und warum es wichtig ist
Studien

Princeton-Forscher warnen vor fatalen KI-Angriffen im Web3-Umfeld

Führungskräfte ohne KI-Wissen? Gartner-Umfrage offenbart Sorgen der CEOs

Schweigen über KI-Erfolge: Was eine neue Ivanti-Studie offenbart

IBM treibt den Einsatz generativer KI in Unternehmen mit hybrider Technologie voran

Weltweite Umfrage: Mehrheit der Technologieverantwortlichen spricht sich für Robotik im Arbeitsumfeld aus
Whitepaper

Group-IB präsentiert die zehn gefährlichsten Cybergruppen 2025

Cyberkriminelle nehmen 2025 verstärkt das Gesundheitswesen ins Visier

Cybersicherheit in KMUs: Alarmiert, aber schlecht gerüstet

Forescout warnt vor zunehmendem staatlich gefördertem Hacktivismus

Internationale KnowBe4-Umfrage: Über 90 Prozent halten Phishing-Tests für sinnvoll
Hamsterrad-Rebell

Sicherer SAP-Entwicklungsprozess: Onapsis Control schützt vor Risiken

Das CTEM-Framework navigieren: Warum klassisches Schwachstellenmanagement nicht mehr ausreicht

Cybersicherheit im Mittelstand: Kostenfreie Hilfe für Unternehmen

Anmeldeinformationen und credential-basierte Angriffe
