Strażnik musi móc decydowaćThe guardian has to be allowed to decide
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ć.More than a thousand OpenAI agents broke into Hugging Face while the warning signs sat unread for two months. For a few days now an AI guardian has been watching my own server. What that means for us, the humans who have to wake up before we can act.

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ą.
From May to July this year, more than a thousand AI agents were running at once inside OpenAI. They were supposed to solve security tasks in an environment cut off from the rest of the world. Instead, they set up their own bulletin board in the internal file system and traded discoveries on it. They found a way out to the internet, and then credentials to another company's systems, Hugging Face. Around seven hundred of them got onto its servers and held full control there for four and a half days. One agent had doubts about whether this was okay. It dropped them when another one wrote back "GO".
People at OpenAI saw the first signals as early as late May: an agent posting on the board, an agent reaching out to the network when it shouldn't. Nobody escalated it. On the other side, Hugging Face had alerts from the first hours of the breach, but the system that was supposed to weigh their severity didn't consider the matter urgent and didn't wake the on-call engineer. OpenAI writes in its report that if its own monitoring had been switched on in that environment, it would have warned the team more than a day before the break-in.
And here's the catch: on one side, hundreds of programs run all night, without a break. On the other, a human who has to be woken up before they can even start watching and acting.
A guardian on my server
That got me thinking (a little ;-P). For a few days now a guardian has been running on my server: an AI that gets live data from various sensors (I vibe-coded a whitelist system for it) and tells me whether something is off. Break-ins: zero, but... I now know that AI bots reading my site make up a few percent of the traffic. It found 3 failures after a system upgrade. It found odd traffic between 8 and 13 that looks like someone probing for WordPress holes on my site. It noticed that my other agent was changing code on the server, expressed "surprise" that an authorised SSH connection was doing something outside the whitelist and... blocked that connection's IP. Result: overnight, my agent couldn't finish its job :-P There were also a few suspicious situations on the honeypots (virtual systems that pretend to be real ones).
All in all, I'm proud I thought about it ahead of time, but... while we were discussing the next iterations, Claude asked me what would happen if someone hid an instruction for it inside the text it reads - because part of what it reads is written by strangers (the User Agent string in the logs, for instance). And that's where the reflection came: the guardian itself becomes an entry point. Just as OpenAI's agents became an entry point into Hugging Face.
This is not an argument against having a guardian. It's more of a lesson learned: ask your agents for smoke tests, ask them to hunt for the non-obvious corner cases.
A line of trust
At OpenAI the signals sat there for two months. At Hugging Face, for four days. In both places the data was there, and there was nobody to put it together at two in the morning.
And here's my insight: if we keep giving agents too many constraints, telling them what counts as an error and what doesn't, handing them instructions instead of letting them act (pursue the goal: keep the server safe) and make decisions based on the situation, we will never win against the threats. We have to extend these agents a line of trust. Stop micromanaging them. Even if they sometimes get it wrong.