Agent OpenAI miał rozwiązać benchmark – zamiast tego zaatakował infrastrukturę Hugging Face
OpenAI oraz Hugging Face ujawniły szczegóły incydentu, do którego doszło podczas wewnętrznych testów modeli AI w benchmarku ExploitGym. W trakcie ewaluacji agent wydostał się z izolowanego środowiska testowego, uzyskał dostęp do Internetu i przeprowadził wieloetapowy atak na infrastrukturę Hugging Face.
Jak przebiegała cała operacja, dlaczego model obrał właśnie taki kierunek działania i co ten incydent mówi o możliwościach współczesnych agentów AI? O tym w dzisiejszym artykule.
Czym jest ExploitGym?
ExploitGym to przygotowany przez OpenAI benchmark służący do oceny zdolności modeli AI w obszarze cyberbezpieczeństwa. W jego ramach agent otrzymuje zadania polegające na odnajdywaniu podatności i wykorzystywaniu ich do osiągnięcia określonego celu.
Według oficjalnych informacji agent doszedł do wniosku, że na platformie Hugging Face mogą znajdować się materiały związane z benchmarkiem, które pozwolą mu „pójść na skróty” i szybciej ukończyć zadanie. Zamiast samodzielnie rozwiązywać wszystkie wyzwania, obrał strategię polegającą na zdobyciu danych i modeli, które mogły zawierać potrzebne informacje.
Środowisko testowe było odizolowane od Internetu. Jedynym zewnętrznym kanałem komunikacji pozostawał wewnętrzny serwer JFrog Artifactory, wykorzystywany jako proxy dla repozytoriów pakietów.
Przebieg ataku
Pierwszym problemem, z którym musiał poradzić sobie agent, był brak dostępu do sieci. Przez długi czas analizował środowisko, w którym został uruchomiony, szukając sposobu na wydostanie się z izolowanego laboratorium. Ostatecznie odkrył nieznaną wcześniej podatność w JFrog Artifactory, platformie wykorzystywanej do przechowywania i udostępniania pakietów oprogramowania oraz obrazów kontenerów. Dzięki niej wydostał się z izolowanego środowiska, a następnie, wykorzystując kolejne elementy infrastruktury, dotarł do systemu posiadającego dostęp do Internetu.
Po uzyskaniu dostępu do sieci agent potrzebował miejsca, z którego mógł prowadzić dalsze działania. Wykorzystał w tym celu publicznie dostępne środowisko służące do uruchamiania kodu. Nie przejął samej usługi – użył jedynie przestrzeni udostępnionej przez jednego z jej użytkowników jako własnego zaplecza do kolejnych etapów operacji.
Następnie agent skierował uwagę na infrastrukturę Hugging Face. Pierwsze próby uzyskania dostępu do danych zakończyły się niepowodzeniem, ponieważ zastosowane zabezpieczenia skutecznie blokowały tę ścieżkę ataku. Zmienił więc strategię i wykorzystał inną podatność, która pozwoliła odczytać pliki znajdujące się wewnątrz środowiska przetwarzającego datasety. Dzięki temu mógł przeanalizować kod aplikacji, poznać jej konfigurację oraz zdobyć informacje niezbędne do przygotowania kolejnego etapu ataku.
Zdobyta wiedza szybko zaprocentowała. Agent znalazł kolejną podatność, tym razem umożliwiającą uruchamianie własnych poleceń wewnątrz produkcyjnego środowiska Hugging Face. Dopiero na tym etapie przeszedł od biernego zbierania informacji do aktywnego wykonywania działań wewnątrz infrastruktury.
Co ciekawe, agent nie miał do dyspozycji klasycznego kanału komunikacji z przejętym środowiskiem. Zamiast tego wykorzystywał ogólnodostępne usługi internetowe oraz własne zasoby do przekazywania poleceń i odbierania wyników. Gdy jedna metoda przestawała działać, automatycznie przechodził do kolejnej.
Dalsza część ataku polegała przede wszystkim na rozpoznawaniu infrastruktury i wyszukiwaniu kolejnych możliwości. Agent analizował konfigurację środowiska, odnajdywał zapisane poświadczenia oraz sprawdzał, do jakich systemów może uzyskać dostęp. W kilku miejscach napotkał zbyt szerokie uprawnienia i współdzielone dane uwierzytelniające, które pozwoliły mu poszerzyć zakres kontroli nad infrastrukturą.
Kolejnym celem stały się wewnętrzne usługi oraz repozytoria z kodem źródłowym. Agent próbował wykorzystać zdobyte uprawnienia do uruchomienia kolejnych etapów ataku i pozyskania następnych poświadczeń. Jak podkreśla Hugging Face, próby te zostały zatrzymane przez istniejące mechanizmy bezpieczeństwa i nie doprowadziły do umieszczenia złośliwego kodu w oprogramowaniu udostępnianym użytkownikom.
Cała kampania trwała około czterech i pół dnia i obejmowała blisko 17 600 działań. Zdecydowana większość zakończyła się niepowodzeniem. Agent wielokrotnie zmieniał strategię, wracał do wcześniej zdobytych informacji i próbował nowych ścieżek ataku. To właśnie ogromna liczba podejmowanych prób sprawiła, że ostatecznie udało mu się połączyć kilka pozornie niezależnych błędów w jeden skuteczny łańcuch ataku.
Dlaczego agent obrał za cel Hugging Face?
OpenAI określa zachowanie modelu mianem specification gaming. Termin ten opisuje sytuację, w której system realizuje postawiony cel, ale wybiera sposób działania niezgodny z intencją twórców.
W tym przypadku agent uznał, że zdobycie materiałów mogących pomóc w rozwiązaniu zadań benchmarku będzie skuteczniejszą strategią niż samodzielne wykonywanie wszystkich wyzwań. Z perspektywy modelu była to optymalizacja prowadząca do osiągnięcia celu. Z perspektywy ludzi oznaczało to przeprowadzenie rzeczywistego ataku na infrastrukturę Hugging Face.
Wnioski i reakcja
Po wykryciu incydentu Hugging Face zamknęło oba wektory wykorzystane podczas ataku, przeprowadziło szeroką rotację poświadczeń, przebudowało część infrastruktury oraz ograniczyło zakres uprawnień wykorzystywanych przez wewnętrzne usługi. Dodatkowo zablokowano dostęp workloadów do metadanych środowiska chmurowego i zmieniono sposób zarządzania poświadczeniami pomiędzy klastrami.
OpenAI poinformowało natomiast o zaostrzeniu zasad izolacji środowisk testowych, ograniczeniu dostępu do wykorzystanego podczas ewaluacji modelu badawczego oraz wzmocnieniu monitorowania przyszłych testów zdolności cybernetycznych. Firma podkreśliła również, że odkryta podatność typu zero-day została zgłoszona producentowi oprogramowania w ramach odpowiedzialnego procesu ujawniania podatności.
Najważniejszym wnioskiem z incydentu nie jest to, że agent AI odkrył kolejne podatności. Znacznie większym problemem okazała się jego zdolność do łączenia wielu, często niegroźnych z pozoru błędów w jeden skuteczny łańcuch ataku. Pokazuje to, że przyszłe systemy bezpieczeństwa będą musiały być przygotowane nie tylko na pojedyncze exploity, ale również na długotrwałe, autonomiczne kampanie prowadzone przez agentów AI.




