اگر دستورالعملهای متنی و اسکریپتهای اجرایی را در عاملهای هوش مصنوعی یکسان میبینید، احتمالاً یک حفره امنیتی خاموش در سیستم خود ایجاد کردهاید. در ۶ اکتبر ۲۰۲۶، نشریه Agent Lab Journal به شکاف معماری بحرانی در پیادهسازی قابلیتهای عاملها اشاره کرد و هشدار داد که انتخاب اشتباه میتواند منجر به اجرای کد دلخواه یا پسرفتهای غیرقابل بررسی در مدل شود.
بسیاری از توسعهدهندگان واژه «مهارت» را به عنوان یک اصطلاح کلی برای هر قابلیت قابل استفاده به کار میبرند. در واقعیت، این ابهام باعث میشود مرز اعتماد (Trust Boundary) نادیده گرفته شود. در حالی که یک فایل متنی فقط بر منطق مدل اثر میگذارد، یک بسته محلی میتواند به کل سیستم فایل شما دسترسی داشته باشد. این موضوع باعث میشود تیمها کیفیت خروجی را بر «شعاع تخریب» (Blast Radius) یک شکست احتمالی ترجیح دهند.
تصور کنید سه توسعهدهنده برای ایجاد یک مهارت «خلاصهساز گزارشات»، سه پیشنهاد متفاوت میدهند: نفر اول یک فایل متنی ۶۰ خطی (Markdown)، نفر دوم یک تنظیم دقیق (Fine-tuning) — شبیه وقتی به یک پزشک عمومی، تخصص پوست میدهیم تا روی یک حوزه دقیق شود — بر اساس گزارشات دو سال گذشته، و نفر سوم یک بسته جامعهمحور با اسکریپتهای نصب از یک کاتالوگ عمومی. مقایسه این سه بر اساس کیفیت خروجی، این حقیقت را میپوشاند که روش اول بهراحتی قابل بررسی است، روش دوم کدر و بازگشت از آن گران است و روش سوم کدی را اجرا میکند که شما ننوشتهاید و ممکن است بهطور خودکار بهروز شود.
همانطور که در بحثهای گذشته ما دربارهی امنیت مدلهای بازمتن اشاره کردیم، شفافیت در منشأ کد، اولین سد دفاعی در برابر حملات زنجیره تأمین است. این چالشها در حملات واقعی نیز دیده شدهاند؛ برای مثال، آسیبپذیری Plugin4Shell نشان داد که چگونه مکانیزمهای امنیتی در ابزارهای پیشرفتهای مثل Claude Code دور زده میشوند تا دسترسی غیرمجاز به سیستم ایجاد شود.
طبق گزارش Agent Lab Journal، چهار روش متمایز برای پیادهسازی مهارتهای عامل وجود دارد که هر کدام در لایهای از پشته فنی قرار دارند:
- مهارتهای دستوری (Instruction Skills): قابلیتهای متنمحور که در پنجره متنی (Context Window) — مثل میز کاری که جا برای چند ورق دارد، نه برای کل کتابخانه — یا پرامپت سیستمی بارگذاری میشوند. بررسی اینها با Git diff ساده است اما در برابر تزریق پرامپت (Prompt Injection) آسیبپذیرند.
- مهارتهای آموزشدیده (Trained Skills): رفتارهایی که از طریق تنظیم دقیق یا آداپتورهایی مثل لورا (LoRA) در وزنهای مدل تثبیت شدهاند. این مهارتها کدر هستند و برای شناسایی خطا به جای بررسی کد، به مجموعههای ارزیابی رفتاری نیاز دارند.
- بستههای محلی (Local Packages): پوشهای شامل دستورالعملها، اسکریپتها یا فایلهای باینری که روی دیسک ذخیره میشوند. اینها بخشی از اجرای خود را خارج از مدل انجام میدهند و ریسک اجرای کد دلخواه را ایجاد میکنند.
- مهارتهای رجیستری (Registry Skills): قابلیتهایی که از یک رجیستری راه دور یا سرور ابزار (مثلاً از طریق پروتکل زمینه مدل یا MCP) فراخوانی میشوند. اینها خطرناکترین نوع هستند، زیرا اگر نسخه آنها «پین» (Pin) نشود، منبع راه دور میتواند پس از تأیید شما تغییر کند.
برای تبدیل بحث از «کیفیت» به «ریسک»، این گزارش یک ماتریس مقایسهای بر اساس چهار معیار بازرسی ارائه میدهد:
- منشأ (Provenance): توانایی تعیین دقیق منبع اثر. برای دستورالعملها این یعنی تاریخچه Git و برای مهارتهای آموزشدیده یعنی مجموعه داده و پیکربندی آموزش.
- نسخهبندی (Versioning): استفاده از شناسههای پایدار. بستههای محلی از SemVer استفاده میکنند، در حالی که مهارتهای رجیستری برای جلوگیری از «لغزش» باید با هش محتوا پین شوند.
- مجوزها (Permissions): تعیین اینکه مهارت به چه منابعی دسترسی دارد. بستههای محلی میتوانند مجوزها را در یک مانیفست اعلام کنند، اما اجرای آن به محیط زمان اجرا (Runtime) بستگی دارد.
- محتوای اجرایی (Executable Content): بررسی اینکه آیا مهارت کدی را اجرا میکند یا خیر. مهارتهای دستوری کد مستقیم ندارند اما میتوانند به عامل دستور دهند تا دستوری را اجرا کند.
به نقل از این گزارش، یک اسکریپت بازرسی استاتیک با پایتون ۳.۹ برای مدیریت این ریسکها معرفی شده است. این ابزار با بررسی مانیفست skill.json و اعتبارسنجی هشهای SHA-256، هرگونه تغییر غیرمجاز در فایلها را شناسایی میکند. همچنین با اسکن الگوهای خطرناک مثل curl | bash یا eval()، محتواهای اجرایی پنهان را پیدا میکند. این رویکرد ساختاریافته برای بازرسی، مشابه اهداف پروژه secfoo است که تلاش میکند پرامپتهای مبهم را با مهارتهای تعریفشده جایگزین کند تا تکرارپذیری و امنیت در بررسیهای امنیتی افزایش یابد.
در یک دموی عملی برای «خلاصهساز تغییرات»، نسخهای معیوب ساخته شد که در فایل Markdown خود دستور نصب خودکار از یک سایت خارجی را داشت. این مهارت در چهار مورد شکست خورد: استفاده از هش جعلی برای کامیت، نسخهبندی غیر استاندارد، درخواست مجوز دسترسی کامل به شبکه (net:any) و وجود اسکریپتهای اعلامنشده.
برای رفع این موارد، چارچوب مذکور یک گردشکار سختگیرانه را الزامی میکند: حذف خطوط نصب شبکه، ایجاد مخزن Git واقعی برای دریافت هش کامیت معتبر و تولید قفل SHA-256 برای تمام فایلها. برای مهارتهای رجیستری، روش «آینهسازی» (Mirroring) توصیه میشود؛ یعنی ابتدا محتوا دانلود، در یک مخزن محلی کپی و سپس بازرسی شود.
بر اساس مستندات این چارچوب، کنترلهای متفاوتی برای معماریهای غیرفایلی وجود دارد. در سرورهای ابزار، تمرکز بر پیکربندی کلاینت و توصیفات ابزار است، زیرا این توصیفات برای مدل قابل مشاهدهاند و میتوانند سطح حمله برای تزریق باشند. در مهارتهای آموزشدیده، تحلیل استاتیک غیرممکن است؛ بنابراین ثبت Snapshot دادهها و اجرای مجموعههای ارزیابی ثابت قبل و بعد از هر تغییر، تنها راه شناسایی پسرفتهاست.
توسعهدهندگان برای انتخاب معماری باید این سلسلهمراتب را دنبال کنند:
- اگر قابلیت مربوط به سبک و رویه است $ \rightarrow $ دستورالعملها (ارزانترین روش بررسی).
- اگر به گامهای قطعی (مثل فرمتبندی خروجی) نیاز دارید $ \rightarrow $ بستههای محلی (با بررسی دستی محیط ایزوله).
- اگر از منابع خارجی استفاده میکنید $ \rightarrow $ مهارتهای رجیستری (فقط از طریق آینهسازی و پین کردن).
- اگر رفتار با کد یا متن قابل بیان نیست $ \rightarrow $ مهارتهای آموزشدیده (به عنوان آخرین گزینه و با ارزیابی سختگیرانه).
این اسکریپت بازرسی میتواند در خط لولههای CI/CD ادغام شود تا هرگونه نتیجه «FAIL» مانع از ادغام کد (Merge) شود. با این حال، گزارش به محدودیتهایی اشاره میکند؛ از جمله اینکه اسکنهای مبتنی بر الگو را میتوان با رمزگذاری کد دور زد و اینکه هش SHA-256 فقط «یکپارچگی» را ثابت میکند، نه «امن بودن» اولیه فایل را.
گام بعدی شما
- مهارتهای فعلی عاملهای خود را بر اساس چهار معماری ذکر شده طبقهبندی کنید.
- برای هر مهارت، یک فایل مانیفست شامل هش کامیت Git و مجوزهای محدود (Allowlist) ایجاد کنید.
- اگر از مهارتهای راه دور استفاده میکنید، آنها را در یک مخزن محلی آینهسازی کرده و سپس بازرسی کنید.
اما داستان سختافزاری اجرای امن این عاملها در محیطهای ایزوله حتی پیچیدهتر است — به تحلیل ما دربارهی محیطهای Sandbox در لبه مراجعه کنید.




گفتگو