openclaw security
Công cụ bảo mật: kiểm tra cùng các bản sửa lỗi an toàn tùy chọn. Liên quan: Bảo mật.
Chế độ kiểm tra
Lệnhsecurity audit thông thường vẫn sử dụng đường dẫn cấu hình/hệ thống tệp chỉ đọc, không tải runtime: lệnh này không phát hiện các bộ thu thập kiểm tra bảo mật của runtime Plugin, nên các lần kiểm tra thường lệ không tải runtime của mọi Plugin đã cài đặt. --deep bổ sung các phép thăm dò Gateway đang hoạt động theo khả năng tốt nhất và các bộ thu thập kiểm tra bảo mật do Plugin sở hữu (các trình gọi nội bộ tường minh cũng có thể chọn dùng các bộ thu thập đó khi đã có phạm vi runtime phù hợp).
Nếu xác thực bằng mật khẩu của Gateway chỉ được cung cấp khi khởi động, hãy truyền cùng giá trị đó bằng --auth password --password <password> để quá trình kiểm tra có thể đối chiếu với hooks.token.
Nội dung kiểm tra
Mô hình DM/tin cậy- Cảnh báo khi nhiều người gửi DM dùng chung phiên chính và đề xuất chế độ DM an toàn:
session.dmScope="per-channel-peer"(hoặcper-account-channel-peerđối với các kênh nhiều tài khoản) cho hộp thư đến dùng chung. Đây là biện pháp tăng cường bảo mật cho môi trường hợp tác/hộp thư đến dùng chung, không phải sự cô lập dành cho các bên vận hành không tin cậy lẫn nhau; với trường hợp đó, hãy phân tách ranh giới tin cậy bằng các Gateway riêng biệt (hoặc người dùng hệ điều hành/máy chủ riêng biệt). - Phát
security.trust_model.multi_user_heuristickhi cấu hình cho thấy khả năng có đầu vào từ nhiều người dùng dùng chung (ví dụ: chính sách DM/nhóm mở, đích nhóm đã cấu hình hoặc quy tắc người gửi dùng ký tự đại diện) — mô hình tin cậy mặc định của OpenClaw là trợ lý cá nhân (một bên vận hành), không phải cơ chế cô lập nhiều bên thuê trong môi trường đối địch. Đối với các thiết lập nhiều người dùng dùng chung có chủ đích: hãy đặt mọi phiên trong sandbox, giới hạn quyền truy cập hệ thống tệp trong phạm vi không gian làm việc và không đưa danh tính hoặc thông tin xác thực cá nhân/riêng tư vào runtime đó. - Cảnh báo khi dùng các mô hình nhỏ (tham số
<=300B) mà không có sandbox, đồng thời bật các công cụ web/trình duyệt.
hooks.token tái sử dụng các giá trị xác thực bằng bí mật dùng chung đang hoạt động của Gateway (gateway.auth.token / OPENCLAW_GATEWAY_TOKEN, gateway.auth.password / OPENCLAW_GATEWAY_PASSWORD). Đồng thời cảnh báo khi:
hooks.tokenquá ngắnhooks.path="/"hooks.defaultSessionKeychưa được đặthooks.allowedAgentIdskhông bị giới hạn- các ghi đè
sessionKeycủa yêu cầu được bật - các ghi đè được bật mà không có
hooks.allowedSessionKeyPrefixes
openclaw doctor --fix để xoay vòng một hooks.token được lưu bền đã bị tái sử dụng, sau đó cập nhật các bên gửi hook bên ngoài để sử dụng token mới.
Sandbox/công cụ
- Cảnh báo khi đã cấu hình cài đặt Docker cho sandbox nhưng chế độ sandbox đang tắt.
- Cảnh báo khi
gateway.nodes.denyCommandssử dụng các mục dạng mẫu/không xác định không có hiệu lực (chỉ khớp chính xác tên lệnh Node, không lọc văn bản shell). - Cảnh báo khi
gateway.nodes.allowCommandsbật tường minh các lệnh Node nguy hiểm. - Cảnh báo khi
tools.profile="minimal"toàn cục bị các hồ sơ công cụ của tác nhân ghi đè. - Cảnh báo khi các công cụ ghi/chỉnh sửa bị tắt nhưng
execvẫn khả dụng mà không có ranh giới hệ thống tệp sandbox để giới hạn. - Cảnh báo khi DM hoặc nhóm mở làm lộ các công cụ runtime/hệ thống tệp mà không có biện pháp bảo vệ bằng sandbox/không gian làm việc.
- Cảnh báo khi các công cụ của Plugin đã cài đặt có thể truy cập được theo chính sách công cụ cho phép rộng rãi.
- Cảnh báo khi trình duyệt sandbox sử dụng mạng Docker
bridgemà không cósandbox.browser.cdpSourceRange. - Gắn cờ các chế độ mạng Docker nguy hiểm của sandbox, bao gồm việc tham gia không gian tên
hostvàcontainer:*. - Cảnh báo khi các container Docker hiện có của trình duyệt sandbox thiếu hoặc có nhãn hàm băm lỗi thời (ví dụ: các container trước khi di chuyển thiếu
openclaw.browserConfigEpoch) và đề xuấtopenclaw sandbox recreate --browser --all.
- Gắn cờ
gateway.allowRealIpFallback=true(nguy cơ giả mạo tiêu đề nếu proxy bị cấu hình sai). - Gắn cờ
discovery.mdns.mode="full"(rò rỉ siêu dữ liệu qua bản ghi TXT mDNS). - Cảnh báo khi
gateway.auth.mode="none"khiến các API HTTP của Gateway có thể truy cập mà không cần bí mật dùng chung (/tools/invokecùng mọi điểm cuối/v1/*đã bật).
- Cảnh báo khi các bản ghi cài đặt Plugin/hook dựa trên npm không được ghim phiên bản, thiếu siêu dữ liệu toàn vẹn hoặc sai lệch so với phiên bản gói hiện được cài đặt.
- Cảnh báo khi danh sách cho phép của kênh dựa vào tên/email/thẻ có thể thay đổi thay vì ID ổn định (Discord, Slack, Google Chat, Microsoft Teams, Mattermost và phạm vi IRC nếu áp dụng).
dangerous/dangerously là các ghi đè khẩn cấp tường minh của bên vận hành; việc bật một cài đặt như vậy tự nó không cấu thành báo cáo lỗ hổng bảo mật. Để xem toàn bộ danh mục tham số nguy hiểm, hãy xem “Tóm tắt cờ không an toàn hoặc nguy hiểm” trong Bảo mật.
Hành vi của SecretRef
security audit phân giải các SecretRef được hỗ trợ ở chế độ chỉ đọc cho những đường dẫn đích. Nếu một SecretRef không khả dụng trong đường dẫn lệnh hiện tại, quá trình kiểm tra vẫn tiếp tục và báo cáo secretDiagnostics thay vì gặp sự cố. --token và --password chỉ ghi đè xác thực thăm dò sâu cho lần gọi lệnh đó; chúng không ghi lại cấu hình hoặc ánh xạ SecretRef.
Loại trừ cảnh báo
Chấp nhận các phát hiện thường trực có chủ đích bằngsecurity.audit.suppressions. Mỗi quy tắc loại trừ khớp với một checkId chính xác và có thể được thu hẹp bằng các chuỗi con titleIncludes và/hoặc detailIncludes không phân biệt chữ hoa chữ thường:
summary và findings đang hoạt động. Đầu ra JSON giữ chúng trong suppressedFindings để phục vụ khả năng kiểm tra. Khi đã cấu hình quy tắc loại trừ, đầu ra đang hoạt động cũng giữ một phát hiện thông tin security.audit.suppressions.active không thể loại trừ để người đọc biết rằng kết quả kiểm tra đã được lọc. Các cờ cấu hình nguy hiểm được phát riêng từng cờ dưới dạng một phát hiện, vì vậy việc chấp nhận một cờ nguy hiểm không che giấu các cờ khác đang bật có cùng checkId config.insecure_or_dangerous_flags.
Vì các quy tắc loại trừ có thể che giấu rủi ro thường trực, việc thêm hoặc xóa chúng thông qua các lệnh shell do tác nhân chạy cần được phê duyệt thực thi, trừ khi quá trình thực thi đã chạy với security="full" và ask="off" dành cho hoạt động tự động hóa cục bộ đáng tin cậy.
Đầu ra JSON
--fix --json, đầu ra bao gồm cả hành động sửa lỗi và báo cáo cuối cùng:
Những gì --fix thay đổi
Áp dụng các biện pháp khắc phục an toàn, mang tính tất định:
- chuyển các
groupPolicy="open"phổ biến thànhgroupPolicy="allowlist"(bao gồm các biến thể tài khoản trong những kênh được hỗ trợ) - khi chính sách nhóm WhatsApp chuyển thành
allowlist, điềngroupAllowFromtừ tệpallowFromđã lưu nếu danh sách đó tồn tại và cấu hình chưa định nghĩaallowFrom - đặt
logging.redactSensitivetừ"off"thành"tools" - siết chặt quyền đối với trạng thái/cấu hình và các tệp nhạy cảm phổ biến (
credentials/*.json,auth-profiles.json,openclaw-agent.sqlitevà các thành phần phiên cũ) - đồng thời siết chặt các tệp cấu hình được bao gồm có tham chiếu từ
openclaw.json - sử dụng
chmodtrên máy chủ POSIX và đặt lạiicaclstrên Windows
--fix không:
- xoay vòng token/mật khẩu/khóa API
- tắt công cụ (
gateway,cron,exec, v.v.) - thay đổi các lựa chọn về liên kết/xác thực/phạm vi tiếp xúc mạng của Gateway
- xóa hoặc ghi lại Plugin/Skills