CLI commands
सुरक्षा
openclaw security
सुरक्षा उपकरण: ऑडिट और वैकल्पिक सुरक्षित सुधार। संबंधित: सुरक्षा।
openclaw security auditopenclaw security audit --deepopenclaw security audit --deep --password <password>openclaw security audit --deep --token <token>openclaw security audit --auth password --password <password>openclaw security audit --fixopenclaw security audit --jsonऑडिट मोड
सामान्य security audit कोल्ड कॉन्फ़िगरेशन/फ़ाइल सिस्टम/केवल-पठन पथ पर रहता है: यह Plugin रनटाइम सुरक्षा संग्राहकों की खोज नहीं करता, इसलिए नियमित ऑडिट प्रत्येक इंस्टॉल किए गए Plugin रनटाइम को लोड नहीं करते। --deep यथासंभव लाइव Gateway जाँच और Plugin-स्वामित्व वाले सुरक्षा ऑडिट संग्राहक जोड़ता है (स्पष्ट आंतरिक कॉलर भी इन संग्राहकों का विकल्प चुन सकते हैं, जब उनके पास पहले से उपयुक्त रनटाइम स्कोप हो)।
यदि Gateway पासवर्ड प्रमाणीकरण केवल स्टार्टअप पर दिया गया है, तो वही मान --auth password --password <password> के साथ दें, ताकि ऑडिट उसे hooks.token के विरुद्ध जाँच सके।
यह क्या जाँचता है
DM/विश्वास मॉडल
- जब एकाधिक DM प्रेषक मुख्य सत्र साझा करते हैं, तो चेतावनी देता है और साझा इनबॉक्स के लिए सुरक्षित DM मोड की अनुशंसा करता है:
session.dmScope="per-channel-peer"(या बहु-खाता चैनलों के लिएper-account-channel-peer)। यह सहयोगी/साझा-इनबॉक्स सुदृढ़ीकरण है, परस्पर अविश्वसनीय ऑपरेटरों के लिए पृथक्करण नहीं; उसके लिए अलग-अलग gateways (या अलग OS उपयोगकर्ताओं/होस्ट) से विश्वास सीमाएँ विभाजित करें। - जब कॉन्फ़िगरेशन संभावित साझा-उपयोगकर्ता प्रवेश का संकेत देता है (उदाहरण के लिए खुली DM/समूह नीति, कॉन्फ़िगर किए गए समूह लक्ष्य या वाइल्डकार्ड प्रेषक नियम), तो
security.trust_model.multi_user_heuristicउत्सर्जित करता है — OpenClaw का डिफ़ॉल्ट विश्वास मॉडल व्यक्तिगत-सहायक (एक ऑपरेटर) है, प्रतिकूल बहु-किरायेदार पृथक्करण नहीं। जानबूझकर बनाए गए साझा-उपयोगकर्ता सेटअप के लिए: सभी सत्रों को सैंडबॉक्स करें, फ़ाइल सिस्टम पहुँच को कार्यस्थान-स्कोप तक सीमित रखें और व्यक्तिगत/निजी पहचान या क्रेडेंशियल उस रनटाइम से दूर रखें। - जब छोटे मॉडल (
<=300Bपैरामीटर) सैंडबॉक्सिंग के बिना और वेब/ब्राउज़र उपकरण सक्षम रखकर उपयोग किए जाते हैं, तो चेतावनी देता है।
Webhook/हुक
स्टार्टअप एक गैर-घातक सुरक्षा चेतावनी लॉग करता है और ऑडिट सक्रिय Gateway साझा-गुप्त प्रमाणीकरण मानों (gateway.auth.token / OPENCLAW_GATEWAY_TOKEN, gateway.auth.password / OPENCLAW_GATEWAY_PASSWORD) के hooks.token पुनः उपयोग को चिह्नित करता है। साथ ही इन स्थितियों में चेतावनी देता है:
hooks.tokenछोटा हैhooks.path="/"hooks.defaultSessionKeyसेट नहीं हैhooks.allowedAgentIdsअप्रतिबंधित है- अनुरोध
sessionKeyओवरराइड सक्षम हैं - ओवरराइड
hooks.allowedSessionKeyPrefixesके बिना सक्षम हैं
संग्रहीत पुनः उपयोग किए गए hooks.token को बदलने के लिए openclaw doctor --fix चलाएँ, फिर बाहरी हुक प्रेषकों को नया टोकन उपयोग करने के लिए अपडेट करें।
सैंडबॉक्स/उपकरण
- जब सैंडबॉक्स मोड बंद होने के बावजूद सैंडबॉक्स Docker सेटिंग कॉन्फ़िगर हों, तो चेतावनी देता है।
- जब
gateway.nodes.commands.denyअप्रभावी पैटर्न-जैसी/अज्ञात प्रविष्टियों का उपयोग करता है, तो चेतावनी देता है (मिलान केवल सटीक Node कमांड-नाम पर होता है, शेल-पाठ फ़िल्टरिंग पर नहीं)। - जब
gateway.nodes.commands.allowखतरनाक Node कमांड स्पष्ट रूप से सक्षम करता है, तो चेतावनी देता है। - जब वैश्विक
tools.profile="minimal"को एजेंट उपकरण प्रोफ़ाइल ओवरराइड करती हैं, तो चेतावनी देता है। - जब लिखने/संपादित करने के उपकरण अक्षम हों, लेकिन सीमित करने वाली सैंडबॉक्स फ़ाइल सिस्टम सीमा के बिना
execअब भी उपलब्ध हो, तो चेतावनी देता है। - जब खुले DM या समूह सैंडबॉक्स/कार्यस्थान सुरक्षा उपायों के बिना रनटाइम/फ़ाइल सिस्टम उपकरण उजागर करते हैं, तो चेतावनी देता है।
- जब इंस्टॉल किए गए Plugin उपकरण अनुमतिशील उपकरण नीति के अंतर्गत पहुँच योग्य हो सकते हैं, तो चेतावनी देता है।
सैंडबॉक्स ब्राउज़र
- जब सैंडबॉक्स ब्राउज़र
sandbox.browser.cdpSourceRangeके बिना Dockerbridgeनेटवर्क उपयोग करता है, तो चेतावनी देता है। hostऔरcontainer:*नेमस्पेस जॉइन सहित खतरनाक सैंडबॉक्स Docker नेटवर्क मोड को चिह्नित करता है।- जब मौजूदा सैंडबॉक्स ब्राउज़र Docker कंटेनरों में हैश लेबल अनुपस्थित/पुराने हों (उदाहरण के लिए, माइग्रेशन-पूर्व कंटेनरों में
openclaw.browserConfigEpochअनुपस्थित हो), तो चेतावनी देता है औरopenclaw sandbox recreate --browser --allकी अनुशंसा करता है।
नेटवर्क/खोज
gateway.allowRealIpFallback=trueको चिह्नित करता है (प्रॉक्सी गलत कॉन्फ़िगर होने पर हेडर-स्पूफ़िंग जोखिम)।discovery.mdns.mode="full"को चिह्नित करता है (mDNS TXT रिकॉर्ड के माध्यम से मेटाडेटा रिसाव)।- जब
gateway.auth.mode="none"Gateway HTTP API को किसी साझा गुप्त के बिना पहुँच योग्य छोड़ देता है (/tools/invokeऔर कोई भी सक्षम/v1/*एंडपॉइंट), तो चेतावनी देता है।
Plugins/चैनल
- जब npm-आधारित Plugin/हुक इंस्टॉल रिकॉर्ड पिन न किए गए हों, उनमें इंटीग्रिटी मेटाडेटा न हो या वे वर्तमान में इंस्टॉल पैकेज संस्करणों से अलग हों, तो चेतावनी देता है।
- जब चैनल अनुमतिसूचियाँ स्थिर ID के बजाय परिवर्तनीय नामों/ईमेल/टैग पर निर्भर हों (जहाँ लागू हो वहाँ Discord, Slack, Google Chat, Microsoft Teams, Mattermost और IRC स्कोप), तो चेतावनी देता है।
dangerous/dangerously उपसर्ग वाली सेटिंग स्पष्ट आपातकालीन ऑपरेटर ओवरराइड हैं; इनमें से किसी एक को सक्षम करना अपने आप में सुरक्षा भेद्यता रिपोर्ट नहीं है। खतरनाक पैरामीटर की पूरी सूची के लिए सुरक्षा में "असुरक्षित या खतरनाक फ़्लैग सारांश" देखें।
SecretRef व्यवहार
security audit अपने लक्षित पथों के लिए समर्थित SecretRefs को केवल-पठन मोड में हल करता है। यदि वर्तमान कमांड पथ में कोई SecretRef उपलब्ध नहीं है, तो ऑडिट क्रैश होने के बजाय जारी रहता है और secretDiagnostics रिपोर्ट करता है। --token और --password केवल उस कमांड आह्वान के लिए गहन-जाँच प्रमाणीकरण को ओवरराइड करते हैं; वे कॉन्फ़िगरेशन या SecretRef मैपिंग को पुनः नहीं लिखते।
दमन
जानबूझकर बने रहने वाले निष्कर्षों को security.audit.suppressions से स्वीकार करें। प्रत्येक दमन एक सटीक checkId से मेल खाता है और केस-असंवेदी titleIncludes तथा/अथवा detailIncludes उपस्ट्रिंग के साथ सीमित किया जा सकता है:
{ "security": { "audit": { "suppressions": [ { "checkId": "plugins.tools_reachable_permissive_policy", "detailIncludes": "Enabled extension plugins: gbrain", "reason": "trusted local operator plugin" } ] } }}दमित निष्कर्ष सक्रिय summary और findings सूची से हटा दिए जाते हैं। ऑडिटयोग्यता के लिए JSON आउटपुट उन्हें suppressedFindings के अंतर्गत रखता है। जब दमन कॉन्फ़िगर हों, तो सक्रिय आउटपुट एक अदमनीय security.audit.suppressions.active सूचना निष्कर्ष भी रखता है, ताकि पाठक जान सकें कि ऑडिट फ़िल्टर किया गया था। खतरनाक कॉन्फ़िगरेशन फ़्लैग प्रति निष्कर्ष एक फ़्लैग के रूप में उत्सर्जित होते हैं, इसलिए एक खतरनाक फ़्लैग स्वीकार करने से समान config.insecure_or_dangerous_flags checkId साझा करने वाले अन्य सक्षम फ़्लैग छिपते नहीं हैं।
क्योंकि दमन बने रहने वाले जोखिम को छिपा सकते हैं, एजेंट द्वारा चलाए गए शेल कमांड के माध्यम से उन्हें जोड़ने या हटाने के लिए exec अनुमोदन आवश्यक है, जब तक कि विश्वसनीय स्थानीय स्वचालन के लिए exec पहले से security="full" और ask="off" के साथ न चल रहा हो।
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 क्या बदलता है
सुरक्षित, नियतात्मक सुधार लागू करता है:
- सामान्य
groupPolicy="open"कोgroupPolicy="allowlist"में बदलता है (समर्थित चैनलों में खाता प्रकारों सहित) - जब WhatsApp समूह नीति
allowlistमें बदलती है, तो संग्रहीतallowFromफ़ाइल सेgroupAllowFromभरता है, बशर्ते वह सूची मौजूद हो और कॉन्फ़िगरेशन मेंallowFromपहले से परिभाषित न हो logging.redactSensitiveको"off"से"tools"पर सेट करता है- स्थिति/कॉन्फ़िगरेशन और सामान्य संवेदनशील फ़ाइलों (
credentials/*.json,auth-profiles.json,openclaw-agent.sqliteऔर पुराने सत्र आर्टिफ़ैक्ट) की अनुमतियाँ अधिक कठोर करता है openclaw.jsonसे संदर्भित कॉन्फ़िगरेशन समावेशन फ़ाइलों की अनुमतियाँ भी अधिक कठोर करता है- POSIX होस्ट पर
chmodऔर Windows परicaclsरीसेट का उपयोग करता है
--fix यह नहीं करता:
- टोकन/पासवर्ड/API कुंजियाँ बदलना
- उपकरण (
gateway,cron,execआदि) अक्षम करना - Gateway बाइंड/प्रमाणीकरण/नेटवर्क एक्सपोज़र विकल्प बदलना
- Plugins/Skills हटाना या पुनः लिखना