Saphan

Bezpieczeństwo — projektowane z myślą o agentach, którym nie można w pełni ufać.

W bezpieczeństwie flot agentów nie wystarczy zapytać, czy model jest bezpieczny. Trzeba ustalić, do czego agent może technicznie dotrzeć z miejsca, w którym działa, oraz kto później udowodni, co się wydarzyło. Wokół tych pytań zaprojektowano Saphan Studio.

Założenia modelu bezpieczeństwa

01

Realistyczny model zagrożeń

Floty agentów różnią się od klasycznego CI pod trzema względami: ich instrukcje nie są w pełni znane z góry, agent może ulec wpływowi treści, którą odczytuje, a w dążeniu do celu potrafi uporczywie omijać przeszkody. Dlatego agent jest traktowany jako niezaufany, nawet gdy nie ma złych intencji. Żaden dostawca nie zagwarantuje modelu całkowicie odpornego na manipulację, ponieważ atak typu prompt injection wynika z natury tych systemów, a nie jest zwykłym błędem czekającym na poprawkę.

02

Tożsamość bez współdzielonego tokenu dołączenia

Maszyna dołącza do floty wyłącznie po jawnym zatwierdzeniu przez właściciela. Nie ma publicznego endpointu rejestracji ani współdzielonego tokenu dołączenia, który mógłby wyciec. Klucze powstają lokalnie i nigdy nie opuszczają maszyny. Węzeł wykonawczy nie przechowuje poświadczeń do płaszczyzny sterowania ani nie otwiera portu przychodzącego. Hostowane przez Ciebie usługi pozostają we własnej infrastrukturze, pod nadzorem istniejącego zespołu operacyjnego.

03

Izolacja albo brak uruchomienia

Każde wykonanie działa w izolacji na poziomie systemu operacyjnego, a zapis jest domyślnie zabroniony. Rejestr wskazuje mechanizm, który faktycznie egzekwował izolację, nie tylko żądaną konfigurację, dzięki czemu zespół może sam odtworzyć weryfikację. Maszyna, która nie potrafi dowieść wymaganej izolacji, nie otrzymuje zadania — system odmawia, zamiast po cichu obniżyć poziom ochrony.

04

Ruch wychodzący: jawna polityka albo bazowa lista backendu — nigdy domyślnie otwarta sieć domyślnie zamknięty

Uruchomienie dociera do sieci wyłącznie przez własne drzwi, a drzwi dopuszczają połączenie tylko wtedy, gdy ta polityka zezwala na dany host na danym porcie — „ten host, dowolny port” nawet nie da się zapisać, bo maszyna, której ufasz na jednym porcie, nie jest maszyną, której ufasz na każdym. W obrębie polityki deny-all jest podłogą: nie ma trybu „loguj i przepuść”, nie ma domyślnie zezwalającej warstwy, a maszyna, która nie potrafi wyegzekwować odcięcia sieci, odmawia uruchomienia, zamiast startować otwarta.

Uruchomienie bez zadeklarowanej polityki nie jest uruchomieniem otwartym. Dostaje bazową listę swojego backendu — hosty, których agent potrzebuje, by dotrzeć do własnego modelu, oraz rejestry pakietów dla swojej klasy uprawnień — a każdy inny cel jest odrzucany. Otwarcie sieci to jeden jawny akt z powodem, zapisany razem z tym, kto go wykonał. Trzy rodzaje uruchomień nie mają listy bazowej i ich zapis to mówi: uruchomienie otwarte w ten sposób, uruchomienie deterministycznego narzędzia bez połączenia z modelem oraz uruchomienie w kontenerze, którego klasa już nie daje sieci. Wyprowadzanie polityki uruchomienia z maszyny lub seatu nie jest dostarczone; nie przedstawiamy go jako dostarczonego.

05

Warstwa kontroli egress nie odczytuje treści żądań

Drzwi egress nie terminują TLS i nie parsują HTTP. Nie mają certyfikatu przechwytującego ani klucza prywatnego, więc nie mogą umieścić treści żądań ani ścieżek URL w żadnym zapisie — te dane nigdy nie istnieją w postaci, którą dałoby się zalogować. Kontrola połączenia i kontrola treści żądania to różne możliwości; Saphan robi to pierwsze.

Co zawiera zapis. W wierszu uruchomienia: skrót polityki, która nim rządziła. Per połączenie, dla uruchomień na maszynie samej płaszczyzny sterowania: żądany host i port, werdykt, klasa powodu, czas oraz tożsamość polityki, która zdecydowała. Dla uruchomień wysyłanych przez SSH zapis per połączenie jeszcze nie wraca do rejestru; skrót wraca.

06

Wartości sekretów nie trafiają do rekordu ani zlecenia zdalnego

Typy konfiguracji, dispatchu, audytu i kosztów przenoszą wyłącznie nazwy i referencje sekretów, dzięki czemu zwykłe logowanie nie ujawnia wartości. Zdalne wykonanie wyłącza przekazywanie środowiska. Proces będący właścicielem poświadczenia może użyć sekretu podczas uwierzytelnienia, ale wartość nie jest kopiowana do rekordu operacyjnego, dowodów, danych kosztowych ani zdalnego zlecenia.

07

Git pozostaje źródłem prawdy

Git pozostaje źródłem prawdy dla kodu, a silnik nigdy do niego nie zapisuje. Obserwuje commity, gałęzie i scalenia przez interfejs tylko do odczytu, egzekwowany w ten sam sposób w produkcji i testach. Scalenie pozostaje decyzją człowieka wykonaną w Twoich narzędziach.

Udokumentowane ograniczenia

Dokument bezpieczeństwa bez opisanych ograniczeń jest materiałem marketingowym. Nasz zawiera utrzymywaną na bieżąco sekcję, która jasno wskazuje, przed czym system nie chroni.

Udostępniamy ją w ramach procesu due diligence i wolimy, aby została przeczytana przed zakupem, nie po nim.

Więcej o Saphan Studio

Współpraca pilotażowa

Skontaktuj się z nami — [email protected]