اسکنرهای امنیتی Skill کار نمیکنن
خلاصهٔ کاملتر
با بالا گرفتن سیستمهای عاملمحور (agentic)، یه نوع وابستگی جدید به اسم اسکیل (skill) پیدا شده و همراهش یه اکوسیستم تازه از بازارچهها و کانالهای توزیع. تو این مقاله از Trail of Bits اومده که این بازارچههای عمومی پر شدن از اسکیلهای مخربی که اعتبارنامه میدزدن، داده بیرون میبرن و عامل (agent) رو هایجک میکنن. در واکنش، یه بخش از صنعت امنیت اسکنرهایی منتشر کرده تا این اسکیلها رو قبل از نصب شناسایی کنه.
نویسندهها میگن این اسکنرها رو تست کردن و کار نمیکنن. اونا تشخیصدهندهٔ اسکیل مخرب ClawHub، اسکنر سیسکو و هر سه اسکنر یکپارچهشده تو سرویس skills.sh رو دور زدن. به گفتهشون این حملههای پیچیدهای نبودن؛ ساختن سه تا از چهار اسکیل مخرب کمتر از یه ساعت طول کشید، اون هم با ترفندهای استاندارد و یه نگاه سریع به کد منبع خود اسکنر.
نکتهٔ مهم اینه که اسکیلها برخلاف کد معمولی میتونن دستورهای مخرب رو هم به شکل زبان طبیعی (مثلاً تو متن یه فایل SKILL.md) جا بدن و هم به شکل کد. این یعنی مسیرهای حمله جدیدی باز میشه که اسکنرهای سنتی براش آماده نیستن.
یکی از حملهها روی ClawHub خیلی ساده بود: اسکیل بین یه بخش بیخطر و کد مخربش، تعداد خیلی زیادی خط خالی میذاره. اسکنر فایل رو از یه جایی به بعد میبُره (truncate میکنه) و کلاً بخش مخرب رو نمیبینه. تو رابط وب هم کاربر معمولی متوجه اون اسکرول طولانی نمیشه. یه حملهٔ دیگه روی غیرمستقیمسازی تکیه میکرد: فایل SKILL.md به عامل میگفت دستورهای واقعی رو از دل یه فایل .docx بیرون بکشه که در واقع یه آرشیو فشردهست و یه اسکریپت مخرب توش پنهان شده.
یه حملهٔ جالبتر از مشکل بایتکد پایتون استفاده میکرد: خود SKILL.md کاملاً بیخطر و یه اسکریپت پایتون به ظاهر معمولی همراهش بود، ولی یه بایتکد از پیش کامپایلشده (.pyc) هم «برای راحتی» چاشنیش شده بود که کارش جمع کردن متغیرهای محیطی (environment variables) برای خروج داده بود. تحلیلگرهای ایستا اصلاً سراغ اون بایتکد نرفتن. به گفتهٔ نویسنده این همون الگوی کلاسیک حمله به زنجیرهٔ تامینه، شبیه در پشتی معروف xz-utils که بستهبندی یا باینری با کد منبع فرق داره.
حملهٔ چهارم یه تزریق پرامپت (prompt injection) بود. این اسکیل به جای دستکاری منطق اسکنر، با لحن «تنظیمات محیط سازمانی و دسترسی VPN» مدل نگهبان رو قانع میکرد که عوض کردن رجیستری بستهها (npm و yarn) به یه آدرس تحت کنترل مهاجم بیخطره. نویسنده میگه چون اسکنر یه هدف ایستاست و مهاجم میتونه «دوم حرکت کنه»، با کمی آزمونوخطا پیدا کردن جملهبندی درست برای فریب مدل کار سختی نیست.
نکتهٔ پایانی مقاله اینه که هیچ مقدار اسکن یا تحلیل با مدل زبانی نمیتونه بهطور قابلاعتماد محتوای مخرب رو تو اسکیلها پیدا کنه. نویسنده استفاده از بازارچههای عمومی مثل skills.sh و ClawHub رو برای محیطهای حساس بهشدت توصیه نمیکنه و میگه به جاش باید از مجموعههای متنباز معتبر و سرپرستیشده (curated) استفاده کرد. همون اصول زنجیرهٔ تامین سنتی اینجا هم جواب میده: بدون منبع وابستگیهات از کجاست، به نسخهٔ مشخص پین کن و قضاوت رو به یه ابزار خودکار برونسپاری نکن.
نکات کلیدی:
- تیم Trail of Bits اسکنرهای ClawHub، سیسکو و skills.sh رو دور زده؛ بیشتر حملهها کمتر از یه ساعت ساخته شدن.
- اسکیلها میتونن دستور مخرب رو هم تو زبان طبیعی و هم تو کد جا بدن، برای همین سطح حمله خیلی گستردهست.
- ترفندها شامل پر کردن فایل با خطهای خالی، پنهان کردن اسکریپت تو آرشیو، آلوده کردن بایتکد .pyc و تزریق پرامپت بودن.
- ماهیت ایستای اسکنرها به مهاجم تلاش نامحدود میده تا یه راه عبور پیدا کنه.
- توصیه: از بازارچههای عمومی برای کارهای حساس استفاده نکن و سراغ مجموعههای سرپرستیشده و پینشده برو.




