Google zaprezentowało nowy projekt open source o nazwie Vanir, który rozwija statyczny analizator do automatycznej identyfikacji niezastosowanych poprawek kodu, które usuwają luki w zabezpieczeniach. Vanir wykorzystuje bazę sygnatur znanych luk i poprawek, aby je wyeliminować. Google prowadzi podobną bazę danych od lipca 2020 roku i obejmuje ona 95% luk w zabezpieczeniach w projektach związanych z platformą. Android, w tym rdzeń LinuxObecnie weryfikacja kodu źródłowego jest obsługiwana dla języków C, C++ i Java. Vanir jest napisany w językach C++ i Python i jest dystrybuowany na licencji BSD.
Projekt składa się z dwóch części - generatora sygnatur i detektora brakujących fragmentów. Generator tworzy sygnaturę umożliwiającą identyfikację braku poprawki na podstawie opisu luki w formacie OSV oraz łącza do poprawki lub zatwierdzenia, które naprawia lukę. W obecnej formie obsługuje on obsługę zatwierdzeń w repozytoriach googlesource.com i git.codelinaro.org, ale można łatwo dodać obsługę innych usług, podłączając obsługę pobierania kodu.
Detektor analizuje kod w określonym repozytorium i sprawdza, czy zawiera on poprawki opisane w dostarczonych sygnaturach. Implementacja oparta jest na algorytmach automatycznego udoskonalania sygnatur i analizie wielowzorcowej zaproponowanych w projektach badawczych ReDeBug i VUDDY. Na nowoczesnym komputerze PC z 16-rdzeniowym procesorem, skanowanie drzewa źródłowego platformy Android Skorzystanie z bazy danych OSV zawierającej informacje o ponad 2000 lukach zajmuje 10–20 minut. Raport zawiera listę potencjalnie niezałatanych luk oraz linki do powiązanych z nimi lokalizacji kodu, identyfikatorów CVE i poprawek. Według statystyk zebranych w ciągu dwóch lat użytkowania Vanira w Google, wskaźnik fałszywych trafień wynosi 2.72%.


Zalety proponowanego zestawu narzędzi:
- Możliwość identyfikacji niezałatanych luk w zabezpieczeniach w forkach, modyfikacjach i zapożyczeniach kodu innych firm, niezwiązanych bezpośrednio z głównym projektem. W kontekście Android Narzędzie można wykorzystać do sprawdzenia zastosowania poprawek w różnych wariantach platformy Android, opracowane przez producentów urządzeń OEM.
- Przeprowadzenie sprawdzenia bazującego wyłącznie na analizie istniejącego kodu, bez odwoływania się do metadanych, takich jak numer wersji, historia zatwierdzeń i SBOM (Software Bill Of Materials – wykaz materiałów oprogramowania).
- Obsługa automatycznego generowania podpisów z wykorzystaniem publicznie dostępnych informacji o lukach w zabezpieczeniach oraz poprawek publikowanych przez osoby sprawujące nadzór.
- Wyższa wydajność weryfikacji opartej na statycznej analizie kodu źródłowego w porównaniu do narzędzi do dynamicznej analizy i weryfikacji pakietów binarnych.
- Samowystarczalność to zdolność do wdrażania infrastruktury we własnych systemach bez uciekania się do usług zewnętrznych.
- Dostępność gotowej, aktualnej bazy podpisów, obsługiwanej przez zespół Google Android Zespół ds. bezpieczeństwa.
- Obsługa łączenia się z systemami ciągłej integracji i dostarczania (CI/CD). Możliwość integracji z innymi projektami wykorzystującymi Vanir w postaci bibliotek w języku Python.
- Możliwość dostosowania systemu do zadań niezwiązanych z podatnościami, takich jak wykrywanie klonowania kodu lub wykorzystywania licencjonowanego kodu w innych projektach.
Źródło: opennet.ru
