GitHub ogłosił wprowadzenie do usługi Code scanning eksperymentalnego systemu uczenia maszynowego do wykrywania powszechnych typów luk w kodzie. Na etapie testów nowa funkcjonalność jest dostępna tylko dla repozytoriów z kodem w językach JavaScript i TypeScript. Zaznaczono, że zastosowanie systemu uczenia maszynowego umożliwiło znaczne poszerzenie zakresu wykrywanych problemów, przy ich analizie system nie ogranicza się już tylko do sprawdzania typowych wzorców ani nie opiera się na znanych frameworkach. Wśród problemów wykrywanych przez nowy system wymienia się błędy prowadzące do złośliwego skryptowania między witrynami (XSS) oraz wykorzystywanie zniekształconych ścieżek plików (na przykład poprzez wskazanie „/..”).
Usługa Code scanning pozwala na identyfikację luk we wczesnym etapie rozwoju poprzez skanowanie każdej operacji „git push” pod kątem potencjalnych problemów. Wyniki są bezpośrednio dołączane do pull requestu. Wcześniej sprawdzenie odbywało się przy użyciu silnika CodeQL, który analizował wzorce z typowymi przykładami podatnego kodu (CodeQL umożliwia stworzenie wzorca podatnego kodu w celu wykrycia podobnej luki w kodzie innych projektów). Nowy silnik, wykorzystujący uczenie maszynowe, może identyfikować wcześniej nieznane luki, ponieważ nie jest ograniczony do sprawdzania wzorców kodu opisujących konkretne luki. Cenną oznaką tej możliwości jest zwiększenie liczby fałszywych alarmów w porównaniu do kontrolek opartych na CodeQL.
Źródło: opennet.ru
