Poprawki stworzone przez AI zawodzą w 50% przypadków

AI jest coraz częściej wykorzystywana nie tylko do pisania kodu, ale także do naprawiania podatnego kodu.

AI Bezpieczeństwo Aktualności 5 min czytania

Poprawki stworzone przez AI zawodzą w 50% przypadków

AI jest coraz częściej wykorzystywana nie tylko do pisania kodu, ale także do naprawiania podatnego kodu.

Brzmi to obiecująco. Zespoły bezpieczeństwa są przeciążone, zaległości w lukach stale rosną, a programiści są pod presją, by łatać szybciej. Jeśli model AI potrafi wygenerować poprawkę bezpieczeństwa w kilka minut, atrakcyjność takiego rozwiązania jest oczywista.

Jednak nowe badanie Off-by-1 Labs z 1Password pokazuje poważny problem: poprawki wygenerowane przez AI często wyglądają na poprawne, a mimo to nie usuwają luki w pełni, zmieniają zachowanie aplikacji, a nawet wprowadzają nowe błędy bezpieczeństwa. Dark Reading podało, że w badaniu przetestowano ponad 6000 poprawek wygenerowanych przez AI i stwierdzono, że tylko 46% rozwiązało leżącą u podstaw lukę.


Co testowano w badaniu

Badacze wygenerowali 6080 poprawek dla sześciu niedawno ujawnionych luk, używając dwóch czołowych modeli AI: ChatGPT-5.5 firmy OpenAI z Trusted Access for Cyber oraz Claude Opus 4.8 firmy Anthropic z Cyber Verification Program. Wybrane luki były na tyle świeże, że nie powinny występować w danych treningowych modeli, a daty ich ujawnienia mieściły się w przedziale od 26 marca do 12 maja 2026 roku.

Celem było sprawdzenie, czy AI potrafi tworzyć prawdziwe poprawki bezpieczeństwa dla złożonych, współczesnych luk, a nie prostych przykładów szkolnych.

Ta różnica ma znaczenie. Naprawa błędu bezpieczeństwa często wymaga zrozumienia pierwotnej przyczyny, przepływu danych, przypadków brzegowych, ścieżek ataku i istniejącego zachowania aplikacji. Poprawka może się skompilować, przejść podstawowe testy i nadal pozostawiać lukę otwartą.


Wyniki były słabe

Badanie wykazało, że tylko 26% poprawek wygenerowanych przez AI w pełni usunęło lukę bez istotnej zmiany zachowania aplikacji. Kolejne 20,1% naprawiło pierwotny problem, ale zmieniło sposób działania aplikacji. Z kolei 49,3% nie zamknęło co najmniej jednej ścieżki ataku, 2,3% usunęło problem, wprowadzając jednocześnie nową lukę, a 2,2% zarówno nie naprawiło problemu, jak i dodało nową ścieżkę ataku.

Mówiąc prosto, większość wyników nie była czystymi poprawkami bezpieczeństwa.

Niektóre były niekompletne.
Niektóre były kruche.
Niektóre zmieniały zachowanie.
Niektóre tworzyły nowe problemy.

Dlatego badacze określili te wyniki mianem FLAWED: „Fix-Like Artifacts With Embedded Defects” (artefakty przypominające poprawki z wbudowanymi wadami).


Problem „fałszywej poprawki”

Jednym z największych zagrożeń jest to, że poprawki AI mogą stwarzać fałszywe poczucie bezpieczeństwa.

Wygenerowana poprawka może wyglądać rozsądnie podczas przeglądu kodu. Może nawet blokować dokładnie ten exploit typu proof-of-concept, który pokazano modelowi. Jednak poprawki bezpieczeństwa muszą usuwać leżącą u podstaw słabość, a nie tylko jeden widoczny objaw.

Badanie wykazało, że ponad jedna trzecia poprawek wyglądających na udane była krucha. Zabezpieczały one wąski przypadek ataku, zamiast rozwiązywać prawdziwą pierwotną przyczynę.

Jest to niebezpieczne, ponieważ obrońcy mogą sądzić, że luka została zamknięta, podczas gdy atakujący nadal mogą obejść poprawkę, stosując nieco inne dane wejściowe.


AI ma klapki na oczach

Artykuł 1Password uwypukla powszechny sposób zawodzenia modeli: często łatają one konkretny błąd i testują to, co im pokazano, zamiast rozważać szerzej bezpieczeństwo edytowanego kodu. W jednym z przypadków dotyczących jądra Linux modele wielokrotnie pomijały powiązany problem bezpieczeństwa pamięci w tej samej funkcji, ponieważ zadanie nie wskazywało go wprost.

To poważne ograniczenie.

Doświadczeni inżynierowie bezpieczeństwa rozumieją, że proof-of-concept to tylko jeden przykład szerszej klasy błędów. Modele AI mogą przeoczyć ten kontekst i zaproponować poprawkę, która spełnia wymagania polecenia, pozostawiając nietknięte pobliskie ryzyko.


Wskazówki mają znaczenie, ale to miecz obosieczny

Jakość promptu miała ogromny wpływ.

Gdy modele otrzymywały poprawne wskazówki skoncentrowane na pierwotnej przyczynie, odsetek czystych, skutecznych poprawek wzrastał do 65%. Bez żadnych wskazówek wynosił on 50,4%. Ale gdy wskazówki były błędne, skuteczność spadała do 15,2%.

To pokazuje, że AI może być przydatna, gdy kierują nią doświadczeni inżynierowie.

Pokazuje to jednak również, że autonomiczne łatanie jest ryzykowne. Jeśli model otrzyma niepełne lub wprowadzające w błąd informacje, może z pewnością siebie wygenerować błędną poprawkę.


Dlaczego ma to znaczenie dla zespołów bezpieczeństwa

Poprawki generowane przez AI są atrakcyjne, ponieważ są szybkie i tanie. The Register podał, że średni koszt udanej, czystej poprawki w badaniu wyniósł około 6,74 USD, wliczając nieudane próby.

Ale prawdziwym kosztem nie są wyłącznie wydatki na tokeny.

Prawdziwym kosztem są przegląd, testowanie, walidacja, analiza regresji oraz ryzyko wdrożenia do produkcji zepsutej lub niekompletnej poprawki.

Jeśli inżynierowie muszą przeglądać wiele podobnych, ale subtelnie błędnych poprawek wygenerowanych przez AI, proces może okazać się droższy niż napisanie poprawki z pomocą człowieka od samego początku.


Co powinny zrobić organizacje

AI należy traktować jako asystenta przy łataniu, a nie autonomicznego inżyniera bezpieczeństwa.

Organizacje powinny:

  • wymagać przeglądu przez człowieka każdej poprawki bezpieczeństwa wygenerowanej przez AI
  • testować poprawki zarówno pod kątem oryginalnego exploita, jak i wariantów ścieżek ataku
  • weryfikować usunięcie pierwotnej przyczyny, a nie tylko blokowanie objawów
  • uruchamiać testy regresji, by wykrywać zmiany zachowania
  • przed scaleniem kodu stosować SAST, DAST, fuzzing i ukierunkowane testy bezpieczeństwa
  • unikać automatycznego akceptowania poprawek AI
  • porównywać skuteczność łatania przez AI ze znanymi historycznymi błędami we własnej bazie kodu
  • zachować kontrolę programistów nad procesem naprawczym

Artykuł 1Password zaleca, aby organizacje przed poleganiem na automatycznym łataniu na dużą skalę przetestowały dokładność poprawek generowanych przez model na lukach, które wcześniej naprawili ludzie we własnej bazie kodu.


Podsumowanie

Poprawki generowane przez AI nie są bezużyteczne. Mogą pomagać programistom zrozumieć podatny kod, proponować kandydatów na poprawki, wyjaśniać pierwotne przyczyny i przyspieszać prace naprawcze. Nie są jednak gotowe, by zastąpić przegląd wykonywany przez ekspertów!

Badanie pokazuje, że autonomiczne łatanie przez AI może zawodzić po cichu, tworzyć kruche poprawki, zmieniać zachowanie aplikacji lub wprowadzać nowe luki. To sprawia, że ślepe zaufanie jest niebezpieczne.

AI może pomóc napisać poprawkę, ale to ludzie nadal muszą udowodnić, że poprawka rzeczywiście usuwa lukę.

Blog

Bezpieczeństwo 4 min czytania

Luka zero-day w bramce FortiMail aktywnie wykorzystywana w atakach

Fortinet ostrzegł klientów, że krytyczna luka zero-day w FortiMail jest aktywnie wykorzystywana w atakach, co naraża na natychmiastowe ryzyko bramki bezpieczeństwa poczty e-mail wystawione do internetu.

AI 5 min czytania

MI5 ostrzega przed przykrywką CGTRI powiązaną z chińskim wywiadem

Brytyjska służba bezpieczeństwa wewnętrznego MI5 wydała niezwykle bezpośrednie publiczne ostrzeżenie dotyczące China General Technology Research Institute (CGTRI), twierdząc, że ta jednostka badawcza ma silne powiązania z chińskim Ministerstwem Bezpieczeństwa Państwowego…