Claude Code: Konfiguracja reguł bezpieczeństwa w Auto mode za pomocą języka naturalnego
Narzędzie Claude Code udostępnia zaawansowane mechanizmy kontroli nad zachowaniem asystenta dzięki możliwości definiowania polityk bezpieczeństwa wprost w języku naturalnym. Konfiguracja reguł bezpieczeństwa w języku naturalnym pozwala na łatwiejszą i precyzyjną kontrolę nad trybem Auto mode, który odpowiada za rutynowe wykonywanie akcji (takich jak praca z systemem kontroli wersji) bez ciągłego pytania o zgodę użytkownika. Definiując zasady, programiści mogą wskazać systemowi, jakie środowiska i działania są zaufane, a jakie bezwzględnie zakazane, korzystając ze zrozumiałych zdań zamiast trudnych w utrzymaniu wyrażeń regularnych czy skomplikowanych wzorców.
Mechanizmy blokowania i hierarchia klasyfikatora
Działanie Auto mode opiera się na dedykowanym modelu klasyfikatora, który ewaluuje ryzyko i ocenia środowisko przed wykonaniem jakiejkolwiek operacji, blokując działania nieodwracalne, destrukcyjne lub skierowane poza zaufany obszar. Architektura tej ochrony opiera się na rygorystycznej, kilkupoziomowej hierarchii:
- autoMode.hard_deny: definiuje bezwarunkowe granice bezpieczeństwa. Reguły umieszczone w tym bloku odrzucają akcję kategorycznie. Ani wola użytkownika, ani przypisane listy wyjątków nie mogą podważyć takiej blokady.
- soft_deny (w konfiguracji stosowane pod kluczem
autoMode.soft_deny): służy do oznaczania destrukcyjnych akcji w konkretnym środowisku, które domyślnie podlegają blokadzie, dopóki nie zostaną wprost autoryzowane. Tego typu ograniczenia mogą jednak zostać zniesione przez ustalone wyjątki lub bezpośrednią intencję wyrażoną przez dewelopera w treści polecenia (np. jednoznaczny rozkaz typu „force-push this branch”). - autoMode.allow: lista dopuszczonych wyjątków, które automatycznie znoszą zakazy nałożone przez polecenia typu
soft_denydla zaufanych scenariuszy (np. automatycznych wdrożeń w wyizolowanym środowisku testowym).
Zanim jednak dedykowany klasyfikator weźmie pod uwagę powyższe listy, uruchamiany jest wcześniejszy, bazujący na wzorcach system ochrony uprawnień. Zapisy takie jak permissions.deny powodują natychmiastowe zatrzymanie komendy przed jakąkolwiek ewaluacją, z kolei permissions.ask (na przykład precyzyjna reguła Bash(git push *)) zawsze wymusza punkt kontrolny i pytanie o autoryzację ze strony człowieka, nie pozwalając na ciche przetworzenie zadania w tle. Jest to istotne zabezpieczenie z uwagi na fakt, że od wersji v2.1.211 oprogramowanie zezwala domyślnie na publikowanie zmian do dowolnej gałęzi w obrębie bieżącego repozytorium, rezygnując z wbudowanej restrykcji dla głównej gałęzi kodu.
Zarządzanie ustawieniami bazowymi w ~/.claude/settings.json
Zarządzanie ustawieniami globalnymi dla pojedynczego dewelopera, definiującymi chociażby prywatną zaufaną infrastrukturę, odbywa się najczęściej w pliku ~/.claude/settings.json. Z kolei polityki obwiązujące wszystkich uczestników danego projektu deweloperskiego umieszczane są w głównym dokumencie CLAUDE.md, z którego klasyfikator czerpie wytyczne na równi z samym modelem AI. Istotnym aspektem z punktu widzenia bezpieczeństwa jest to, że od aktualizacji oznaczonej numerem v2.1.207 zaniechano odczytu konfiguracji trybu z pliku .claude/settings.local.json. Decyzja ta całkowicie eliminuje wektor ataku polegający na przemycaniu złośliwych, dopuszczających reguł przez zainfekowane skrypty budujące lub automatycznie dodawane commity do pobranego repozytorium.
Aby umożliwić organizacjom rozbudowywanie firmowej ochrony bez jednoczesnego pozbywania się mechanizmów wbudowanych, na listach reguł wykorzystuje się literał "$defaults". Wpisanie go zachowuje zdefiniowane fabrycznie reguły polityk. Nowe deklaracje użytkowników (takie jak opis domen lub zasad) dodane przed lub po wartości "$defaults" będą traktowane po prostu jako rozszerzenie bezpiecznej bazy.
Definiowanie zaufanej infrastruktury i slotów
Kluczowym elementem sterującym interpretacjami i uprawnieniami modelu jest blok autoMode.environment, w którym określa się parametry sieciowe, granice organizacyjne i infrastrukturę. Standardowo, bez dodatkowej ingerencji w konfigurację, model zakłada, że godny zaufania jest jedynie bieżący roboczy katalog oraz powiązane zdalne repozytoria (remotes). Każda inna infrastruktura — publiczne rejestry pakietów, wewnątrzfirmowe usługi CI/CD, czy koszyki obliczeniowe na serwerach chmurowych — jest klasyfikowana jako otoczenie zewnętrzne stwarzające potencjalne zagrożenie wyciekiem kodu, o ile nie zostanie zadeklarowana.
Począwszy od wersji oprogramowania v2.1.198, wbudowane polecenie diagnostyczne wywoływane składnią claude auto-mode defaults generuje informacje o domyślnym zaufanym środowisku z podziałem na trzy wyspecjalizowane kategorie definicji:
- Sloty kontekstowe (Context slots): definiują ogólną architekturę i warunki ramowe projektu. Obejmuje to rodzaj organizacji, główne zastosowanie, dostawców usług chmurowych oraz podejście do stosowania zewnętrznych rozwiązań dzielenia się kodem. Interesującym wskaźnikiem jest tutaj prywatność repozytorium, której model w wersji v2.1.200 (i nowszych) może domyślać się samodzielnie na podstawie dowodów z analizy przeprowadzonych na czacie konwersacji, jeśli kod źródłowy na nią wskazuje.
- Sloty zaufania (Trust slots): służą do bezpośredniego wskazania systemowi obszarów, z którymi praca jest w firmie dopuszczalna. Ujmuje się tu między innymi zaufane wewnętrzne nazwy domen oraz wewnątrzsieciowe rejestry pakietów NPM czy PyPI. Przykładowo, pominięcie własnego serwera z pakietami zablokuje możliwość bezobsługowej instalacji oprogramowania.
- Sloty wrażliwości (Sensitivity slots): wprost wskazują kluczowe systemy o podwyższonym ryzyku. Dołączane tu są środowiska produkcyjne oraz repozytoria bazy danych przechowujące informacje chronione i objęte regulacjami. Warto zauważyć, że starsze wydania oprogramowania (z przedziału od v2.1.195 do v2.1.197) uwzględniały jedynie identyfikację samych lokalizacji wrażliwych danych, z pominięciem parametru wyznaczającego grupę ich docelowych odbiorców, który dodano później.
Diagnostyka, krytyka i generowanie reguł
Złożony ekosystem dostarcza własne narzędzia ułatwiające profilowanie i audytowanie polityk zapisanych jako tekst konwersacyjny. Polecenie claude auto-mode critique błyskawicznie identyfikuje te wdrożone reguły, które są niejednoznaczne, wykluczają się (są nadmiarowe) lub grożą generowaniem zachowań fałszywie pozytywnych. Do ogólnego potwierdzenia wygenerowanego zestawu polityk połączonych z kilku źródeł wykorzystywana jest natomiast komenda claude auto-mode config, wypisująca wynikową konfigurację w całości.
Dla programistów pragnących uprościć etap konfiguracji uruchomiono narzędzie interaktywne /auto-mode-setup, przeznaczone dla użytkowników opłacających plany Pro, Max i Team w wydaniu narzędzia wyższym niż v2.1.228 (bądź v2.1.233 dla instalacji natywnych Windows). Skrypt ten poddaje ocenie historię wykonywanych przez maszynę wywołań w powłoce systemowej i analizuje istniejące pliki, aby wygenerować logiczną i trafną propozycję zasad do wpisania, zręcznie operując domyślnymi wpisami (flaga "$defaults") — bez ryzyka utraty już nakreślonych, autorskich granic bezpieczeństwa.