تصور کنید یک عامل هوش مصنوعی با دسترسی کامل به سیستم شما، بهدلیل یک دستور مخفی در یک فایل متنی، تمام کلیدهای SSH شما را به سروری خارجی ارسال کند. این کابوس امنیتی اکنون با یک دستور ساده در ترمینال قابل شناسایی است.
Ship Safe که تحت مجوز MIT منتشر شده است، یک اسکنر خط فرمان (CLI) است که دقیقاً روی شکافهای امنیتی ناشی از گذار به سمت عاملهای هوش مصنوعی (AI Agents) — شبیه دستیارهای دیجیتالی که میتوانند بهجای شما تصمیم بگیرند و ابزارها را اجرا کنند — و ادغام با پروتکل زمینهٔ مدل (MCP) تمرکز دارد. طبق مستندات این پروژه، هدف اصلی این ابزار یافتن کدهای ریسکی، آسیبپذیریهای عاملهای هوش مصنوعی و مشکلات زنجیره تأمین در اپلیکیشنهای مدرن است، پیش از آنکه این کدها وارد خط لولهی CI/CD شوند.
بیشتر ابزارهای امنیتی سنتی بر تحلیل ایستا (Static Analysis) یا شناسایی CVEهای شناختهشده در کتابخانهها متمرکز هستند. اما ظهور نرمافزارهای عاملمحور (Agentic)، بردارهای حمله جدیدی مثل مسمومسازی حافظه (Memory Poisoning) و ربودن فراخوانی ابزارها (Tool-call Hijacking) را ایجاد کرده است که اسکنرهای استاندارد بهسادگی آنها را نادیده میگیرند. همانطور که در تحلیلهای قبلی ما دربارهی امنیت مدلهای بازمتن اشاره کردیم، مرز بین «داده» و «دستور» در مدلهای زبانی کمرنگ شده است؛ Ship Safe لایهای تخصصی برای شکار این ریسکهای AI-native در کدها، تنظیمات MCP، پرامپتها، وابستگیها، CI/CD، اسرار (Secrets) و پیکربندیهای مجاور ابری است.
معماری امنیتی محلیمحور
این ابزار بهگونهای طراحی شده که عمدتاً بهصورت محلی عمل کند؛ یعنی مخازن کد را بدون نیاز به ثبتنام یا کلید API برای بررسیهای پایه اسکن میکند. این رویکرد تضمین میکند که کدهای حساس برای بازرسیهای اولیه از دستگاه توسعهدهنده خارج نشوند. این تمرکز بر محیط محلی یادآور استراتژی HyperNexus برای ایزولهسازی هسته مدلهاست که با محدود کردن دسترسیهای خارجی، سطح حمله را بهشدت کاهش میدهد. کاربران میتوانند با استفاده از پرچم --no-ai کاملاً مطمئن شوند که اسکن بهصورت محلی انجام میشود.
برای تحلیلهای عمیقتر, Ship Safe از ارائهدهندگان مختلف مدل زبانی بزرگ (LLM) پشتیبانی میکند. این لیست شامل Anthropic، OpenAI، DeepSeek، Google، Kimi K3 / Moonshot، Groq، Together، Mistral، xAI، Perplexity، Ollama و LM Studio است. همچنین این ابزار با هر نقطه پایانی (Endpoint) سازگار با OpenAI کار میکند. احراز هویت از طریق متغیرهای محیطی مدیریت میشود، مثلاً برای Kimi K3 از MOONSHOT_API_KEY یا KIMI_API_KEY استفاده میشود.
در حالت تیم قرمز (GPT-Red) یا طبقهبندیهای مبتنی بر ارائهدهنده، ابزار پس از انجام بهترین تلاش برای ماسک کردن اعتبارنامهها، بستر متنی محدودی را به ارائهدهنده ارسال میکند. برای تحلیلهای تیم قرمز با بستر متنی طولانی بهطور خاص در مدل Kimi K3، توسعهدهندگان میتوانند از دستور زیر استفاده کنند:npx ship-safe red-team . --gpt-red --provider kimi --model kimi-k3 --k3-long-context

مجموعه امنیتی عاملمحور
Ship Safe از سیستمی موازی از عاملهای امنیتی تخصصی استفاده میکند. هر عامل بهطور خودکار پروژههای نامرتبط را نادیده میگیرد تا سرعت اجرا حفظ شود. این مجموعه به دستههای بحرانی زیر تقسیم میشود:
امنیت AI و LLM
- LLMRedTeam & AgenticSecurityAgent: اینها بر اساس لیست ۱۰ ریسک برتر OWASP برای LLMها و ۱۰ ریسک برتر AI Agentic، مواردی مثل تزریق پرامپت (Prompt Injection)، افشای پرامپت سیستمی، ربودن عامل و ارتقای سطح دسترسی را شناسایی میکنند. آنها بهطور خاص سوءاستفاده از فراخوانی ابزارها در مدلهای OpenAI و Kimi K3 را هدف قرار میدهند؛ مواردی مثل بارگذاری پویا (Dynamic) ابزارها از بستر پرامپت، نبود لیستهای مجاز (Allowlists) برای ابزارها، اجبار به فراخوانی ابزار روی ورودیهای غیرقابل اعتماد و بازپخش نتایج ابزار بدون پیام اصلی فراخوانی دستیار.
- RAGSecurityAgent: بر روی تولید بازیابیافزا (RAG) و ریسکهای تزریق بستر (Context Injection)، مسمومسازی اسناد و کنترل دسترسی به پایگاهدادههای برداری تمرکز دارد.
- MemoryPoisoningAgent: تزریق دستورات در فایلهای حافظهٔ عامل و محمولههای یونیکد مخفی (ASI-01, ASI-05) را شناسایی میکند.
- AgentConfigScanner: تزریق پرامپت در فایلهای
.cursorrulesوCLAUDE.mdو همچنین هوکهای مخرب Claude Code را بازرسی میکند. - ManagedAgentScanner: پیکربندیهای غلط Claude Managed Agent، مانند سیاستهای
always_allowو شبکهسازی بدون محدودیت (ASI-03–ASI-07) را مییابد. - HermesSecurityAgent: مسمومسازی رجیستری ابزارها، تزریق فراخوانی تابع و تغییرات غیرمجاز در مجوزهای مهارت (Skill Permission Drift) را هدف قرار میدهد (ASI-01–ASI-10).
MCP و ابزارها
- MCPSecurityAgent: سوءاستفاده از سرورهای MCP، مسمومسازی ابزارها، حملات Typosquatting و ورودیهای تاییدنشده را اسکن میکند. این نیاز به ابزارهای شناسایی را در نظر بگیرید که بیش از ۲۵٪ از استقرارهای MCP دارای حفرههای امنیتی شدید هستند و بهشدت در معرض خطر قرار دارند.
- TrustBoundaryAgent: حملات Symlink موسوم به "GhostApproval" را شناسایی میکند که در آن لینکهای پیکربندی به پوشههای حساس مثل
~/.sshیا~/.awsیا.envاشاره دارند. همچنین دستورات "Friendly Fire" را در اسنادی که توسط عامل خوانده میشوند (CWE-59, CWE-61) شناسایی میکند.
زنجیره تأمین و انطباق
- SlopSquatAgent: پدیده Slopsquatting یا وارد کردن بستههایی که توسط مدل توهم زده شدهاند و در واقع تعریف، نصب یا داخلی نیستند (CWE-1357) را شناسایی میکند.
- ClickFixAgent: تلههای جعلی CAPTCHA را شناسایی میکند که کاربر را ترغیب به کپی و اجرای دستورات (مثل Win+R/Ctrl+V یا دستورات PowerShell) میکنند و همچنین اسکریپتهای چرخه عمر npm با نصبکنندههای جعلی (CWE-1357, CWE-506) را مییابد.
- InstallGuardAgent: رفتارهای کرمگونه در اسکریپتهای npm مثل سرقت اعتبارنامهها، استخراج متغیرهای محیطی، دستورات مخرب
rm -rfیا دستورات مبهمnode -e(CWE-506, CWE-829) و اکشنهای تسلیحاتی شده درbinding.gypرا مییابد. - ModelScanAgent: محمولههای اجرای کد در وزنهای مدلهای ML (مثل opcodes در فایلهای
.ptیا.pklیا.ckpt) و فراخوانیهایtorch.loadبدون پارامترweights_only(CWE-502, CWE-506) را اسکن میکند، حتی اگر در آرشیوهای ضد-اسکنر پنهان شده باشند. - AgentAttestationAgent & AgenticSupplyChainAgent: نسخههای پیننشده عاملها، نبود هشهای یکپارچگی، مانیفستهای بدون امضا (ASI-10, SLSA L0) و اکشنهای CI هوش مصنوعی با دسترسی بیش از حد یا گسترش غیرمجاز OAuth (ASI-02, ASI-06) را بررسی میکنند.
- PIIComplianceAgent: اطلاعات حساس شخصی مثل شمارههای تامین اجتماعی (SSN)، کارتهای اعتباری، ایمیلها و شماره تلفنها را در کد مییابد.
- RobloxSecurityAgent: داراییهای مخرب Luau Toolbox، شامل تزریق دارایی در زمان اجرا، لودرهای
rbxassetid://، پرچمهایHttpEnabledو محمولههای پنهان در ویژگیهای Instance را شناسایی میکند.
امنیت زیرساخت و اپلیکیشن
- InjectionTester: تزریق SQL/NoSQL، تزریق دستورات سیستم، XSS، Path Traversal، XXE، ReDoS و Prototype Pollution را شناسایی میکند.
- AuthBypassAgent: نقصهای JWT (مثل
alg:noneیا اسرار ضعیف)، CSRF، پیکربندیهای غلط OAuth و BOLA/IDOR یا دور زدن TLS را مییابد. - SSRFProber: ورودیهای کاربر در
fetchیاaxiosکه نقاط پایانی متادیتای ابری یا IPهای داخلی را هدف قرار میدهند، علامتگذاری میکند. - ConfigAuditor: تنظیمات Docker (کاربر root، استفاده از
:latest)، Terraform، Kubernetes، CORS، CSP، Firebase و Nginx را بازرسی میکند. - SupabaseRLSAgent: کلیدهای
service_roleدر کد کلاینت، جداولی بدون Row Level Security (RLS) و درجهای کلید anon را مییابد. - CICDScanner: مسمومسازی خط لوله، GitHub Actions پیننشده و ثبت اسرار در لاگها (OWASP CI/CD Top 10) را هدف قرار میدهد.
- APIFuzzer: مسیرهای بدون احراز هویت، Mass Assignment، Introspection در GraphQL و نقاط پایانی Debug را شناسایی میکند.
- MobileScanner: ریسکهای Mobile OWASP Top 10 2024 مثل ذخیرهسازی ناامن، تزریق WebView و حالت Debug را بررسی میکند.
- VibeCodingAgent & ExceptionHandlerAgent: الگوهای ضد (Anti-patterns) تولید شده توسط AI، مثل نبود اعتبارسنجی، Catchهای خالی،
TODO-authیا افشای Stack Traceها (OWASP A10:2025) را شناسایی میکند.
اصلاح تعاملی و رفع خطا
Ship Safe فراتر از شناسایی، یک محیط REPL تعاملی و یک عامل اصلاح کد ارائه میدهد. توسعهدهندگان میتوانند از دستوراتی مثل /scan برای اسکن مجدد، /findings برای لیست کردن مسائل، /show <n> برای مشاهده جزئیات کامل یک یافته و /plan <n> برای پیشنمایش اصلاحیه بدون نوشتن روی دیسک استفاده کنند. سایر دستورات REPL شامل /diff برای نمایش تغییرات در git، /provider <name> برای تغییر مدل LLM در میان جلسه و /share برای انتشار گزارش به صورت یک URL عمومی برای ۷ روز است.
به جای لیست کردن ساده آسیبپذیریها، این ابزار یک برنامه مشخص و یک Diff کد پیشنهاد میدهد. توسعهدهندگان باید این تغییرات را تایید کنند تا روی دیسک نوشته شوند. هر اصلاحیه با دستور npx ship-safe undo قابل بازگشت است. برای اصلاحات هدفمند، کاربران میتوانند npx ship-safe agent . --severity critical را برای رفع خطرناکترین موارد اجرا کنند، یا از --branch --pr برای اعمال اصلاحات در یک شاخه جدید و باز کردن خودکار Pull Request استفاده کنند.

کاهش نویز و ادغام در CI/CD
برای جلوگیری از خستگی ناشی از هشدارهای زیاد (Alert Fatigue)، این ابزار از یک ScoringEngine (موتور امتیازدهی)، یک VerifierAgent برای بررسی فعال بودن واقعی اسرار لو رفته و یک DeepAnalyzer برای تحلیل Taint مدلهای زبانی استفاده میکند. نتایج در قالب SARIF صادر میشوند تا بهراحتی در GitHub Actions ادغام شوند. یک گردشکار معمولی از npx ship-safe ci . --sarif results.sarif استفاده میکند و میتواند با --fail-on high برای سختگیرانهتر شدن (در سطح critical یا high)، باعث شکست خوردن Build شود.
به نقل از مستندات پروژه، در بنچمارکی روی چهار پروژه، تعداد یافتهها از ۱۰۳۱ مورد به تعداد اندکی از مسائل تاییدشده پیش از نسخه v9.6.3 کاهش یافت. بهطور مشخص، پروژه Express دارای ۲۶ یافته (رتبه B)، Requests دارای ۱۵ مورد (رتبه C)، Flask دارای ۲۸ مورد (رتبه D) و Chalk دارای ۴ مورد (رتبه B) بود. این کاهش در برابر NodeGoat و DVWA تایید شد تا اطمینان حاصل شود که قابلیتهای شناسایی در حین کاهش نویز، دستنخورده ماندهاند. در این بنچمارک ذکر شده که تنها مورد بحرانی باقیمانده، یک مثبت کاذب (False Positive) است.
مقایسه با استانداردهای صنعت
Ship Safe قصد جایگزینی ابزارهایی مثل CodeQL، Gitleaks یا Trivy را ندارد. در حالی که CodeQL تحلیل Taint بین-روهای را انجام میدهد، Gitleaks در شناسایی اسرار تخصص دارد و Trivy یک پایگاه داده جامع از CVEها را مدیریت میکند، Ship Safe شکافی را در پیکربندیهای خاص AI پر میکند.
این ابزار در حال حاضر تنها ابزار عمومی است که روی پیکربندیهای کلاینت MCP، مسمومسازی حافظه عاملها، وارد کردن بستههای توهمزده و ریسکهای AIBOM (صورتحساب مواد AI) تمرکز دارد. این تغییر در ابزارها نشان میدهد که صنعت به سمت مدل «دفاع در عمق» (Defense-in-Depth) برای هوش مصنوعی حرکت میکند. امنیت دیگر فقط درباره خود کد نیست، بلکه درباره مرزها و مجوزهایی است که به مدلهای در حال تعامل با آن کد داده میشود.
برای کسانی که با Claude Code یا Cursor کار میکنند، بازرسی فایلهای .cursorrules و CLAUDE.md اکنون به اندازه بازرسی package.json حیاتی است. ریسک دیگر فقط یک باگ منطقی نیست، بلکه حملاتی است که در آن عامل فریب میخورد تا از طریق Symlinkها به فایلهای حساس محلی مثل ~/.ssh دسترسی پیدا کند.
استقرار و استفاده
توسعهدهندگان میتوانند با نسخه رایگان CLI شروع کنند. برای تیمهایی که نیاز به گردشکار متمرکز دارند، Ship Safe Cloud داشبوردی خصوصی برای تاریخچه اسکنها، گزارشهای PDF و یک "PR Guardian" برای همکاری تیمی ارائه میدهد. در حالی که CLI متنباز است، داشبورد Cloud در یک مخزن خصوصی توسعه یافته زیرا حاوی کدهای تجاری و گردشکارهای زیرساختی است.
برای نادیده گرفتن مثبتهای کاذب میتوان از # ship-safe-ignore استفاده کرد. با این حال، یافتههای بحرانی (Critical) هرگز قابل پنهان کردن نیستند؛ یک کامنت داخلی نمیتواند یک آسیبپذیری بحرانی را مخفی کند و هر تلاشی برای سرکوب آن در گزارش اسکن ثبت میشود تا شفافیت حفظ شود. توسعهدهندگان همچنین میتوانند از فایل .ship-safeignore برای حذف دایرکتوریهایی مثل tests/fixtures/ یا docs/ استفاده کنند.
برای شروع، دستور npx ship-safe audit . یک بازرسی کامل از اسرار، ۲۹ نوع عامل مختلف و وابستگیها را انجام میدهد. برای کسانی که میخواهند مشارکت کنند، پروژه پذیرای افزودن عاملهای امنیتی جدید برای AI، MCP یا ریسکهای ابری و همچنین افزودن تستهای رگرسیون است.
گام بعدی شما
- اگر از Cursor یا Claude Code استفاده میکنید، همین امروز فایلهای تنظیمات محیطی خود را با
npx ship-safe audit .اسکن کنید. - در خط لوله CI/CD خود، خروجی SARIF را فعال کنید تا آسیبپذیریهای AI-native پیش از Merge شناسایی شوند.
- بررسی کنید آیا در کدتان از
torch.loadبدون پارامترweights_onlyاستفاده کردهاید یا خیر.
اما امنیت در لایه سختافزاری حتی پیچیدهتر است — به تحلیل ما دربارهی تراشههای Blackwell و لایههای حفاظتی آنها مراجعه کنید.




گفتگو