Security - Neotask by Neotask Documentation | Neotask
ความปลอดภัย
ภาพรวม
Open Claw ออกแบบมาด้วยสถาปัตยกรรมที่ให้ความสำคัญกับความปลอดภัยเป็นอันดับแรก Gateway bind กับ localhost โดยค่าเริ่มต้น ข้อมูลที่ละเอียดอ่อนทั้งหมดถูกเข้ารหัสในขณะพัก และการรันคำสั่งของเอเจนต์สามารถแซนด์บ็อกซ์ใน container แบบแยกตัว
ความปลอดภัยเครือข่าย
Loopback โดยค่าเริ่มต้น
Gateway รับฟังเฉพาะบน 127.0.0.1 (localhost) เว้นแต่คุณจะเปลี่ยนโหมด binding อย่างชัดแจ้ง ไม่มีการเปิดเผยเครือข่ายภายนอกโดยค่าเริ่มต้น
การตรวจสอบสิทธิ์
การเชื่อมต่อ WebSocket ทั้งหมดต้องการการตรวจสอบสิทธิ์:
Token auth — Bearer token (UUID หรือ string กำหนดเอง)
Password auth — รหัสผ่านที่ hash ด้วย bcrypt
Trusted proxy — Header ที่ตรวจสอบสิทธิ์ล่วงหน้าจาก reverse proxy
Local trust — การเชื่อมต่อ loopback ได้รับความเชื่อถือโดยปริยายความปลอดภัยการเข้าถึงระยะไกล
สำหรับการเข้าถึงระยะไกล แนวทางที่แนะนำคือ Tailscale VPN หรือ SSH tunneling — ไม่ควรเปิดเผย Gateway โดยตรงต่ออินเทอร์เน็ต
การจับคู่อุปกรณ์
วิธีการจับคู่ทำงาน
client ทุกตัวที่เชื่อมต่อกับ Gateway ต้องถูกจับคู่:
อุปกรณ์แสดง identity (fingerprint + public key)
Gateway ออก pairing challenge (nonce)
อุปกรณ์ลงนาม nonce ด้วย private key
คุณอนุมัติอุปกรณ์ผ่าน UI
Gateway ออก device token สำหรับการเชื่อมต่อในอนาคตโมเดลความเชื่อถือ
อุปกรณ์ local (loopback) ได้รับการอนุมัติอัตโนมัติเพื่อความสะดวก
อุปกรณ์ที่ไม่ใช่ local ต้องการการอนุมัติอย่างชัดแจ้ง
Device token ถูกจัดเก็บในเครื่องและนำกลับมาใช้เมื่อเชื่อมต่อซ้ำ
อุปกรณ์สามารถถูกเพิกถอนได้ทุกเวลาการเข้ารหัส
ข้อมูลในขณะพัก
AES-256-GCM — Token ความลับ และ API key ทั้งหมดถูกเข้ารหัสในขณะพัก
คีย์ที่ได้จากเครื่อง — คีย์การเข้ารหัสได้จาก scrypt จาก device identity
ไม่มีการจัดเก็บข้อความธรรมดา — Token ไม่เคยถูกจัดเก็บในข้อความธรรมดาข้อมูลในขณะส่ง
TLS — HTTPS สำหรับการสื่อสาร API
WSS — WebSocket Secure สำหรับการเชื่อมต่อ Gateway (เมื่อใช้ Tailscale Serve หรือ reverse proxy)
การลงนาม HMAC — ความสมบูรณ์ของคำขอด้วย nonce และ timestampSandboxing
การแยกตัวบน Docker
การรันคำสั่งเอเจนต์สามารถ sandbox ใน Docker container:
Profile ต่อเอเจนต์ — เอเจนต์แต่ละตัวสามารถมีการกำหนดค่า sandbox ของตัวเอง
ขีดจำกัดทรัพยากร — ขีดจำกัด CPU หน่วยความจำ และ timeout ที่กำหนดค่าได้
การแยกตัวเครือข่าย — Container สามารถแยกตัวเครือข่าย
การจำกัด Filesystem — เอเจนต์เข้าถึงเฉพาะ workspace ของมัน
Image กำหนดเอง — ใช้ image สำเร็จรูปพร้อมเครื่องมือเฉพาะที่ติดตั้งขอบเขต Sandbox
| ขอบเขต | คำอธิบาย |
|-------|-------------|\
| Per-session | Container ใหม่สำหรับแต่ละเซสชัน |
| Per-agent | Container ถาวรต่อเอเจนต์ |
| Shared | Container ที่ใช้ร่วมกันข้ามเอเจนต์ |
การเข้าถึง Workspace
เอเจนต์ที่ sandbox สามารถเข้าถึงไดเรกทอรี workspace ของตน (mount เข้า container) แต่ไม่สามารถเข้าถึง host filesystem นอก workspace ของตน
การอนุมัติ Exec
ควบคุมคำสั่งที่เอเจนต์สามารถรันบน node และ Gateway host:
โหมด
| โหมด | คำอธิบาย |
|------|-------------|\
| Allowlist | เฉพาะคำสั่งที่อนุมัติล่วงหน้าเท่านั้นที่รัน |
| Ask | คำสั่งที่ไม่รู้จักจะแจ้งให้ผู้ใช้อนุมัติ |
| Full | ไม่มีข้อจำกัด (ใช้ด้วยความระมัดระวัง) |
การกำหนดค่าต่อ Node
แต่ละ node (macOS, headless host) มีการกำหนดค่าการอนุมัติ exec ของตัวเอง จัดเก็บในเครื่อง คุณสามารถอนุญาต binary เฉพาะ (เช่น /usr/bin/docker, /usr/local/bin/terraform) ในขณะที่บล็อกทุกอย่างอื่น
โหมดยกระดับ
บางการดำเนินการต้องการการรันบน Gateway host โดยตรง (ไม่ใช่ใน sandbox) โหมดยกระดับคือ:
จำกัดด้วยการอนุญาตอย่างชัดแจ้งใน agent config
มีเฉพาะบน Gateway host
ปิดใช้งานโดยค่าเริ่มต้น
ตรวจสอบได้ผ่านการบันทึกSecurity Audit
Security audit ในตัวตรวจสอบ:
สิทธิ์ไฟล์ configuration (ควรเป็น 600)
สิทธิ์ไฟล์เซสชัน
เวอร์ชัน Node.js (security patch)
การตรวจจับความลับข้อความธรรมดา
การตรวจสอบ plugin allowlist
การตรวจสอบ network interface ที่เปิดอยู่
ความสมบูรณ์ของการกำหนดค่า authAudit สามารถแก้ไขปัญหาหลาย ๆ อย่างโดยอัตโนมัติเมื่อได้รับอนุญาต
แนวทางปฏิบัติที่ดีที่สุด
รักษา Gateway บน loopback — ใช้ Tailscale หรือ SSH สำหรับการเข้าถึงระยะไกล
เปิดใช้งาน sandboxing — รันคำสั่งเอเจนต์ใน Docker container
ใช้ exec allowlist — จำกัดคำสั่งที่เอเจนต์สามารถรันบน node
ตั้งค่า auth token — กำหนดค่า token auth เสมอ แม้สำหรับ loopback
ตรวจสอบสิทธิ์เอเจนต์ — ใช้ tool profile ขั้นต่ำที่เป็นไปได้
อัปเดต Open Claw — การอัปเดตรวมถึง security patch
ตรวจสอบเป็นประจำ — รัน security audit เพื่อค้นหาการกำหนดค่าที่ผิดพลาด
จำกัดการโหลด plugin — ติดตั้งเฉพาะ plugin จากแหล่งที่เชื่อถือได้
View full documentation