Przejdź do głównej zawartości

Model izolacji

Kontener z Claude Code nie przechowuje tokenów zewnętrznych usług ani haseł i nie ma bezpośredniego połączenia sieciowego z serwisami takimi jak GitLab, Slack czy SharePoint. Gdy projekt korzysta z danej integracji, usługa działa w osobnym kontenerze workera z kluczami zamontowanymi wyłącznie w trybie tylko do odczytu. Claude wnioskuje i generuje kod, ale surowe poświadczenia nigdy nie trafiają do środowiska modelu. Szczegóły opisano w rozdziale Zarządzanie danymi uwierzytelniającymi.

Wszystkie kontenery uruchamiane przez Speedwave (kontener Claude, centralny hub oraz workery integracji) podlegają ścisłym regułom bezpieczeństwa:

  • Odebranie wszystkich standardowych capabilities Linuksa.
  • Blokada eskalacji uprawnień (no-new-privileges).
  • Główny system plików zamontowany w trybie tylko do odczytu.
  • Katalog /tmp zamontowany jako system plików tmpfs z flagą noexec.
  • Limity przydziału procesora i pamięci RAM zapobiegające wyczerpaniu zasobów systemowych.

Claude nie łączy się z usługami zewnętrznymi bezpośrednio. Komunikuje się wyłącznie z centralnym hubem MCP, który przekazuje wywołania do właściwego workera z zamontowanymi tokenami. Ewentualne przejęcie pojedynczego workera naraża wyłącznie tę jedną usługę, podczas gdy sam hub nie zawiera żadnych sekretów. Worker biurowy (odpowiedzialny za pliki Word, Excel, PowerPoint i PDF) idzie jeszcze dalej: działa bez poświadczeń w wydzielonej sieci pozbawionej bramy domyślnej, co całkowicie odcina procesy przetwarzające dokumenty od internetu.

flowchart LR
  Claude["Kontener Claude<br/>(zero tokenów)"] -->|HTTP| Hub["Hub MCP<br/>(zero poświadczeń)"]
  Hub -->|HTTP| Slack["Worker Slack"]
  Hub -->|HTTP| GH["Worker GitHub"]
  Slack -->|"odczyt"| ST[("Poświadczenia Slack, tylko do odczytu")]
  GH -->|"odczyt"| GT[("Poświadczenia GitHub, tylko do odczytu")]

Kontener Claude zawiera standardowe środowiska uruchomieniowe: Node.js (z npm), Python 3 (z pip), Gita oraz podstawowe narzędzia powłoki. Nie ma dostępu do środowisk zainstalowanych na hoście (takich jak lokalne JDK, Gradle, kompilatory Go, .NET czy socket silnika kontenerów hosta). Ograniczenie wykonania wyłącznie do odizolowanego kontenera (sandbox) gwarantuje, że operacje modelu nie wpłyną na stan systemu operacyjnego.

Gdy klikniesz link wygenerowany przez Claude, aplikacja Desktop przekazuje otwarcie adresu do systemowej przeglądarki, zamiast renderować stronę wewnątrz interfejsu. Adresy URL są weryfikowane pod kątem długości (maksymalnie 8192 znaki) oraz reguł ochrony przed SSRF: dozwolone są wyłącznie protokoły http i https, a adresy pętli zwrotnej (loopback), sieci prywatnych (RFC 1918) oraz link-local są blokowane. Zapobiega to próbom skanowania wewnętrznych zasobów sieciowych przez spreparowane linki. Ta sama weryfikacja chroni punkty końcowe OAuth we wtyczkach - zobacz Tworzenie wtyczek.

Izolacja obowiązuje w równym stopniu pomiędzy różnymi projektami. Każdy projekt otrzymuje osobną sieć kontenerów oraz niezależny magazyn tokenów, co uniemożliwia workerom z jednego projektu dostęp do zasobów i poświadczeń innych środowisk roboczych. Strukturę sieci opisano w rozdziale Topologia kontenerów.

Zabezpieczenia kontenerowe są dodatkowo wzmocnione przez warstwę maszyny wirtualnej (Lima na macOS, WSL2 na Windows), zapewniającą separację na poziomie jądra systemu. Nawet w hipotetycznym przypadku ucieczki z kontenera (container escape) proces pozostaje zamknięty wewnątrz maszyny wirtualnej. Szerszy kontekst architektoniczny znajdziesz na stronie Jak działa Speedwave.