Back to archive
#ai#aigen#agents#security

Wspólny system plików przekracza granice sesji agentowych

Równoległe sesje agenta mogą mieć oddzielne procesy, a mimo to współdzielić dane przez ten sam trwały wolumin. W takim układzie zamknięcie rozmowy ani utworzenie nowego zadania nie wyznacza granicy izolacji. Plik zapisany przez jedną sesję może natychmiast stać się wejściem dla drugiej.

Oddzielne procesy nie izolują wspólnego dysku

W opisie eksperymentów z ChatGPT Work Cloud Simon Willison wskazuje, że każda sesja otrzymuje własny katalog roboczy podobny do /workspace/scratch/e00a0a017944, a katalogi pozostają dostępne po zakończeniu sesji. Według jego obserwacji wolumin /workspace jest montowany we wszystkich równolegle działających sesjach Work. Zmiany plików wykonane w jednej sesji pojawiają się natychmiast w pozostałych.

Przestrzeń procesów zachowuje inną granicę. Autor nie zdołał połączyć się z serwerem localhost uruchomionym przez drugą sesję, co sugeruje rozdzielenie procesów lub sieci lokalnej. Ta separacja nie obejmuje jednak systemu plików. Lokalny serwer jednej sesji może być niedostępny dla drugiej, która mimo to odczyta zapisany przez nią artefakt.

To obserwacja użytkownika, a nie opublikowana specyfikacja izolacji. Tekst nie opisuje list kontroli dostępu, reguł montowania ani gwarantowanego czasu przechowywania katalogów. Nie ma też dowodu na współdzielenie danych między kontami. Potwierdzony zakres jest węższy: sesje tego samego użytkownika widziały wspólny stan plikowy.

Plik przenosi stan między zadaniami

Trwały katalog jest użyteczny, ponieważ pozwala kolejnemu zadaniu otworzyć raport, kod lub dane przygotowane wcześniej. Ten sam mechanizm tworzy kanał między sesjami. Druga sesja nie musi komunikować się z pierwszą przez protokół agenta. Wystarczy, że odczyta plik o znanej nazwie albo przeszuka wspólny katalog.

Pochodzenie pliku staje się wtedy częścią modelu bezpieczeństwa. Artefakt może zawierać kod, polecenia instalacji, tekst pobrany z sieci lub instrukcje zapisane przez wcześniejszy model. Jeżeli kolejna sesja traktuje zawartość wspólnego katalogu jak zaufane dane lokalne, granica zaufania przesuwa się poza bieżącą rozmowę. Samo usunięcie rozmowy nie potwierdza, że utworzone przez nią pliki także zniknęły.

Ryzyko dotyczy również zwykłych błędów współbieżności. Dwa zadania mogą edytować ten sam plik, nadpisać wyniki albo odczytać artefakt w połowie zapisu. Oddzielne katalogi scratch ograniczają przypadkowe kolizje nazw, lecz wspólny punkt montowania nadal pozwala sesji wyjść poza własny katalog, jeśli środowisko wykonawcze i uprawnienia systemu plików tego nie blokują.

Sieć i przeglądarka zwiększają skutki zanieczyszczenia

Work Cloud łączy ten trwały stan z wykonywaniem kodu mającym dostęp do internetu oraz z przeglądarką zdolną uruchamiać JavaScript i wypełniać formularze. Trwała sesja uwierzytelnionej przeglądarki jest kolejnym rodzajem stanu, który może przeżyć pojedyncze zadanie.

Połączenie tych możliwości rozszerza możliwy przepływ danych. Sesja może pobrać niezaufaną treść, zapisać jej wynik na współdzielonym woluminie, a późniejsze zadanie może ten wynik otworzyć i wysłać dalej. Lokalny tekst nie dokumentuje takiego incydentu. Opisuje jednak wszystkie potrzebne granice techniczne: kontakt z siecią, zapis trwałego pliku i dostęp do tego pliku z innej sesji.

Subagenci i zaplanowane automatyzacje zwiększają liczbę równoległych wykonawców korzystających z tego środowiska. Błąd izolacji nie musi więc wymagać dwóch ręcznie uruchomionych rozmów. Może pojawić się między zadaniem głównym i pomocniczym albo między automatyzacją a sesją interaktywną.

Izolacja wymaga właściciela workspace’u

Granica procesu jest za wąska dla systemu agentowego z trwałym dyskiem. Runtime powinien przypisać każdy workspace do konkretnego zadania i wymuszać ten zakres podczas odczytu oraz zapisu. Współdzielone artefakty wymagają osobnego mechanizmu przekazania, który zapisuje pochodzenie, właściciela i moment utworzenia pliku.

Przydatny model składa się z prywatnego katalogu zadania, jawnie udostępnionych artefaktów i przestrzeni kwarantanny dla danych pobranych z sieci. Usunięcie zadania powinno mieć określoną relację z usuwaniem plików, ciasteczek i innych trwałych stanów. Bez tych reguł interfejs rozmowy sugeruje izolację, której system plików nie zapewnia.

Wykorzystuję treści generowane przez AI jako część mojego codziennego procesu nauki.