Raport GenAI Code Security Report 2025 ujawnia poważne luki bezpieczeństwa w kodzie generowanym przez sztuczną inteligencję. Badanie objęło 80 zadań programistycznych przeanalizowanych na ponad 100 dużych modelach językowych (LLM). Wyniki pokazują, że choć AI potrafi tworzyć działający kod, to w 45% przypadków kod ten wprowadza mniejsze lub większe luki i podatności w kwestii bezpieczeństwa. To wynik, który niemal dyskwalifikuje to narzędzie w jakimkolwiek poważniejszym zastosowaniu. Co więcej, w sytuacjach wyboru między bezpiecznym a podatnym rozwiązaniem, modele aż w 45% przypadków wybierały opcję niebezpieczną. To nie tyle przypadkowe błędy, co świadome złe (na ile świadome mogą być LMM) wybory.
Aby ocenić bezpieczeństwo kodu tworzonego przez LLM, Veracode przygotowało zestaw 80 zadań opartych na klasyfikacji MITRE CWE, obejmującej znane słabości oprogramowania. Modele musiały uzupełnić fragmenty kodu w sposób bezpieczny lub niebezpieczny, a następnie wyniki przeanalizowano z pomocą narzędzia Veracode Static Analysis. W 45% przypadków modele generowały luki wpisujące się w OWASP Top 10 – najpoważniejsze zagrożenia dla aplikacji webowych.
Najbardziej ryzykownym językiem okazała się Java, w której błędy bezpieczeństwa wystąpiły w ponad 70% przypadków. Inne popularne języki, takie jak Python, C# i JavaScript, także nie wypadły dobrze – wskaźniki błędów sięgały od 38 do 45% Modele szczególnie często zawodziły przy ochronie przed atakami typu cross-site scripting oraz log injection – odpowiednio w 86 i 88% przypadków.
AI pomaga także atakującym szybciej wykrywać i wykorzystywać podatności. Narzędzia oparte na sztucznej inteligencji mogą automatycznie skanować systemy, znajdować luki i generować kod exploita przy minimalnym udziale człowieka. Obniża to próg wejścia dla mniej doświadczonych cyberprzestępców i zwiększa tempo oraz skuteczność ataków, co stanowi poważne zagrożenie dla tradycyjnych zabezpieczeń. Podatność na ataki rośnie, a jej wykorzystanie staje się coraz łatwiejsze. To niemal samonapędzający się mechanizm – AI sprawia, że możliwości przestępczej ingerencji jest więcej i równocześnie sprawia, że łatwiej je wykorzystywać. A skoro jest ich więcej, to coraz bardziej opłaca się ich szukać.
Niewątpliwie nie jest to korzystna sytuacja dla całego rynku elektroniki. Już teraz oprogramowanie i testy to najdroższe elementy projektowania chipów. Koszt rośnie razem z coraz nowszymi litografiami. Wielu ekspertów widziało remedium na ten problem właśnie w generatywnej sztucznej inteligencji, która miała obniżać koszt oprogramowana i testów. Przy tak dużych problemach z bezpieczeństwem przestaje być to realny scenariusz. Przynajmniej w kwestii gigantycznych obniżek.
Oczywiście istnieją rozwiązania znacząco poprawiające bezpieczeństwo kodu generowanego przez AI. Przede wszystkim powinno być to stosowanie analizy składu oprogramowania (SCA), aby mieć pewność, że kod generowany przez AI nie wprowadza podatności związanych chociażby z bibliotekami open source czy komponentami stron trzecich. Dodatkowo, modele generujące kod powinny mieć wprowadzoną zgodność z polityką firmy i zapewnić, że agenci AI egzekwują bezpieczne standardy kodowania. Kluczowe jest także wykorzystywanie analizy statycznej do wczesnego i automatycznego wykrywania błędów. Rozwiązania te mają jednak kilka wspólnych cech. Przede wszystkim są kosztowne, a dodatkowo wymagają większej ingerencji człowieka i nie pozwalają AI na oczekiwaną autonomiczność. Poważny kod pisany w całości przez generatywną sztuczną inteligencję wciąż pozostaje czymś możliwym w bliżej nieokreślonej przyszłości.
Cross-site scripting polega na osadzeniu w treści złośliwego kodu, który następnie jest wykonywany w przeglądarce użytkownika. Atakujący może w ten sposób np. przechwytywać dane logowania, modyfikować zawartość strony czy przejąć sesję użytkownika.
Log injection to atak polegający na osadzeniu specjalnie spreparowanych danych do logów aplikacji, np. poprzez zmanipulowane dane wejściowe od użytkownika. Może to prowadzić do zafałszowania logów, ukrycia działań atakującego albo wprowadzenia dodatkowych komend.