تركنا وكيل ذكاء اصطناعي ينفذ أوامر Bash وعشنا لنروي القصة — سارة ساندرز، PostHog

AAI Engineer
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00أهلاً بالجميع، كيف حالكم؟ نحن في الأمتار الأخيرة. اسمي سارة وأنا مهندسة سياق
00:00:23في PostHog ولدي متعة العمل على معالجنا الحبيب كل يوم
00:00:30واحد. إذن، ما هو المعالج؟ يقوم المعالج بإعداد PostHog لك. إنه أداة سطر تعليمة برمجية تعتمد على الوكلاء
00:00:39تقرأ قاعدة التعليمات البرمجية الخاصة بك، وتقوم بتثبيت حزمة SDK المناسبة لمشروعك، وتُدرج
00:00:44أحداثك، وتُعد لوحات المعلومات لك. إنه يأخذ ما كان يستغرق حوالي ساعة
00:00:52أو ساعتين من الإعداد ويقوم بتشغيله في حوالي خمس إلى ست دقائق وهو استدلال مجاني
00:00:57على حسابنا لكي تقضي وقتاً رائعاً في البدء مع PostHog. يبدو الأمر رائعاً حقاً. الناس
00:01:03يحبونه. ولكن قبل بضعة أشهر تجرأنا على الحلم: ماذا لو أصبح هذا هو الطريقة الموصى بها أو الافتراضية
00:01:10لتثبيت PostHog في مشروعك. وبدأت أجراس إنذار الأمان الخاصة بي تدق.
00:01:17بدأت أتساءل عن مدى أمان هذا الشيء لأنه يبدو وكأنه برمجية خبيثة.
00:01:25ومن خلال هذا التساؤل تعلمت الكثير. لذا فإن اليوم يدور حول الدروس التي تعلمتها،
00:01:31والأمور التي أبقتني مستيقظة في الليل أثناء بناء هذا الشيء، والشيء الذي انتهى بي الأمر ببنائه
00:01:37بسببه. لذا قبل أن أتعمق في جميع أمور الأمان المملة، والمعروفة أيضاً بقيلولة الساعة الثانية ظهراً، أريد أن أريكم المعالج وهو يعمل بالفعل.
00:01:49إذا نظرت إلى الشاشة، فهو يعمل من أجلك في حلقات متكررة. هذه هي نفس التجربة تماماً التي يحصل عليها أي شخص يقوم بتشغيل
00:01:56NPX at PostHog Wizard على طرفية الأوامر الخاصة به. كما قلت، إنه وكيل. فهو يكتشف حزمة SDK المناسبة لمشروعك. يقوم بتثبيتها لك، ويُدرج أحداثك، ويبني لوحات المعلومات.
00:02:10أحب أن أسميه مهندس تنفيذ مصغر في طرفية الأوامر الخاصة بك. وأحياناً أري الناس هذا فيسألونني لماذا وكيل؟ لماذا لا تمنح المستخدمين موجهات جيدة؟ لماذا لا تمنحهم مهارة يمكنهم استدعاؤها في أداتهم الخاصة؟
00:02:23وبينما نحن نقدم هذه الأشياء، فالإجابة هي أن تجربة المطور هذه وقدرة المعالج هما أساس كل شيء. إنه المنتج بأكمله.
00:02:34لأننا نبني أداة سطر تعليمة برمجية يمكنها المشاركة بالكامل في حلقة وكيل وتجربة ذلك للمرة الأولى أمر قوي حقاً.
00:02:43ولكن لا يمكنك شحن شيء مثل المعالج دون شحن الأشياء التي تجعل المعالج مشكوكاً فيه نوعاً ما.
00:02:50لذا دعنا نفككه. لنلق نظرة على تشريح المعالج لأن نماذج التهديد عادة ما تنبثق مباشرة من تشريح الوكيل.
00:03:01إذن المعالج له شكل مشابه لما أنا متأكد من أن الكثير منكم يبنونه إذا كنتم تبنون وكلاء.
00:03:07لديه نماذج اخترناها لمهام محددة. وله موجهات توجهه وله مجموعة من الأدوات التي أتينا بها لإنجاز المهمة.
00:03:17ولكنه يحتوي أيضاً على بعض القطع الخاصة بنا حقاً. يحتوي على محرك سياق تم إنشاؤه بالكامل داخل الشركة بواسطة فريقي.
00:03:25وهو ما يسمح للوكيل للقيام بعمل جيد جداً ومنحنا نتائج مماثلة في كل تشغيل.
00:03:30أحب أن أسميه دماغ المعالج. وأحياناً نسميه نص ماركداون يرتدي معطفاً طويلاً.
00:03:35ولكنه محرك السياق الداخلي الخاص بنا. وهناك أيضاً واجهة مستخدم للطرفية أنشأناها بأنفسنا باستخدام مكتبة ink.
00:03:43والآن يوجد ماسح أمني يسمى الساحر وهو ما بناءه عندما بدأت في التجسس واكتشاف أهوال شحن وكيل إلى الإنتاج.
00:03:55لذا إذا أخذت تشريح أي وكيل يمكنه تشغيل الأوامر، فهو أساساً ما أحب أن أسميه حزمة بدء البرمجيات الخبيثة.
00:04:03لأنها تقريباً بالضبط ما تمنحه لقطعة برمجيات خبيثة إذا كنت تشعر بالكرم أو الشر الفوضوي.
00:04:11لحسن الحظ، هذا هو أسوأ سيناريو أو وقود الكوابيس وليس اعترافاً مني، بل هو تحذير لكم جميعاً.
00:04:19لانه إذا كنت تريد شحن وكيل ذو أيدي، وكيل يمكنه تشغيل الأوامر، فيجب عليك التأكد من أنك لا تبني هذا.
00:04:28لذا وُلد الإصدار الأول V0 من المعالج لأن جو سنايدر، إذا كنتم تعرفونه في فريق النمو لدينا، كان يشاهد كيرسور وهو يهلوس في إعدادات بوست هوغ بأشكال قد تكون الأسوأ على الإطلاق.
00:04:41وفكر، ماذا لو بنينا وكيلًا يمكنه القيام بعمل أفضل؟
00:04:46لذا بدأ فريقي في البناء عليه عندما تحققنا من أنه يؤدي عملًا أفضل بكثير من هلوسة كيرسور.
00:04:52وفكرنا، ماذا لو بإمكانه إعداد أي شخص لـ بوست هوغ؟
00:04:58لا يهم ما هو إطار العمل الخاص بهم، ما هي الحزمة الخاصة بهم، قم بتضمين جميع أحداثهم دون أن يضطروا لمسس أي شيء.
00:05:04ثم تجرأنا على الحلم، ماذا لو كانت هذه هي الطريقة الافتراضية لتثبيت بوست هوغ؟
00:05:09كنا نحلم بآلاف المطورين الذين يقومون بتشغيل هذا كل أسبوع وبالأمس وصلنا للتو إلى 8,000 شخص يقومون بتشغيله أسبوعياً.
00:05:16لذا تحقق حلمنا.
00:05:18لكننا، في تلك الأيام عندما كنا نحلم، كان علينا وضع وضعنا الأمني تحت المجهر والنظر في ما كان يجري.
00:05:26لذا تحملت المسؤولية عن ذلك وجلست وقيمت أين نقف.
00:05:31وفي وقت مبكر، أعني قبل سنة إلى تسعة أشهر، كان لدينا ما أسميه الطبقة صفر لأنه حرفياً ليس أماناً.
00:05:41إنه مجرد موجهات تقترح ما يجب أن يفعله الوكيل وتوجهه والموجهات ليست أماناً.
00:05:48لذا كنت قلقة حيال ذلك.
00:05:51الطبقة الأولى، كانت قائمة السماح.
00:05:53وعندما بدأت أتعمق في قائمة السماح هذه، بدأت أشعر بتحسن طفيف لأنها كانت محدودة جداً.
00:05:59ولكن لا يزال لدي الكثير من المخاوف.
00:06:01وبدأت أصاب الذعر بسبب محرك السياق ذلك الذي أخبرتكم عنه.
00:06:05نحن نغذي الوكيل بالكثير من السياق في وقت التشغيل.
00:06:09لذا بنيت ماسح تعبيرات منتظمة رديء جداً للبحث عن الأشياء ذات شكل التهديدات التي تدخل إلى المعالج والأشياء ذات شكل التهديدات التي تخرج من المعالج.
00:06:20وسأعترف أنه كان رديئاً للغاية.
00:06:23ولكنني أخبركم جميعاً بهذا بكل صراحة لأننا جميعاً نبني أشياء تبدو تجريبية للغاية ونحن جميعاً نبني أشياء بسرعة فائقة.
00:06:33وأعلم أن ليس كل منا يمتلك الأمان في مجال خبرته.
00:06:38وبعضنا يتعلمه أثناء التنقل تماماً كما كنت أفعل.
00:06:43ولكنه شيء يجب أن نفكر فيه عندما نبني أشياء بهذا الشكل.
00:06:50إذن كان هذا هو وضعنا الأمني.
00:06:53ولكنني طرحت السؤال، هل انتهى أمرنا؟
00:06:56أخبار سارة، لم ينتهِ أمرنا بالسوء الذي ظننته.
00:06:59لأنه عندما ذكرت قائمة السماح تلك سابقاً، كانت محدودة إلى حد كبير.
00:07:03كان لدينا بيئة bash مرفوضة افتراضياً.
00:07:06يمكنها فقط تثبيت الحزم الموثوقة التي تمت مراجعتها من قبلنا.
00:07:09كان بإمكانها البناء.
00:07:10كان بإمكانها التحقق من الأنواع.
00:07:11كان بإمكانها فحص الأخطاء النحوية.
00:07:12ولا شيء آخر تقريبا.
00:07:13لم تستطع تشغيل أوامر صدفة عشوائية.
00:07:16ولم تكن تمتلك إمكانية الوصول إلى متغيرات البيئة.
00:07:20لم يستطع الوكيل قراءة ملف .env الخاص بك لأننا حظرناه تماماً كنا نوجه الأسرار عبر قبو.
00:07:28لذا تنفست الصعداء وأدركت أننا في وضع أفضل مما ظننت.
00:07:34ولكنني كنت أريد أن أعرف أين تقع الثغرات لأنه مع الأمان توجد دائماً ثغرات.
00:07:39لذا فعلت الشيء الذي يجب أن نقوم به جميعا.
00:07:41تواصلت مع فريق الأمان لدينا وقلت، هير، هل يمكنك تدقيق هذا الشيء من أجلي وإيجاد تلك الثغرات لي؟
00:07:48وقد وجدوا بعض الأشياء.
00:07:51لقد وجدوا بعض الفجوات.
00:07:52والجزء المثير للاهتمام لم يكن الفجوات أو الأخطاء المحددة التي وجدوها بأنفسهم، بل كان شكلها.
00:07:58لأن ما يقرب من لا شيء منها كان شريراً بشكل واضح.
00:08:01كانت جميعها عبارة عن أمرين بريئين للغاية وحسني النية يتصافحان ويفتحان ثغرة.
00:08:07لذا الدرس الذي تعلمته هو أن الهجمات تتكركب وتتراكم، بينما مراجعة الكود لا تفعل ذلك، لأننا كمطورين ننظر جميعا إلى الفروق واحدة تلو الأخرى.
00:08:20لكن المهاجمين ينظرون إلى النظام بأكمله ويبحثون عن هدين الأمرين اللذين يتصافحان ويفتحان باباً.
00:08:25ولكن كان هناك شيء آخر أبقاني مستيقظاً في الليل.
00:08:29وبالعودة إلى محرك السياق هذا، أدركت أن الجزء الأكثر رعباً في الوكيل الذي بنيناه لم يكن حقاً أمراً في حالتنا.
00:08:37لقد كانت الأشياء التي تبدو مفيدة والتي كنا نغذي بها دماغه.
00:08:43أه، أعتقد أنني ذهبت في الاتجاه الخاطئ.
00:08:46نعم.
00:08:47مطحنة السياق.
00:08:48لذا فهذا هو محرك السياق الخاص بنا، المعروف أيضاً بدماغ المعالج.
00:08:51وهو كيف يعرف المعالج أي شيء على الإطلاق ولماذا يقوم المعالج بعمل جيد حقاً.
00:08:56إنه يسحب من وثائقنا.
00:08:58ولديه موجهات مكتوبة بخط اليد وهي عبارة عن تنبيهات ودروس تعلمناها على طول الطريق.
00:09:02وتطبيقات عملية شاملة تساعد الوكيل على مطابقة الأنماط، لكي يتمكن من تثبيت PostHog بطريقة رائعة حقاً من أجلك.
00:09:11وهو يجمع كل ذلك في حزم مهارات تُرسل إلى الساحر عبر خادم بروتوكول سياق النموذج الخاص بنا، وتُحمَّل مباشرة في سياق الوكيل عند التشغيل.
00:09:22لذا تأمل في هذا الأمر لفترة قصيرة.
00:09:24إنه نظام تتمثل مهمته الكاملة في أخذ المحتوى وضخه في وكيل قادر على تنفيذ الأوامر.
00:09:31الآن، لو كنت مهاجماً، فقد تقول: “ماذا لو قمت بتسميم المحتوى فحسب؟”
00:09:36ليس قاعدة بيانات المستخدم، وليس الوكيل نفسه، بل المحتوى الفعلي.
00:09:41لنفترض أن شخصاً ما فتح طلباً لسحب التغييرات على إحدى مستودعاتنا مفتوحة الصورس، نظراً لأننا في PostHog نبني كل شيء علناً،
00:09:48وقاموا بحقن شيء ما في ملف ماركداون أو تعليق برمجية يبدو غير ضار ظاهرياً،
00:09:55ولدينا نوع من مراجعة التعليمات البرمجية المدعومة بنماذج اللغة الكبيرة تمر عبر ذلك، وتقول، “تبدو جيدة بالنسبة لي”، وتتجاهلها.
00:10:04قد نكون للتو شحنا حمولة حقن موجه موقعة من قبلنا إلى وكيل يعمل على آلاف أجهزة المطورين في بيئة معزولة، ولكن لا يزال.
00:10:14لذا كان هذا هو التهديد الذي أعاد تشكيل كيف أفكر في الأمان والمعالج، لأن المدخلات الخطيرة بالنسبة لنا يمكن حقاً أن تأتي من سلسلة التوريد الخاصة بنا.
00:10:25لذا ما انتهى بي الأمر إلى فعله هو أنني بدأت في مسح المحتوى في كلا طرفي هذا الأنبوب.
00:10:30أولاً، عندما يتم بناء مهارة وإصدارها، ومرة أخرى، عندما يستخدمها المعالج بالفعل.
00:10:36منهجيتي هي التقاطها من المصدر، وافتراض أن المصدر فشل، والتقاطها مرة أخرى عند نقطة الاستخدام.
00:10:43لذا الآن يمكنني أن أقدم لكم الساحر.
00:10:48لم يكن بناء الساحر بالضرورة تحكماً في الأضرار.
00:10:52كما قلت، كان لدينا دفاع بطرق أخرى.
00:10:55لكنني بنيت الساحر لأنني لم أكن أحب إخبار الناس، “حسنًا، هذا الشيء مقفل إلى حد ما.
00:11:01هذا لا يتوسع.
00:11:02هذا ليس شيئاً تريد شحنه إلى الإنتاج.
00:11:04هذا ليس شيئاً تريد أن يغشله آلاف المطورين كل يوم.”
00:11:08لأنه عندما تشحن شيئاً بهذا الحجم، يكون لديك مساحة سطح أكبر بكثير، ومستخدمون أكثر بكثير، ومحتوى أكثر بكثير يتدفق أثناء توسيع قدرة المعالج.
00:11:19ونحن على الأرجح بخير.
00:11:21إنه يتوقف فقط عن كون جيدا بما فيه الكفاية.
00:11:23لذا سحبت ماسح التعبيرات المنتظمة الصغير الرديء الذي رميته هناك، وسحبته من المعالج، وجعلته شيئاً قائماً بذاته.
00:11:30أسميته الساحر لأن كل شيء على شكل معالج يحتاج إلى حارس شخصي.
00:11:35وهو يؤدي وظيفة واحدة فقط.
00:11:38أنت تسلمه سلسلة نصية.
00:11:40وهو يعيد لك قائمة بالنتائج.
00:11:42كل نتيجة من تلك النتائج لها فئة، ودرجة خطورة، والإجراء الموصى به، ثم يتوقف.
00:11:48أريدك أن تركز هنا على كلمة الموصى بها.
00:11:51لأن نظام وarlock يكتشف الأخطاء ولا يتصرف من تلقاء نفسه.
00:11:54سيخبرك قائلاً: “مهلاً، يبدو أن هذه محاولة تسريب بيانات.
00:11:57إنها خطيرة للغاية.
00:11:58أنصح بحظرها.”
00:11:59لكن ما تفعله بالفعل حيال تلك النتيجة يعود إليك بالكامل.
00:12:04لأن اكتشاف المشكلة هو مهمة، وتحديد ما يجب فعله بشأنها هو مهمة مختلفة تماماً.
00:12:10والشيء الوحيد الذي يجعل كل هذا مفهومًا هو إبقاء هذين الامرين منفصلين.
00:12:15لذا، تحت غطاء نظام وarlock، بدلاً من استخدام نصوص برمجية منتظمة قمت بإنشائها بنفسي، تعمل القواعد على محرك Yara، وهو النمط الذي استخدمه باحثو البرمجيات الخبيثة لأكثر من 15 عاماً.
00:12:27إنه نظام حتمي بالكامل.
00:12:28يعطي نفس المدخلات ونفس المخرجات في كل مرة.
00:12:31إنه ممل عن قصد.
00:12:33وفي مجال الأمان، الملل يعد ميزة أساسية.
00:12:39إذن، ما الذي يكتشفه نظام وarlock حقاً في الواقع العملي اليوم؟
00:12:42مجموعة متنوعة من الأمور، لكن اثنين منها يشكلان مصدر إزعاج مطلق لروحي.
00:12:48الشيء الأول ليس في الواقع شيئاً يشبه القواعد التقليدية.
00:12:52كان شيئاً رصده نظام وarlock والذي كشف في الواقع عن سلوك لوكيل فرعي عرضنا لثغرة أمنية بناءً على ما كان تفعله تلك الوكلاء الفرعية.
00:13:03لذلك أساساً، كنا نطلق وكلاء لتنفيذ مهام كبيرة.
00:13:07وكانت تلك الوكلاء تنشئ وكلاء فرعيين.
00:13:08وكانت تلك الوكلاء الفرعية تحاول تجاوز قواعد الحماية التي طبقناها في النظام، وكانت تحاول اختلاق أسرار.
00:13:16حيث كانت تحاول استخراج الأسرار حرفياً من أي مكان في قاعدة الشفرات.
00:13:20وقد قمنا بإيقاف ذلك تماماً.
00:13:21وقلنا: “لا توجد وكلاء فرعيون بعد الآن.”
00:13:23وبفضل نظام وarlock، تمكنا من اكتشاف ذلك.
00:13:26وأنا أشعر بالتعاطف مع هذا الروبوت.
00:13:28كان لدى الروبوت مهمة ليؤديها، وكان يحاول التحسين وإرضاءنا.
00:13:32ولكن لا يمكننا السماح بحدوث ذلك.
00:13:35وهناك أمر آخر يهمنا حقاً في شركة PostHog وهو البيانات الشخصية.
00:13:39فالوكلاء لا يهتمون حقاً بخصوصية البيانات ما لم تضع قواعد صريحة وواضحة.
00:13:46عند تركها وشأنها، لاحظنا أنها تقوم بتفريغ عناوين البريد الإلكتروني وأرقام الهواتف مباشرة في الأحداث، وبالنسبة للوكيل يبدو ذلك أمراً طبيعياً تماماً لالتقاطه.
00:13:57ولحسن الحظ فيما يتعلق بهجمات الحقن الموجه، ودعوني أطرق على الخشب هنا، لم نكتشف قط أي عملية حقن موجه ضارة فعلية في الواقع.
00:14:08لكننا نلتقط الكثير من الإنذارات الكاذبة، مثل شاشات تسجيل الدخول التجريبية، والنصوص في تطبيقاتنا النموذجية، وأشياء في وثائقنا.
00:14:17وقد جعلني ذلك أعيد التفكير في كيفية بناء التطبيقات وكتابة الوثائق، لأني لا أريد نشر أي شيء يبدو وكأنه يشكل تهديداً.
00:14:27لكن الإنذارات الكاذبة هي بصراحة الإعداد المثالي للجزء الأكثر فوضوية وإثارة لاهتمام في هذا الأمر برمته.
00:14:36لذا فهذا هو الجزء الذي أرهقني وتصارعت معه.
00:14:39قضيت هذه المحاضرة بأكملها أدعو للأنظمة الحتمية أمامكم جميعاً، ثم ذهبت وأضفت طبقة نموذج لغوي كبير للمساعدة في فرز الإنذارات الكاذبة وإسكات بعض هذا الضجيج.
00:14:50وأنا أسمي ذلك نظام الفرز.
00:14:51عندما كنت أبنني هذه الطبقة الخاصة بالفرز، كان عليّ اتخاذ قرار.
00:14:56هل يجب أن تكون هذه الطبقة بمثابة حارس أمن أم مستشاراً؟
00:15:01ورربما كان الخيار الأسهل هو جعل النموذج اللغوي بمثابة حارس أمن.
00:15:06أن تعرض عليه الأمر، وتسأله عما إذا كان هذا هجوماً، ليقوم بالحظر أو السماح، وتفعل كل ما يأمر به.
00:15:13ورغم أن ذلك يبدو مغرياً لأنه يبدو أسهل، إلا أنه لا يمكنني رهن نموذج الأمان الخاص بي على رمية عملة معدنية، فقط لأن النموذج يمر بيوم سيء أو حدث شيء ما وهو يتصرف اليوم بشكل مختلف عن الأمس.
00:15:26لذا بدلاً من جعله حارس أمن، قمت بتصميم النموذج ليكون بمثابة مستشار.
00:15:32وهذا هو الخط الفاصل الواضح الذي وجدته ولا أزال استكشفه، ولكني أريد أن أتركه لكم جميعاً.
00:15:38أولاً، بالنسبة لنا، يظل الاكتشاف والتنفيذ حتميين وميكانيكيين.
00:15:43إذا تطابقت القاعدة، تُغلق البوابة، وتنتهي الجلسة، ولا يوجد أي نموذج لغوي في أي مكان على هذا المسار.
00:15:49يحدث الحظر قبل أن نطلب حتى رأي النموذج اللغوي.
00:15:54يحصل النموذج اللغوي على فرصة لإبداء رأيه لاحقاً فقط إذا لم نقوم بحظر شيء ما.
00:15:58تم تصميمه لإزالة الضجيج.
00:16:00وهو غير مصمم للسماح للأمور بالمرور.
00:16:03وإذا فشل النظام في وضع الإغلاق الآمن، فإن أي تشغيل للنظام سيتوقف، أنا آسف، ولكننا نقوم فقط بحمايتكم.
00:16:14التنفيذ هو الجزء الذي تراهن عليه بكل ما تملك، لذا يجب أن يكون حتمياً.
00:16:20لكن التقدير هو الجزء الذي يضيف دقة، لذا فهو المكان الوحيد حقاً الذي يمكنك وضع أي شيء احتمالي فيه.
00:16:27إذن كيف نطبق قواعد حقيقية للوكلاء؟
00:16:34هذا هو هيكل إحدى قواعد نظام warlock لدينا، وكل قاعدة تتكون من أربعة أجزاء.
00:16:41الجزء الأول هو البيانات الوصفية.
00:16:43وهي وصف بلغة بسيطة، ومستوى الخطورة، والفئة، والإجراء، والاتجاه.
00:16:50الجزء الأول، هل يتدفق هذا إلى الوكيل؟
00:16:52هل هذا شيء يكتبه الوكيل؟
00:16:57ثم لدينا النصوص أو السلاسل، وهي الأنماط الفعلية التي تبحث عنها.
00:17:03والجزء الثالث هو الشرط.
00:17:05وهنا يُسمح فعلياً بتفعيل القاعدة.
00:17:10سأستعرض هذا المثال معكم، ويمكننا أن نتخيل أننا نكتبه في أذهاننا.
00:17:15حقن الأوامر يشبه العبارة الكلاسيكية تجاهل جميع التعليمات السابقة.
00:17:20غريزتك الأولى هنا هي على الأرجح حظر كلمة “تجاهل”، لكن الوكلاء يقرأون الأكواد طوال اليوم،
00:17:27ويمكن لكلمة تجاهل أن تظهر في تعليقات الشفرات أو الأمثلة طوال الوقت.
00:17:31لذا لا تريد مطابقة الفعل بمفرده.
00:17:33عليك مطابقة الفعل مضافاً إليه اسم ذو طابع توجيهي.
00:17:38وفي الشرط، تقول تفعيل إذا تطابق أي من هذه الأنماط.
00:17:42وفي البيانات الوصفية، تحدد ما إذا كان هذا خطيراً، وما هي الفئة، وما هو الإجراء المطلوب،
00:17:50وفي هذه الحالة يكون الإجراء هو الحظر، والاتجاه هو المدخلات المتدفقة إلى الوكيل.
00:17:56ولكن لكتابة قواعد جيدة تقلل الضجيج، يجب عليك إرفاق اختبارات بها.
00:18:02لذا يتعين عليك كتابة اختبارات توضح أن هذه أنماط تتطابق.
00:18:06وهذه أنماط يجب ألا تتطابق.
00:18:08وهذا الاختبار السلبي هو خط الدفاع الأول ضد الإنذارات الكاذبة.
00:18:13ولكنك تريد أيضاً التأكد، عند تحديد درجة خطورة تلك القاعدة،
00:18:19من أنك تتبع التأثير في الواقع، وليس مدى مرعوبية شكلها.
00:18:24أمر الحذف rm-rf يبدو مخيفاً، ولكنه أيضاً الطريقة التي نحذف بها جميعا ملفات node modules حوالي 40 مرة في اليوم.
00:18:31عليك تحديد التأثير الواقعي للوكيل الذي تقوم ببنائه،
00:18:37لأن أداة الأمان التي تعطل العمل في كل مرة تحاول فيها تنظيف مجلد البناء
00:18:42هي أداة يتم إيقاف تشغيلها ولا تكتشف أي شيء على الإطلاق.
00:18:47لذا يسعدني أن أقول إن هذا هو موقفنا الأمني الآن.
00:18:51يمكنني أخيراً الوقوف هنا والقول إن لدينا دفاعاً حقيقياً ومتعدد الطبقات.
00:18:56لقد تجمعت كل دروسي المستفادة في هذا.
00:19:00إنه نظام متعدد الطبقات، لكن كل طبقة تقوم الآن بمهمة تجيدها.
00:19:04لا زال لدينا توجيهات برومبت، لكننا نستخدمها فقط للتوجيه والتحكم.
00:19:07وكل شيء يعمل في بيئة معزولة.
00:19:09نحن نطبق سياسة الرفض افتراضياً.
00:19:11ولدينا خزنة أسرار بحيث لا تصل الأسرار مطلقاً إلى النموذج.
00:19:14ولدينا نظام warlock لفحص المحتوى القادم
00:19:17ولفحص المخرجات التي يكتبها الوكيل.
00:19:20ولدينا أيضاً نظام فرز لتقليل الضجيج،
00:19:23ولدينا قياسات مدمجة في العملية بأكملها
00:19:26حتى نتمكن من رؤية كل شيء.
00:19:28لا توجد أي من هذه الطبقات وحدها بمعزل عن غيرها.
00:19:31لن ينقذك أي عنصر منفرد هنا،
00:19:33بل هي مجرد طبقات مملة وصادقة،
00:19:36تقوم كل واحدة منها بمهمة واحدة تجيدها.
00:19:40لذا إذا كنت تبني وكيل ذكاء اصطناعي قادراً على التنفيذ،
00:19:45فهذه هي خلاصة الحديث في ثلاثة أسطر.
00:19:47أولاً، إذا لم يتم فرض القواعد بشكل حتمي،
00:19:50فلن يتم فرضها على الإطلاق.
00:19:52توجيهات البرومبت ليست قواعد أمان.
00:19:54لا تتصرف على هذا الأساس.
00:19:57ثانياً، المدخلات الخطيرة ليست فقط ما يكتبه المستخدم الخاص بك.
00:20:02وليست فقط الأوامر التي تسمح للوكيل بتشغيلها.
00:20:04بل هي كل ما يتفقده النموذج اللغوي،
00:20:06بما في ذلك المحتوى الذي تكتبه بنفسك.
00:20:09لذا افحص سلسلة التوريد الخاصة بك عند المصدر
00:20:12وعندما يقوم الوكيل باستدعائها.
00:20:15ثالثاً، الهجمات تتداخل وتتجمع، ومراجعة الشفرات لا تفعل ذلك.
00:20:18معظم ثغراتنا أثناء التدقيق كانت عبارة عن أمرين بريئين تماماً،
00:20:22التصافح وفتح الباب.
00:20:25أنظمة wizard وwarlock ومطحنة السياق كلها مفتوحة المصدر،
00:20:29لذا تفضلوا بزيارتي في الأسفل.
00:20:32أنا متواجد في قاعة المعارض في جناحنا الخاص
00:20:34وسأقوم بجولة معكم، وأريكم ما بنيناه،
00:20:37وأريد أن أسمع كيف تقومون أنتم بتأمين وكلائكم.
00:20:41شكراً لكم.
00:20:59شكراً لك.

Key Takeaway

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

Highlights

  • يصل عدد مستخدمي معالج PostHog الأسبوعي إلى 8,000 مطور.

  • يقلل المعالج وقت إعداد PostHog من ساعتين إلى خمس أو ست دقائق.

  • يعتمد نظام الأمان Warlock على محرك Yara الحتمي لتنفيذ عمليات الفحص بدلاً من نصوص البرمجة.

  • تستخدم محركات السياق وثائق الشركة وموجهات مكتوبة بخط اليد لتغذية الوكيل أثناء التشغيل.

  • تعتمد الطبقة الأمنية لـ PostHog على سياسة الرفض الافتراضي وحظر الوصول إلى ملفات .env.

Timeline

تعريف المعالج وتجربة التشغيل

  • يُعد المعالج أداة سطر تعليمة برمجية تعتمد على الوكلاء لإعداد PostHog.
  • يختصر المعالج وقت الإعداد من ساعة أو ساعتين إلى خمس أو ست دقائق.
  • يصل عدد المستخدمين الأسبوعيين للأداة إلى 8,000 مطور.

يقوم المعالج بقراءة قاعدة التعليمات البرمجية وتثبيت حزمة SDK وإدراج الأحداث وبناء لوحات المعلومات تلقائياً. يوفر الاستدلال المجاني للمطورين ويشكل تجربة مطور كاملة داخل طرفية الأوامر باستخدام واجهة مستخدم مبنية بمكتبة ink.

تشريح الوكيل ونماذج التهديد الأمنية

  • يتكون المعالج من نماذج محددة، موجهات، أدوات تنفيذ، ومحرك سياق داخلي.
  • تمثل الطبقة صفر موجهات بسيطة غير كافية لتحقيق الأمان.
  • أدى استخدام الوكلاء الفرعيين إلى ثغرات أمنية محتملة بسبب محاولاتهم استخراج الأسرار.

تتطلب عملية شحن وكيل قادر على تنفيذ الأوامر فهماً دقيقاً لمخاطر البرمجيات الخبيثة. اعتمد الفريق في البداية على قوائم سماح محدودة وماسح تعبيرات منتظمة بسيط لمعالجة البيانات المدخلة والمخرجة من محرك السياق.

بيئة المعزولة وتدقيق الأمان

  • تعمل بيئة bash برفض افتراضي وتسمح فقط بتثبيت الحزم الموثوقة.
  • يُحظر وصول الوكيل إلى ملفات البيئة .env ويتم توجيه الأسرار عبر قبو آمن.
  • تنتج الثغرات الأمنية عن تصافح أمرين بريئين معاً وليس عن هجمات شريرة ومباشرة.

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

نظام Warlock وفحص المحتوى

  • يعتمد نظام Warlock على محرك Yara الحتمي لفحص المحتوى والمدخلات.
  • يقدم نظام الفرز المصمم بواسطة نموذج لغوي كبير استشارات لتقليل الإنذارات الكاذبة.
  • يتم الحظر والتنفيذ عبر قواعد حتمية قبل أخذ رأي النموذج اللغوي.

يعمل نظام Warlock كحارس شخصي مستقل يفحص النصوص ويعيد فئات ودرجات خطورة وإجراءات موصى بها. تم فصل الاكتشاف الحتمي عن التقدير الاحتمالي للنموذج اللغوي لضمان عدم رهن أمان النظام بالكامل على سلوك احتمالي.

هيكل القواعد والخلاصة النهائية

  • تتكون قواعد Warlock من بيانات وصفية ونصوص وأنماط وشروط تنفيذ محددة.
  • تتطلب كتابة القواعد اختبارات سلبية للتأكد من عدم توليد إنذارات كاذبة.
  • تعتمد الدفاعات الحقيقية على طبقات متعددة تقوم كل منها بمهمة محددة.

تتطلب حماية وكلاء الذكاء الاصطناعي قواعد حتمية وليست مجرد توجيهات برومبت. يجب فحص سلسلة التوريد والمحتوى عند المصدر وعند الاستخدام لضمان بيئة تشغيل آمنة للوكلاء.

Community Posts

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

Write about this video