Security - Neotask by Neotask Documentation | Neotask

Bezpieczeństwo

Przegląd

Open Claw jest zaprojektowany z architekturą bezpieczeństwo-jako-priorytet. Brama domyślnie jest powiązana z localhost, wszystkie wrażliwe dane są szyfrowane w spoczynku, a wykonanie agentów może być izolowane w kontenerach.

Bezpieczeństwo sieci

Pętla zwrotna domyślnie

Brama nasłuchuje tylko na 127.0.0.1 (localhost), chyba że wyraźnie zmienisz tryb powiązania. Domyślnie brak zewnętrznej ekspozycji sieciowej.

Uwierzytelnianie

Wszystkie połączenia WebSocket wymagają uwierzytelniania:

  • Uwierzytelnianie tokenem -- Token bearer (UUID lub niestandardowy ciąg)
  • Uwierzytelnianie hasłem -- Haszowane hasło (bcrypt)
  • Zaufany proxy -- Wstępnie uwierzytelnione nagłówki od odwrotnych proxy
  • Lokalne zaufanie -- Połączenia z pętlą zwrotną są niejawnie zaufane
  • Bezpieczeństwo zdalnego dostępu

    Dla zdalnego dostępu zalecane podejście to VPN Tailscale lub tunelowanie SSH -- nigdy nie wystawiaj bramy bezpośrednio na internet.

    Parowanie urządzeń

    Jak działa parowanie

    Każdy klient łączący się z bramą musi być sparowany:

  • Urządzenie prezentuje swoją tożsamość (odcisk + klucz publiczny)
  • Brama wydaje wyzwanie parowania (nonce)
  • Urządzenie podpisuje nonce swoim kluczem prywatnym
  • Zatwierdzasz urządzenie przez interfejs użytkownika
  • Brama wydaje token urządzenia dla przyszłych połączeń
  • Model zaufania

  • Urządzenia lokalne (pętla zwrotna) są automatycznie zatwierdzane dla wygody
  • Urządzenia nielokalne wymagają wyraźnego zatwierdzenia
  • Tokeny urządzeń są przechowywane lokalnie i ponownie używane przy ponownym połączeniu
  • Urządzenia mogą być odwołane w dowolnym momencie
  • Szyfrowanie

    Dane w spoczynku

  • AES-256-GCM -- Wszystkie tokeny, sekrety i klucze API są szyfrowane w spoczynku
  • Klucze pochodne od maszyny -- Klucze szyfrowania wyprowadzone przez scrypt z tożsamości urządzenia
  • Brak przechowywania w postaci jawnej -- Tokeny nigdy nie są przechowywane w postaci jawnej
  • Dane w tranzycie

  • TLS -- HTTPS dla komunikacji API
  • WSS -- WebSocket Secure dla połączeń bramy (przy użyciu Tailscale Serve lub odwrotnego proxy)
  • Podpisywanie HMAC -- Integralność żądań z nonce i znacznikiem czasu
  • Sandboxing

    Izolacja oparta na Docker

    Wykonanie poleceń agenta może być izolowane w kontenerach Docker:

  • Profile per agent -- Każdy agent może mieć własną konfigurację piaskownicy
  • Limity zasobów -- Konfigurowalne limity procesora, pamięci i limitu czasu
  • Izolacja sieci -- Kontenery mogą być izolowane sieciowo
  • Ograniczenie systemu plików -- Agenci mają dostęp tylko do swojej przestrzeni roboczej
  • Niestandardowe obrazy -- Używaj wstępnie zbudowanych obrazów z zainstalowanymi konkretnymi narzędziami
  • Zakresy piaskownicy

    | Zakres | Opis | |--------|------| | Per sesja | Nowy kontener dla każdej sesji | | Per agent | Trwały kontener per agent | | Udostępniony | Wspólny kontener między agentami |

    Dostęp do przestrzeni roboczej

    Agenci z piaskownicą mogą uzyskać dostęp do swojego katalogu przestrzeni roboczej (zamontowanego do kontenera), ale nie mogą uzyskać dostępu do systemu plików hosta poza swoją przestrzenią roboczą.

    Zatwierdzenia Exec

    Kontroluj, jakie polecenia agenci mogą wykonywać na węzłach i hoście bramy:

    Tryby

    | Tryb | Opis | |------|------| | Lista dozwolonych | Wykonują się tylko wcześniej zatwierdzone polecenia | | Pytaj | Nieznane polecenia wymagają zatwierdzenia użytkownika | | Pełny | Brak ograniczeń (używaj ostrożnie) |

    Konfiguracja per węzeł

    Każdy węzeł (macOS, host headless) ma własną konfigurację zatwierdzania exec, przechowywaną lokalnie. Możesz zezwolić na konkretne binaria (np. /usr/bin/docker, /usr/local/bin/terraform), blokując wszystko inne.

    Tryb podwyższony

    Niektóre operacje wymagają bezpośredniego uruchamiania na hoście bramy (nie w piaskownicy). Tryb podwyższony to:

  • Bramkowany przez wyraźne uprawnienie w konfiguracji agenta
  • Dostępny tylko na hoście bramy
  • Domyślnie wyłączony
  • Audytowalny przez logowanie
  • Audyt bezpieczeństwa

    Wbudowany audyt bezpieczeństwa sprawdza:

  • Uprawnienia pliku konfiguracyjnego (powinny wynosić 600)
  • Uprawnienia pliku sesji
  • Wersja Node.js (poprawki bezpieczeństwa)
  • Wykrywanie sekretów w postaci jawnej
  • Walidacja listy dozwolonych wtyczek
  • Audyt otwartego interfejsu sieciowego
  • Kompletność konfiguracji uwierzytelniania
  • Audyt może automatycznie naprawić wiele problemów po udzieleniu pozwolenia.

    Najlepsze praktyki

  • Trzymaj bramę na pętli zwrotnej -- Używaj Tailscale lub SSH dla zdalnego dostępu
  • Włącz sandboxing -- Uruchamiaj polecenia agentów w kontenerach Docker
  • Używaj list dozwolonych exec -- Ogranicz, które polecenia agenci mogą uruchamiać na węzłach
  • Ustaw tokeny uwierzytelniające -- Zawsze konfiguruj uwierzytelnianie tokenem, nawet dla pętli zwrotnej
  • Przeglądaj uprawnienia agentów -- Używaj minimalnych profili narzędzi tam, gdzie to możliwe
  • Aktualizuj Open Claw -- Aktualizacje zawierają poprawki bezpieczeństwa
  • Regularnie audytuj -- Uruchamiaj audyty bezpieczeństwa, aby wykryć błędne konfiguracje
  • Ogranicz ładowanie wtyczek -- Instaluj tylko zaufane wtyczki
  • View full documentation