Security
Overview
Neotask एक security-first architecture के साथ designed है। Gateway default रूप से localhost से bind होता है, सभी sensitive data encrypted at rest होता है, और agent execution isolated containers में sandboxed हो सकती है।
Network Security
Loopback by Default
Gateway केवल 127.0.0.1 (localhost) पर listen करता है जब तक आप explicitly binding mode न बदलें। Default रूप से कोई external network exposure नहीं।
Authentication
सभी WebSocket connections को authentication आवश्यक है:
- Token auth, Bearer token (UUID या custom string)
- Password auth, Bcrypt-hashed password
- Trusted proxy, Reverse proxies से Pre-authenticated headers
- Local trust, Loopback connections implicitly trusted हैं
Remote Access Security
Remote access के लिए, recommended approach Tailscale VPN या SSH tunneling है, कभी भी Gateway को directly internet पर expose न करें।
Device Pairing
Pairing कैसे काम करता है
Gateway से connect होने वाला प्रत्येक client paired होना चाहिए:
- Device अपनी identity present करता है (fingerprint + public key)
- Gateway एक pairing challenge (nonce) issue करता है
- Device nonce को अपनी private key से sign करता है
- आप UI के माध्यम से device approve करते हैं
- Gateway future connections के लिए device token issue करता है
Trust Model
- Local devices (loopback) सुविधा के लिए auto-approved होते हैं
- Non-local devices को explicit approval आवश्यक है
- Device tokens locally stored होते हैं और reconnect पर reuse होते हैं
- Devices को किसी भी समय revoke किया जा सकता है
Encryption
Data at Rest
- AES-256-GCM, सभी tokens, secrets, और API keys encrypted at rest हैं
- Machine-derived keys, Encryption keys device identity से scrypt के माध्यम से derived
- No plaintext storage, Tokens कभी plaintext में store नहीं होते
Data in Transit
- TLS, API communication के लिए HTTPS
- WSS, Gateway connections के लिए WebSocket Secure (Tailscale Serve या reverse proxy उपयोग करते समय)
- HMAC signing, Nonce और timestamp के साथ Request integrity
Sandboxing
Docker-Based Isolation
Agent command execution Docker containers में sandboxed हो सकती है:
- Per-agent profiles, प्रत्येक agent का अपना sandbox configuration हो सकता है
- Resource limits, Configurable CPU, memory, और timeout limits
- Network isolation, Containers network-isolated हो सकते हैं
- Filesystem confinement, Agents केवल अपने workspace access करते हैं
- Custom images, Specific tools installed के साथ pre-built images उपयोग करें
Sandbox Scopes
| Scope | विवरण |
|---|---|
| Per-session | प्रत्येक session के लिए Fresh container |
| Per-agent | Per agent Persistent container |
| Shared | Agents में Shared container |
Workspace Access
Sandboxed agents अपनी workspace directory (container में mounted) access कर सकते हैं लेकिन अपने workspace के बाहर host filesystem access नहीं कर सकते।
Exec Approvals
Control करें कि agents nodes और Gateway host पर कौन से commands execute कर सकते हैं:
Modes
| Mode | विवरण |
|---|---|
| Allowlist | केवल pre-approved commands execute होते हैं |
| Ask | Unknown commands user approval के लिए prompt करते हैं |
| Full | कोई restrictions नहीं (सावधानी के साथ उपयोग करें) |
Per-Node Configuration
प्रत्येक node (macOS, headless host) का अपना exec approval configuration है, locally stored। आप specific binaries allow कर सकते हैं (जैसे /usr/bin/docker, /usr/local/bin/terraform) जबकि बाकी सब block कर सकते हैं।
Elevated Mode
कुछ operations को directly Gateway host पर run करने की आवश्यकता होती है (sandbox में नहीं)। Elevated mode है:
- Agent config में explicit permission द्वारा gated
- केवल Gateway host पर available
- Default रूप से disabled
- Logging के माध्यम से auditable
Security Audit
Built-in security audit check करता है:
- Configuration file permissions (600 होने चाहिए)
- Session file permissions
- Node.js version (security patches)
- Plaintext secret detection
- Plugin allowlist validation
- Open network interface audit
- Auth configuration completeness
Permission दिए जाने पर Audit कई issues automatically fix कर सकता है।
Best Practices
- Gateway को loopback पर रखें, Remote access के लिए Tailscale या SSH उपयोग करें
- Sandboxing enable करें, Docker containers में agent commands run करें
- Exec allowlists उपयोग करें, Restrict करें कि agents nodes पर कौन से commands run कर सकते हैं
- Auth tokens set करें, loopback के लिए भी हमेशा token auth configure करें
- Agent permissions review करें, जहां possible minimal tool profiles उपयोग करें
- Neotask updated रखें, Updates में security patches शामिल हैं
- नियमित audit करें, Misconfigurations catch करने के लिए security audits run करें
- Plugin loading restrict करें, केवल trusted plugins install करें