OpenClaw چطور قدرت هوش مصنوعی رو با امنیت کنار هم نگه میداره؟
خلاصهٔ کاملتر
OpenClaw یه دستیار هوش مصنوعیه که مستقیماً روی ماشین کاربر اجرا میشه و میتونه فایلها رو بخونه و ویرایش کنه، دستور shell اجرا کنه، پلاگین نصب کنه و با شبکه ارتباط داشته باشه. این سطح از دسترسی طبیعتاً نگرانیهای امنیتی جدی ایجاد میکنه. تیم OpenClaw در این پست توضیح داده که چه اقداماتی انجام داده، چه چیزی در حال توسعهست و چه بخشهایی هنوز در مرحله تحقیق هستن.
مرزبندی فایلسیستم با fs-safe: یکی از ریسکهای اصلی اینه که کد فکر میکنه داخل یه پوشه مشخص مینویسه، اما از طریق symlink، مسیر مطلق یا استخراج آرشیو از اون مرز خارج میشه. کتابخانه fs-safe یه مجموعه از primitive های فایلسیستمی root-bounded هست که هم کد اصلی و هم پلاگینها ازش استفاده میکنن تا این مرزها نقض نشه. این کتابخانه sandbox نیست، ولی جلوی باگهای boundary-crossing در کد فایلسیستمی رو میگیره.
کنترل ترافیک شبکه با Proxyline: در سیستمهای agent-based، URLهای کنترلشده توسط مدل یا کاربر رفتار عادی محصول هستن، نه استثنا. این یعنی حملاتی مثل SSRF (سرور خودت رو فریب بدی که به آدرسهای داخلی درخواست بفرسته) سختتر از سرویسهای معمولی مدیریت میشن. اعتبارسنجی URL قبل از fetch کافی نیست، چون DNS ممکنه بین validation و fetch عوض بشه. Proxyline یه routing layer در سطح Node.js هست که تمام ترافیک خروجی رو از طریق یه پروکسی تنظیمشده رد میکنه؛ اون پروکسی وظیفه اجرای سیاستها مثل بلاک کردن آدرسهای metadata و محدودههای private رو داره.
اعتماد به پلاگینها در ClawHub: پلاگینها میتونن از GitHub، یه registry خصوصی یا یه فایل محلی نصب بشن. ClawHub به عنوان مرکز اصلی پلاگینها، هر release رو با ترکیبی از ابزارهای اسکن (ClawScan، VirusTotal)، آنالیز استاتیک و بررسی دستی ارزیابی میکنه و وضعیت اون رو مشخص میکنه: clean، suspicious، quarantined، یا malicious. اگه یه release در ClawHub به عنوان malicious علامتگذاری بشه، مسیر نصب اون رو رد میکنه.
تأییدیه دستورات و خستگی از پرامپت: وقتی پرامپتهای تأیید پشت هم میرسن، کاربران بعد از مدتی YOLO mode رو فعال میکنن و دیگه چیزی نمیخونن. راهحل: پرامپتهای کمتر ولی معنادارتر. مسیر shell approval حالا با Tree-sitter دستورات تودرتو رو هم تجزیه میکنه؛ مثلاً اگه یه دستور wrapper مثل bash -c "..." حاوی دستوری باشه که در allowlist نیست، اون wrapper هم مجاز نمیشه. همچنین آزمایش contextual approval در جریانه تا سیستم بفهمه آیا دستور با تسک فعلی همخوانی داره یا نه.
آنالیز استاتیک کد: بعد از هر آسیبپذیری که پچ میشه، یه rule جدید به مجموعه OpenGrep اضافه میشه تا همون باگ دوباره برنگرده. این rulepack الان ۱۴۸ rule داره، روی PR diffها اجرا میشه و هدفش اینه که هم regression و هم variant های مشابه یه باگ رو شناسایی کنه. CodeQL هم برای پوشش semantic عمیقتر در کنارش استفاده میشه.
نکات کلیدی:
- fs-safe جلوی باگهای مرزشکنی فایلسیستم رو میگیره، نه یه sandbox کامل
- Proxyline ترافیک شبکه رو به سمت پروکسی هدایت میکنه تا سیاستها در لایه egress اجرا بشن
- ClawHub وضعیت امنیتی هر نسخه پلاگین رو مشخص میکنه و release های مخرب رو بلاک میکنه
- پارسینگ دستورات با Tree-sitter جلوی دور زدن allowlist از طریق wrapper ها رو میگیره
- یه rulepack دقیق با ۱۴۸ rule در CI اجرا میشه تا کلاسهای باگ قبلی برنگردن




