Die Google GmbH hat das neue Open-Source-Projekt Vanir vorgestellt, das einen statischen Analysator zur automatischen Identifizierung nicht angewandter Code-Patches zur Beseitigung von Sicherheitslücken entwickelt. Vanir nutzt eine Signaturdatenbank mit Informationen über bekannte Sicherheitsanfälligkeiten und Patche zur Behebung dieser Sicherheitsanfälligkeiten. Eine solche Datenbank wird von Google seit Juli 2020 geführt und umfasst 95 % der Sicherheitsanfälligkeiten in mit der Android-Plattform verbundenen Projekten, einschließlich des Linux-Kernels. Derzeit werden Quellcodeüberprüfungen in den Sprachen C, C++ und Java unterstützt. Der Code von Vanir ist in C++ und Python geschrieben und wird unter der BSD-Lizenz verbreitet.
Das Projekt besteht aus zwei Teilen – einem Signaturgenerator und einem Detektor für fehlende Patche. Der Generator erstellt eine Signatur zur Identifizierung des Fehlens eines Fixes basierend auf der Beschreibung der Sicherheitsanfälligkeit im OSV-Format und einem Link zu einem Patch oder Commit, der die Sicherheitsanfälligkeit behebt. Aktuell wird die Verarbeitung von Commits in den Repositories googlesource.com und git.codelinaro.org unterstützt, aber die Unterstützung anderer Dienste kann durch das Hinzufügen eines Handlers zur Extraktion des Codes einfach erweitert werden.
Der Detektor analysiert den Code im angegebenen Repository und stellt fest, ob dort Korrekturen fehlen, die in den bereitgestellten Signaturen beschrieben sind. Die Implementierung basiert auf Algorithmen zur automatischen Verfeinerung von Signaturen und der Analyse mehrerer Muster, die in den Forschungsprojekten ReDeBug und VUDDY vorgeschlagen wurden. Auf einem modernen PC mit 16-Kern-CPU dauert das Scannen des Quellcodebaums der Android-Plattform nach der OSV-Datenbank mit Informationen zu mehr als 2000 Sicherheitsanfälligkeiten 10-20 Minuten. Das Ergebnis wird in einem Bericht zusammengefasst, der eine Liste potenziell ungelöster Sicherheitsanfälligkeiten und Links zu den entsprechenden Stellen im Code, CVE-Identifikatoren und Patche enthält. Nach Statistiken, die über zwei Jahre Nutzung von Vanir bei Google gesammelt wurden, beträgt die Rate der Fehlalarme 2,72%.


Die Vorteile des vorgeschlagenen Tools:
- Die Möglichkeit, nicht behobene Sicherheitsanfälligkeiten in externen Abzweigungen, Modifikationen und Code-Leihgaben zu erkennen, die nicht direkt mit dem Hauptprojekt verbunden sind. Im Kontext von Android kann das Tool zur Überprüfung der Anwendung von Fixes in den von OEM-Herstellern entwickelten Versionen der Android-Plattform verwendet werden.
- Die Durchführung der Überprüfung allein auf der Grundlage der Analyse des vorhandenen Codes, ohne Bezug auf Metadaten wie Versionsnummer, Commithistorie und SBOM (Software Bill Of Materials).
- Unterstützung der automatischen Generierung von Signaturen unter Verwendung von Informationen über Schwachstellen, die in öffentlichen Quellen erscheinen, sowie von veröffentlichten Begleitpatches.
- Höhere Leistungsfähigkeit der Überprüfung basierend auf statischer Analyse des Quellcodes im Vergleich zu Tools für dynamische Analysen und zur Überprüfung von Binärversionen.
- Eigenständigkeit — die Möglichkeit, die Infrastruktur auf eigenen Systemen ohne Rückgriff auf externe Dienste bereitzustellen.
- Verfügbarkeit einer aktuellen Signaturdatenbank, unterstützt durch das Google Android Security Team.
- Unterstützung der Anbindung an Systeme für kontinuierliche Integration und Lieferung (CI/CD). Möglichkeit der Integration in andere Projekte mithilfe von Vanir in Form von Python-Bibliotheken.
- Die Möglichkeit, das System für Aufgaben anzupassen, die nicht mit Schwachstellen zusammenhängen, beispielsweise zur Erkennung von Code-Klonierung oder zur Verwendung von lizenziertem Code in anderen Projekten.
Quelle: opennet.ru
