---
read_when:
    - คุณต้องการตรวจสอบความปลอดภัยของการกำหนดค่า/สถานะอย่างรวดเร็ว
    - คุณต้องการใช้คำแนะนำในการ "แก้ไข" อย่างปลอดภัย (สิทธิ์การเข้าถึง การกำหนดค่าเริ่มต้นให้เข้มงวดยิ่งขึ้น)
summary: ข้อมูลอ้างอิง CLI สำหรับ `openclaw security` (ตรวจสอบและแก้ไขข้อผิดพลาดด้านความปลอดภัยที่พบบ่อย)
title: ความปลอดภัย
x-i18n:
    generated_at: "2026-07-16T18:53:24Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: 613d1afa63e46a7dc3474d0b175cf2389703a86b00f861b4140d64e11c28ece5
    source_path: cli/security.md
    workflow: 16
---

# `openclaw security`

เครื่องมือรักษาความปลอดภัย: การตรวจสอบพร้อมการแก้ไขที่ปลอดภัยซึ่งเลือกใช้ได้ ดูเพิ่มเติม: [ความปลอดภัย](/th/gateway/security)

```bash
openclaw security audit
openclaw security audit --deep
openclaw security audit --deep --password <password>
openclaw security audit --deep --token <token>
openclaw security audit --auth password --password <password>
openclaw security audit --fix
openclaw security audit --json
```

## โหมดการตรวจสอบ

`security audit` แบบปกติจะทำงานอยู่บนเส้นทางการกำหนดค่าแบบเย็น/ระบบไฟล์/อ่านอย่างเดียว โดยจะไม่ค้นหาตัวรวบรวมการตรวจสอบความปลอดภัยของรันไทม์ Plugin ดังนั้นการตรวจสอบตามปกติจึงไม่โหลดรันไทม์ของ Plugin ที่ติดตั้งไว้ทุกตัว `--deep` จะเพิ่มการตรวจสอบ Gateway แบบสดในลักษณะพยายามอย่างเต็มที่และตัวรวบรวมการตรวจสอบความปลอดภัยที่ Plugin เป็นเจ้าของ (ผู้เรียกใช้ภายในที่ระบุชัดเจนอาจเลือกใช้ตัวรวบรวมเหล่านั้นด้วยเมื่อมีขอบเขตรันไทม์ที่เหมาะสมอยู่แล้ว)

หากระบุการยืนยันตัวตน Gateway ด้วยรหัสผ่านเฉพาะตอนเริ่มต้น ให้ส่งค่าเดียวกันผ่าน `--auth password --password <password>` เพื่อให้การตรวจสอบสามารถตรวจสอบค่านั้นเทียบกับ `hooks.token` ได้

## สิ่งที่ตรวจสอบ

**โมเดล DM/ความไว้วางใจ**

- เตือนเมื่อผู้ส่ง DM หลายรายใช้เซสชันหลักร่วมกัน และแนะนำโหมด DM ที่ปลอดภัย: `session.dmScope="per-channel-peer"` (หรือ `per-account-channel-peer` สำหรับช่องทางที่มีหลายบัญชี) สำหรับกล่องข้อความเข้าที่ใช้ร่วมกัน นี่เป็นการเสริมความปลอดภัยสำหรับการทำงานร่วมกัน/กล่องข้อความเข้าที่ใช้ร่วมกัน ไม่ใช่การแยกผู้ดำเนินการที่ไม่ไว้วางใจซึ่งกันและกัน ให้แบ่งขอบเขตความไว้วางใจด้วย Gateway แยกกัน (หรือผู้ใช้ระบบปฏิบัติการ/โฮสต์แยกกัน) สำหรับกรณีดังกล่าว
- แสดง `security.trust_model.multi_user_heuristic` เมื่อการกำหนดค่าบ่งชี้ว่ามีแนวโน้มจะรับข้อมูลเข้าจากผู้ใช้หลายรายร่วมกัน (เช่น นโยบาย DM/กลุ่มแบบเปิด เป้าหมายกลุ่มที่กำหนดค่าไว้ หรือกฎผู้ส่งแบบไวลด์การ์ด) — โมเดลความไว้วางใจเริ่มต้นของ OpenClaw คือผู้ช่วยส่วนตัว (ผู้ดำเนินการหนึ่งราย) ไม่ใช่การแยกผู้เช่าหลายรายในสภาพแวดล้อมที่เป็นภัย สำหรับการตั้งค่าแบบใช้ร่วมกันหลายรายโดยเจตนา: ให้แซนด์บ็อกซ์ทุกเซสชัน จำกัดการเข้าถึงระบบไฟล์ไว้ในขอบเขตเวิร์กสเปซ และไม่นำข้อมูลประจำตัวหรือข้อมูลรับรองส่วนบุคคล/ส่วนตัวมาไว้บนรันไทม์นั้น
- เตือนเมื่อใช้โมเดลขนาดเล็ก (พารามิเตอร์ `<=300B`) โดยไม่มีแซนด์บ็อกซ์และเปิดใช้เครื่องมือเว็บ/เบราว์เซอร์

**Webhook/ฮุก**

เมื่อเริ่มต้น ระบบจะบันทึกคำเตือนด้านความปลอดภัยที่ไม่ทำให้การทำงานล้มเหลว และการตรวจสอบจะรายงานการนำค่าการยืนยันตัวตนด้วยข้อมูลลับที่ใช้ร่วมกันของ Gateway ที่ยังใช้งานอยู่กลับมาใช้ซ้ำใน `hooks.token` (`gateway.auth.token` / `OPENCLAW_GATEWAY_TOKEN`, `gateway.auth.password` / `OPENCLAW_GATEWAY_PASSWORD`) นอกจากนี้ยังเตือนเมื่อ:

- `hooks.token` สั้นเกินไป
- `hooks.path="/"`
- ไม่ได้ตั้งค่า `hooks.defaultSessionKey`
- `hooks.allowedAgentIds` ไม่มีข้อจำกัด
- เปิดใช้การแทนที่ `sessionKey` ของคำขอ
- เปิดใช้การแทนที่โดยไม่มี `hooks.allowedSessionKeyPrefixes`

เรียกใช้ `openclaw doctor --fix` เพื่อหมุนเวียน `hooks.token` ที่บันทึกถาวรและถูกนำกลับมาใช้ซ้ำ จากนั้นอัปเดตผู้ส่งฮุกภายนอกให้ใช้โทเค็นใหม่

**แซนด์บ็อกซ์/เครื่องมือ**

- เตือนเมื่อกำหนดค่าการตั้งค่า Docker ของแซนด์บ็อกซ์ขณะที่ปิดโหมดแซนด์บ็อกซ์
- เตือนเมื่อ `gateway.nodes.denyCommands` ใช้รายการที่มีลักษณะคล้ายแพตเทิร์นหรือไม่รู้จักซึ่งไม่มีผล (การจับคู่ใช้เฉพาะชื่อคำสั่ง Node แบบตรงกันทุกประการ ไม่ใช่การกรองข้อความเชลล์)
- เตือนเมื่อ `gateway.nodes.allowCommands` เปิดใช้คำสั่ง Node ที่เป็นอันตรายอย่างชัดเจน
- เตือนเมื่อโปรไฟล์เครื่องมือของเอเจนต์แทนที่ `tools.profile="minimal"` ส่วนกลาง
- เตือนเมื่อปิดใช้เครื่องมือเขียน/แก้ไข แต่ยังคงใช้ `exec` ได้โดยไม่มีขอบเขตระบบไฟล์ของแซนด์บ็อกซ์ที่จำกัดการทำงาน
- เตือนเมื่อ DM หรือกลุ่มแบบเปิดเปิดให้เข้าถึงเครื่องมือรันไทม์/ระบบไฟล์โดยไม่มีตัวป้องกันแซนด์บ็อกซ์/เวิร์กสเปซ
- เตือนเมื่อเครื่องมือของ Plugin ที่ติดตั้งไว้อาจเข้าถึงได้ภายใต้นโยบายเครื่องมือแบบผ่อนปรน

**เบราว์เซอร์ในแซนด์บ็อกซ์**

- เตือนเมื่อเบราว์เซอร์ในแซนด์บ็อกซ์ใช้เครือข่าย Docker `bridge` โดยไม่มี `sandbox.browser.cdpSourceRange`
- รายงานโหมดเครือข่าย Docker ของแซนด์บ็อกซ์ที่เป็นอันตราย รวมถึงการเข้าร่วมเนมสเปซ `host` และ `container:*`
- เตือนเมื่อคอนเทนเนอร์ Docker ของเบราว์เซอร์ในแซนด์บ็อกซ์ที่มีอยู่มีป้ายกำกับแฮชที่ขาดหาย/ล้าสมัย (เช่น คอนเทนเนอร์ก่อนการย้ายข้อมูลที่ไม่มี `openclaw.browserConfigEpoch`) และแนะนำ `openclaw sandbox recreate --browser --all`

**เครือข่าย/การค้นหา**

- รายงาน `gateway.allowRealIpFallback=true` (ความเสี่ยงจากการปลอมแปลงส่วนหัวหากกำหนดค่าพร็อกซีไม่ถูกต้อง)
- รายงาน `discovery.mdns.mode="full"` (การรั่วไหลของข้อมูลเมตาผ่านระเบียน TXT ของ mDNS)
- เตือนเมื่อ `gateway.auth.mode="none"` ทำให้เข้าถึง API HTTP ของ Gateway ได้โดยไม่มีข้อมูลลับที่ใช้ร่วมกัน (`/tools/invoke` รวมถึงปลายทาง `/v1/*` ใดๆ ที่เปิดใช้)

**Plugin/ช่องทาง**

- เตือนเมื่อระเบียนการติดตั้ง Plugin/ฮุกที่ใช้ npm ไม่ได้ตรึงเวอร์ชัน ไม่มีข้อมูลเมตาความสมบูรณ์ หรือแตกต่างจากเวอร์ชันแพ็กเกจที่ติดตั้งอยู่ในปัจจุบัน
- เตือนเมื่อรายการอนุญาตของช่องทางอาศัยชื่อ/อีเมล/แท็กที่เปลี่ยนแปลงได้แทน ID ที่เสถียร (Discord, Slack, Google Chat, Microsoft Teams, Mattermost และขอบเขต IRC ตามกรณีที่เกี่ยวข้อง)

การตั้งค่าที่ขึ้นต้นด้วย `dangerous`/`dangerously` เป็นการแทนที่ฉุกเฉินโดยผู้ดำเนินการอย่างชัดเจน การเปิดใช้รายการใดรายการหนึ่งไม่ถือเป็นรายงานช่องโหว่ด้านความปลอดภัยด้วยตัวมันเอง สำหรับรายการพารามิเตอร์อันตรายทั้งหมด โปรดดู "สรุปแฟล็กที่ไม่ปลอดภัยหรือเป็นอันตราย" ใน [ความปลอดภัย](/th/gateway/security)

## ลักษณะการทำงานของ SecretRef

`security audit` จะแก้ไข SecretRef ที่รองรับในโหมดอ่านอย่างเดียวสำหรับเส้นทางเป้าหมาย หาก SecretRef ใช้งานไม่ได้ในเส้นทางคำสั่งปัจจุบัน การตรวจสอบจะทำงานต่อและรายงาน `secretDiagnostics` แทนที่จะหยุดทำงาน `--token` และ `--password` จะแทนที่เฉพาะการยืนยันตัวตนสำหรับการตรวจสอบเชิงลึกในการเรียกใช้คำสั่งครั้งนั้น โดยจะไม่เขียนการกำหนดค่าหรือการแมป SecretRef ใหม่

## การระงับ

ยอมรับผลการตรวจพบที่คงอยู่โดยเจตนาด้วย `security.audit.suppressions` การระงับแต่ละรายการจะจับคู่กับ `checkId` แบบตรงกันทุกประการ และสามารถจำกัดให้แคบลงด้วยสตริงย่อย `titleIncludes` และ/หรือ `detailIncludes` ที่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่:

```json
{
  "security": {
    "audit": {
      "suppressions": [
        {
          "checkId": "plugins.tools_reachable_permissive_policy",
          "detailIncludes": "Enabled extension plugins: gbrain",
          "reason": "trusted local operator plugin"
        }
      ]
    }
  }
}
```

ผลการตรวจพบที่ถูกระงับจะถูกนำออกจากรายการ `summary` และ `findings` ที่ใช้งานอยู่ เอาต์พุต JSON จะเก็บรายการเหล่านั้นไว้ภายใต้ `suppressedFindings` เพื่อให้ตรวจสอบย้อนหลังได้ เมื่อกำหนดค่าการระงับ เอาต์พุตที่ใช้งานอยู่จะยังคงแสดงผลการตรวจพบข้อมูล `security.audit.suppressions.active` ที่ไม่สามารถระงับได้ เพื่อให้ผู้อ่านทราบว่าการตรวจสอบถูกกรอง แฟล็กการกำหนดค่าที่เป็นอันตรายจะแสดงเป็นหนึ่งแฟล็กต่อหนึ่งผลการตรวจพบ ดังนั้นการยอมรับแฟล็กอันตรายหนึ่งรายการจะไม่ซ่อนแฟล็กอื่นที่เปิดใช้และใช้ checkId `config.insecure_or_dangerous_flags` เดียวกัน

เนื่องจากการระงับสามารถซ่อนความเสี่ยงที่คงอยู่ การเพิ่มหรือนำรายการเหล่านี้ออกผ่านคำสั่งเชลล์ที่เอเจนต์เรียกใช้จึงต้องได้รับการอนุมัติการดำเนินการ เว้นแต่การดำเนินการนั้นกำลังทำงานด้วย `security="full"` และ `ask="off"` อยู่แล้วสำหรับระบบอัตโนมัติภายในเครื่องที่เชื่อถือได้

## เอาต์พุต JSON

```bash
openclaw security audit --json | jq '.summary'
openclaw security audit --deep --json | jq '.findings[] | select(.severity=="critical") | .checkId'
```

เมื่อใช้ `--fix --json` เอาต์พุตจะรวมทั้งการดำเนินการแก้ไขและรายงานสุดท้าย:

```bash
openclaw security audit --fix --json | jq '{fix: .fix.ok, summary: .report.summary}'
```

## สิ่งที่ `--fix` เปลี่ยนแปลง

ใช้การแก้ไขที่ปลอดภัยและให้ผลลัพธ์ที่แน่นอน:

- เปลี่ยน `groupPolicy="open"` ที่พบบ่อยเป็น `groupPolicy="allowlist"` (รวมถึงรูปแบบบัญชีในช่องทางที่รองรับ)
- เมื่อนโยบายกลุ่ม WhatsApp เปลี่ยนเป็น `allowlist` จะเติมค่าเริ่มต้นให้ `groupAllowFrom` จากไฟล์ `allowFrom` ที่จัดเก็บไว้ หากมีรายการดังกล่าวและการกำหนดค่ายังไม่ได้ระบุ `allowFrom`
- ตั้งค่า `logging.redactSensitive` จาก `"off"` เป็น `"tools"`
- ปรับสิทธิ์ของสถานะ/การกำหนดค่าและไฟล์สำคัญที่ละเอียดอ่อนทั่วไปให้เข้มงวดยิ่งขึ้น (`credentials/*.json`, `auth-profiles.json`, `openclaw-agent.sqlite` และอาร์ติแฟกต์เซสชันรุ่นเก่า)
- ปรับสิทธิ์ของไฟล์รวมการกำหนดค่าที่อ้างอิงจาก `openclaw.json` ให้เข้มงวดยิ่งขึ้นด้วย
- ใช้ `chmod` บนโฮสต์ POSIX และการรีเซ็ต `icacls` บน Windows

`--fix` **ไม่**:

- หมุนเวียนโทเค็น/รหัสผ่าน/คีย์ API
- ปิดใช้เครื่องมือ (`gateway`, `cron`, `exec` เป็นต้น)
- เปลี่ยนตัวเลือกการผูก/การยืนยันตัวตน/การเปิดเผยต่อเครือข่ายของ Gateway
- นำ Plugin/Skills ออกหรือเขียนใหม่

## ที่เกี่ยวข้อง

- [ข้อมูลอ้างอิง CLI](/th/cli)
- [การตรวจสอบความปลอดภัย](/th/gateway/security)
