openclaw security

보안 도구 (감사 + 선택적 수정).

관련 문서:

감사

openclaw security audit
openclaw security audit --deep
openclaw security audit --fix
openclaw security audit --json

감사는 여러 DM 발신자가 메인 세션을 공유할 때 경고하고 보안 DM 모드를 권장합니다: 공유 수신함에 대해 session.dmScope="per-channel-peer" (또는 다중 계정 채널의 경우 per-account-channel-peer). 이는 협업/공유 수신함 강화를 위한 것입니다. 서로 신뢰하지 않거나 적대적인 운영자가 공유하는 단일 게이트웨이는 권장되지 않습니다. 별도의 게이트웨이(또는 별도의 OS 사용자/호스트)로 신뢰 경계를 분리하세요. 또한 구성이 공유 사용자 수신을 시사하는 경우(예: 개방형 DM/그룹 정책, 구성된 그룹 대상, 와일드카드 발신자 규칙) security.trust_model.multi_user_heuristic를 발생시키며, OpenClaw가 기본적으로 개인 비서 신뢰 모델임을 알려줍니다. 의도적인 공유 사용자 설정의 경우, 감사 안내에 따라 모든 세션을 샌드박스하고, 파일시스템 접근을 작업 공간 범위로 유지하며, 개인/비공개 ID나 인증 정보를 해당 런타임에서 제외하세요. 소형 모델(<=300B)이 샌드박싱 없이 웹/브라우저 도구가 활성화된 상태로 사용될 때도 경고합니다. 웹훅 수신의 경우, hooks.defaultSessionKey가 설정되지 않은 경우, 요청 sessionKey 재정의가 활성화된 경우, 그리고 hooks.allowedSessionKeyPrefixes 없이 재정의가 활성화된 경우 경고합니다. 또한 샌드박스 모드가 꺼져 있는 상태에서 샌드박스 Docker 설정이 구성된 경우, gateway.nodes.denyCommands에 비효과적인 패턴/알 수 없는 항목이 사용된 경우(셸 텍스트 필터링이 아닌 정확한 노드 명령 이름 매칭만 해당), gateway.nodes.allowCommands가 위험한 노드 명령을 명시적으로 활성화한 경우, 전역 tools.profile="minimal"이 에이전트 도구 프로필로 재정의된 경우, 개방형 그룹이 샌드박스/작업 공간 보호 없이 런타임/파일시스템 도구를 노출하는 경우, 그리고 허용적인 도구 정책에서 설치된 확장 플러그인 도구에 접근할 수 있는 경우에도 경고합니다. gateway.allowRealIpFallback=true (프록시 설정 오류 시 헤더 스푸핑 위험) 및 discovery.mdns.mode="full" (mDNS TXT 레코드를 통한 메타데이터 유출)도 플래그합니다. 샌드박스 브라우저가 sandbox.browser.cdpSourceRange 없이 Docker bridge 네트워크를 사용하는 경우에도 경고합니다. hostcontainer:* 네임스페이스 조인을 포함한 위험한 샌드박스 Docker 네트워크 모드도 플래그합니다. 기존 샌드박스 브라우저 Docker 컨테이너에 누락/오래된 해시 레이블이 있는 경우(예: openclaw.browserConfigEpoch가 없는 마이그레이션 전 컨테이너) 경고하고 openclaw sandbox recreate --browser --all을 권장합니다. npm 기반 플러그인/훅 설치 레코드가 고정되지 않았거나, 무결성 메타데이터가 누락되었거나, 현재 설치된 패키지 버전과 차이가 있는 경우에도 경고합니다. 채널 허용 목록이 안정적인 ID 대신 변경 가능한 이름/이메일/태그에 의존하는 경우 경고합니다 (Discord, Slack, Google Chat, MS Teams, Mattermost, IRC 범위 해당). gateway.auth.mode="none"으로 게이트웨이 HTTP API가 공유 시크릿 없이 접근 가능한 경우 경고합니다 (/tools/invoke 및 활성화된 모든 /v1/* 엔드포인트). dangerous/dangerously 접두사가 붙은 설정은 명시적인 비상용 운영자 재정의입니다. 하나를 활성화하는 것 자체가 보안 취약점 보고는 아닙니다. 전체 dangerous 매개변수 목록은 Security의 “Insecure or dangerous flags summary” 섹션을 참조하세요.

JSON 출력

CI/정책 검사에 --json을 사용합니다:

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

--fix--json을 함께 사용하면 수정 작업과 최종 보고서가 모두 출력됩니다:

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

--fix가 변경하는 항목

--fix는 안전하고 결정론적인 수정을 적용합니다:

  • 일반적인 groupPolicy="open"groupPolicy="allowlist"로 전환 (지원되는 채널의 계정 변형 포함)
  • logging.redactSensitive"off"에서 "tools"로 설정
  • 상태/설정 및 일반적인 민감한 파일(credentials/*.json, auth-profiles.json, sessions.json, 세션 *.jsonl)의 권한 강화

--fix가 하지 않는 항목:

  • 토큰/비밀번호/API 키 교체
  • 도구 비활성화 (gateway, cron, exec 등)
  • 게이트웨이 바인드/인증/네트워크 노출 선택 변경
  • 플러그인/스킬 제거 또는 재작성