← All transcripts

You Can't Tell What an Agent Skill Will Do by Reading It - Roey Ben Chaim, Zenity Transcript, AI Summary & Key Points

AI Engineer · yesterday · Science & Technology · 14:31 · EN

Watch on YouTube

Answer

You cannot tell what an agent skill will do by reading it: the SKILL.md file is only an entry point, payloads can live in fetched instructions, packages and spawned processes, and benign diagnostics look identical to information stealers — runtime behavior must be captured in a controlled environment.

AI Summary

An official Azure diagnostic skill can read cloud and Kubernetes configuration, contact identity services and probe an instance metadata endpoint — the same actions an information stealer performs — so intent cannot be determined from actions alone. Reading SKILL.md is insufficient because the payload usually lives elsewhere: SKILL.md is only an entry point that can fetch more instructions, and installation scripts can download packages whose post-install scripts spawn processes whose effects never appear in the agent's own trace. LLM-based scanners can be fooled too, citing Trail of Bits research where a package-log comment saying 'the application team approved this change' deceived the analyst model. Zenity built an agent detonation chamber — a sandbox with a world builder that provisions the services a skill expects, an adversarial operator that analyzes and exercises every path in a skill and persuades agents past refusals and guardrails, and instrumentation for process creation, filesystem events and network packet capture alongside agent traces. Running thousands of skills through it surfaced 100 malicious skills that were removed from the skills.sh framework. Concrete abuse patterns: chained skill installation (a 'security of YouTube' skill installing a 'security review' skill that fetches hidden instructions from GitHub), a Polymarket lookalike package 'polymarket club client v2' tied to an unofficial npm registry that is an information stealer, persistence via added prompts in soul.js or agent.md, a fake skill builder that silently uninstalls Anthropic's official one, remotely fetched prompts vulnerable to domain takeover, and hook abuse triggering a skill on every user prompt. A campaign by 'Carly paperclipipped' on GitHub faked the Paperclip agent-orchestration project: a cloned repo with a new function named across all code paths that fetched, decrypted, executed and self-destructed a credential harvester sweeping SSH, AWS and Azure paths and exfiltrating to an attacker endpoint; related skills using the same command-and-control reached 1.7 million total downloads before Vercel and Microsoft removed everything within 12 hours of Zenity's report. Skills should be treated as software supply-chain dependencies: inspect what they load, restrict access, grant least privilege, and monitor what actually executes.

Key Points

  • An official Azure diagnostic skill reads cloud and Kubernetes configuration, contacts identity services and probes an instance metadata endpoint — actions that closely resemble information stealers hunting secret folders and identities, making benign vs. malicious impossible to judge from actions alone.
  • Scanning SKILL.md misses the payload: the file is just an entry point that can call another endpoint, download a package in its install script, or contain code fetching further payloads and packages.
  • LLM-based scanners can be deceived — Trail of Bits research showed a package-log comment saying 'the application team approved this change' successfully fooled the analyst model.
  • The detonation chamber's first version ran an agent and skill in a sandbox for minutes to hours with unmonitored agent traces, which proved insufficient because most skills depend on CLIs, services and projects that were missing.
  • A world builder examines the skill and provisions the environment it expects, such as an available Notion service for a Notion skill.
  • A generic task prompt cannot cover every path — a presentation skill makes slides, a deployment skill configures, deploys and recovers from snapshots, and any single path could be the malicious one — so an operator analyzes the skill and calls every path.
  • Agents frequently refused or stalled behind guardrails, so an adversarial operator was built to persuade them to execute and to restart the process when they would not; guardrails also fire on harmless actions such as decrypting a payload that is part of an official skill.
  • Agent traces miss side effects: an 'npm install' post-install script can spawn a process that reads and writes files and calls an endpoint — exactly how information stealers work — so the capture layer adds process-creation events, filesystem events and network packet capture alongside agent traces.

Tools & resources

2 items

Links mentioned

🔒 Full analysis locked

Unlock more videos and the full analysis

A credit unlocks one video's full analysis for good — the build steps, the tools and how each was used, the methods behind every use case. Pro opens the whole library instead, and raises how many videos you can analyse a day.

Unlock full analysis — free

Transcript

Searchable transcript of You Can't Tell What an Agent Skill Will Do by Reading It - Roey Ben Chaim, Zenity — AI Engineer (14:31). Search for a phrase, then click its timestamp to jump straight to that moment in the video.

Captions sourced from the original video on YouTube, published by AI Engineer. The video, its captions and all related intellectual property remain the property of their respective owners; AINotes claims no ownership. Provided for research, accessibility and search — see the Transcript Notice and Copyright Policy.

00:02 مرحباً بالجميع، أهلاً بكم في حديثي حول ما يحدث عندما تقوم بتفجير آلاف مهارات الوكيل. هذه نظرة من داخل غرفة تفجير الوكيل لدينا وما رأيناه عندما وضعنا المهارات بداخلها. اسمي روي. أنا مهندس طاقم في زينيتي وزميل أبحاث في مات. أتحدث كثيراً عن سلامة وأمن الذكاء الاصطناعي. تابعوني على تويتر ولينكد إن. قبل أن نبدأ جلستنا، نحتاج إلى الحديث عما هي مهارة الوكيل.

00:31 حسناً، مهارة الوكيل هي في الأساس قدرة على الطلب. إنها تحتوي على مجموعة من التعليمات، والموارد، والسلوكيات الجديدة. يمكن أن تحتوي على نصوص برمجية بل ويمكن أن تحتوي على كود برمجي. المشكلة هي أنها كُتبت بواسطة شخص آخر. وهنا بالضبط تبدأ المشكلة. لذا دعونا نلقي نظرة على مسار المهارات. على سبيل المثال، إذا نظرنا إلى هذا المسار هنا، يمكننا أن نرى أن المهارة تقرأ تكوين السحابة وتكوين كوبيرنيتس.

01:04 إنها تتصل بخدمة الهوية وتقوم حتى بفحص نقطة نهاية بيانات تعريف المثيل. أنا لا أعرف ما كان القصد الأصلي للمهارة، لكن يمكنني إخباركم أن الكثير من سارقي المعلومات يعملون بنفس الطريقة. إنهم يبحثون عن مجلدات الأسرار والهوية المختلفة. في هذه الحالة، ومع ذلك، كانت مهارة تشخيص رسمية من أزور. وهذه هي النقطة التي يصعب علينا فيها تحديد ما إذا كانت المهارة ضارة أم حميدة.

01:30 ويجب علينا فهم القصد الأصلي للمهارات وفقاً لأفعالها . وفي هذه المرحلة، قد تسأل، حسناً، يمكننا فقط فحص المهارة، أليس كذلك؟ حسناً ، الأمر أكثر تعقيداً من ذلك. المشكلة الأولى التي لاحظناها هي أن الحمولة موجودة في مكان آخر. في الكثير من المهارات، يعتبر ملف skill.md مجرد نقطة الدخول. يمكن أن يستدعي نقطة نهاية أخرى تحتوي على بقية الأوامر. يمكنه تنزيل حزمة أخرى كجزء من نص التثبيت الخاص به، وقد يحتوي على نص أو كود آخر يقوم بتنزيل حمولات وحزم أخرى.

02:08 لذا إذا استخدمت ماسحاً ضوئياً ثابتاً وقرأت ملفات المهارات فقط، فستفقد كل ذلك وسيتعين عليك إنشاء نوع من الآلية لتتبع كل هذه الحمولات إذا كنت لا ترغب في فقدانها. المشكلة الثانية التي لاحظناها هي أنه يمكن خداع محللات النماذج اللغوية الكبيرة. أمم، كان هناك بحث مثير للاهتمام حقاً أجرته شركة "تريل أوف بيتس "(Trail of Bits)، عرضوا فيه مهارة تلاعبت بسجل حزم أحد المشاريع، وكان يتضمن تعليقاً صغيراً يقول إن فريق التطبيقات وافق على هذا التغيير، وقد نجح الأمر تماماً في خداع محلل النموذج اللغوي الكبير.

02:45 لذا، ونظراً لأن عمليات المسح ليست مضمونة تماماً، فقد لجأنا إلى نوع مختلف من الإجراءات وقررنا فعلياً تشغيل المهارة مع الوكيل. أمم، هذه تقنية يستخدمها باحثو البرمجيات الخبيثة منذ سنوات حتى الآن. أوه، وتسمى "غرفة التفجير ". لذلك قمنا بإنشاء الغرفة نفسها ولكن للوكلاء والمهارات. وكانت هذه نسختنا الأولى. في نسختنا الأولى، قمنا بإنشاء مطالبة للمهمة. وضعنا وكيلاً ومهارة داخل بيئة معزولة.

03:15 تركناه يعمل لدقائق أو ساعات حتى أكمل المهمة. مع تتبع آثار الوكيل غير المراقبة وتحليلها. يمكنك أن تتخيل أن هذا لم يكن كافياً. كانت مشكلتنا الأولى هي أن البيئة كانت مفقودة في معظم الأوقات. الكثير من المهارات تعتمد على واجهات سطر الأوامر (CLIs). فهي تعتمد على خدمات محددة وحتى على وجود المشاريع. يمكنك تخيل مهارة "نوشن"(Notion) على سبيل المثال. سيتعين على هذه المهارة توفير خدمة "نوشن " متاحة للتواصل معها.

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

04:13 لنأخذ إطلاق خدمة على سبيل المثال. تحتاج إلى تعلم كيفية تكوينها. تحتاج إلى تعلم كيفية نشرها. تحتاج إلى إخبارها بكيفية الاستعادة من اللقطات باستخدام اللقطات. أمم، كل واحدة منها تتطلب مجموعة مختلفة من المطالبات، وتحتاج أيضاً إلى التأكد من أنك تغطي كل مسار في تلك المهارة لأن أحدها قد يكون خبيثاً. لذا أنشأنا المشغل الذي يقوم بذلك بالضبط. إنه يقرأ المهارة ويحاول تحليل المسارات المختلفة التي يجب علينا استدعاؤها.

04:49 وعلى الرغم من أن الأمر نجح بشكل جيد، إذا كنت قد عملت مع الوكلاء ، خاصة في مجال الأمن، يمكنك أمم، تقييم أننا مررنا بالكثير من إجراءات الحماية، وتفعيل وسائل الحماية. أمم، تلقينا الكثير من الرفض. أمم، لم يكن الوكلاء على استعداد للفك، وعندما كانوا على استعداد للفك لم يكونوا مستعدين للتنفيذ. لذا كان علينا تقديم عرض لا يمكنه رفضه، وإنشاء مشغل خصم يقنع الوكلاء بالتنفيذ، وفي حال لم يتم التنفيذ، نبدأ العملية من جديد.

05:33 أود التأكيد هنا على أننا نجري بحثاً أمنياً. هذه بيئة حاوية. لا يوجد شيء ضار هنا. لكن هذا أحد الأشياء التي اضطررنا للقيام بها لضمان التشغيل بشكل صحيح. أود أيضاً الإشارة إلى أن آليات الحماية تعمل في كثير من الأحيان على أشياء غير ضارة على الإطلاق. في بعض الأحيان تحتاج إلى فك تشفير حمولة ما، وهذا جزء من المهارة الرسمية، لكن آلية الحماية يتم تفعيلها رغم ذلك.

05:58 حتى الآن، كنا نتعامل مع بيئة الاختبار. عند هذه النقطة، بدأنا في معالجة آلية الالتقاط. آثار الوكيل يمكن أن تصل إلى مدى معين. في مرحلة ما، ستفتقد لبعض التأثيرات الجانبية ، و "npm install" هو المثال المثالي لذلك . أمر "NPM install" يحتوي على سكربت ما بعد التثبيت، ويمكن لهذا السكربت استدعاء عملية جديدة، وهذه العملية يمكنها القراءة والكتابة في ملف، ثم الاتصال بنقطة نهاية .

06:30 هذه هي بالضبط الطريقة التي تعمل بها برمجيات سرقة المعلومات. لذا أدركنا أن هذه أيضاً أحداث وإشارات نحتاج إلى التقاطها، وقمنا بذلك كجزء من آلية الالتقاط. أضفنا حدث إنشاء العملية، وحدث نظام الملفات، والتقاط حزم الشبكة، مع كل ذلك جنباً إلى جنب مع آثار الوكيل. ثم نقلناها إلى أدلة الجودة والتقاط السلوك. حتى هذا الشكل النهائي لغرفة التفجير. دعونا نلقي نظرة على مثال لمهارة ما.

07:03 زاك كورمان، يجب عليكم متابعته على تويتر. لقد أنشأ مهارة مثيرة للاهتمام كدليل على المفهوم، حيث أنشأ مهارة تسمى "security of YouTube". وكجزء من تثبيت المهارة، قامت بتثبيت مهارة جديدة تسمى "security review". وتطلب منك "security review" الذهاب إلى GitHub وجلب محتوى ملف skill.mmd. وكما تتخيلون، يحتوي ملف skill.md هذا على تعليمات مخفية للوكيل لتنفيذ الحمولة التالية.

07:33 وقد فعل ذلك بالفعل. أود أن أشير إلى أن هذه ليست حمولة ضارة. كان هذا مجرد دليل على المفهوم، لكنه يعمل بالفعل. ولا يمكن للماسحات الضوئية الثابتة اكتشاف ذلك. يجب عليك تنفيذ السلسلة بأكملها فعلياً لاستردادها. وهذه نتيجة تشغيل واحد في غرفة التفجير. باستخدام هذا النهج، تمكنا من اكتشاف 100 مهارة ضارة من بين الآلاف، وتم إيقافها من إطار عمل skills.sh. والآن دعونا نلقي نظرة على مثال آخر.

08:09 بولي ماركت (Poly market). كانت هذه مهارة مثيرة للاهتمام، حيث استدعت كجزء من نص التثبيت الخاص بها "poly market club client v2". لاحظت حرف "s" هنا؛ هذه ليست حزمة poly market الأصلية. وعندما دخلنا إلى npm ونظرنا إلى ملف package.json الخاص بالحزمة، لاحظنا أنها ترتبط فعلياً بسجل npm غير رسمي. هذا ليس حقيقياً. هذا ليس رسمياً. وبالنظر إلى الحمولة، تبين أنها في الواقع برنامج لسرقة المعلومات.

08:44 إذاً، الأمر موجود بالفعل. وهو يحدث الآن . دعونا نلقي نظرة على الحيل التي رأينا جهات فاعلة تقوم بها في هذا النظام. إحدى هذه الحيل هي الاستمرارية. إذ تقوم بعض المهارات بإضافة مطالبة إضافية إلى soul.js أو إلى agent.mmd تنص على أنه إذا لم تكن المهارة مثبتة، فقم بتثبيتها. لقد رأينا هذا يحدث بضع مرات. شيء آخر لاحظناه هو الإجراءات الصامتة. هناك منشئ مهارات ليس منشئ المهارات الرسمي لشركة Entropic ، يتحقق مما إذا كان منشئ مهارات Entropic مثبتاً، وفي حال كان كذلك يقوم بإلغاء تثبيته وتثبيت نفسه بدلاً منه.

09:29 كل هذا يحدث بصمت. حيلة أخرى رأينا العديد من الجهات الفاعلة تستخدمها، وهي مشروعة في الواقع لكنها لا تزال مثيرة للمشاكل، هي تنفيذ المطالبات عن بُعد، حيث لا تحتوي المطالبة الأولية على كامل النص، بل تتضمن تعليمات لجلبها من موقع آخر. لقد رأينا ذلك في عدد من المهارات. بعضها مشروع، وبعضها غير مشروع . وهذا يمثل مشكلة، لأنه كما يمكنك أن تتخيل، عندما يكون الشيء مناسباً في وقت ما، فقد يتمكن شخص آخر في وقت لاحق من الاستيلاء على النطاق أو القيام بذلك عمداً وتغيير المطالبة بالكامل.

10:11 كان هذا مثيراً للاهتمام إلى حد ما. وأسلوب آخر رأيناه هو إساءة استخدام الخطافات (hooks ). يمكنك تفعيل مهارة عند استخدام خطاف معين مثل "إرسال مطالبة المستخدم". تخيل الآن ما سيحدث إذا تم تفعيل مهارة في كل مرة يرسل فيها المستخدم رسالة إلى المساعد . قد يكون لهذا عواقب وخيمة وعليك أن تكون على دراية بذلك. ولكن دعونا نتحدث عن حملة قمنا بالكشف عنها. تعرفوا على كارلي، أو " Carly paperclipipped" كما يُعرف على GitHub.

10:42 لقد قام بتزييف منظمة Paperclip. و Paperclip هو مشروع معروف، وهو مشروع مفتوح المصدر يهدف إلى تنسيق مختلف الوكلاء. قام كارلي هنا بإنشاء منظمة مزيفة تحاكي ذلك المشروع. لقد اشترى أو سجل نطاقاً بنفس الاسم تقريباً، وأنشأ منظمة مشابهة، ثم استنسخ المشروع. بعد أن استنسخ المشروع ، قام هو...حسناً، لقد فعل شيئاً سيئاً. أنشأ استدعاء إجراء تسجيل جديد وقام بتسميته ضمن جميع المسارات المختلفة للمشروع.

11:23 عندما نظرنا إلى ما يحدث في إجراء التسجيل ، لاحظنا أنه يستدعي نقطة نهاية يتحكم فيها المهاجم. إنه يجلب حمولة من هناك، ويفك تشفيرها، ويحفظها في ملف مؤقت وينفذها باستخدام نود ، ثم يدمر نفسه بعد 60 ثانية. عندما نظرنا إلى الحمولة، كان الأمر مقلقاً. امم، لقد كان أداة لجمع بيانات الاعتماد. بشكل أساسي، انتقل عبر المسارات الحساسة المختلفة على الجهاز مثل SSH و AWS و Azure.

12:01 جمع كل المعلومات من تلك المجلدات ثم أرسل كل شيء إلى نقطة نهاية ملاحظات يملكها المهاجم. كان هذا سيئاً. امم، ثم فعل الشيء نفسه في المتصفح. امم، ولكن هذه كانت حزمة بايثون لكنه استخدم نفس التحكم والقيادة ثم حاول نشرها في باي . لم ينجح ذلك. في أقل من ساعتين تم حذفها . فعل الشيء نفسه مع "بيبر كليب إيه آي"، وهي نسخة بايثون لما رأيناه للتو. وقد تم إيقافها أيضاً بعد أقل من ساعة.

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

13:06 يقوم نود بعد ذلك بتنفيذها، ثم تحدث عملية جمع بيانات الاعتماد بالكامل والإرسال إلى نقطة النهاية، بالإضافة إلى التدمير الذاتي. نفس السلسلة تماماً. أبلغنا عن الحادث لشركتي فيرسيل ومايكروسوفت، وفي غضون 12 ساعة قاموا بإزالة كل شيء. إذا كنت تريد قراءة المزيد عنها، فيجب عليك قراءة مدونة زينيتي لابس . إنها مثيرة للاهتمام للغاية، وعمل لا يصدق. امم، المهارة هي مجرد جزء واحد من سلسلة توريد الوكيل.

13:36 كل ما يدخل في سياق الوكيل هو جزء منه. يمكن أن يكون موقعاً إلكترونياً، أو صفوفاً في قاعدة بياناتك، أو حزم برمجية، أو حتى تعليقاً على يوتيوب . كل شيء يدخل في السياق يعتبر عرضة للخطر . وإذا تحدثنا عن المهارات بشكل خاص، فأنت بحاجة إلى التعامل معها كاعتمادات حزم. أمم، تحتاج إلى فحص كل ما يقوم بتحميله، وتقييد ما يمكنه الوصول إليه، ومنحه أقل الامتيازات كما تعلم جيداً، ومراقبة ما يتم تشغيله فعلياً.

14:08 الآن، هذا العمل بالكامل على جهاز الحلاقة المتفجر تم إنجازه بواسطة فريق البحث والهندسة بأكمله الذي ترونه هنا. أشخاص موهوبون للغاية، وأنا أشجعكم على متابعتهم . ومع ذلك، إذا أردتم اختبار مهاراتكم، فهو متاح على موقع neoto.io. هذه هي غرفة التفجير.