Narzędzie AI OSS-Fuzz od Google wykrywa 26 podatności w projektach open source
Google ogłosiło, że jego narzędzie fuzzingowe (fuzzing – automatyczna lub półautomatyczna metoda testowania oprogramowania lub znajdowania w nim dziur) oparte na AI, OSS-Fuzz, wykryło 26 podatności w różnych repozytoriach kodu open source. Wśród nich znalazł się błąd o średniej wadze w bibliotece kryptograficznej OpenSSL.
W swoim wpisie na blogu, zespół ds. bezpieczeństwa open source Google podkreślił, że odkrycie tych podatności jest przełomowe, ponieważ wszystkie zostały zidentyfikowane przy użyciu sztucznej inteligencji. Narzędzie wykorzystało generowane przez AI oraz ulepszane cele fuzzingowe.
Kluczowe odkrycie: podatność OpenSSL
Jednym z wykrytych błędów jest CVE-2024-9143, który otrzymał wynik 4.3 w systemie CVSS. Jest to błąd zapisu poza granicami pamięci, który może prowadzić do awarii aplikacji lub zdalnego wykonania kodu. Problem został zaadresowany w najnowszych wersjach OpenSSL, w tym 3.3.3, 3.2.4, 3.1.8 i innych.
Według Google, podatność ta prawdopodobnie była obecna w kodzie od dwóch dekad i nie byłaby możliwa do wykrycia za pomocą tradycyjnych celów fuzzingowych tworzonych ręcznie.
Jak działa OSS-Fuzz wspierane przez Google AI?
Od sierpnia 2023 roku OSS-Fuzz korzysta z dużych modeli językowych (LLM), które rozszerzają zakres testowania fuzzingowego. Dzięki temu udało się poprawić pokrycie kodu w 272 projektach napisanych w językach C/C++, dodając ponad 370 tysięcy linii nowego kodu.
Google zauważyło, że samo pokrycie linii kodu nie gwarantuje wykrycia wszystkich błędów. Różne flagi i konfiguracje mogą wywoływać odmienne zachowania kodu, co prowadzi do odkrycia nieznanych wcześniej ścieżek błędów. AI umożliwia automatyzację procesu, naśladując sposób pracy programistów podczas tworzenia celów fuzzingowych.
Kolejne kroki: Bezpieczeństwo pamięci
Google intensywnie pracuje nad zwiększeniem bezpieczeństwa pamięci w swoich projektach. Firma migruje kod do bezpieczniejszych języków, takich jak Rust, oraz stosuje mechanizmy eliminujące podatności w przestrzeni pamięci w istniejących projektach C++, takich jak Chrome.
Jednym z przykładów jest wprowadzenie wzmocnionej wersji libc++, która dodaje mechanizmy sprawdzania granic w standardowych strukturach danych C++. Według Google, zmiana ta wprowadza minimalny wpływ na wydajność (średnio 0,30%), a jednocześnie znacząco zmniejsza ryzyko błędów.
Nowa era dzięki Google AI
Google podkreśla, że sztuczna inteligencja jest kluczowym narzędziem w identyfikowaniu podatności. Dzięki modelom LLM udało się również odkryć lukę zero-day w silniku SQLite.
Nasza opinia
Opracowanie narzędzi takich jak OSS-Fuzz wspieranych przez Google AI to dobry krok
w celu poprawy bezpieczeństwa kodu open source. Wykorzystanie sztucznej inteligencji przyspiesza proces odkrywania podatności i podnosi jakość oprogramowania. Szczególnie imponujące jest to, jak AI potrafi rozszerzać tradycyjne metody fuzzingowe, wykrywając błędy, które wcześniej pozostawały niewykryte.
Inwestycje Google w bezpieczne języki programowania i nowe mechanizmy ochrony, takie jak wzmocniona libc++, wskazują na świadome podejście do wyzwań związanych z bezpieczeństwem. Inicjatywy te nie tylko wspierają programistów, ale także zapewniają większą niezawodność i stabilność aplikacji, z których korzystają miliony użytkowników na całym świecie.