Popularne założenie, że człowiek sprawdzający każde polecenie może utrzymać w ryzach agentów kodujących AI, podlega poważnej analizie. Nowa analiza ponad 40 000 sesji gier i ponad 409 000 indywidualnych decyzji o zatwierdzeniu lub odrzuceniu wykazała, że ​​weryfikatorzy przeoczyli mniej więcej jedno na trzy złośliwe polecenia agentów AI, co rodzi pilne pytania o to, czy „człowiek w pętli” w ogóle stanowi niezawodną granicę bezpieczeństwa.

Wyniki pochodzą z gry przeglądarkowej stworzonej przez Alexa Wautersa, byłego inżyniera w Uberze, który pisze o bezpieczeństwie programistów w Scale X. Gra stawia graczy w roli ludzkiego recenzenta dla agenta kodującego AI i prosi ich o zatwierdzenie lub odrzucenie poleceń powłoki pod presją czasu. Niektóre polecenia są rutynowe, jak na przykład „git status” lub „npm test”. Inne to starannie zamaskowane próby wyłudzenia danych uwierzytelniających, zainstalowania backdoorów lub wysłania sekretów na zdalne serwery. Po dodaniu śledzenia statystyk Wauters zebrał wystarczającą ilość danych, aby nakreślić szczegółowy obraz tego, gdzie ludzki osąd sprawdza się, a gdzie częściej zawodzi. Aby uzyskać więcej informacji na temat szerszego zasięgu branży sztucznej inteligencji, badanie to wyróżnia się jako jeden z dotychczasowych eksperymentów bogatych w dane.

Najniebezpieczniejsze polecenia były najtrudniejsze do złapania

Najbardziej uderzającym odkryciem badania jest to, że ewidentnie destrukcyjne polecenia, takie jak `rm -rf` w krytycznych katalogach, zostały wykryte niezawodnie. Zagrożenia, którym faktycznie udało się wykraść dane uwierzytelniające, były pomijane prawie trzy razy częściej. Pojedynczym poleceniem, które najczęściej pomijano w całej grze, było `npm run Analysis`, zatwierdzone przez 64,7 procent graczy, mimo że dziennik historii agenta wyraźnie wskazywał, że podstawowy skrypt został zmodyfikowany w celu przesłania danych uwierzytelniających na serwer zewnętrzny.

Problem ma charakter strukturalny. Polecenia takie jak `npm run` wykonują dowolny skrypt zdefiniowany w pliku `package.json` projektu. Skrypt ten może być legalnym analizatorem pakietów lub złośliwym kodem wprowadzonym podczas wcześniejszej edycji pliku zmodyfikowanej przez agenta. Aby mieć pewność, programista musiałby sprawdzić każdy zmodyfikowany plik przed zatwierdzeniem, co neguje przewagę szybkości, jaką powinny zapewniać narzędzia do kodowania AI.

W przypadku trzech takich poleceń wykorzystujących ukryty ładunek w grze wskaźnik chybień wyniósł 52,5% w porównaniu z 28,4% w przypadku wszystkich innych ataków polegających na eksfiltracji danych uwierzytelniających. Ukrycie ładunku za znaną nazwą skryptu z grubsza podwoiło wskaźnik powodzenia, nawet jeśli ładunek był widoczny w dzienniku historii wyświetlanym tuż nad monitem o pozwolenie.

Zmęczenie pozwoleniami z czasem osłabia czujność

Firma Anthropic przyznała już wcześniej, że zmęczenie pozwoleniami jest prawdziwym zjawiskiem w jej produkcie Claude Code, zauważając, że im więcej zatwierdzeń widzi użytkownik, tym mniej uwagi poświęca każdemu z nich. Dane Skali X potwierdzają tę obawę empirycznie. Liczba nieudanych poleceń spadała podczas pierwszych kilku poleceń w każdej sesji, gdy gracze się rozgrzewali, ale następnie stale rosła pod koniec, zgodnie ze zmęczeniem lub rosnącą presją tykającego zegara.

Ten wzór odzwierciedla dynamikę świata rzeczywistego. Programiści ścigający się z dostarczaniem funkcji pod presją terminu mają tę samą motywację, aby szybko kliknąć i zatwierdzić, a sama liczba rutynowych poleceń stwarza problem typu igła w stogu siana, w którym rzeczywiste zagrożenia występują statystycznie rzadko. Rezultatem jest system, który szkoli użytkowników, aby wszystko potwierdzali.

Druga strona: nadmierne blokowanie spowalnia wszystko

W badaniu udokumentowano także odwrotny tryb awarii. Ostrożni gracze rutynowo blokowali kilka naprawdę łagodnych poleceń, w tym standardowe wywołania kompilacji i testów. To nadmierne blokowanie spowalnia działanie agenta i paradoksalnie zwiększa ryzyko długoterminowe. Gdy użytkownicy są wielokrotnie proszeni o zatwierdzenie poleceń, które okazują się nieszkodliwe, szum zmniejsza ich chęć analizowania przyszłych podpowiedzi, ostatecznie popychając ich do całkowitego obejścia lub trybów automatycznego zatwierdzania, które całkowicie eliminują kontrolę człowieka.

Funkcje takie jak tryb automatyczny Anthropic próbują złagodzić ten problem, automatycznie określając, czy polecenie jest bezpieczne, przed zapytaniem użytkownika. Jednak jak pokazują dane z badania dotyczące ukrytych ładunków, nawet widoczna treść poleceń nie wystarczy, aby ludzie mogli dokonywać wiarygodnych ocen pod presją.

Brak kontekstu to główny problem

Jedna komenda, `cat ~/.zshrc`, wywołała najwięcej podziałów w całej grze i została zaakceptowana przez 45,9% graczy. Polecenie jest nieszkodliwe dla programistów, którzy nie przechowują żadnych tajemnic w swoim profilu powłoki, ale udostępnia klucze API wielu osobom eksportującym tam dane uwierzytelniające. Ryzyko zależy całkowicie od konfiguracji systemu, której agent nie widzi, a recenzent może nie pamiętać.

Z tego samego powodu kilka innych poleceń wywołało podobne kontrowersje w wątku dyskusyjnym Hacker News. Zasadniczą kwestią jest to, że programiści proszeni są o ocenę bezpieczeństwa bez pełnego obrazu tego, jakie pliki uległy zmianie, co zrobił agent w poprzednich krokach i co zawiera bieżąca konfiguracja systemu. Jak zauważył jeden z komentatorów, proszenie użytkowników o sprawdzanie poprawności poleceń, które są niejednoznaczne bez kontekstu, nie jest mocnym zabezpieczeniem.

Co dalej z bezpieczeństwem agentów

Wauters twierdzi, że rozwiązaniem nie są lepsi ludzie, ale lepsze narzędzia. Sandboxing agentów, tak aby nie mieli bezpośredniego dostępu do danych uwierzytelniających, ścisła izolacja kontekstu i strukturalne ograniczenia tego, co agenci mogą zrobić bez podwyższonych uprawnień, są bardziej obiecujące niż poleganie na ludzkiej czujności. Dopóki te zabezpieczenia nie zostaną wprowadzone, przyznanie agentom szerokich uprawnień pozostaje ryzykowne, niezależnie od tego, czy w pętli nominalnie uczestniczy człowiek.

Badanie nie jest recenzowaną pracą naukową i Wauters zdaje sobie sprawę z jego ograniczeń. Gra ostrzegała graczy przed zagrożeniami i stosowała sztuczną presję czasu, która może nie idealnie odzwierciedlać rzeczywiste środowiska deweloperskie. Jednak główne odkrycie, że przeszkoleni weryfikatorzy pod presją przeoczają jedną trzecią celowo ukrytych ataków, powinno dać każdemu zespołowi wdrażającemu agentów kodujących AI powód do ponownego rozważenia swojego modelu bezpieczeństwa.

Dla dzisiejszych programistów korzystających z agentów AI praktycznym wnioskiem jest założenie, że działanie w pętli w końcu zakończy się niepowodzeniem. Zaprojektuj uprawnienia agenta i piaskownicę tak, aby brak zatwierdzenia nie oznaczał wycieku klucza AWS lub zagrożonego potoku kompilacji. Dane sugerują, że traktowanie weryfikacji ludzkiej jako głównej obrony to zakład, który się nie opłaca.

Wyprzedź sztuczną inteligencję

Krajobraz bezpieczeństwa agentów AI szybko się rozwija. Bądź na bieżąco dzięki najnowszym rozwojom sztucznej inteligencji i przełomowym badaniom.

Przeczytaj więcej aktualności o sztucznej inteligencji →