Säkerhet
Översikt
Neotask är utformat med en säkerhetsfokuserad arkitektur. Gateway binder till localhost som standard, alla känsliga data krypteras i vila och agentexekvering kan sandlådes i isolerade containrar.
Nätverkssäkerhet
Loopback som standard
Gateway lyssnar bara på 127.0.0.1 (localhost) om du inte uttryckligen ändrar bindningsläget. Ingen extern nätverksexponering som standard.
Autentisering
Alla WebSocket-anslutningar kräver autentisering:
- Tokenautentisering, Bearer-token (UUID eller anpassad sträng)
- Lösenordsautentisering, Bcrypt-hashat lösenord
- Betrodd proxy, Förautentiserade headers från omvända proxyer
- Lokal tillit, Loopback-anslutningar är implicit betrodda
Fjärråtkomstsäkerhet
För fjärråtkomst är den rekommenderade metoden Tailscale VPN eller SSH-tunneling, exponera aldrig Gateway direkt mot internet.
Enhetsparkoppling
Hur parkoppling fungerar
Varje klient som ansluter till Gateway måste parkopplas:
- Enheten presenterar sin identitet (fingeravtryck + offentlig nyckel)
- Gateway utfärdar en parkopplingsutmaning (nonce)
- Enheten signerar nonce med sin privata nyckel
- Du godkänner enheten via användargränssnittet
- Gateway utfärdar en enhetstoken för framtida anslutningar
Förtroendemodell
- Lokala enheter (loopback) godkänns automatiskt för bekvämlighet
- Icke-lokala enheter kräver uttryckligt godkännande
- Enhetstokens lagras lokalt och återanvänds vid återanslutning
- Enheter kan återkallas när som helst
Kryptering
Data i vila
- AES-256-GCM, Alla tokens, hemligheter och API-nycklar krypteras i vila
- Maskinbaserade nycklar, Krypteringsnycklar härledda via scrypt från enhetsidentitet
- Ingen klartext-lagring, Tokens lagras aldrig i klartext
Data under överföring
- TLS, HTTPS för API-kommunikation
- WSS, WebSocket Secure för Gateway-anslutningar (när Tailscale Serve eller omvänd proxy används)
- HMAC-signering, Förfrågningsintegritet med nonce och tidsstämpel
Sandlådning
Docker-baserad isolering
Agentkommandoexekvering kan sandlådes i Docker-containrar:
- Per-agent-profiler, Varje agent kan ha sin egen sandlådekonfiguration
- Resursgränser, Konfigurerbara CPU-, minnes- och tidsgränser
- Nätverksisolering, Containrar kan nätverksisoleras
- Filsystembegränsning, Agenter kommer bara åt sin arbetsyta
- Anpassade avbildningar, Använd förbyggda avbildningar med specifika verktyg installerade
Sandlådomfång
| Omfång | Beskrivning |
|---|---|
| Per session | Ny container för varje session |
| Per agent | Beständig container per agent |
| Delad | Delad container mellan agenter |
Arbetsyteåtkomst
Sandlådeagenter kan komma åt sin arbetsytekatalog (monterad i containern) men kan inte komma åt värdfilsystemet utanför sin arbetsyta.
Exekveringsgodkännanden
Kontrollera vilka kommandon agenter kan köra på noder och Gateway-värden:
Lägen
| Läge | Beskrivning |
|---|---|
| Tillåtningslista | Enbart förgodkända kommandon körs |
| Fråga | Okända kommandon uppmanar användaren att godkänna |
| Fullständig | Inga begränsningar (använd med försiktighet) |
Per-nod-konfiguration
Varje nod (macOS, headless-värd) har sin egen exekveringsgodkännandekonfiguration, lagrad lokalt. Du kan tillåta specifika binärer (t.ex. /usr/bin/docker, /usr/local/bin/terraform) samtidigt som du blockerar allt annat.
Förhöjt läge
Vissa operationer kräver att de körs på Gateway-värden direkt (inte i en sandlåda). Förhöjt läge är:
- Begränsat av uttrycklig behörighet i agentkonfigurationen
- Bara tillgängligt på Gateway-värden
- Inaktiverat som standard
- Granskningsbart via loggning
Säkerhetsgranskning
Den inbyggda säkerhetsgranskningen kontrollerar:
- Konfigurationsfilbehörigheter (ska vara 600)
- Sessionsfilbehörigheter
- Node.js-version (säkerhetspatchar)
- Klartextdetektering av hemligheter
- Validering av plug-in-tillåtningslista
- Revision av öppna nätverksgränssnitt
- Fullständighet i autentiseringskonfiguration
Granskningen kan automatiskt åtgärda många problem när den ges tillstånd.
Bästa praxis
- Håll Gateway på loopback, Använd Tailscale eller SSH för fjärråtkomst
- Aktivera sandlådning, Kör agentkommandon i Docker-containrar
- Använd exekveringstillåtningslistor, Begränsa vilka kommandon agenter kan köra på noder
- Ange autentiseringstokens, Konfigurera alltid tokenautentisering, även för loopback
- Granska agentbehörigheter, Använd minimala verktygsprofiler där det är möjligt
- Håll Neotask uppdaterat, Uppdateringar inkluderar säkerhetspatchar
- Granska regelbundet, Kör säkerhetsgranskningar för att hitta felkonfigurationer
- Begränsa plug-inladdning, Installera bara betrodda plugins