---
read_when:
    - '`openclaw security audit` 출력에서 특정 `checkId`을 보았고 그 의미를 알고 싶습니다.'
    - 특정 발견 항목에 대한 수정 키/경로가 필요합니다.
    - 보안 감사 실행 전반의 심각도를 분류하고 있습니다.
summary: openclaw security audit가 내보내는 checkId의 참조 카탈로그
title: 보안 감사 검사
x-i18n:
    generated_at: "2026-04-23T14:03:39Z"
    model: gpt-5.4
    provider: openai
    source_hash: b53a8dc798ecc8c37be43758b741c68772b10c92323ab3d26592d7b3cc2c795e
    source_path: gateway/security/audit-checks.md
    workflow: 15
---

# 보안 감사 검사

`openclaw security audit`는 `checkId`를 키로 하는 구조화된 발견 항목을 출력합니다. 이 페이지는 해당 ID의 참조 카탈로그입니다. 상위 수준의 위협 모델과 보안 강화 지침은 [Security](/ko/gateway/security)를 참조하세요.

실제 배포에서 가장 자주 보게 될 가능성이 높은 신호성 높은 `checkId` 값들(전체 목록은 아님):

| `checkId`                                                     | 심각도        | 중요한 이유                                                                          | 기본 수정 키/경로                                                                                   | 자동 수정 |
| ------------------------------------------------------------- | ------------- | ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------- | -------- |
| `fs.state_dir.perms_world_writable`                           | critical      | 다른 사용자/프로세스가 전체 OpenClaw 상태를 수정할 수 있음                          | `~/.openclaw`의 파일시스템 권한                                                                      | yes      |
| `fs.state_dir.perms_group_writable`                           | warn          | 같은 그룹의 사용자가 전체 OpenClaw 상태를 수정할 수 있음                            | `~/.openclaw`의 파일시스템 권한                                                                      | yes      |
| `fs.state_dir.perms_readable`                                 | warn          | 상태 디렉터리를 다른 사용자가 읽을 수 있음                                           | `~/.openclaw`의 파일시스템 권한                                                                      | yes      |
| `fs.state_dir.symlink`                                        | warn          | 상태 디렉터리 대상이 또 다른 신뢰 경계가 됨                                          | 상태 디렉터리 파일시스템 레이아웃                                                                    | no       |
| `fs.config.perms_writable`                                    | critical      | 다른 사용자가 인증/도구 정책/config를 변경할 수 있음                                | `~/.openclaw/openclaw.json`의 파일시스템 권한                                                        | yes      |
| `fs.config.symlink`                                           | warn          | 심볼릭 링크된 config 파일은 쓰기에 지원되지 않으며 또 다른 신뢰 경계를 추가함       | 일반 config 파일로 교체하거나 `OPENCLAW_CONFIG_PATH`를 실제 파일로 지정                             | no       |
| `fs.config.perms_group_readable`                              | warn          | 같은 그룹의 사용자가 config 토큰/설정을 읽을 수 있음                                | config 파일의 파일시스템 권한                                                                        | yes      |
| `fs.config.perms_world_readable`                              | critical      | config가 토큰/설정을 노출할 수 있음                                                  | config 파일의 파일시스템 권한                                                                        | yes      |
| `fs.config_include.perms_writable`                            | critical      | config include 파일을 다른 사용자가 수정할 수 있음                                   | `openclaw.json`에서 참조하는 include 파일의 권한                                                    | yes      |
| `fs.config_include.perms_group_readable`                      | warn          | 같은 그룹의 사용자가 포함된 비밀/설정을 읽을 수 있음                                 | `openclaw.json`에서 참조하는 include 파일의 권한                                                    | yes      |
| `fs.config_include.perms_world_readable`                      | critical      | 포함된 비밀/설정이 모든 사용자에게 읽기 가능함                                       | `openclaw.json`에서 참조하는 include 파일의 권한                                                    | yes      |
| `fs.auth_profiles.perms_writable`                             | critical      | 다른 사용자가 저장된 모델 자격 증명을 주입하거나 교체할 수 있음                      | `agents/<agentId>/agent/auth-profiles.json` 권한                                                    | yes      |
| `fs.auth_profiles.perms_readable`                             | warn          | 다른 사용자가 API 키와 OAuth 토큰을 읽을 수 있음                                     | `agents/<agentId>/agent/auth-profiles.json` 권한                                                    | yes      |
| `fs.credentials_dir.perms_writable`                           | critical      | 다른 사용자가 채널 페어링/자격 증명 상태를 수정할 수 있음                            | `~/.openclaw/credentials`의 파일시스템 권한                                                          | yes      |
| `fs.credentials_dir.perms_readable`                           | warn          | 다른 사용자가 채널 자격 증명 상태를 읽을 수 있음                                     | `~/.openclaw/credentials`의 파일시스템 권한                                                          | yes      |
| `fs.sessions_store.perms_readable`                            | warn          | 다른 사용자가 세션 transcript/메타데이터를 읽을 수 있음                              | 세션 저장소 권한                                                                                     | yes      |
| `fs.log_file.perms_readable`                                  | warn          | 다른 사용자가 마스킹되었지만 여전히 민감한 로그를 읽을 수 있음                        | gateway 로그 파일 권한                                                                               | yes      |
| `fs.synced_dir`                                               | warn          | iCloud/Dropbox/Drive의 상태/config는 토큰/transcript 노출 범위를 넓힘                | config/상태를 동기화 폴더 밖으로 이동                                                                | no       |
| `gateway.bind_no_auth`                                        | critical      | 공유 비밀 없이 원격 바인딩됨                                                         | `gateway.bind`, `gateway.auth.*`                                                                     | no       |
| `gateway.loopback_no_auth`                                    | critical      | reverse-proxy된 loopback이 인증 없이 노출될 수 있음                                  | `gateway.auth.*`, 프록시 설정                                                                        | no       |
| `gateway.trusted_proxies_missing`                             | warn          | reverse-proxy 헤더는 존재하지만 신뢰되지 않음                                         | `gateway.trustedProxies`                                                                             | no       |
| `gateway.http.no_auth`                                        | warn/critical | `auth.mode="none"`일 때 Gateway HTTP API에 도달 가능함                               | `gateway.auth.mode`, `gateway.http.endpoints.*`                                                      | no       |
| `gateway.http.session_key_override_enabled`                   | info          | HTTP API 호출자가 `sessionKey`를 재정의할 수 있음                                     | `gateway.http.allowSessionKeyOverride`                                                               | no       |
| `gateway.tools_invoke_http.dangerous_allow`                   | warn/critical | HTTP API를 통해 위험한 도구를 다시 활성화함                                          | `gateway.tools.allow`                                                                                | no       |
| `gateway.nodes.allow_commands_dangerous`                      | warn/critical | 고위험 Node 명령(camera/screen/contacts/calendar/SMS)을 활성화함                     | `gateway.nodes.allowCommands`                                                                        | no       |
| `gateway.nodes.deny_commands_ineffective`                     | warn          | 패턴 형태의 deny 항목이 셸 텍스트나 그룹과 일치하지 않음                             | `gateway.nodes.denyCommands`                                                                         | no       |
| `gateway.tailscale_funnel`                                    | critical      | 퍼블릭 인터넷에 노출됨                                                               | `gateway.tailscale.mode`                                                                             | no       |
| `gateway.tailscale_serve`                                     | info          | Serve를 통해 Tailnet 노출이 활성화됨                                                 | `gateway.tailscale.mode`                                                                             | no       |
| `gateway.control_ui.allowed_origins_required`                 | critical      | loopback이 아닌 Control UI에서 명시적 브라우저 origin 허용 목록이 없음               | `gateway.controlUi.allowedOrigins`                                                                   | no       |
| `gateway.control_ui.allowed_origins_wildcard`                 | warn/critical | `allowedOrigins=["*"]`가 브라우저 origin 허용 목록 적용을 비활성화함                 | `gateway.controlUi.allowedOrigins`                                                                   | no       |
| `gateway.control_ui.host_header_origin_fallback`              | warn/critical | Host 헤더 origin fallback을 활성화함(DNS rebinding 보안 강화 약화)                   | `gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback`                                         | no       |
| `gateway.control_ui.insecure_auth`                            | warn          | 비보안 인증 호환성 토글이 활성화됨                                                   | `gateway.controlUi.allowInsecureAuth`                                                                | no       |
| `gateway.control_ui.device_auth_disabled`                     | critical      | 디바이스 신원 확인을 비활성화함                                                      | `gateway.controlUi.dangerouslyDisableDeviceAuth`                                                     | no       |
| `gateway.real_ip_fallback_enabled`                            | warn/critical | `X-Real-IP` fallback 신뢰는 프록시 오구성 시 소스 IP 스푸핑을 가능하게 할 수 있음    | `gateway.allowRealIpFallback`, `gateway.trustedProxies`                                              | no       |
| `gateway.token_too_short`                                     | warn          | 짧은 공유 토큰은 무차별 대입 공격이 더 쉬움                                          | `gateway.auth.token`                                                                                 | no       |
| `gateway.auth_no_rate_limit`                                  | warn          | 노출된 인증에 속도 제한이 없으면 무차별 대입 위험이 증가함                           | `gateway.auth.rateLimit`                                                                             | no       |
| `gateway.trusted_proxy_auth`                                  | critical      | 이제 프록시 신원이 인증 경계가 됨                                                    | `gateway.auth.mode="trusted-proxy"`                                                                  | no       |
| `gateway.trusted_proxy_no_proxies`                            | critical      | 신뢰된 프록시 IP 없이 trusted-proxy 인증을 사용하면 안전하지 않음                    | `gateway.trustedProxies`                                                                             | no       |
| `gateway.trusted_proxy_no_user_header`                        | critical      | trusted-proxy 인증이 사용자 신원을 안전하게 확인할 수 없음                           | `gateway.auth.trustedProxy.userHeader`                                                               | no       |
| `gateway.trusted_proxy_no_allowlist`                          | warn          | trusted-proxy 인증이 인증된 모든 업스트림 사용자를 허용함                            | `gateway.auth.trustedProxy.allowUsers`                                                               | no       |
| `checkId`                                                     | 심각도        | 중요한 이유                                                                          | 기본 수정 키/경로                                                                                   | 자동 수정 |
| ------------------------------------------------------------- | ------------- | ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------- | -------- |
| `gateway.probe_auth_secretref_unavailable`                    | warn          | 이 명령 경로에서 Deep probe가 인증 SecretRef를 해석하지 못했음                       | deep-probe 인증 소스 / SecretRef 가용성                                                              | no       |
| `gateway.probe_failed`                                        | warn/critical | 라이브 Gateway probe 실패                                                            | gateway 도달 가능성/인증                                                                             | no       |
| `discovery.mdns_full_mode`                                    | warn/critical | mDNS 전체 모드가 로컬 네트워크에 `cliPath`/`sshPort` 메타데이터를 광고함            | `discovery.mdns.mode`, `gateway.bind`                                                                | no       |
| `config.insecure_or_dangerous_flags`                          | warn          | 비보안/위험한 디버그 플래그가 하나라도 활성화됨                                      | 여러 키(발견 항목 세부 정보 참조)                                                                    | no       |
| `config.secrets.gateway_password_in_config`                   | warn          | Gateway 비밀번호가 config에 직접 저장되어 있음                                       | `gateway.auth.password`                                                                              | no       |
| `config.secrets.hooks_token_in_config`                        | warn          | Hook bearer 토큰이 config에 직접 저장되어 있음                                       | `hooks.token`                                                                                        | no       |
| `hooks.token_reuse_gateway_token`                             | critical      | Hook 수신 토큰이 Gateway 인증 해제에도 사용됨                                        | `hooks.token`, `gateway.auth.token`                                                                  | no       |
| `hooks.token_too_short`                                       | warn          | Hook 수신에 대한 무차별 대입 공격이 쉬워짐                                           | `hooks.token`                                                                                        | no       |
| `hooks.default_session_key_unset`                             | warn          | Hook 에이전트 실행이 요청별 생성 세션으로 분산됨                                     | `hooks.defaultSessionKey`                                                                            | no       |
| `hooks.allowed_agent_ids_unrestricted`                        | warn/critical | 인증된 Hook 호출자가 구성된 모든 에이전트로 라우팅할 수 있음                         | `hooks.allowedAgentIds`                                                                              | no       |
| `hooks.request_session_key_enabled`                           | warn/critical | 외부 호출자가 `sessionKey`를 선택할 수 있음                                          | `hooks.allowRequestSessionKey`                                                                       | no       |
| `hooks.request_session_key_prefixes_missing`                  | warn/critical | 외부 session key 형식에 대한 제한이 없음                                             | `hooks.allowedSessionKeyPrefixes`                                                                    | no       |
| `hooks.path_root`                                             | critical      | Hook 경로가 `/`여서 수신이 충돌하거나 잘못 라우팅되기 쉬움                           | `hooks.path`                                                                                         | no       |
| `hooks.installs_unpinned_npm_specs`                           | warn          | Hook 설치 기록이 변경 불가능한 npm 스펙에 고정되어 있지 않음                         | Hook 설치 메타데이터                                                                                 | no       |
| `hooks.installs_missing_integrity`                            | warn          | Hook 설치 기록에 무결성 메타데이터가 없음                                            | Hook 설치 메타데이터                                                                                 | no       |
| `hooks.installs_version_drift`                                | warn          | Hook 설치 기록이 설치된 패키지와 어긋남                                              | Hook 설치 메타데이터                                                                                 | no       |
| `logging.redact_off`                                          | warn          | 민감한 값이 로그/상태에 노출됨                                                       | `logging.redactSensitive`                                                                            | yes      |
| `browser.control_invalid_config`                              | warn          | 브라우저 제어 config가 런타임 이전부터 잘못되어 있음                                 | `browser.*`                                                                                          | no       |
| `browser.control_no_auth`                                     | critical      | 브라우저 제어가 토큰/비밀번호 인증 없이 노출됨                                       | `gateway.auth.*`                                                                                     | no       |
| `browser.remote_cdp_http`                                     | warn          | 평문 HTTP를 통한 원격 CDP에는 전송 암호화가 없음                                     | 브라우저 프로필 `cdpUrl`                                                                             | no       |
| `browser.remote_cdp_private_host`                             | warn          | 원격 CDP가 private/internal 호스트를 대상으로 함                                     | 브라우저 프로필 `cdpUrl`, `browser.ssrfPolicy.*`                                                     | no       |
| `sandbox.docker_config_mode_off`                              | warn          | Sandbox Docker config는 존재하지만 비활성 상태임                                     | `agents.*.sandbox.mode`                                                                              | no       |
| `sandbox.bind_mount_non_absolute`                             | warn          | 상대 경로 bind mount는 예측 불가능하게 해석될 수 있음                                | `agents.*.sandbox.docker.binds[]`                                                                    | no       |
| `sandbox.dangerous_bind_mount`                                | critical      | Sandbox bind mount 대상이 차단된 시스템, 자격 증명 또는 Docker 소켓 경로임           | `agents.*.sandbox.docker.binds[]`                                                                    | no       |
| `sandbox.dangerous_network_mode`                              | critical      | Sandbox Docker 네트워크가 `host` 또는 `container:*` namespace-join 모드를 사용함     | `agents.*.sandbox.docker.network`                                                                    | no       |
| `sandbox.dangerous_seccomp_profile`                           | critical      | Sandbox seccomp 프로필이 컨테이너 격리를 약화시킴                                    | `agents.*.sandbox.docker.securityOpt`                                                                | no       |
| `sandbox.dangerous_apparmor_profile`                          | critical      | Sandbox AppArmor 프로필이 컨테이너 격리를 약화시킴                                   | `agents.*.sandbox.docker.securityOpt`                                                                | no       |
| `sandbox.browser_cdp_bridge_unrestricted`                     | warn          | Sandbox 브라우저 브리지가 소스 범위 제한 없이 노출됨                                 | `sandbox.browser.cdpSourceRange`                                                                     | no       |
| `sandbox.browser_container.non_loopback_publish`              | critical      | 기존 브라우저 컨테이너가 loopback이 아닌 인터페이스에 CDP를 게시함                   | 브라우저 sandbox 컨테이너 게시 config                                                                | no       |
| `sandbox.browser_container.hash_label_missing`                | warn          | 기존 브라우저 컨테이너가 현재 config 해시 레이블 이전 버전임                         | `openclaw sandbox recreate --browser --all`                                                          | no       |
| `sandbox.browser_container.hash_epoch_stale`                  | warn          | 기존 브라우저 컨테이너가 현재 브라우저 config epoch 이전 버전임                      | `openclaw sandbox recreate --browser --all`                                                          | no       |
| `tools.exec.host_sandbox_no_sandbox_defaults`                 | warn          | sandbox가 꺼져 있으면 `exec host=sandbox`는 실패 시 닫힌 상태로 동작함               | `tools.exec.host`, `agents.defaults.sandbox.mode`                                                    | no       |
| `tools.exec.host_sandbox_no_sandbox_agents`                   | warn          | sandbox가 꺼져 있으면 에이전트별 `exec host=sandbox`는 실패 시 닫힌 상태로 동작함    | `agents.list[].tools.exec.host`, `agents.list[].sandbox.mode`                                        | no       |
| `tools.exec.security_full_configured`                         | warn/critical | 호스트 exec가 `security="full"`로 실행 중임                                          | `tools.exec.security`, `agents.list[].tools.exec.security`                                           | no       |
| `tools.exec.auto_allow_skills_enabled`                        | warn          | exec 승인이 skill bin을 암묵적으로 신뢰함                                            | `~/.openclaw/exec-approvals.json`                                                                    | no       |
| `tools.exec.allowlist_interpreter_without_strict_inline_eval` | warn          | 인터프리터 허용 목록이 강제 재승인 없이 인라인 eval을 허용함                         | `tools.exec.strictInlineEval`, `agents.list[].tools.exec.strictInlineEval`, exec approvals allowlist | no       |
| `tools.exec.safe_bins_interpreter_unprofiled`                 | warn          | `safeBins`의 인터프리터/런타임 bin이 명시적 프로필 없이 exec 위험을 넓힘             | `tools.exec.safeBins`, `tools.exec.safeBinProfiles`, `agents.list[].tools.exec.*`                   | no       |
| `tools.exec.safe_bins_broad_behavior`                         | warn          | `safeBins`의 광범위 동작 도구가 저위험 stdin 필터 신뢰 모델을 약화시킴               | `tools.exec.safeBins`, `agents.list[].tools.exec.safeBins`                                           | no       |
| `tools.exec.safe_bin_trusted_dirs_risky`                      | warn          | `safeBinTrustedDirs`에 변경 가능하거나 위험한 디렉터리가 포함됨                      | `tools.exec.safeBinTrustedDirs`, `agents.list[].tools.exec.safeBinTrustedDirs`                       | no       |
| `skills.workspace.symlink_escape`                             | warn          | 작업공간 `skills/**/SKILL.md`가 작업공간 루트 밖으로 해석됨(심볼릭 링크 체인 드리프트) | 작업공간 `skills/**` 파일시스템 상태                                                                 | no       |
| `plugins.extensions_no_allowlist`                             | warn          | 명시적 plugin 허용 목록 없이 Plugin이 설치됨                                         | `plugins.allowlist`                                                                                  | no       |
| `plugins.installs_unpinned_npm_specs`                         | warn          | Plugin 설치 기록이 변경 불가능한 npm 스펙에 고정되어 있지 않음                       | Plugin 설치 메타데이터                                                                               | no       |
| `checkId`                                                     | 심각도        | 중요한 이유                                                                          | 기본 수정 키/경로                                                                                   | 자동 수정 |
| ------------------------------------------------------------- | ------------- | ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------- | -------- |
| `plugins.installs_missing_integrity`                          | warn          | Plugin 설치 기록에 무결성 메타데이터가 없음                                          | Plugin 설치 메타데이터                                                                               | no       |
| `plugins.installs_version_drift`                              | warn          | Plugin 설치 기록이 설치된 패키지와 어긋남                                            | Plugin 설치 메타데이터                                                                               | no       |
| `plugins.code_safety`                                         | warn/critical | Plugin 코드 스캔에서 수상하거나 위험한 패턴이 발견됨                                 | Plugin 코드 / 설치 소스                                                                              | no       |
| `plugins.code_safety.entry_path`                              | warn          | Plugin 엔트리 경로가 숨김 위치 또는 `node_modules` 위치를 가리킴                    | Plugin manifest `entry`                                                                              | no       |
| `plugins.code_safety.entry_escape`                            | critical      | Plugin 엔트리가 Plugin 디렉터리 밖으로 벗어남                                        | Plugin manifest `entry`                                                                              | no       |
| `plugins.code_safety.scan_failed`                             | warn          | Plugin 코드 스캔을 완료할 수 없었음                                                  | Plugin 경로 / 스캔 환경                                                                              | no       |
| `skills.code_safety`                                          | warn/critical | Skill 설치 메타데이터/코드에 수상하거나 위험한 패턴이 포함됨                         | Skill 설치 소스                                                                                      | no       |
| `skills.code_safety.scan_failed`                              | warn          | Skill 코드 스캔을 완료할 수 없었음                                                   | Skill 스캔 환경                                                                                      | no       |
| `security.exposure.open_channels_with_exec`                   | warn/critical | 공유/공개 룸이 exec 활성화 에이전트에 도달할 수 있음                                 | `channels.*.dmPolicy`, `channels.*.groupPolicy`, `tools.exec.*`, `agents.list[].tools.exec.*`       | no       |
| `security.exposure.open_groups_with_elevated`                 | critical      | 공개 그룹 + 권한 상승 도구 조합은 고위험 프롬프트 인젝션 경로를 만듦                 | `channels.*.groupPolicy`, `tools.elevated.*`                                                         | no       |
| `security.exposure.open_groups_with_runtime_or_fs`            | critical/warn | 공개 그룹이 sandbox/작업공간 보호 없이 명령/파일 도구에 도달할 수 있음              | `channels.*.groupPolicy`, `tools.profile/deny`, `tools.fs.workspaceOnly`, `agents.*.sandbox.mode`   | no       |
| `security.trust_model.multi_user_heuristic`                   | warn          | config는 다중 사용자처럼 보이지만 gateway 신뢰 모델은 개인 비서 기준임               | 신뢰 경계 분리 또는 공유 사용자 보안 강화(`sandbox.mode`, tool deny/workspace 범위 지정)            | no       |
| `tools.profile_minimal_overridden`                            | warn          | 에이전트 재정의가 전역 minimal 프로필을 우회함                                       | `agents.list[].tools.profile`                                                                        | no       |
| `plugins.tools_reachable_permissive_policy`                   | warn          | 확장 도구가 완화된 컨텍스트에서 도달 가능함                                          | `tools.profile` + 도구 allow/deny                                                                    | no       |
| `models.legacy`                                               | warn          | 레거시 모델 계열이 아직 구성되어 있음                                                | 모델 선택                                                                                            | no       |
| `models.weak_tier`                                            | warn          | 구성된 모델이 현재 권장 티어보다 낮음                                                | 모델 선택                                                                                            | no       |
| `models.small_params`                                         | critical/info | 작은 모델과 비안전 도구 표면의 조합은 인젝션 위험을 높임                             | 모델 선택 + sandbox/도구 정책                                                                        | no       |
| `summary.attack_surface`                                      | info          | 인증, 채널, 도구, 노출 상태에 대한 요약 정보                                         | 여러 키(발견 항목 세부 정보 참조)                                                                    | no       |

## 관련

- [Security](/ko/gateway/security)
- [Configuration](/ko/gateway/configuration)
- [Trusted proxy auth](/ko/gateway/trusted-proxy-auth)
