Google heeft een nieuw open source-project Vanir gepresenteerd, dat een statische analyzer ontwikkelt voor de automatische detectie van ongebruikte patches in de code die kwetsbaarheden verhelpen. Vanir gebruikt een database met handtekeningen die bekend is met kwetsbaarheden en patches om deze kwetsbaarheden te verhelpen. Deze database wordt door Google sinds juli 2020 onderhouden en dekt 95% van de kwetsbaarheden in projecten die verband houden met het Android-platform, inclusief de Linux-kernel. Momenteel wordt de controle van de broncode in de talen C, C++ en Java ondersteund. De code van Vanir is geschreven in C++ en Python en wordt verspreid onder de BSD-licentie.
Het project bestaat uit twee delen: een handtekeninggenerator en een detector voor gemiste patches. De generator vormt een handtekening voor de identificatie van het ontbreken van een patch op basis van de beschrijving van de kwetsbaarheid in het OSV-formaat en een link naar de patch of commit die de kwetsbaarheid verhelpt. In de huidige staat worden commits in de repositories googlesource.com en git.codelinaro.org ondersteund, maar ondersteuning voor andere services kan eenvoudig worden toegevoegd via een handler voor het extraheren van code.
De detector voert een parse uit van de code in de opgegeven repository en bepaalt het ontbreken van patches die zijn beschreven in de verstrekte handtekeningen. De implementatie is gebaseerd op algoritmes voor automatische verfijning van handtekeningen en het analyseren van meerdere sjablonen, voorgesteld in de onderzoeksprojecten ReDeBug en VUDDY. Op een moderne pc met een 16-core CPU duurt het scannen van de brontrees van het Android-platform met behulp van de OSV-database met informatie over meer dan 2000 kwetsbaarheden 10-20 minuten. Aan het einde wordt een rapport gegenereerd met een lijst van potentieel onverholpen kwetsbaarheden en links naar de bijbehorende plekken in de code, CVE-identifiers en patches. Volgens statistieken die zijn verzameld over twee jaar gebruik van Vanir bij Google, bedraagt het percentage valse positieven 2,72%.


Voordelen van het voorgestelde instrumentarium:
- De mogelijkheid om onverholpen kwetsbaarheden in externe takken, modificaties en code-overnames te identificeren, die niet rechtstreeks gerelateerd zijn aan het hoofdproject. In de context van Android kan het instrumentarium worden gebruikt om te controleren of patches zijn toegepast in de varianten van het Android-platform die door OEM-fabrikanten van apparaten zijn ontwikkeld.
- De uitvoering van controle uitsluitend op basis van de analyse van de aanwezige code, zonder binding aan metadata zoals versienummer, commitgeschiedenis en SBOM (Software Bill Of Materials).
- Ondersteuning voor automatische generatie van handtekeningen, met gebruik van informatie over kwetsbaarheden die openbaar beschikbaar is en gepubliceerde bijbehorende patches.
- Hogere prestaties van de controle op basis van statische analyse van de brondcode in vergelijking met hulpmiddelen voor dynamische analyse en verificatie van binaire builds.
- Zelfvoorzienendheid ā de mogelijkheid om infrastructuur op uw systemen te implementeren zonder externe diensten te raadplegen.
- Beschikbaarheid van een actuele handtekeningenbasis, ondersteund door het Google Android Security Team.
- Ondersteuning voor verbinding met continue integratie- en leveringssystemen (CI/CD). Mogelijkheid tot integratie in andere projecten met behulp van Vanir in de vorm van bibliotheken in de programmeertaal Python.
- Mogelijkheid om het systeem aan te passen voor taken die niet met kwetsbaarheden verband houden, bijvoorbeeld om codeklonering of gebruik van gelicentieerde code in andere projecten te identificeren.
Bron: opennet.ru
