Deno تطلق الكود المصدري لجدار حماية الوكلاء الخاص بها (Claw Patrol)
BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술
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دائماً، أراك في المرة القادمة.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video