Gateway
Pemeriksaan audit keamanan
openclaw security audit menghasilkan temuan terstruktur yang dikelompokkan berdasarkan checkId. Halaman ini adalah katalog referensi untuk ID tersebut. Untuk model ancaman tingkat tinggi dan panduan penguatan keamanan, lihat Keamanan.
Beberapa pemeriksaan hanya dijalankan dengan openclaw security audit --deep: pemindaian kode plugin/skill (plugins.code_safety*, skills.code_safety*) dan pemeriksaan probe Gateway langsung (gateway.probe_*). Semua pemeriksaan lain dalam tabel ini dijalankan dengan openclaw security audit biasa.
Tingkat keparahan seperti warn/critical berarti checkId yang sama dapat dihasilkan pada salah satu tingkat tersebut, bergantung pada konfigurasi (misalnya, apakah Gateway terekspos dari jarak jauh). Nilai bersinyal tinggi yang kemungkinan besar akan Anda temui dalam penerapan nyata (tidak lengkap):
checkId |
Tingkat keparahan | Mengapa ini penting | Kunci/jalur perbaikan utama | Perbaikan otomatis |
|---|---|---|---|---|
fs.state_dir.perms_world_writable |
kritis | Pengguna/proses lain dapat mengubah seluruh status OpenClaw | izin sistem berkas pada ~/.openclaw |
ya |
fs.state_dir.perms_group_writable |
peringatan | Pengguna grup dapat mengubah seluruh status OpenClaw | izin sistem berkas pada ~/.openclaw |
ya |
fs.state_dir.perms_readable |
peringatan | Direktori status dapat dibaca oleh pihak lain | izin sistem berkas pada ~/.openclaw |
ya |
fs.state_dir.symlink |
peringatan | Target direktori status menjadi batas kepercayaan lain | tata letak sistem berkas direktori status | tidak |
fs.config.perms_writable |
kritis | Pihak lain dapat mengubah kebijakan autentikasi/alat/konfigurasi | izin sistem berkas pada ~/.openclaw/openclaw.json |
ya |
fs.config.symlink |
peringatan | Berkas konfigurasi dengan symlink tidak didukung untuk penulisan dan menambah batas kepercayaan lain | ganti dengan berkas konfigurasi biasa atau arahkan OPENCLAW_CONFIG_PATH ke berkas sebenarnya |
tidak |
fs.config.perms_group_readable |
peringatan | Pengguna grup dapat membaca token/pengaturan konfigurasi | izin sistem berkas pada berkas konfigurasi | ya |
fs.config.perms_world_readable |
kritis | Konfigurasi dapat mengekspos token/pengaturan | izin sistem berkas pada berkas konfigurasi | ya |
fs.config_include.perms_writable |
kritis | Berkas penyertaan konfigurasi dapat diubah oleh pihak lain | izin berkas penyertaan yang dirujuk dari openclaw.json |
ya |
fs.config_include.perms_group_readable |
peringatan | Pengguna grup dapat membaca rahasia/pengaturan yang disertakan | izin berkas penyertaan yang dirujuk dari openclaw.json |
ya |
fs.config_include.perms_world_readable |
kritis | Rahasia/pengaturan yang disertakan dapat dibaca oleh semua pengguna | izin berkas penyertaan yang dirujuk dari openclaw.json |
ya |
fs.auth_profiles.perms_writable |
kritis | Pihak lain dapat menyisipkan atau mengganti kredensial model yang tersimpan | izin agents/<agentId>/agent/auth-profiles.json |
ya |
fs.auth_profiles.perms_readable |
peringatan | Pihak lain dapat membaca kunci API dan token OAuth | izin agents/<agentId>/agent/auth-profiles.json |
ya |
fs.credentials_dir.perms_writable |
kritis | Pihak lain dapat mengubah status pemasangan/kredensial saluran | izin sistem berkas pada ~/.openclaw/credentials |
ya |
fs.credentials_dir.perms_readable |
peringatan | Pihak lain dapat membaca status kredensial saluran | izin sistem berkas pada ~/.openclaw/credentials |
ya |
fs.sessions_store.perms_readable |
peringatan | Pihak lain dapat membaca transkrip/metadata sesi | izin penyimpanan sesi | ya |
fs.log_file.perms_readable |
peringatan | Pihak lain dapat membaca log yang telah disunting tetapi masih sensitif | izin berkas log Gateway | ya |
fs.synced_dir |
peringatan | Status/konfigurasi di iCloud/Dropbox/Drive memperluas paparan token/transkrip | pindahkan konfigurasi/status dari folder yang disinkronkan | tidak |
gateway.bind_no_auth |
kritis | Pengikatan jarak jauh tanpa rahasia bersama | gateway.bind, gateway.auth.* |
tidak |
gateway.loopback_no_auth |
kritis | local loopback yang diproksikan balik dapat menjadi tanpa autentikasi | gateway.auth.*, penyiapan proksi |
tidak |
gateway.trusted_proxies_missing |
peringatan | Header proksi balik tersedia tetapi tidak dipercaya | gateway.trustedProxies |
tidak |
gateway.http.no_auth |
peringatan/kritis | API HTTP Gateway dapat dijangkau dengan auth.mode="none" |
gateway.auth.mode, gateway.http.endpoints.*, plugins.entries.admin-http-rpc |
tidak |
gateway.http.session_key_override_enabled |
informasi | Pemanggil API HTTP dapat menimpa sessionKey |
gateway.http.allowSessionKeyOverride |
tidak |
gateway.tools_invoke_http.dangerous_allow |
peringatan/kritis | Mengaktifkan kembali alat berbahaya melalui API HTTP bagi pemanggil pemilik/admin | gateway.tools.allow |
tidak |
gateway.nodes.allow_commands_dangerous |
peringatan/kritis | Mengaktifkan perintah Node berdampak tinggi (input desktop/kamera/layar/kontak/kalender/SMS) | gateway.nodes.allowCommands |
tidak |
gateway.nodes.deny_commands_ineffective |
peringatan | Entri penolakan menyerupai pola tidak cocok dengan teks shell atau grup | gateway.nodes.denyCommands |
tidak |
gateway.tailscale_funnel |
kritis | Paparan ke internet publik | gateway.tailscale.mode |
tidak |
gateway.tailscale_serve |
informasi | Paparan tailnet diaktifkan melalui Serve | gateway.tailscale.mode |
tidak |
gateway.control_ui.allowed_origins_required |
kritis | UI Kontrol non-loopback tanpa daftar asal peramban yang diizinkan secara eksplisit | gateway.controlUi.allowedOrigins |
tidak |
gateway.control_ui.allowed_origins_wildcard |
peringatan/kritis | allowedOrigins=["*"] menonaktifkan daftar asal peramban yang diizinkan |
gateway.controlUi.allowedOrigins |
tidak |
gateway.control_ui.host_header_origin_fallback |
peringatan/kritis | Mengaktifkan fallback asal header Host (penurunan penguatan terhadap pengikatan ulang DNS) | gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback |
tidak |
gateway.control_ui.insecure_auth |
peringatan | Pengalih kompatibilitas autentikasi tidak aman diaktifkan | gateway.controlUi.allowInsecureAuth |
tidak |
gateway.control_ui.device_auth_disabled |
kritis | Menonaktifkan pemeriksaan identitas perangkat | gateway.controlUi.dangerouslyDisableDeviceAuth |
tidak |
gateway.real_ip_fallback_enabled |
peringatan/kritis | Memercayai fallback X-Real-IP dapat memungkinkan pemalsuan IP sumber melalui kesalahan konfigurasi proksi |
gateway.allowRealIpFallback, gateway.trustedProxies |
tidak |
gateway.token_too_short |
peringatan | Token bersama yang pendek lebih mudah diserang secara brute force | gateway.auth.token |
tidak |
gateway.auth_no_rate_limit |
peringatan | Autentikasi yang terekspos tanpa pembatasan laju meningkatkan risiko serangan brute force | gateway.auth.rateLimit |
tidak |
gateway.trusted_proxy_auth |
kritis | Identitas proksi kini menjadi batas autentikasi | gateway.auth.mode="trusted-proxy" |
tidak |
gateway.trusted_proxy_no_proxies |
kritis | Autentikasi proksi tepercaya tanpa IP proksi tepercaya tidak aman | gateway.trustedProxies |
tidak |
gateway.trusted_proxy_no_user_header |
kritis | Autentikasi proksi tepercaya tidak dapat menentukan identitas pengguna dengan aman | gateway.auth.trustedProxy.userHeader |
tidak |
gateway.trusted_proxy_no_allowlist |
peringatan | Autentikasi proksi tepercaya menerima setiap pengguna hulu yang terautentikasi | gateway.auth.trustedProxy.allowUsers |
tidak |
gateway.trusted_proxy_allow_loopback |
peringatan | Autentikasi proksi tepercaya menerima sumber proksi loopback yang diizinkan secara eksplisit | gateway.auth.trustedProxy.allowLoopback |
tidak |
gateway.probe_auth_secretref_unavailable |
peringatan | Pemeriksaan mendalam tidak dapat menentukan SecretRef autentikasi di jalur perintah ini | sumber autentikasi pemeriksaan mendalam / ketersediaan SecretRef | tidak |
gateway.probe_failed |
peringatan | Pemeriksaan Gateway langsung gagal (hanya --deep) |
keterjangkauan/autentikasi Gateway | tidak |
discovery.mdns_full_mode |
peringatan/kritis | Mode penuh mDNS mengiklankan metadata cliPath/sshPort di jaringan lokal |
discovery.mdns.mode, gateway.bind |
tidak |
config.insecure_or_dangerous_flags |
peringatan | Satu flag debug yang tidak aman/berbahaya diaktifkan | kunci yang disebutkan dalam detail temuan | tidak |
security.audit.suppressions.active |
info | Keluaran audit memiliki penyembunyian yang dikonfigurasi dan mungkin difilter | security.audit.suppressions |
tidak |
config.secrets.gateway_password_in_config |
peringatan | Kata sandi Gateway disimpan langsung dalam konfigurasi | gateway.auth.password |
tidak |
config.secrets.hooks_token_in_config |
peringatan | Token bearer hook disimpan langsung dalam konfigurasi | hooks.token |
tidak |
hooks.token_reuse_gateway_token |
kritis | Token masuk hook juga membuka autentikasi Gateway | hooks.token, gateway.auth.token, gateway.auth.password |
tidak |
hooks.token_too_short |
peringatan | Serangan brute force pada jalur masuk hook menjadi lebih mudah | hooks.token |
tidak |
hooks.default_session_key_unset |
peringatan | Eksekusi agen hook tersebar ke sesi per permintaan yang dibuat secara otomatis | hooks.defaultSessionKey |
tidak |
hooks.allowed_agent_ids_unrestricted |
peringatan/kritis | Pemanggil hook yang terautentikasi dapat merutekan ke agen mana pun yang dikonfigurasi | hooks.allowedAgentIds |
tidak |
hooks.request_session_key_enabled |
peringatan/kritis | Pemanggil eksternal dapat memilih sessionKey | hooks.allowRequestSessionKey |
tidak |
hooks.request_session_key_prefixes_missing |
peringatan/kritis | Tidak ada batasan pada bentuk kunci sesi eksternal | hooks.allowedSessionKeyPrefixes |
tidak |
hooks.path_root |
kritis | Jalur hook adalah /, sehingga jalur masuk lebih mudah bertabrakan atau salah rute |
hooks.path |
tidak |
hooks.installs_unpinned_npm_specs |
peringatan | Catatan instalasi hook tidak disematkan ke spesifikasi npm yang tidak dapat diubah | metadata instalasi hook | tidak |
hooks.installs_missing_integrity |
peringatan | Catatan instalasi hook tidak memiliki metadata integritas | metadata instalasi hook | tidak |
hooks.installs_version_drift |
peringatan | Catatan instalasi hook menyimpang dari paket yang terinstal | metadata instalasi hook | tidak |
logging.redact_off |
peringatan | Nilai sensitif bocor ke log/status | logging.redactSensitive |
ya |
browser.control_invalid_config |
peringatan | Konfigurasi kontrol peramban tidak valid sebelum runtime | browser.* |
tidak |
browser.control_no_auth |
kritis | Kontrol peramban terekspos tanpa autentikasi token/kata sandi | gateway.auth.* |
tidak |
browser.remote_cdp_http |
peringatan | CDP jarak jauh melalui HTTP biasa tidak memiliki enkripsi transport | cdpUrl profil peramban |
tidak |
browser.remote_cdp_private_host |
peringatan | CDP jarak jauh menargetkan host privat/internal | cdpUrl profil peramban, browser.ssrfPolicy.* |
tidak |
sandbox.docker_config_mode_off |
peringatan | Konfigurasi Docker sandbox tersedia tetapi tidak aktif | agents.*.sandbox.mode |
tidak |
sandbox.bind_mount_non_absolute |
peringatan | Bind mount relatif dapat ditentukan secara tidak terduga | agents.*.sandbox.docker.binds[] |
tidak |
sandbox.dangerous_bind_mount |
kritis | Bind mount sandbox menargetkan jalur sistem, kredensial, atau soket Docker yang diblokir | agents.*.sandbox.docker.binds[] |
tidak |
sandbox.dangerous_network_mode |
kritis | Jaringan Docker sandbox menggunakan mode penggabungan namespace host atau container:* |
agents.*.sandbox.docker.network |
tidak |
sandbox.dangerous_seccomp_profile |
kritis | Profil seccomp sandbox melemahkan isolasi kontainer | agents.*.sandbox.docker.securityOpt |
tidak |
sandbox.dangerous_apparmor_profile |
kritis | Profil AppArmor sandbox melemahkan isolasi kontainer | agents.*.sandbox.docker.securityOpt |
tidak |
sandbox.browser_cdp_bridge_unrestricted |
peringatan | Jembatan peramban sandbox terekspos tanpa pembatasan rentang sumber | sandbox.browser.cdpSourceRange |
tidak |
sandbox.browser_container.non_loopback_publish |
kritis | Kontainer peramban yang ada memublikasikan CDP pada antarmuka non-loopback | konfigurasi publikasi kontainer sandbox peramban | tidak |
sandbox.browser_container.hash_label_missing |
peringatan | Kontainer peramban yang ada dibuat sebelum label hash konfigurasi saat ini | openclaw sandbox recreate --browser --all |
tidak |
sandbox.browser_container.hash_epoch_stale |
peringatan | Kontainer peramban yang ada dibuat sebelum epoch konfigurasi peramban saat ini | openclaw sandbox recreate --browser --all |
tidak |
sandbox.browser_container.docker_probe_timeout |
peringatan | Waktu pemeriksaan label Docker untuk kontainer peramban habis | keterjangkauan daemon Docker | tidak |
tools.exec.host_sandbox_no_sandbox_defaults |
peringatan | exec host=sandbox gagal secara tertutup saat sandbox dinonaktifkan |
tools.exec.host, agents.defaults.sandbox.mode |
tidak |
tools.exec.host_sandbox_no_sandbox_agents |
peringatan | exec host=sandbox per agen gagal secara tertutup saat sandbox dinonaktifkan |
agents.list[].tools.exec.host, agents.list[].sandbox.mode |
tidak |
tools.exec.security_full_configured |
peringatan/kritis | Eksekusi host berjalan dengan security="full" |
tools.exec.security, agents.list[].tools.exec.security |
tidak |
tools.exec.agent_skill_mcp_boundary_drift |
peringatan | Daftar izin Skills agen tersedia sementara eksekusi host dapat menjangkau klien/registri MCP | agents.list[].tools.exec.*, isolasi sandbox/OS, kredensial server MCP |
tidak |
tools.exec.fs_tools_disabled_but_exec_enabled |
peringatan | Kebijakan alat sistem berkas tidak menjadikan eksekusi shell hanya-baca | tools.deny, agents.list[].tools.deny, agents.*.sandbox.workspaceAccess |
tidak |
tools.exec.auto_allow_skills_enabled |
peringatan | Persetujuan eksekusi secara implisit memercayai biner Skills | berkas persetujuan host | tidak |
tools.exec.allowlist_interpreter_without_strict_inline_eval |
peringatan | Daftar izin interpreter mengizinkan evaluasi sebaris tanpa persetujuan ulang yang diwajibkan | tools.exec.strictInlineEval, agents.list[].tools.exec.strictInlineEval, daftar izin persetujuan eksekusi |
tidak |
tools.exec.safe_bins_interpreter_unprofiled |
peringatan | Biner interpreter/runtime dalam safeBins tanpa profil eksplisit memperluas risiko eksekusi |
tools.exec.safeBins, tools.exec.safeBinProfiles, agents.list[].tools.exec.* |
tidak |
tools.exec.safe_bins_broad_behavior |
peringatan | Alat dengan perilaku luas dalam safeBins melemahkan model kepercayaan filter stdin berisiko rendah |
tools.exec.safeBins, agents.list[].tools.exec.safeBins |
tidak |
tools.exec.safe_bin_trusted_dirs_risky |
peringatan | safeBinTrustedDirs mencakup direktori yang dapat diubah atau berisiko |
tools.exec.safeBinTrustedDirs, agents.list[].tools.exec.safeBinTrustedDirs |
tidak |
tools.elevated.allowFrom.<provider>.wildcard |
kritis | tools.elevated.allowFrom.<provider> mencakup "*", sehingga menyetujui setiap pengirim |
tools.elevated.allowFrom.<provider> |
tidak |
tools.elevated.allowFrom.<provider>.large |
peringatan | Daftar izin dengan hak ditingkatkan untuk <provider> memiliki lebih dari 25 entri |
tools.elevated.allowFrom.<provider> |
tidak |
agents.claude_cli.permission_mode_overridden_by_yolo |
peringatan | --permission-mode Claude CLI diabaikan karena eksekusi OpenClaw sepenuhnya tanpa pengawasan |
argumen tools.exec.security, tools.exec.ask, cliBackends.claude-cli |
tidak |
skills.workspace.symlink_escape |
peringatan | skills/**/SKILL.md ruang kerja mengarah ke luar akar ruang kerja (pergeseran rantai symlink) |
keadaan sistem berkas skills/** ruang kerja |
tidak |
skills.workspace.scan_truncated |
peringatan | Pemindaian Skills ruang kerja mencapai batas kunjungan direktori sebelum selesai | ratakan/sederhanakan pohon direktori skills/ ruang kerja |
tidak |
plugins.extensions_no_allowlist |
peringatan | Plugin dipasang tanpa daftar izin Plugin yang eksplisit | plugins.allowlist |
tidak |
plugins.allow_phantom_entries |
peringatan | plugins.allow mencantumkan ID tanpa Plugin terpasang yang cocok |
plugins.allow |
tidak |
plugins.installs_unpinned_npm_specs |
peringatan | Catatan indeks Plugin tidak disematkan ke spesifikasi npm yang tidak dapat diubah | metadata pemasangan Plugin | tidak |
plugins.installs_missing_integrity |
peringatan | Catatan indeks Plugin tidak memiliki metadata integritas | metadata pemasangan Plugin | tidak |
plugins.installs_version_drift |
peringatan | Catatan indeks Plugin menyimpang dari paket yang terpasang | metadata pemasangan Plugin | tidak |
plugins.code_safety |
peringatan/kritis | Pemindaian kode Plugin menemukan pola mencurigakan atau berbahaya (hanya --deep) |
kode Plugin / sumber pemasangan | tidak |
plugins.code_safety.entry_path |
peringatan | Jalur entri Plugin mengarah ke lokasi tersembunyi atau node_modules |
entry manifes Plugin |
tidak |
plugins.code_safety.entry_escape |
kritis | Entri Plugin keluar dari direktori Plugin | entry manifes Plugin |
tidak |
plugins.code_safety.manifest_parse_error |
peringatan | Manifes Plugin tidak dapat diurai selama pemindaian keamanan kode | berkas manifes Plugin | tidak |
plugins.code_safety.scan_failed |
peringatan | Pemindaian kode Plugin tidak dapat diselesaikan (hanya --deep) |
jalur Plugin / lingkungan pemindaian | tidak |
plugins.<pluginId>.security_audit_failed |
peringatan | Pengumpul audit keamanan milik Plugin mengalami galat | pengumpul audit keamanan milik Plugin tersebut | tidak |
skills.code_safety |
peringatan/kritis | Metadata/kode pemasang Skills mengandung pola mencurigakan atau berbahaya (hanya --deep) |
sumber pemasangan Skills | tidak |
skills.code_safety.scan_failed |
peringatan | Pemindaian kode Skills tidak dapat diselesaikan (hanya --deep) |
lingkungan pemindaian Skills | tidak |
security.exposure.open_channels_with_exec |
peringatan/kritis | Ruang bersama/publik dapat menjangkau agen yang mengaktifkan eksekusi | channels.*.dmPolicy, channels.*.groupPolicy, tools.exec.*, agents.list[].tools.exec.* |
tidak |
security.exposure.open_groups_with_elevated |
kritis | DM/grup terbuka + alat dengan hak ditingkatkan menciptakan jalur injeksi prompt berdampak tinggi | jalur kebijakan DM tingkat atas atau bertingkat, penggantian akun, channels.*.groupPolicy |
tidak |
security.exposure.open_groups_with_runtime_or_fs |
kritis/peringatan | DM/grup terbuka dapat menjangkau alat perintah/berkas tanpa perlindungan sandbox/ruang kerja | jalur kebijakan DM/grup, tools.profile/deny, tools.fs.workspaceOnly, agents.*.sandbox.mode |
tidak |
security.exposure.open_groups_with_control_plane_tools |
kritis | DM/grup terbuka dapat menjangkau alat bidang kendali Gateway/Cron | jalur kebijakan DM/grup, tools.allow, tools.alsoAllow, tools.profile, gateway, cron |
tidak |
security.trust_model.multi_user_heuristic |
peringatan | Konfigurasi tampak multi-pengguna sementara model kepercayaan Gateway adalah asisten pribadi | pisahkan batas kepercayaan, atau perkuat keamanan pengguna bersama (sandbox.mode, cakupan penolakan alat/ruang kerja) |
tidak |
tools.profile_minimal_overridden |
peringatan | Penggantian oleh agen melewati profil minimal global | agents.list[].tools.profile |
tidak |
plugins.tools_reachable_permissive_policy |
peringatan | Alat ekstensi dapat dijangkau dalam konteks permisif | tools.profile + izin/tolak alat |
tidak |
models.legacy |
peringatan | Keluarga model lama masih dikonfigurasi | pemilihan model | tidak |
models.weak_tier |
peringatan | Model yang dikonfigurasi berada di bawah tingkat yang direkomendasikan saat ini | pemilihan model | tidak |
models.small_params |
kritis/informasi | Model kecil + permukaan alat yang tidak aman meningkatkan risiko injeksi | pilihan model + kebijakan sandbox/alat | tidak |
channels.<provider>.dm.open |
kritis | Kebijakan DM <provider> adalah "open"; siapa pun dapat mengirim DM ke bot |
channels.<provider>.dmPolicy, .allowFrom |
tidak |
channels.<provider>.dm.open_invalid |
peringatan | dmPolicy="open" tanpa "*" dalam allowFrom tidak konsisten |
channels.<provider>.allowFrom |
tidak |
channels.<provider>.dm.scope_main_multiuser |
peringatan | Beberapa pengirim DM saat ini berbagi sesi utama | session.dmScope |
tidak |
channels.<provider>.allowFrom.dangerous_name_matching_enabled |
informasi | dangerouslyAllowNameMatching mengaktifkan kembali pencocokan pengirim berdasarkan nama/email/tag yang dapat berubah |
nonaktifkan dangerouslyAllowNameMatching, gunakan ID pengirim yang stabil |
tidak |
channels.<provider>.account.read_only_resolution |
peringatan | Akun saluran tidak dapat diidentifikasi sepenuhnya untuk audit (rahasia/Gateway tidak tersedia) | pastikan rahasia yang dirujuk dapat diidentifikasi, atau jalankan terhadap snapshot Gateway aktif | tidak |
channels.<provider>.warning.<n> |
informasi/peringatan/kritis | Peringatan keamanan khusus penyedia, diklasifikasikan dari teks bebas Plugin | lihat detail temuan | tidak |
summary.attack_surface |
info | Ringkasan gabungan postur autentikasi, saluran, alat, dan paparan | beberapa kunci (lihat detail temuan) | tidak |
checkId channels.<provider>.* dan tools.elevated.allowFrom.<provider>.*
dibuat untuk setiap saluran/penyedia yang dikonfigurasi, sehingga <provider> merupakan id saluran sebenarnya
(misalnya telegram, discord) dalam keluaran aktual, bukan string literal.