Re­ak­tor | Co­de­ba­sier­te Ana­ly­se von Open-Sour­ce-Ab­hän­gig­kei­ten

 |  Heinz Nixdorf InstitutSecure Software Engineering / Heinz Nixdorf Institut

Die Nutzung von Open-Source-Software (OSS) ist aus modernen Softwareprojekten kaum noch wegzudenken. In typischen Java-Projekten stammen durchschnittlich rund 71% des Codes aus OSS-Abhängigkeiten, wodurch diese einen wesentlichen Bestandteil heutiger Softwarecodebasen darstellen. Diese starke Abhängigkeit von OSS geht jedoch mit erheblichen Sicherheitsrisiken einher, da bekannte Schwachstellen auf diesem Weg in die Codebasis eingebracht werden können. Zur Reduzierung dieses Risikos wurden sowohl in der Forschung als auch in der Industrie zahlreiche Dependency-Scanner entwickelt, die darauf abzielen, die Verwendung bekanntermaßen verwundbarer OSS-Abhängigkeiten zu identifizieren. Dennoch stehen diese Werkzeuge weiterhin vor grundlegenden Herausforderungen, da sie überwiegend auf Metadaten oder Quellcodeanalysen basieren. Insbesondere Modifikationen von Abhängigkeiten, etwa durch Rekompilierung, Neubündelung oder Umbenennung, welche im Java-Ökosystem weit verbreitet sind, können von modernen Dependency-Scannern häufig nicht zuverlässig erkannt werden.

Genau an diesem Punkt setzt das Reaktor-Projekt an, das in Kooperation mit einem der weltweit führenden Softwareunternehmen, der SAP, durchgeführt wird. Ziel des Projekts ist es, die Erkennung modifizierter OSS-Abhängigkeiten in Java-Anwendungen zu verbessern, um die Effektivität bestehender Dependency-Scanner zu erhöhen und die Sicherheit von Softwareprojekten nachhaltig zu stärken. Zu diesem Zweck werden Verfahren entwickelt, die eine Identifikation schwachstellenbehafteter Abhängigkeiten direkt auf Bytecode-Ebene ermöglichen – jener Coderepräsentation, in der Abhängigkeiten letztlich ausgeliefert und in Anwendungen integriert werden. Die Analyse auf Bytecode-Level stellt dabei die einzige Möglichkeit dar, eine zuverlässige Erkennung von Schwachstellen zu gewährleisten, da Metadaten unvollständig, fehlerhaft oder gänzlich nicht vorhanden sein können.

Ein weiterer zentraler Ansatzpunkt des Reaktor-Projekts ist die Reduktion von Fehlalarmen. Obwohl durchschnittlich rund 71% des Projektcodes aus OSS-Abhängigkeiten besteht, werden in der Praxis durchschnittlich nur etwa 12% des aus Drittanbieterkomponenten stammenden Codes tatsächlich genutzt. Moderne Dependency-Scanner sind jedoch meist nicht in der Lage, den konkreten Nutzungskontext einer Abhängigkeit zu berücksichtigen, und melden daher zahlreiche Schwachstellen, selbst wenn diese ausschließlich nicht genutzte Codeteile betreffen. Im Rahmen des Reaktor-Projekts werden daher zusätzlich Verfahren entwickelt, die diesen Nutzungskontext in die Analyse einbeziehen. Mithilfe sogenannter Reachability-Analysen wird überprüft, ob potenziell verwundbare Codestellen tatsächlich erreichbar und damit relevant für die Anwendung sind. Auf diese Weise können falsche Warnmeldungen effektiv reduziert werden.

Weitere Informationen gibt es hier.