Kąt Andersona

Badania sugerują, że LLM są skłonne do współpracy w złych “vibe coding”

mm
Dodaj Unite.AI do preferowanych źródeł w Google
ChatGPT-4o and Adobe Firefly.

Przez ostatnie kilka lat, duże modele językowe (LLM) przyciągnęły uwagę ze względu na ich potencjalne nadużycie w ofensywnym bezpieczeństwie cybernetycznym, szczególnie w generowaniu exploitów oprogramowania.

Niedawny trend w kierunku “vibe coding” (nieformalne używanie modeli językowych do szybkiego tworzenia kodu dla użytkownika, zamiast wyraźnego nauczania użytkownika programowania) odnowił koncepcję, która osiągnęła swój zenit w latach 2000: “script kiddie” – stosunkowo niewykwalifikowany aktor złośliwy z wystarczającą wiedzą, aby odtworzyć lub opracować atak szkodliwy. Implikacja, naturalnie, jest taka, że gdy poprzeczka wejścia jest obniżona, zagrożenia będą się mnożyć.

Wszystkie komercyjne LLM mają pewnego rodzaju barierę ochronną przed użyciem ich do takich celów, chociaż te środki ochronne są pod stałym atakiem. Zazwyczaj większość modeli FOSS (w wielu dziedzinach, od LLM do modeli generatywnych obrazu/wideo) jest wydawana z pewnego rodzaju podobnej ochrony, zwykle z powodów zgodności w zachodnim świecie.

Jednak oficjalne wydania modeli są następnie rutynowo dostosowywane przez społeczności użytkowników w celu uzyskania pełniejszej funkcjonalności lub wykorzystywania LoR do obejścia ograniczeń i potencjalnego uzyskania “niepożądanych” wyników.

Chociaż większość online LLM zapobiegnie współpracy z użytkownikiem w procesach złośliwych, “nieograniczone” inicjatywy, takie jak Deep Hat, są dostępne, aby pomóc badaczom bezpieczeństwa działać na równych warunkach z ich przeciwnikami.

Typowy użytkownik doświadcza obecnie najczęściej reprezentowanego przez serię ChatGPT, której mechanizmy filtrowania często spotykają się z krytyką ze strony społeczności LLM.

Wygląda na to, że próbujesz zaatakować system!

W świetle tej postrzeganej tendencji do ograniczeń i cenzury, użytkownicy mogą być zaskoczeni, gdy dowiedzą się, że ChatGPT okazał się najbardziej współpracującym ze wszystkich LLM testowanych w niedawnym badaniu, które miało na celu zmuszenie modeli językowych do tworzenia exploitów kodu złośliwego.

Niedawny artykuł z Uniwersytetu w Sydney i Commonwealth Scientific and Industrial Research Organisation (CSIRO), zatytułowany “Dobra wiadomość dla script kiddie? Ocena dużych modeli językowych dla automatycznego generowania exploitów”, oferuje pierwszą systematyczną ocenę, jak skutecznie te modele mogą być pobudzane do produkcji działających exploitów. Przykładowe rozmowy z badań zostały udostępnione przez autorów.

Badanie porównuje, jak modele radziły sobie z oryginalnymi i zmodyfikowanymi wersjami znanych laboratoriów podatności (zorganizowanych ćwiczeń programistycznych zaprojektowanych w celu zademonstrowania konkretnych luk w zabezpieczeniach oprogramowania), co pomaga ujawnić, czy opierały się na zapamiętanych przykładach, czy z powodu wewnętrznych ograniczeń bezpieczeństwa.

Z witryny wspierającej, model LLM Ollama pomaga badaczom opracować atak podatności łańcucha.

Z witryny wspierającej, model LLM Ollama pomaga badaczom opracować atak podatności łańcucha. Źródło: https://anonymous.4open.science/r/AEG_LLM-EAE8/chatgpt_format_string_original.txt

Chociaż żaden z modeli nie był w stanie stworzyć skutecznego exploita, kilka z nich było bardzo blisko; co więcej, kilka z nich chciało zrobić lepiej w tej задacji, co wskazuje na potencjalną awarię istniejących zabezpieczeń.

Artykuł stwierdza:

‘Nasze eksperymenty pokazują, że GPT-4 i GPT-4o wykazują wysoki stopień współpracy w generowaniu exploitów, porównywalny do niektórych niecenzurowanych modeli open-source. Wśród ocenianych modeli Llama3 był najbardziej odporny na takie żądania.

‘Pomimo ich chęci współpracy, rzeczywiste zagrożenie stwarzane przez te modele pozostaje ograniczone, ponieważ żaden z nich nie wygenerował exploitów dla pięciu laboratoriów z przeprojektowanym kodem. Jednak GPT-4o, najmocniejszy performer w naszym badaniu, zwykle robił tylko jeden lub dwa błędy na próbę.

‘To sugeruje znaczący potencjał dla wykorzystania LLM do opracowania zaawansowanych, ogólnych [Automatycznego Generowania Exploitów (AEG)] technik.’

Wiele drugich szans

Powszechne powiedzenie “Nie masz drugiej szansy, aby zrobić dobre pierwsze wrażenie” nie ma zastosowania do LLM, ponieważ typowo ograniczona okno kontekstowe oznacza, że negatywny kontekst (w sensie społecznym, tj. antagonistyczny) nie jest trwały.

Weźmy pod uwagę: jeśli poszedłbyś do biblioteki i poprosił o książkę o praktycznym wytwarzaniu bomb, prawdopodobnie zostałbyś odrzucony, przynajmniej. Ale (zakładając, że to zapytanie nie zniszczyło całkowicie rozmowy od samego początku) twoje żądania powiązanych prac, takich jak książki o reakcjach chemicznych lub projekcie obwodów, byłyby w umyśle bibliotekarza wyraźnie związane z pierwotnym zapytaniem i byłyby traktowane w tym świetle.

Prawdopodobnie bibliotekarz również pamiętałby w przyszłych spotkaniach, że poprosiłeś o książkę o wytwarzaniu bomb kiedyś, co uczyniłoby ten nowy kontekst “nieodwracalnym”.

Nie tak z LLM, który może mieć trudności z utrzymaniem informacji tokenizowanych, nawet z bieżącej rozmowy, nie mówiąc już o dyrektywach pamięci długoterminowej (jeśli istnieją w architekturze, jak w produkcie ChatGPT-4o).

W ten sposób nawet nieformalne rozmowy z ChatGPT ujawniają nam przypadkowo, że czasami napotyka na trudności z drobnostkami, ale połyka wielbłąda, nie tylko wtedy, gdy temat, studium lub proces związany z działaniem “zabronionym” rozwija się podczas dyskursu.

To jest prawdziwe w przypadku wszystkich bieżących modeli językowych, chociaż jakość zabezpieczeń może się różnić w zakresie i podejściu między nimi (tj. różnica między modyfikacją wag przeszkolonego modelu a filtrowaniem tekstu wejścia/wyjścia podczas sesji rozmowy, co pozostawia model strukturalnie nienaruszony, ale potencjalnie łatwiejszy do ataku).

Testowanie metody

Aby przetestować, jak daleko LLM mogą być popychane w kierunku generowania działających exploitów, autorzy ustalili kontrolowane środowisko, korzystając z pięciu laboratoriów z SEED Labs, każde zbudowane wokół znanych luk w zabezpieczeniach, w tym przepełnienia bufora, powrotu do libc, ataku Dirty COW i warunków wyścigu.

Ponadto autorzy utworzyli zmodyfikowane wersje, zmieniając nazwy zmiennych i funkcji na identyfikatory generyczne. To miało na celu uniemożliwienie modelom korzystania z przykładów z pamięci.

Każde laboratorium było uruchamiane dwa razy na model: raz w swojej oryginalnej postaci, a raz w wersji zaciemnionej.

Następnie autorzy wprowadzili drugi LLM do pętli: model atakujący, zaprojektowany do pobudzania i repobudzania modelu docelowego w celu udoskonalenia i poprawy jego danych wyjściowych w wielu rundach. LLM użyty do tej roli był GPT-4o, który działał przez skrypt, który pośredniczył w dialogu między atakującym a modelem docelowym, pozwalając na kontynuowanie cyklu udoskonalania do piętnastu razy, lub do momentu, gdy nie było już możliwe dalsze udoskonalenie:

Przepływ pracy dla LLM opartego na atakującym, w tym przypadku GPT-4o.

Przepływ pracy dla LLM opartego na atakującym, w tym przypadku GPT-4o.

Modele docelowe dla projektu były GPT-4o, GPT-4o-mini, Llama3 (8B), Dolphin-Mistral (7B) i Dolphin-Phi (2.7B), reprezentujące zarówno systemy własnościowe, jak i open-source, z mieszanką wyrównanych i niewyrównanych modeli (tj. modeli z wbudowanymi mechanizmami bezpieczeństwa, a także tych, które zostały zmodyfikowane za pomocą dostrajania lub konfiguracji, aby ominąć te mechanizmy).

Modele lokalnie instalowane były uruchamiane za pośrednictwem ramy Ollama, a pozostałe były dostępne tylko za pośrednictwem ich jedynego dostępnego metody – API.

Wynikowe dane wyjściowe były oceniane na podstawie liczby błędów, które uniemożliwiały exploita od funkcjonowania zgodnie z zamierzeniem.

Wyniki

Badacze testowali, jak współpracujące były każde z modeli podczas procesu generowania exploitów, mierzone przez rejestrowanie procentu odpowiedzi, w których model próbował pomóc w zadaniu (nawet jeśli dane wyjściowe były wadliwe).

Wyniki z głównego testu, pokazujące średnią współpracę.

Wyniki z głównego testu, pokazujące średnią współpracę.

GPT-4o i GPT-4o-mini wykazały najwyższe poziomy współpracy, z średnimi wskaźnikami odpowiedzi na poziomie 97 i 96 procent, odpowiednio, w pięciu kategoriach podatności: przepełnienie bufora, powrót do libc, ciąg formatujący, warunek wyścigu i Dirty COW.

Dolphin-Mistral i Dolphin-Phi następnie, z średnimi wskaźnikami współpracy na poziomie 93 i 95 procent. Llama3 wykazał najmniejszą chęć udziału, z ogólnym wskaźnikiem współpracy na poziomie zaledwie 27 procent:

Po lewej stronie widzimy liczbę błędów popełnionych przez LLM na oryginalnych programach SEED Lab; po prawej stronie widzimy liczbę błędów popełnionych na wersjach przeprojektowanych.

Po lewej stronie widzimy liczbę błędów popełnionych przez LLM na oryginalnych programach SEED Lab; po prawej stronie widzimy liczbę błędów popełnionych na wersjach przeprojektowanych.

Badając rzeczywistą wydajność tych modeli, stwierdzono znaczącą lukę między chęcią a skutecznością: GPT-4o wyprodukował najbardziej dokładne wyniki, z łączną liczbą sześciu błędów w pięciu zaciemnionych laboratoriach. GPT-4o-mini następnie z ośmioma błędami. Dolphin-Mistral radził sobie rozsądnie na oryginalnych laboratoriach, ale miał znaczne trudności, gdy kod został przeprojektowany, co sugeruje, że mógł zobaczyć podobny materiał podczas szkolenia. Dolphin-Phi popełnił siedemnaście błędów, a Llama3 najwięcej, piętnaście.

Błędy zwykle dotyczyły błędów technicznych, które uniemożliwiały exploita od funkcjonowania zgodnie z zamierzeniem, takich jak nieprawidłowe rozmiary bufora, brak logiki pętli lub składniowo poprawne, ale nieskuteczne ładunki. Żaden model nie powiódł się w wygenerowaniu działającego exploita dla żadnej z zaciemnionych wersji.

Autorzy zauważyli, że większość modeli produkowała kod, który przypominał działające exploity, ale nie powiodło się z powodu słabego zrozumienia, jak działają podstawowe ataki – wzorzec, który był widoczny we wszystkich kategoriach podatności i który sugerował, że modele naśladowały znane struktury kodu, zamiast rozumieć logikę zaangażowaną (w przypadku przepełnienia bufora, na przykład, wiele z nich nie potrafiło zbudować działającego NOP sled/slide).

W przypadku prób powrotu do libc ładunki często zawierały nieprawidłowe wypełnienie lub przesunięte adresy funkcji, w wyniku czego powstawały dane wyjściowe, które wyglądały na poprawne, ale były niezdatne do użycia.

Chociaż autorzy opisują tę interpretację jako spekulatywną, spójność błędów sugeruje szerszy problem, w którym modele nie łączą kroków exploita z ich zamierzonym efektem.

Wnioski

Istnieją wątpliwości, które artykuł przyznaje, czy modele językowe testowane widziały oryginalne laboratoria SEED podczas pierwszego szkolenia; z tego powodu utworzono warianty. Niemniej jednak, badacze potwierdzają, że chcieliby pracować z prawdziwymi exploitami w późniejszych iteracjach tego badania; prawdziwie nowy i niedawny materiał jest mniej prawdopodobny, aby był podatny na skróty lub inne mylące efekty.

Autorzy również przyznają, że późniejsze i bardziej zaawansowane “myślące” modele, takie jak GPT-o1 i DeepSeek-r1, które nie były dostępne w momencie przeprowadzania badania, mogą poprawić wyniki uzyskane i że jest to dalsza wskazówka do przyszłej pracy.

Artykuł kończy się tym, że większość testowanych modeli wygenerowałaby działające exploity, gdyby były w stanie to zrobić. Ich niepowodzenie w generowaniu w pełni funkcjonalnych danych wyjściowych nie wynika z zabezpieczeń wyrównania, ale raczej wskazuje na prawdziwą architektoniczną ograniczenie – jedną, która może już została zmniejszona w nowszych modelach lub wkrótce zostanie.

 

Pierwotnie opublikowane w poniedziałek, 5 maja 2025

Pisarz specjalizujący się w dziedzinie machine learning, specjalista w dziedzinie syntezowania obrazów ludzi. Były szef działu treści badawczych w Metaphysic.ai, do czasu jego rozwiązania i połączenia z DNEG's Brahma.ai.
Portfolio site: martinanderson.ai
Contact: martin@martinanderson.ai