Sztuczna inteligencja właśnie wykryła 271 uśpionych błędów w przeglądarce Firefox. Skarbiec poświadczeń Pana/Pani to cel łatwiejszy.
Mozilla puściła agenta AI na przeglądarkę Firefox i w jednym przebiegu wykrył on 271 nieznanych podatności. Jeśli agent obrońcy potrafi to zrobić, agent atakującego może skierować tę samą zdolność na Pana/Pani skarbiec poświadczeń — cel łatwiejszy i bardziej scentralizowany.
Ostatnio Mozilla puściła agenta AI na przeglądarkę Firefox. Uruchamiając Claude Mythos od Anthropic we własnym harnessie, wykrył on 271 uprzednio nieznanych podatności w jednej kampanii: liczący 20 lat błąd w silniku XSLT, 15-letni błąd parsowania, kilka sposobów na wyjście z piaskownicy przeglądarki. Mozilla zrobiła to, żeby je naprawić, i to jest część, nad którą warto się zatrzymać. Jeśli agent obrońcy potrafi znaleźć 271 uśpionych błędów w jednej z najczęściej audytowanych baz kodu na świecie, agent atakującego potrafi zrobić to samo z Pana/Pani kodem. Ta zdolność jest już dostępna. Nie obchodzi ją, kto ją wyceluje.
Więc proszę skierować ją tam, gdzie przechowuje Pan/Pani swoje sekrety.
Liczby się właśnie odwróciły
Każdy scentralizowany skarbiec — CyberArk, HashiCorp, całe obecne pokolenie dostawców — opiera się na założeniu, które przez trzydzieści lat było prawdziwe, a w tym roku przestało: że klucz główny przebywający w pamięci procesu jest bezpieczny, ponieważ dotarcie do niego wymaga wykwalifikowanego człowieka, czasu i szczęścia. Agent z modelu frontier, wyposażony w możliwość wykonania kodu, nie potrzebuje żadnego z nich. Nie przełamuje bariery. Odczytuje klucz z pamięci w chwili, gdy skarbiec się otwiera, a następnie odszyfrowuje wszystko naraz.
A asymetria jest bezlitosna. Obrońca musi mieć rację za każdym razem, wobec powierzchni ataku, która tylko rośnie. Agent musi mieć rację raz. Sonduje bezustannie, równolegle, i co kwartał staje się mądrzejszy. Salt Typhoon pozostawał uśpiony w sieciach telekomunikacyjnych średnio 393 dni, zanim ruszył. Cierpliwość tego rodzaju, zautomatyzowana i tania, skierowana przeciwko systemowi, który trzyma wszystko w jednym miejscu.
Proszę założyć, że agent się dostanie
Oto założenie, którego obecni dostawcy nie powiedzą na głos, więc powiemy my: w prawdziwym przedsiębiorstwie agent prędzej czy później dotrze do maszyny, na której leżą poświadczenia. Przypadkiem, przez błędną konfigurację albo dzięki własnym możliwościom. Proszę przestać projektować tak, jakby dało się temu zapobiec. Nie da się, a powodem jest to, gdzie mieszka skarbiec: wewnątrz Pana/Pani własnej sieci, współdzieląc domenę rażenia z każdym agentem i każdą maszyną, którą Pan/Pani uruchamia. Jeden drobny błąd, jedno naruszenie, jeden krok boczny, i agent jest w środku. To cecha położenia, nie dyscypliny. Infrastruktura, która nie jest Pana/Pani, nie dzieli tego losu.
Jedyne pytanie, które się liczy, brzmi: co dzieje się w tej właśnie chwili. W przypadku CyberArk lub HashiCorp ta sama maszyna, do której dotarł agent, potrafi odszyfrować magazyn. Bitwa była przegrana w chwili uzyskania dostępu. A ponieważ systemy te scentralizowano z założenia — wszystkie sekrety, wszystkie klucze, całe zarządzanie w jednym klastrze — z samej konstrukcji wynika, że są honeypotami. Jeden uśpiony przyczółek daje sekrety całej organizacji.
Poświadczenia krótkotrwałe i dzierżawione pomagają, ale nie zmieniają geometrii. Zmniejszają promień rażenia po stronie agenta. Nic nie zmieniają w odniesieniu do infrastruktury samego operatora, która wciąż przechowuje klucze zdolne odszyfrować magazyn. Dopóki te klucze przebywają na serwerze, agent, który dotrze do serwera, wygrywa.
Jedyna architektura, która przetrwa
Istnieje dokładnie jeden projekt, który przetrwa atakującego, który prędzej czy później się dostanie: klucze deszyfrujące w ogóle nie przebywają na serwerze. Przejęcie całego backendu daje tekst zaszyfrowany. Klucze pozostają na dystans, na sprzęcie, do którego agent nie ma dostępu.
To nie jest nasza aspiracja. To niezmiennik, na którym zbudowano Clavitor. Sam skarbiec nie potrafi odszyfrować Pana/Pani poświadczeń. Klucze pól są wycinane z sekretu, który odtwarza wyłącznie Pana/Pani klucz sprzętowy, więc serwer — nawet w całości przejęty — nie daje atakującemu nic poza zaszyfrowanymi bajtami. Nasza własna dokumentacja projektowa mówi wprost: atakujący ma każdy bajt, który ma serwer, a wynikiem jest bezużyteczny tekst zaszyfrowany.
Zwykły zarzut wobec trzymania skarbca na dystans dotyczy prędkości. Skarbiec, którego Pan/Pani nie hostuje lokalnie, jest przecież zbyt wolny, więc wciąga go Pan/Pani do środka swojego obwodu, i znów znajduje się on w promieniu rażenia. Pozostała część architektury odpowiada na to:
- Nic nie jest buforowane. Poświadczenia są pobierane świeżo przy każdym żądaniu i usuwane po odpowiedzi. Nie istnieje kopia możliwa do odszyfrowania, leżąca w spoczynku, którą dałoby się odczytać z pamięci.
- Osoby postronne nie mogą się połączyć. Każde wywołanie korzysta z uwierzytelnionego uzgadniania Noise, powiązanego z listą dozwolonych. Przedstawienie klucza, który nie jest zarejestrowany, powoduje, że uzgadnianie nigdy się nie kończy. Lista dozwolonych nie jest filtrem dokręconym na krawędzi. Jest kryptografią.
- Skompromitowany agent nie może opróżnić skarbca. Limity szybkości i kwoty naliczane osobno dla każdego agenta ograniczają to, co pojedynczy aktor może pobrać, a masowy odczyt wywołuje alert.
- Jest szybki, choć nie jest lokalny. Warstwa poświadczeń działa na własnej, globalnie rozproszonej flocie, z punktami obecności na każdym kontynencie, więc najbliższy z nich odpowiada w milisekundach. Dość szybko, by nigdy nie potrzebować jej wewnątrz Pana/Pani sieci, i w odrębnej domenie rażenia, więc Pana/Pani przejęcie nie jest naszym przejęciem.
Inna infrastruktura, inna domena awarii, brak współdzielonego klucza. Przejmuje Pan/Pani całe przedsiębiorstwo i nadal nie może zabrać jego sekretów, ponieważ rzecz warta kradzieży nigdy nie stała tam, gdzie agent mógł po nią sięgnąć.
Uczciwa granica
To nie sprawia, iż agenta nie da się zhakować. Skompromitowany agent wciąż potrafi robić w danej chwili to, do czego został upoważniony. Nie potrafi natomiast odczytać klucza, skopiować magazynu ani odejść i stać się całą organizacją, ponieważ żaden z tych elementów nigdy nie leżał w jego zasięgu. Przenosimy linię w jedyne miejsce, za którym odpowiednio zdolny atakujący nie może podążyć: całkowicie poza serwer.
Obecni dostawcy powstali dla świata, w którym atakującym był człowiek. Ten świat się kończy. Zapisaliśmy zasady, które naszym zdaniem musi spełniać system poświadczeń wtedy, gdy atakującym jest agent — zaczynając od tego, że sekret nigdy nie przebywa tam, gdzie uruchamiany jest kod: clavitor.ai/rules.
Agent musi mieć rację tylko raz. Więc proszę przestać trzymać klucze tam, gdzie może po nie sięgnąć.
Clavitor (@clavitorai) to skarbiec poświadczeń zbudowany dla agentów AI i przeciwko nim. clavitor.ai
Źródła
[1] Agenticzny pipeline Mozilli uruchamia Claude Mythos i wykrywa 271 nieznanych podatności w przeglądarce Firefox (w tym liczący ok. 20 lat błąd XSLT, 15-letni błąd parsowania, wyjścia z piaskownicy): https://the-decoder.com/mozillas-agentic-ai-pipeline-turns-claude-mythos-preview-loose-and-finds-271-unknown-firefox-vulnerabilities/
[2] Salt Typhoon: średni czas pozostawania w sieciach telekomunikacyjnych wynosił 393 dni przed podjęciem działania: https://www.picussecurity.com/resource/blog/salt-typhoon-telecommunications-threat