Deno تطلق الكود المصدري لجدار حماية الوكلاء الخاص بها (Claw Patrol)

BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00هذا Claw Patrol، وهو جدار حماية أمني مفتوح المصدر بناه فريق Dino ويقع بين
00:00:04وكلاء الذكاء الاصطناعي لديك والإنترنت، وهو يحل ثلاث مشكلات أمنية رئيسية مع وكلاء الذكاء الاصطناعي.
00:00:09الوصول ليس تحكماً فعلياً، ولا ينبغي لوكيلك رؤية الأسرار، ولا يمكنك رؤية ما فعله وكيلك.
00:00:14لقد كنت أجرب الكثير من أدوات أمان وكلاء الذكاء الاصطناعي مؤخراً، وأعجبتني حقاً المقاربة
00:00:19التي اتخذتها Claw Patrol هنا، لكنها ليست مثالية بعد. إذن، طريقة عمل Claw Patrol هي أن لديك
00:00:28خادماً واحداً يسمى البوابة (Gateway)، والذي يحتوي على قواعدك، وبيانات الاعتماد، والسجلات، ولوحة تحكم
00:00:32Claw Patrol، ثم لديك أي عدد من الأجهزة التي تشغل الوكلاء، ويمكنهم الانضمام
00:00:36إلى تلك البوابة وتوجيه حركة مرور الوكيل من خلالها. في الواقع، يمكنك اختيار تشغيل أوامر فردية
00:00:40عبر البوابة، أو يمكنك إضافة جهازك بالكامل. في حالتي، البوابة الخاصة بي هي ببساطة خادم Ubuntu
00:00:45أتصل به باستخدام Tailscale، والذي يدعمه Claw Patrol بشكل جاهز، بالإضافة إلى
00:00:50WireGuard أو كليهما، ووكلاؤنا هم جهاز Mac الخاص بي وخادم OpenClaw. أنا أشغل بوابة OpenClaw
00:00:55عبر Claw Patrol، وعلى جهاز Mac أستخدم فقط أمر التشغيل الفردي باستخدام Clawd حسب حاجتي.
00:01:00مع هذا القدر من السياق، دعونا ننظر إلى المشكلات الثلاث الرئيسية التي يحلها Claw Patrol، وسأبدأ
00:01:04في الواقع بالرقم اثنين، وهو أنه لا ينبغي لوكلائك رؤية الأسرار، لأنه يقودنا بسلاسة إلى
00:01:09المشكلات الأخرى. لذا، على بوابة Claw Patrol، يمكنك تهيئة بيانات اعتمادك مثل مستخدمي Postgres،
00:01:14واشتراكات Clawd، وحسابات GitHub، وأي رموز مميزة (bearer tokens) أو رؤوس مخصصة كما لدي هنا لـ
00:01:19خادم API للإنتاج. مع هذا، عندما نقوم بعد ذلك بتشغيل وكلائنا عبر البوابة باستخدام أمر Claw Patrol
00:01:25run، فإنهم لا يحتاجون إلى أي من بيانات الاعتماد هذه لجعل الطلبات تعمل فعلياً. سيتم ببساطة
00:01:30حقنها عندما يمر هذا الطلب عبر البوابة. لذا إذا طلبت من Claw استخدام الـ API الخاص بي وقاعدة بياناتي
00:01:35لإعطائي نظرة عامة على كليهما، فإنه قادر على القيام بذلك دون أي مشاكل، ويمكنني رؤية
00:01:41الأوامر التي يشغلها فعلياً أنها لا تتضمن أي مفاتيح API لطلبات curl هذه،
00:01:46لكنه يحتاج إلى واحد، وبالنسبة لـ Postgres، فهو يستخدم فقط كلمة مرور وهمية هي X والتي بالتأكيد ليست كلمة المرور
00:01:51الحقيقية، لكنه لا يزال يتصل ويحصل على المعلومات ذات الصلة، حيث قامت البوابة
00:01:56فعلياً بالتقاط هذه الطلبات وإرفاق بيانات الاعتماد الحقيقية. هذا يعني أن الوكيل لا يملك أبداً
00:02:00الوصول إلى القيم الحقيقية، لذا إذا رأى شخص ما سجلات الوكيل الخاصة بي أو حاول حقن أمر (prompt injection)،
00:02:06فلن يحصل أبداً على بيانات الاعتماد هذه لأنها تعيش على خادم منفصل تماماً، والوكيل لا يملك
00:02:10أي طريقة للوصول إليها. فقط لإظهار عملية الحقن هذه بشكل أنظف، إذا قمت بتشغيل طلب curl هذا على
00:02:15جهازي الطرفي هنا، يمكنك رؤية أنه تم رفضه لأنني لم أقم بتمرير مفتاح API، ولكن إذا قمت بتشغيل
00:02:20نفس الأمر تماماً عبر claw patrol run، يتم إرجاع البيانات بشكل طبيعي حيث يتم حقن مفتاح الـ API ذلك.
00:02:26المشكلة التالية التي يهدف claw patrol إلى حلها هي أن الوصول ليس تحكماً في الإجراء. يمنحك Claw patrol
00:02:31تحكماً دقيقاً جداً فيما يمكن أن يفعله الوكيل بالطلب. على سبيل المثال، إذا استخدمت مهارة Postgres
00:02:36مرة أخرى، ولكن هذه المرة طلبت منه إسقاط جدول وإنشاء آخر جديد، عندما يعمل، فإنه يعيد فوراً
00:02:41رسالة خطأ مخصصة قمت بإعدادها تقول إن تغييرات المخطط لا تتم إلا عبر طلبات سحب الترحيل (migration PRs)،
00:02:46وليس عبر الوكيل. لقد بحثت البوابة فعلياً في طلب Postgres الذي أجراه الوكيل الخاص بي،
00:02:51وقامت بفحصه مقابل مجموعة قواعد قمت بتعريفها، وبفضل إحدى قواعدي، تم رفض
00:02:56طلب إسقاط الجدول. طريقة أخرى يمكنني التعامل بها مع هذا هي وجود عنصر بشري في الحلقة (human in the loop)، لذا يمكنني
00:03:00في الواقع جعل هذه القاعدة تصل إلي للموافقة على الإجراء. في الوقت الحالي، هذا يدعم فقط
00:03:04Slack، لكن المزيد من الخيارات قادمة قريباً أيضاً. هناك حتى خيار لاستخدام LLM كقاضٍ،
00:03:09والقواعد قابلة للتخصيص والمرونة بشكل لا يصدق، لذا يمكنك حتى الحصول على قواعد مثل فحص
00:03:13نقطة نهاية API لدعم العملاء التي ترسل الردود، ويمكنك معرفة ما إذا كان هناك أي محتوى مسيء،
00:03:18أو تحيات مفقودة، أو أي شيء لا تريد تسريبه في ذلك الطلب. ومرة أخرى،
00:03:22كل هذا يتم على الطلب في البوابة مما يعني أن كل هذا نظرياً محمي من
00:03:27حقن الأوامر وتقريباً كل نوع آخر من هجمات الذكاء الاصطناعي. المشكلة الثالثة التي يحلها claw patrol
00:03:31هي أنه لا يمكنك رؤية ما فعله الوكيل، ولكن مع claw patrol، كل طلب مرئي في
00:03:37لوحة التحكم هنا، ويمكنك حتى رؤية الجلسات النشطة بالإضافة إلى الرموز المستخدمة، وإذا نقرت
00:03:42داخل طلب ما، يمكنك رؤية التفاصيل ذات الصلة مثل أمر postgres الذي تم تشغيله فعلياً،
00:03:46أو في حالة استدعاء API، يمكنك رؤية طلب الـ API وكذلك الاستجابة التي حصل عليها.
00:03:51بهذه الطريقة لن تحتاج إلى قضاء الوقت في تمشيط كل سجلات الخدمات الفردية
00:03:55التي لمسها الوكيل لمحاولة معرفة ما فعله، وبدلاً من ذلك يمكنك فقط رؤية ما فعله
00:03:59عند نقطة الطلب، لذا يجب أن ترى تقريباً كل ما يفعله الوكيل.
00:04:03هذه هي المشكلات الثلاث التي يهدف claw patrol إلى حلها، ولكن كيف يتم إعداد كل هذا؟ حسناً،
00:04:07بمجرد تثبيت claw patrol، يتم تهيئة البوابة بالكامل بملف HCL واحد.
00:04:12هنا، تقوم بتعريف نقاط النهاية المختلفة التي سيكون لديك قواعد وبيانات اعتماد لها،
00:04:16لذا لدي العديد منها مثل OpenAI، وSlack، وSSH، وPostgres، وما إلى ذلك، فإذا مر أي طلب
00:04:22عبر البوابة يطابق أياً منها، فإنه يعرف أن عليه فحص القواعد وبيانات الاعتماد.
00:04:26أما بالنسبة لبيانات الاعتماد نفسها، فإن إعدادها مباشر تماماً أيضاً.
00:04:30أنت تحدد نوع الاعتماد، وما هي نقطة النهاية التي يجب أن يطابقها هذا الاعتماد.
00:04:34هناك دعم للكثير من أنواع بيانات الاعتماد مثل اشتراكات Anthropic، وCodex Ones،
00:04:39وClickHouse، وPostgres، وأيضاً الأساسيات مثل الرموز المميزة والرؤوس المخصصة،
00:04:43لذا يجب أن تجد أنه يدعم تقريباً كل الأنواع التي تحتاجها،
00:04:46وحتى إذا لم يكن كذلك، يمكنك في الواقع برمجة إضافات (plugins) لإضافة النوع الخاص بك.
00:04:50بمجرد تحديد اعتماد هنا، كل ما عليك فعله هو التوجه إلى لوحة التحكم لملء
00:04:54القيمة الفعلية. إعداد القواعد سهل أيضاً إلى حد ما.
00:04:56أنت ببساطة تحدد نقطة النهاية التي ستطبق القاعدة عليها، ثم تكتب القاعدة
00:05:00باستخدام لغة التعبير الشائعة (Common Expression Language)، لذا يمكن أن يغطي هذا مجموعة واسعة من الأشياء مثل HTTP،
00:05:05وPostgres، وKubernetes، وما إلى ذلك. بعد هذا، تحدد الحكم (verdict) للقاعدة التي
00:05:09قمت بتعريفها للتو، سواء كنت توافق أو ترفض بناءً عليها، وستستخدم الموافقة هنا إذا كنت تنشئ
00:05:14نهجاً يعتمد على القائمة المسموح بها بدلاً من نهج القائمة السوداء، لذا ستحظر الكل افتراضياً ثم
00:05:18تسمح فقط بأشياء معينة. في حالتي، استخدمت ببساطة طريقة القائمة السوداء.
00:05:22أخيراً، ميزة أخرى مفيدة حقاً هنا هي الملفات الشخصية (profiles). يمكنك في الواقع تجميع بيانات اعتمادك
00:05:26في ملفات شخصية متعددة، مما يعني أن أي قواعد ونقاط نهاية مرتبطة ببيانات الاعتماد تلك
00:05:31يتم تجميعها أيضاً معها، ويسمح لك هذا بإعداد نوع من التحكم القائم على الأدوار لوكلائك
00:05:35وفرقك، بحيث يمكن للمطورين الحصول على وصول معين إلى بيانات الاعتماد وقواعد مختلفة لها،
00:05:40وربما يكون لفريق آخر، مثل فريق الدعم، بيانات اعتماد مختلفة وقواعد مختلفة
00:05:45أيضاً. لمساعدتك عند إجراء تغييرات على القواعد، هناك في الواقع أمر اختبار حيث يمكنك
00:05:49تنزيل إجراءات القواعد من لوحة التحكم، ثم إعادة تشغيلها مقابل تغييرات القواعد المحلية الخاصة بك لمعرفة ما إذا كانت
00:05:54أي منها قد غيرت النتيجة، حتى تتمكن من اكتشاف ما إذا كان سيكون هناك أي تسريبات عرضية.
00:05:59يجب أن أعترف أنني وجدت عملية الإعداد هذه مملة قليلاً، وأنا متأكد من أنه سيتم
00:06:02تحسينها قريباً، لأن هذا في وقت مبكر جداً من عمر المشروع، ولكن إذا كانت هناك طريقة بسيطة لإضافة
00:06:07بيانات الاعتماد والقواعد من لوحة التحكم، فسيكون ذلك رائعاً حقاً. ربما شيئاً مشابهاً لـ
00:06:11كيف يعمل AdGuard، حيث يمكنك فقط رؤية طلب يأتي والنقر لإضافة قاعدة أو
00:06:15اعتماد لهذا الطلب. لقد واجهت أيضاً الكثير من المشكلات عندما كنت أحاول إضافة نقاط نهاية
00:06:19كانت مجرد عناوين IP إلى خادم Proxmox المحلي الخاص بي. لسبب ما، لم تكن تريد
00:06:24اعتراض تلك الطلبات، ولم أستطع رؤية أي منها يأتي على لوحة التحكم، وقد تسبب ذلك
00:06:28لي في بعض الصداع. لذا هناك بالتأكيد بعض الإصلاحات المطلوبة، أو ربما كنت فقط أسيء استخدامها،
00:06:33ولكن في كلتا الحالتين، نعم، سيكون هناك بعض العمل للوصول إلى نقطة من القابلية للاستخدام التي لا تقاطع
00:06:38سير عملك، ولكن هذا منطقي نوعاً ما لأن هذا كله يتعلق بالأمان وليس مجرد إرسال وكيل
00:06:43في وضع YOLO (أنت تعيش مرة واحدة فقط). لذا أخبرني في التعليقات أدناه برأيك حول Claw Patrol، وإذا كان
00:06:47لديك أي أدوات أمان تستخدمها لوكلائك. وبينما أنت هناك، اشترك، وكما
00:06:51دائماً، أراك في المرة القادمة.

Key Takeaway

يوفر Claw Patrol طبقة أمنية مركزية تحقن بيانات الاعتماد وتقيد صلاحيات وكلاء الذكاء الاصطناعي دون منحهم وصولاً مباشراً إلى الأسرار، مما يعزز الحماية والمراقبة.

Highlights

  • يعمل Claw Patrol كجدار حماية أمني مفتوح المصدر يوضع بين وكلاء الذكاء الاصطناعي والإنترنت.

  • يعالج النظام ثلاث مشكلات أمنية أساسية: عدم التحكم الفعلي، تسرب الأسرار للوكلاء، وصعوبة مراقبة تصرفات الوكلاء.

  • يتم حقن بيانات الاعتماد (مثل مفاتيح API وكلمات مرور قواعد البيانات) عبر البوابة (Gateway) مباشرةً، مما يمنع الوكيل من امتلاكها فعلياً.

  • يسمح النظام بتعريف قواعد أمنية دقيقة باستخدام لغة التعبير الشائعة (CEL) لرفض أو الموافقة على إجراءات الوكيل.

  • توفر لوحة التحكم رؤية مركزية لجميع الطلبات الصادرة عن الوكلاء، مما يغني عن مراجعة سجلات الخدمات الفردية.

  • يُضبط إعداد البوابة بالكامل عبر ملف HCL واحد، ويدعم أنواعاً متعددة من بيانات الاعتماد بما في ذلك Postgres وGitHub وOpenAI.

Timeline

المشكلات الأمنية لوكلاء الذكاء الاصطناعي

  • يحل Claw Patrol ثلاث ثغرات أمنية: غياب التحكم في الوصول، تعرض الأسرار للوكيل، وانعدام الرؤية لما يفعله الوكيل.
  • تتكون البنية من بوابة مركزية (Gateway) تحتوي على القواعد والسجلات، وأجهزة عميلة (Agents) تتصل بها.

يعمل Claw Patrol كجدار حماية يربط بين وكلاء الذكاء الاصطناعي والإنترنت. يتمثل الإعداد في خادم بوابة يعمل بنظام Ubuntu، بينما يعمل الوكلاء على أجهزة مثل Mac أو خادم OpenClaw، مع دعم الاتصال عبر Tailscale أو WireGuard.

إدارة الأسرار والوصول

  • تحقن البوابة بيانات الاعتماد الحقيقية في الطلبات أثناء عبورها، مما يحميها من حقن الأوامر (prompt injection).
  • لا يمتلك الوكيل مفاتيح API أو كلمات مرور حقيقية، بل يعتمد على بيانات وهمية لا تعمل خارج إطار البوابة.

يتم تهيئة بيانات الاعتماد مثل مستخدمي Postgres ورموز GitHub على البوابة. عند تنفيذ أمر عبر 'claw patrol run'، يتم إرفاق الاعتمادات الحقيقية تلقائياً، مما يضمن أن الوكيل لا يرى القيم الحقيقية حتى في حال تعرض سجلاته للاختراق.

التحكم في الإجراءات والمراقبة

  • توفر البوابة تحكماً دقيقاً يرفض الإجراءات غير المصرح بها، مثل إسقاط جداول قواعد البيانات.
  • يمكن دمج عنصر بشري للموافقة عبر Slack أو استخدام LLM كقاضٍ لفحص مخرجات الوكيل قبل إرسالها.

يمكن للقواعد المخصصة فحص محتوى الطلبات، مثل الكشف عن المحتوى المسيء أو الرسائل المفقودة. توفر لوحة التحكم رؤية لحظية للجلسات النشطة وتفاصيل الطلبات، مما يلغي الحاجة لتمشيط سجلات الخدمات المختلفة.

الإعداد والتهيئة

  • تُجرى التهيئة عبر ملف HCL واحد، مع دعم واسع لنقاط النهاية مثل Kubernetes وPostgres وOpenAI.
  • تسمح الملامح (Profiles) بتطبيق نظام تحكم قائم على الأدوار (RBAC) للفرق والمطورين.
  • تتوفر أوامر اختبار لاكتشاف التسريبات المحتملة قبل تطبيق قواعد جديدة.

يعتبر الإعداد حالياً يتطلب مجهوداً يدوياً، مع وجود بعض التحديات التقنية في اعتراض حركة المرور عبر عناوين IP محلية. يخطط المشروع لتحسين واجهة المستخدم لتسهيل إضافة القواعد مباشرة من خلال لوحة التحكم.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video