Claude Code 2.1.221 umożliwia teraz użytkownikom Linuxa i WSL2 maskowanie plików z poświadczeniami, zanim piaskownica (sandbox) będzie mogła je odczytać. Funkcja ta dostarcza poleceniu nieszkodliwą kopię typu sentinel, a prawdziwy sekret podmienia dopiero wtedy, gdy dozwolone żądanie przechodzi przez proxy.

Jak wygląda proces maskowania

  1. Kopia typu sentinel – Gdy plik zostanie oznaczony do maskowania, Claude Code tworzy duplikat zawierający tekst zastępczy (placeholder) zamiast rzeczywistego sekretu.
  2. Podmiana przez proxy – Piaskownica działa za proxy terminującym TLS. Jeśli piaskownica wyśle żądanie pasujące do wpisu na liście injectHosts, proxy podmieni tekst zastępczy na prawdziwy token, zanim żądanie opuści maszynę.
  3. Obsługa błędów – Jeśli wyrażenie regularne (regex) do ekstrakcji nie znajdzie sekretu, piaskownica może przerwać działanie, zamiast kontynuować proces z odsłoniętym oryginalnym plikiem.

To podejście działa tylko na Linuxie i WSL2; w systemie macOS domyślnie ustawione jest „hard deny”, co oznacza, że piaskownica w ogóle nie może odczytać pliku.

Lista kontrolna bezpiecznego wdrożenia

Zweryfikuj wersję

  • Upewnij się, że używasz wersji Claude Code 2.1.221 lub nowszej. Jedyną niezawodną metodą jest sprawdzenie ciągu wersji w terminalu; pliki package lock mogą wprowadzać w błąd.

Używaj jednorazowych tokenów

  • Nigdy nie testuj funkcji na swoich głównych poświadczeniach GitHub lub chmury. Utwórz krótkożyjący token, który wskazuje na nieszkodliwy punkt końcowy typu „canary” (kanarek), i natychmiast go unieważnij, jeśli coś pójdzie nie tak.

Wybierz odpowiedni tryb maskowania

Tryb Kiedy stosować
File Deny Całkowita blokada; każda próba odczytu kończy się niepowodzeniem.
Whole-File Mask Plik zawiera pojedynczy sekret (np. klucz API w tekście jawnym).
Structured Mask Plik miesza sekrety z innymi danymi (JSON, YAML, .netrc). Użyj trybu extract oraz wyrażenia regularnego, które przechwyci sekret w grupie 1. Dzięki temu składnia otaczająca pozostanie poprawna dla programu klienckiego.

Ustaw rygorystyczne reguły błędów

  • Ustaw onExtractNoMatch na error. Jeśli wyrażenie regularne nie znajdzie dopasowania, piaskownica zostanie zatrzymana. Pozostawienie domyślnej wartości warn może spowodować, że oryginalny plik zostanie niepostrzeżenie udostępniony.

Włącz terminację TLS

  • Proxy musi terminować TLS, aby móc dokonać podmiany. Bez terminacji TLS proxy nie widzi zawartości żądania (payload), więc podmiana nigdy nie nastąpi.

Zawęź zakres hostów

  • Wypełnij injectHosts konkretnymi nazwami hostów z listy allowedDomains. Unikaj symboli wieloznacznych (wildcards), takich jak *.example.com; szerokie wzorce zwiększają powierzchnię ataku i niweczą cel maskowania.

Zweryfikuj wynik

  • Przeszukaj logi, argumenty procesów i komunikaty o błędach pod kątem występowania prawdziwego tokena. W tych artefaktach jedyną wartością, która powinna się pojawić, jest wartość typu sentinel.

Ograniczenia, o których musisz pamiętać

Maskowanie zabezpiecza token wyłącznie przed widokiem systemu plików wewnątrz piaskownicy. Nie powstrzymuje to polecenia przed wykonywaniem dowolnych wywołań sieciowych ani nie chroni przed wbudowanymi narzędziami Claude, które mogą posiadać uprawnienia administratora.

Podsumowanie

Funkcja maskowania poświadczeń w Claude Code 2.1.221 daje programistom korzystającym z Linuxa i WSL2 praktyczny sposób na to, aby sekrety nie trafiały do procesów w piaskownicy.