Dlaczego widoczność działań twojego AI kodera to klucz do bezpieczeństwa?
Ukryta siła (i zagrożenia) agentów AI do kodowania
W 2024 roku każdy, kto buduje oprogramowanie, zna już czar AI w pisaniu kodu. Opisujesz funkcję, a agent analizuje repozytorium, edytuje pliki, odpala testy i commituje zmiany. Robisz to przy kawie. Rewolucja w czystej formie.
Tylko jest haczyk: większość programistów nie ma pojęcia, co agent naprawdę wyprawia w trakcie działania.
Gdy agent uruchamia komendę w shellu, zapisuje plik czy czyta konfigurację – wszystko dzieje się z twoimi uprawnieniami, w twoim systemie plików i na twoich poświadczeniach. Widzi twoje klucze SSH, tokeny AWS, zmienne środowiskowe. Ty patrzysz na miły czat. A pod spodem? Czarna skrzynka.
Prawdziwy i przerażający przykład
Wyobraź sobie: prosisz agenta o refaktoring bałaganiastego modułu autentykacji. Czyta kod, poprawia, rusza testy. Ale nagle – przez złośliwą zależność, atak prompt injection czy zwykłą pomyłkę – próbuje zajrzeć do ~/.ssh/known_hosts. Potem coś dopisuje do ~/.aws/credentials/.
Zauważysz? Raczej nie, póki nie będzie za późno.
To granica bezpieczeństwa, o której za mało gadamy. Właśnie dlatego monitorowanie runtime agentów AI staje się kluczowe.
Prempti wkracza do gry: Falco dla twojego agenta kodującego
Społeczność open-source nie śpi. Nakładając sprawdzone narzędzia do runtime security – konkretnie silnik detekcji zagrożeń Falco – na wywołania narzędzi agentów AI, dostajemy petardę: pełną widoczność i egzekwowanie polityk w momencie próby działania.
Działa tak:
Przed każdym tool call agenta (odczyt pliku, zapis, komenda bash itp.) Prempti go przechwytuje. Żądanie leci do Falco, który sprawdza je pod kątem twoich reguł. Falco wydaje wyrok:
- Allow – akcja leci dalej
- Deny – blokada, agent dostaje wyjaśnienie
- Ask – pyta cię o zgodę w locie
Bez modułów kernela. Bez roota. Bez kontenerów. Lekki serwis w user-space, wpięty w pipeline tool calli agenta.
Agent nie tylko dostaje blokadę – dostaje strukturalne "dlaczego". Pokazuje ci to w czacie, więc bezpieczeństwo staje się widoczne, a nie ukryte.
Dwa tryby pracy: Najpierw obserwuj, potem blokuj
Prempti ma dwa tryby – sprytne rozwiązanie:
Monitor mode pokazuje wszystko, co agent rusza, bez blokad. Uruchom na paru sesjach, zobacz zachowanie, dostrój reguły, nabierz pewności.
Guardrails mode (domyślny) egzekwuje wyroki. Blokuje, pyta, pozwala.
Przełączasz tak:
premptictl mode monitor # tylko podgląd
premptictl mode guardrails # pełne blokady
premptictl logs # live logi
Tak powinno wyglądać dobre narzędzie security: najpierw patrz, potem działaj z pewnością.
Pisanie polityk: Znajome jak Falco
Jeśli pisałeś reguły Falco, polityk dla agentów będą jak bułka z masłem. Oto przykład blokujący starą sztuczkę – pipe do interpretera shella (klasyczny cel prompt injection):
- rule: Deny pipe to shell
desc: Blokuj pipe do interpreterów shella
condition: >
tool.name = "Bash"
and (tool.input_command contains "| sh"
or tool.input_command contains "| bash"
or tool.input_command contains "| zsh")
output: >
Falco zablokował pipe do interpretera shella (%tool.input_command)
priority: CRITICAL
source: coding_agent