اگر همین حالا در حال توسعه اپلیکیشن هستید، احتمالاً متوجه نشدهاید که ابزارهای کمکی شما به درگاه ورود بدافزارها تبدیل شدهاند. باید بدانید که تنظیمات خودکاری که برای راحتی در محیط کدنویسی فعال کردهاید، اکنون هدف اصلی یک حمله سازمانیافته است.
طبق گزارش تیمهای امنیتی مایکروسافت، از ۴ آگوست ۲۰۲۶، بیش از ۴۰۰ بسته نرمافزاری در اثر نفوذ به حساب یک نگهدارنده در npm آلوده شدهاند. این حمله که با نام ChainDrop (شناسه STUPID-2026-0085) شناخته میشود، یک کرم زنجیره تأمین است که بهطور خاص محیطهای توسعه را هدف قرار میدهد. این بدافزار با تزریق قلابهای (Hooks) مخرب به فایلهای تنظیمات عامل (Agent) — شبیه به دستیاری که اجازه دارد در سیستم شما تغییرات ایجاد کند — عمل میکند. این رویکرد یادآور حمله گسترده کرم Shai-Hulud است که پیشتر با هدف نفوذ به دسترسیهای AWS، صدها بسته npm را آلوده کرده بود.
همانطور که در تحلیل قبلی ما دربارهی امنیت مدلهای بازمتن اشاره کردیم، اعتماد بیش از حد به خروجیهای مدلها میتواند حفرههای امنیتی ایجاد کند. در اینجا، خطر از خودِ مدل نیست، بلکه از تنظیماتی است که مدل برای اجرا در سیستم شما به کار میبرد.
به نقل از مستندات فنی این حمله، بدافزار در مرحله preinstall فعال شده و اعتبارههای npm، گیتهاب، سرویسهای ابری، HashiCorp Vault و Kubernetes را از محیطهای توسعه و CI/CD جمعآوری میکند. خطرناکترین بخش این حمله این است که هیچ اقدامی از سوی توسعهدهنده لازم نیست؛ کرم با استفاده از اعتبارههای سرقتی، فایلهایی مانند .claude/settings.json و .claude/setup.mjs را مستقیماً در شاخه (Branch) قربانی ثبت میکند. منبع گزارش تأکید میکند که «هیچ اقدامی از سوی توسعهدهنده این اتفاق را تحریک نکرد»؛ این فرآیند بهطور خودکار در مخازنی که کرم به آنها دسترسی نوشتاری دارد رخ میدهد و نیازی به اجرای مجدد npm install نیست. این نوع نفوذ به ابزارهای توسعه، آسیبپذیریهای مشابهی را در Gemini CLI و Claude Code به یاد میآورد که منجر به نشت کلیدهای API از طریق کدهای مخرب شد.
تکنیکهای مشابهی پیش از این در مورد فایل .vscode/tasks.json مشاهده شده است. این یک الگوی حمله کلی برای هر ابزاری است که تنظیمات را بهطور خودکار از مخزنی که باز میکند، اجرا مینماید. به همین دلیل، صرفاً تغییر رمز عبورها یا چرخش اعتبارهها (Credential Rotation) این آسیبپذیری را برطرف نمیکند.
برای مقابله با این تهدید، پژوهشگران امنیتی یک سیستم دفاعی چهارلایه را پیشنهاد میکنند:
۱. بازرسی فایلهای قلاب
هر مخزن کد را به عنوان ورودی غیرقابلاعتماد ببینید. توسعهدهندگان باید پوشههای .claude/ و .vscode/ را برای یافتن فایلهای تنظیمات مشکوک بازرسی کنند.
- شناسایی: استفاده از دستوراتی مانند
find ~/code -name "settings.json" -path "*/.claude/*" 2>/dev/nullبرای یافتن قلابهای پنهان. - بررسی: این فایلها باید مانند کدهای اجرایی تلقی شده و با همان سختگیریِ بررسی تغییرات کد (Diff Review) بازبینی شوند.
- پیشگیری: تنظیمات مورد اعتماد را تثبیت (Pin) کنید و دسترسیهای نوشتاری به مخزن را بهشدت محدود کنید.
۲. محیطهای ایزوله یکبارمصرف
عاملها را در کانتینرهایی ایزوله کنید که در آن فایلها متعلق به کاربر root نباشند. یک محیط سندباکس (Sandbox) — شبیه به یک اتاق آزمایش ایزوله که اگر انفجاری رخ دهد، به ساختمان اصلی آسیبی نرسد — با استفاده از داکر (Docker) توصیه میشود. یک ساختار «سندباکس داکر یکبارمصرف با اعتماد صفر» به اجتناب از اشتباهات رایج کمک میکند:
- مدیریت دسترسی: اجرای داکر با کاربر root میتواند باعث قفل شدن سیستم شما شود. از سوی دیگر، استفاده از
-u "$(id -u):$(id -g)"ممکن است باعث بروز خطاهای «Permission Denied» شود، زیرا داکر دایرکتوریهای موجود نیست را به عنوان root:root مونت میکند. - جداسازی کلیدها: یک استراتژی حیاتی این است که کلیدهای جهانی SSH و Git را روی سیستم میزبان نگه دارید و آنها را به داخل سندباکس منتقل (Mount) نکنید.
۳. بازرسی خودکار لاگها
از آنجایی که انسانها بهندرت میتوانند هزاران خط لاگ عاملها را بخوانند، از ابزارهای خودکار برای شناسایی الگوهای خطرناک استفاده کنید. یک ابزار بازرسی فعلی با استفاده از کتابخانهای شامل بیش از ۳۵ قانون، فایلهای JSONL را تحلیل میکند.
- پرچمهای خطر: شاخصهای ریسک بالا شامل دستورات
rm -rfدر مسیرهای ریشه، دستوراتcurl|bash،شِلهای معکوس (Reverse Shells)، خواندن اسرار (Secrets)، دستورchmod 777یاgit push --forceاست. - یکپارچهسازی: این ابزار برای یافتههای HIGH/CRITICAL کد خروجی ۱ برمیگرداند، که اجازه میدهد در یک cron job یا مرحلهای از CI قرار گیرد. این روش جایگزین وعدههای غیرقابلاعتماد «بررسی لاگها در زمان فراغت» میشود.
۴. شکستن مثلث مرگبار
بر اساس چارچوب سایمون ویلیسون، توسعهدهندگان باید اطمینان یابند که یک عامل بهطور همزمان به سه مورد دسترسی ندارد: دادههای خصوصی، محتوای غیرقابلاعتماد و مسیری برای ارسال داده به بیرون.
سازمان OWASP (در ورودی LLM01:2025) تأکید میکند که هنوز مشخص نیست آیا راه حلی قطعی و ضدگلوله برای جلوگیری از تزریق پرامپت (Prompt Injection) — یعنی فریب دادن مدل با دستورات مخفی — وجود دارد یا خیر. بنابراین، تنها راه عملی، محصورسازی (Containment) است. اگر هر سه ضلع این «مثلث مرگبار» وجود داشته باشد، مهاجم بهراحتی میتواند عامل را فریب دهد تا اسرار خصوصی را به بیرون ارسال کند. این چالشهای امنیتی در ابزارهای هوش مصنوعی، مشابه مشکلات بدافزارهای متنی در Copilot Word است که برای مدتها بدون اصلاح باقی مانده بودند و ریسک انتشار کرمهای خودتکثیرشونده را افزایش دادند.
این تغییر در الگوی حملات ثابت میکند که چرخش اعتبارهها دیگر کافی نیست. آسیبپذیری اصلی در اعتمادی است که ما به اجرای خودکار تنظیمات در IDEها و ابزارهای عامل (Agent tools) میدهیم.
برای اکثر توسعهدهندگان، خطر فوری در «شعاع تخریب» (Blast Radius) دسترسیهایی است که اعطا میکنند. از آنجایی که گزارشهای متنی عاملها میتوانند توسط تزریق پرامپت دستکاری شوند تا دروغ بگویند — برای مثال، گزارش دهند که عملیات Y را انجام دادهاند در حالی که در واقع عملیات X را اجرا کردهاند — تنها امنیت واقعی در محصورسازی سختگیرانه است.
گام بعدی شما
- همین هفته دستور
findرا برای شناسایی تمام فایلهای.claude/settings.jsonدر دایرکتوریهای کد محلی خود اجرا کرده و آنها را پیش از جلسه بعدی بازبینی کنید. - پوشههای
.claude/و.vscode/را به چکلیست بررسی PRهای خود اضافه کنید. - یک cron job ساده برای شناسایی الگوهای خطرناک در لاگهای عاملهایتان تنظیم کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو