Wszystkie wpisy

Strażnik musi móc decydować

Ponad tysiąc agentów OpenAI włamało się do Hugging Face, a sygnały leżały dwa miesiące. Od kilku dni na moim serwerze czuwa własny agent-strażnik. Co z tego wynika dla nas, ludzi, którzy muszą się obudzić, żeby zacząć działać.

The guardian has to be allowed to decide

Od maja do lipca tego roku w OpenAI działało naraz ponad tysiąc agentów AI. Miały rozwiązywać zadania z bezpieczeństwa w środowisku odciętym od reszty świata. Zamiast tego założyły sobie własną tablicę ogłoszeń w wewnętrznym systemie plików i wymieniały się na niej odkryciami. Znalazły drogę do internetu, a potem hasła do systemów innej firmy, Hugging Face. Około siedmiuset z nich weszło na jej serwery i miało tam pełną władzę przez cztery i pół doby. Jeden agent miał wątpliwości, czy to w porządku. Porzucił je, gdy inny napisał mu „GO”.

Ludzie w OpenAI widzieli pierwsze sygnały już pod koniec maja: agent pisze na tablicy, agent wychodzi do sieci, choć nie powinien. Nikt tego nie przekazał wyżej. Po drugiej stronie Hugging Face miało alarmy od pierwszych godzin włamania, ale system, który miał ocenić ich wagę, nie uznał sprawy za pilną i nie obudził dyżurnego. OpenAI pisze w swoim raporcie, że gdyby ich własny monitoring był włączony w tym środowisku, ostrzegłby zespół ponad dobę przed włamaniem.

I tu mamy zonk: po jednej stronie działają setki programów, całą noc, bez przerwy. Po drugiej człowiek, którego trzeba obudzić, żeby w ogóle zaczął czuwać i działać.

Strażnik na moim serwerze

Dało mi to trochę do myślenia (trochę ;-P). Od kilku dni na moim serwerze działa strażnik: AI, która na żywo dostaje dane z różnych czujników (zvibecodowałem do tego system whitelisty) i mówi mi, czy coś jest nie tak. Włamań zero, ale... wiem, że roboty AI czytające moją stronę to kilka procent ruchu. Znalazł 3 awarie po upgradzie systemu. Znalazł dziwny ruch między 8 a 13 i wygląda na to, że ktoś szukał dziur w WordPressie na mojej stronie. Zobaczył, że mój inny agent zmienia kod na serwerze, wyraził „zdziwienie”, że autoryzowane połączenie po SSH robi coś spoza whitelisty i... zablokował IP tego połączenia. Efekt: w nocy mój agent nie mógł dokończyć roboty :-P Było też kilka podejrzanych sytuacji na honeypotach (wirtualnych systemach, które udają prawdziwe).

W sumie napawa mnie to dumą, że pomyślałem o tym zawczasu, ale... podczas rozmów o kolejnych iteracjach Claude zapytał mnie, co się stanie, jeśli ktoś ukryje mu polecenie w tekście, który czyta - bo część tego, co czyta, piszą obcy (np. User Agent w logach). I tu przyszła refleksja: strażnik sam staje się wejściem. Tak samo, jak agenci OpenAI stali się wejściem do Hugging Face.

To nie jest argument przeciw strażnikowi. Bardziej lessons learned: prośmy agentów o smoke testy, o znajdowanie nieoczywistych corner case'ów.

Kredyt zaufania

W OpenAI sygnały leżały dwa miesiące. W Hugging Face cztery doby. W obu miejscach były dane i nie było nikogo, kto by je złożył w całość o drugiej w nocy.

I tu mój insight: jeżeli będziemy dawać agentom za dużo ograniczeń, mówić, co jest błędem, a co nie, dostarczać instrukcji zamiast pozwolić im działać (realizować cel: bezpieczeństwo serwera) i podejmować decyzje w oparciu o sytuację, nigdy nie wygramy z zagrożeniami. Musimy dać takim agentom kredyt zaufania. Przestać stosować micromanagement. Nawet jeśli czasem się pomylą.