Google wprowadza OSV-Scanner – narzędzie do wyszukiwania luk bezpieczeństwa w oprogramowaniu open source

Napisany w języku programowania Go, OSV-Scanner jest przeznaczony do skanowania aplikacji open source w celu oceny bezpieczeństwa wszelkich wbudowanych zależności — bibliotek oprogramowania, które są dodawane do projektów, aby zapewnić wstępnie wbudowane funkcje, dzięki czemu programiści nie muszą odtwarzać tych funkcji na własną rękę.

Nowoczesne aplikacje mogą mieć wiele zależności. Na przykład badacze z Mozilli i Concordia University w Kanadzie stworzyli niedawno jednostronicową aplikację internetową z frameworkiem React za pomocą polecenia create-react-app. W rezultacie powstał projekt z siedmioma zależnościami runtime i dziewięcioma zależnościami deweloperskimi.

Ale każda z tych bezpośrednich zależności miała inne zależności, znane jako zależności przechodnie. Pakiet react zawiera również luźne zweryfikowanie (loose-envify) jako zależność przechodnią — taką, która sama zależy od innych bibliotek. W sumie ta podstawowa, jednostronicowa aplikacja „Hello world” wymagała w sumie 1764 zależności.

Jak zauważył Rex Pan, inżynier oprogramowania w Google Open Source Security Team, we wtorek we wpisie na blogu, sprawdzenie tysięcy zależności nie jest czymś, co deweloperzy mogą zrobić sami.

„Każda zależność potencjalnie zawiera istniejące znane luki lub nowe, które mogą zostać odkryte w dowolnym momencie” – napisał. „Jest po prostu zbyt wiele zależności i wersji, aby śledzić je ręcznie, dlatego wymagana jest automatyzacja”.

Zautomatyzowane skanowanie bezpieczeństwa jest również zalecane jako najlepsza praktyka w rozporządzeniu wykonawczym USA z 12 maja 2021 r., „Improving the Nation’s Cybersecurity”.

Uruchomienie OSV-Scanner na aplikacji tworzy listę bezpośrednich i przechodnich zależności ze znanymi podatnościami, które następnie deweloper aplikacji może być w stanie zaadresować poprzez określenie bezpiecznych wersji pakietów, jeśli są dostępne i kompatybilne.

Patrząc w przyszłość, Rex Pan mówi, że Google chce przekształcić OSV-Scanner z prostego skanera w narzędzie do zarządzania podatnościami. Prawdopodobnie będzie to wymagało rozwoju działań ciągłej integracji, które ułatwią konfigurację i zaplanowanie skanowania, wsparcia dla C/C++ (co jest wyzwaniem ze względu na brak standardowego menedżera pakietów), informacji o podatnościach na poziomie funkcji poprzez analizę wykresu wywołań oraz automatycznego łagodzenia podatności.