
एक स्व-होस्टेड OpenClaw स्थापना के लिए ऑफ़लाइन, केवल-पढ़ने के लिए सख्तीकरण जाँच — गेटवे एक्सपोजर, प्रमाणीकरण, CVE-2026-25253। कभी भी गुप्त जानकारी प्रिंट नहीं करता, कोई नेटवर्क कॉल नहीं करता।
यह स्क्रिप्ट केवल पढ़ती है। यह कुछ भी ठीक नहीं करती और यह गारंटी नहीं देती कि आप सुरक्षित हैं। हरा आउटपुट केवल यह दर्शाता है कि नीचे सूचीबद्ध जाँचें पास हुईं—और इससे अधिक कुछ नहीं।
openclaw-hardening-check.mjs एक छोटी, बिना किसी निर्भरता के, ऑफ़लाइन समीक्षा है जो OpenClaw इंस्टॉलेशन की जाँच करती है। यह स्थानीय कॉन्फ़िगरेशन, पैकेज मेटाडेटा, प्लगइन और स्किल मैनिफ़ेस्ट, फ़ाइल मोड, और—Linux पर—चल रहे Gateway की /proc में प्रविष्टियाँ पढ़ती है। यह फ़ाइलों में बदलाव नहीं करती, OpenClaw कमांड नहीं चलाती, किसी रजिस्ट्री से संपर्क नहीं करती, या कोई नेटवर्क अनुरोध नहीं करती।
gateway.bind केवल-लूपबैक है, गैर-लूपबैक है, या रनटाइम-निर्भर है। किसी पहचाने गए Docker, Podman, Kubernetes, या Fly कंटेनर के अंदर एक अनसेट या auto बाइंड को 0.0.0.0 माना जाता है, जो OpenClaw के कंटेनर डिफ़ॉल्ट से मेल खाता है। चल रहे Linux Gateway की अलग से जाँच की जाती है ताकि कोई कमांड-लाइन या सेवा ओवरराइड सुरक्षित कॉन्फ़िग मान के पीछे छिप न सके।gateway.auth.token और के लिए OpenClaw के config-first प्राथमिकता क्रम को मॉडल करता है। यह क्रेडेंशियल मापने से पहले , , , , और संरचित SecretRefs को पहचानता है। Auth पर्यावरण साक्ष्य मिलान किए गए Gateway प्रक्रिया, , या स्थिति से आते हैं, कभी ऑडिटर प्रक्रिया से नहीं। गुप्त मान कभी मुद्रित नहीं होते; रिपोर्ट में केवल उपस्थिति, स्रोत वर्ग, और लंबाई होती है। प्रकाशित उदाहरण प्लेसहोल्डर और 24 वर्णों से छोटे टोकन फ़्लैग किए जाते हैं।.password${VAR}$VARsecretref-env:VAR__env__:VARgateway.systemd.env.env2026.1.29 से पहले के संस्करणों को प्रभावित मानता है। यह कमज़ोरी एक क्वेरी-स्ट्रिंग gatewayUrl को WebSocket कनेक्शन को ट्रिगर करने देती था जो Gateway टोकन को प्रकट करता था। NVD प्रविष्टि और OpenClaw सलाह देखें।latest, beta, या main से अलग करता है, जब इंस्टॉल प्रोवेनेंस प्रदान की जाती है। npm और pnpm स्थापित पैकेज में मूल अनुरोधित dist-tag को बनाए नहीं रखते, इसलिए स्क्रिप्ट उस प्रोवेनेंस के अभाव में अनुमान लगाने के बजाय "जाँच नहीं कर सकता" रिपोर्ट करती है।.env, gateway.systemd.env, खोजी गई auth-profiles.json फ़ाइलें, और हल की गई फ़ाइल SecretRefs को ग्रुप/वर्ल्ड एक्सपोज़र या अप्रत्याशित स्वामित्व के लिए जाँचता है।dist-runtime/extensions शामिल है—को अलग से सूचीबद्ध करता है जो स्थिति, कॉन्फ़िग-डायरेक्टरी, प्रबंधित, कार्यक्षेत्र, व्यक्तिगत, कॉन्फ़िगर, या npm प्रोजेक्ट स्थानों में पाई गई वस्तुओं से होते हैं। गैर-बंडल वस्तुओं को मैन्युअल समीक्षा के लिए चिह्नित किया जाता है, कभी दुर्भावनापूर्ण नहीं कहा जाता।/proc/net/tcp* सॉकेट inodes को Gateway प्रविष्टि-फ़ाइल या बाइनरी प्रक्रियाओं से मैप करता है और उनके द्वारा स्वामित्व वाले प्रत्येक गैर-लूपबैक TCP सुनने वाले को फ़्लैग करता है। अपेक्षित पोर्ट पर एक सुनने वाला जिसके स्वामी की पुष्टि नहीं की जा सकती, उसके लिए "जाँच नहीं कर सकता" उत्पन्न होता है, "Gateway चालू नहीं है" नहीं। यह जाँच Gateway बंद होने पर भी डिस्क से काम करती है।पथ और डिफ़ॉल्ट आधिकारिक कॉन्फ़िगरेशन दस्तावेज़ीकरण, कॉन्फ़िगरेशन संदर्भ, Gateway एक्सपोज़र रनबुक, स्किल्स दस्तावेज़ीकरण, और प्लगइन प्रबंधन दस्तावेज़ीकरण का पालन करते हैं।
स्क्रिप्ट को OpenClaw चलाने वाली मशीन पर कॉपी करें, फिर इसे उसी OS उपयोक्ता के रूप में चलाएँ:
node openclaw-hardening-check.mjs
OpenClaw का डिफ़ॉल्ट कॉन्फ़िग ~/.openclaw/openclaw.json है। स्क्रिप्ट OPENCLAW_CONFIG_PATH, OPENCLAW_STATE_DIR, और OPENCLAW_GATEWAY_PORT का भी सम्मान करती है।
गैर-डिफ़ॉल्ट लेआउट और पुनरुत्पादनीय पिन जाँच के लिए वैकल्पिक ओवरराइड उपलब्ध हैं:
node openclaw-hardening-check.mjs \
--config /srv/openclaw/openclaw.json \
--state-dir /srv/openclaw \
--package-root /opt/openclaw/lib/node_modules/openclaw \
--install-spec 2026.6.10
--install-spec वह लक्ष्य होना चाहिए जो मूल रूप से इंस्टॉलर या डिप्लॉयमेंट परिभाषा द्वारा उपयोग किया गया था। वर्तमान में स्थापित संस्करण को बिना उस प्रोवेनेंस की पुष्टि के पास कर देना यह साबित नहीं करता कि डिप्लॉयमेंट पिन किया गया है।
चेकर कभी स्वयं गुप्त मान नहीं छापता, इसलिए प्रकाशनीय रूप केवल उसका स्रोत और लंबाई रिकॉर्ड करता है:
OpenClaw hardening check
Read-only and offline. Secret values are never printed.
Config: ~/.openclaw/openclaw.json
[PASS] Config: loaded ~/.openclaw/openclaw.json without printing its contents.
[PASS] Gateway bind: loopback; configured for local-only access.
[PASS] Gateway authentication: present via Gateway process environment bootstrap, length 48; value was not printed.
[PASS] Listening sockets: OpenClaw TCP listeners are loopback-only: 127.0.0.1:18789, [::1]:18789.
[PASS] CVE-2026-25253: installed package version 2026.6.10 is at or newer than 2026.1.29.
[PASS] Installation pin: exact target 2026.6.10 is recorded for this check.
[WARN] Third-party plugins: 1: example-plugin. Review it yourself; no malware verdict was attempted.
Summary: No security problems found. 1 item flagged for your review; exit code 0.
गुप्त मान: [REDACTED — never present in output].
सारांश सुरक्षा समस्याओं (FAIL), मैन्युअल-समीक्षा वस्तुओं (WARN), और अपूर्ण जाँचों (CANNOT CHECK) को अलग-अलग गिनता है। केवल WARN और CANNOT CHECK परिणाम प्रक्रिया को विफल नहीं करते; केवल FAIL निकास कोड 1 लौटाता है।
| कोड | अर्थ |
|---|---|
0 | कोई FAIL सुरक्षा समस्या नहीं पाई गई; WARN या CANNOT CHECK परिणाम अभी भी मौजूद हो सकते हैं। |
1 | कम से कम एक FAIL सुरक्षा समस्या पर ध्यान देने की आवश्यकता है। |
2 | कमांड लाइन अमान्य है, या कॉन्फ़िग नहीं मिल सका, पढ़ा नहीं जा सका, शामिल नहीं किया जा सका, या सुरक्षित रूप से पार्स नहीं किया जा सका। |
/proc की आवश्यकता है। अन्य प्लेटफ़ॉर्म को स्पष्ट "जाँच नहीं कर सकता" परिणाम प्राप्त होता है।@latest को हल किया था। --install-spec के साथ विश्वसनीय डिप्लॉयमेंट प्रोवेनेंस प्रदान करें।परीक्षण सूट केवल node:test और अस्थायी निर्देशिकाओं का उपयोग करता है:
node --test test/openclaw-hardening-check.test.mjs
Ilya Prudnikov — cain-ai.com