9.6 KiB
| read_when | summary | title | x-i18n | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
مرجع CLI برای `openclaw security` (ممیزی و رفع خطاهای رایج امنیتی) | امنیت |
|
openclaw security
ابزارهای امنیتی (ممیزی + اصلاحات اختیاری).
مرتبط:
- راهنمای امنیت: امنیت
ممیزی
openclaw security audit
openclaw security audit --deep
openclaw security audit --deep --password <password>
openclaw security audit --deep --token <token>
openclaw security audit --fix
openclaw security audit --json
ممیزی زمانی هشدار میدهد که چند فرستنده پیام مستقیم نشست اصلی را بهاشتراک بگذارند و حالت امن پیام مستقیم را توصیه میکند: session.dmScope="per-channel-peer" (یا per-account-channel-peer برای کانالهای چندحسابی) برای صندوقهای ورودی مشترک.
این برای سختسازی صندوق ورودی مشترک/همکارانه است. یک Gateway واحد که توسط عملگرهای متقابلاً نامطمئن/خصمانه بهاشتراک گذاشته شود، پیکربندی توصیهشدهای نیست؛ مرزهای اعتماد را با Gatewayهای جداگانه (یا کاربران/میزبانهای جداگانه سیستمعامل) تفکیک کنید.
همچنین وقتی پیکربندی نشاندهنده احتمال ورود کاربران مشترک باشد (برای مثال سیاست باز پیام مستقیم/گروه، هدفهای گروهی پیکربندیشده، یا قواعد فرستنده با نویسه عام)، security.trust_model.multi_user_heuristic را صادر میکند و یادآوری میکند که OpenClaw بهطور پیشفرض مدل اعتماد دستیار شخصی دارد.
برای پیکربندیهای آگاهانه با کاربران مشترک، راهنمایی ممیزی این است که همه نشستها را سندباکس کنید، دسترسی فایلسیستم را به فضای کاری محدود نگه دارید، و هویتها یا اعتبارنامههای شخصی/خصوصی را از آن زماناجرا دور نگه دارید.
همچنین وقتی مدلهای کوچک (<=300B) بدون سندباکس و با ابزارهای وب/مرورگر فعال استفاده شوند هشدار میدهد.
برای ورود Webhook، وقتی hooks.token از توکن Gateway دوباره استفاده کند، وقتی hooks.token کوتاه باشد، وقتی hooks.path="/" باشد، وقتی hooks.defaultSessionKey تنظیم نشده باشد، وقتی hooks.allowedAgentIds نامحدود باشد، وقتی بازنویسیهای sessionKey درخواست فعال باشند، و وقتی بازنویسیها بدون hooks.allowedSessionKeyPrefixes فعال باشند هشدار میدهد.
همچنین وقتی تنظیمات Docker سندباکس در حالی پیکربندی شدهاند که حالت سندباکس خاموش است، وقتی gateway.nodes.denyCommands از ورودیهای شبیه الگو/ناشناخته و بیاثر استفاده میکند (فقط تطبیق دقیق نام دستور Node، نه فیلتر کردن متن شل)، وقتی gateway.nodes.allowCommands دستورهای خطرناک Node را صریحاً فعال میکند، وقتی tools.profile="minimal" سراسری توسط پروفایلهای ابزار عامل بازنویسی میشود، وقتی گروههای باز ابزارهای زماناجرا/فایلسیستم را بدون محافظهای سندباکس/فضای کاری افشا میکنند، و وقتی ابزارهای Plugin نصبشده ممکن است تحت سیاست ابزار آسانگیرانه قابل دسترسی باشند هشدار میدهد.
همچنین gateway.allowRealIpFallback=true (خطر جعل هدر در صورت پیکربندی نادرست پراکسیها) و discovery.mdns.mode="full" (نشت فراداده از طریق رکوردهای mDNS TXT) را علامتگذاری میکند.
همچنین وقتی مرورگر سندباکس از شبکه Docker bridge بدون sandbox.browser.cdpSourceRange استفاده کند هشدار میدهد.
همچنین حالتهای شبکه خطرناک Docker سندباکس (از جمله پیوستن به فضای نام host و container:*) را علامتگذاری میکند.
همچنین وقتی کانتینرهای Docker مرورگر سندباکس موجود برچسبهای هش گمشده/کهنه داشته باشند (برای مثال کانتینرهای پیش از مهاجرت که openclaw.browserConfigEpoch را ندارند) هشدار میدهد و openclaw sandbox recreate --browser --all را توصیه میکند.
همچنین وقتی رکوردهای نصب Plugin/hook مبتنی بر npm پین نشده باشند، فراداده یکپارچگی نداشته باشند، یا با نسخههای بسته نصبشده فعلی ناهمخوان باشند هشدار میدهد.
وقتی فهرستهای مجاز کانال بهجای شناسههای پایدار به نامها/ایمیلها/برچسبهای تغییرپذیر تکیه کنند هشدار میدهد (Discord، Slack، Google Chat، Microsoft Teams، دامنههای Mattermost و IRC در صورت کاربرد).
وقتی gateway.auth.mode="none" APIهای HTTP مربوط به Gateway را بدون راز مشترک در دسترس میگذارد (/tools/invoke بهعلاوه هر نقطه پایانی فعال /v1/*) هشدار میدهد.
تنظیماتی که با dangerous/dangerously شروع میشوند، بازنویسیهای صریح عملگر برای شرایط اضطراری هستند؛ فعال کردن یکی از آنها، بهتنهایی، گزارش آسیبپذیری امنیتی نیست.
برای فهرست کامل پارامترهای خطرناک، بخش «خلاصه پرچمهای ناامن یا خطرناک» را در امنیت ببینید.
رفتار SecretRef:
security auditمسیرهای SecretRef پشتیبانیشده را برای مسیرهای هدف خود در حالت فقطخواندنی resolve میکند.- اگر یک SecretRef در مسیر دستور فعلی در دسترس نباشد، ممیزی ادامه مییابد و
secretDiagnosticsرا گزارش میکند (بهجای اینکه دچار خرابی شود). --tokenو--passwordفقط احراز هویت وارسی عمیق را برای همان فراخوانی دستور بازنویسی میکنند؛ آنها پیکربندی یا نگاشتهای SecretRef را بازنویسی نمیکنند.
خروجی 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"برمیگرداند (از جمله گونههای حساب در کانالهای پشتیبانیشده)- وقتی سیاست گروه WhatsApp به
allowlistبرگردد،groupAllowFromرا از فایل ذخیرهشدهallowFromمقداردهی اولیه میکند، اگر آن فهرست وجود داشته باشد و پیکربندی از قبلallowFromرا تعریف نکرده باشد logging.redactSensitiveرا از"off"به"tools"تنظیم میکند- مجوزهای فایلهای وضعیت/پیکربندی و فایلهای حساس رایج را سختگیرانهتر میکند
(
credentials/*.json،auth-profiles.json،sessions.json، نشست*.jsonl) - همچنین فایلهای include پیکربندی ارجاعشده از
openclaw.jsonرا سختگیرانهتر میکند - روی میزبانهای POSIX از
chmodو روی Windows از بازنشانیهایicaclsاستفاده میکند
--fix این کارها را انجام نمیدهد:
- چرخش توکنها/گذرواژهها/کلیدهای API
- غیرفعال کردن ابزارها (
gateway،cron،execو غیره) - تغییر انتخابهای اتصال/احراز هویت/قرارگیری در معرض شبکه Gateway
- حذف یا بازنویسی plugins/skills