کرمی به نام ChainDrop طی چند روز اخیر بیش از ۴۰۰ بستهی npm را آلوده کرد و برخلاف حملات مشابه قبلی، اینبار مستقیم سراغ فایلهای پیکربندی Claude Code، Cursor، Codex و Gemini رفته است؛ خبری که هر برنامهنویسی که از دستیارهای هوش مصنوعی برای کدنویسی استفاده میکند باید جدی بگیرد.

لیست مطالب
۱. چه اتفاقی افتاد؟ خلاصهی ماجرای ChainDrop
در روزهای ابتدایی اوت ۲۰۲۶، تیمهای امنیتی مایکروسافت، Wiz، Socket، Aikido، Ox Security و StepSecurity تقریباً همزمان از کشف یک کمپین جدید در اکوسیستم جاوااسکریپت خبر دادند. این کمپین که بعدها نام ChainDrop روی آن گذاشته شد، از نوعی حملهی زنجیرهی تأمین (Supply Chain Attack) استفاده میکند که در آن بهجای هدف قرار دادن یک برنامهی خاص، مستقیم به منبع کد یعنی بستههای نرمافزاری منبعباز حمله میشود. نقطهی ورود، نفوذ به حساب گیتهاب یکی از نگهدارندگان کتابخانهی Keyv بود؛ کتابخانهای کوچک اما پرکاربرد برای مدیریت کش با نزدیک به ۱۲۷ میلیون دانلود هفتگی.
از همان نقطه، مهاجمان بهسرعت به کتابخانههای وابسته مثل Cacheable و flat-cache هم سرایت کردند و در نهایت شمار بستههای آلوده به بیش از ۴۰۰ مورد در بیش از هزار نسخهی مختلف رسید؛ بستههایی که رویهم بیش از دو میلیارد دانلود ماهانه دارند و در پروژههای شرکتهایی مانند Deliveroo، Picsart، Qlik و ServiceTitan هم استفاده میشوند.
۲. چرا این حمله اینقدر خطرناک بود: سوءاستفاده از سیستم اعتماد
نکتهی فنی جالب و در عین حال نگرانکنندهی ChainDrop، روش انتشار آن است. مهاجمان بهجای آپلود دستی یک بستهی جعلی، مستقیم کد مخرب را روی شاخهی اصلی (main) مخزن پروژه پوش کردند و گذاشتند سیستم CI/CD همان پروژه، نسخهی جدید و «مسموم» را خودش بسازد و منتشر کند. نتیجه این بود که هر نسخهی آلوده امضای provenance کاملاً معتبر داشت؛ یعنی مکانیزمهایی که برای اثبات اصالت یک بسته طراحی شدهاند، این بار خودشان ابزار پوشش دادن حمله شدند.
همانطور که پژوهشگران امنیتی توضیح دادهاند، provenance فقط ثابت میکند «کدام کامیت ساخته شده»، نه اینکه «آن کامیت واقعاً توسط فرد مجاز تأیید شده یا نه». همین شکاف مفهومی باعث شد ابزارهای امنیتی خودکار که معمولاً به این امضاها اعتماد میکنند، هیچ هشداری صادر نکنند.
۳. زیر ذرهبین فنی: چگونه ChainDrop کار میکند
از نظر ساختار، ChainDrop از دو فایل اصلی تشکیل شده است. فایل نخست، setup.mjs نام دارد و بهعنوان یک اسکریپت preinstall عمل میکند؛ یعنی بهمحض اینکه توسعهدهنده دستور npm install را اجرا میکند، این اسکریپت خودکار فعال میشود. کار setup.mjs دانلود رانتایم سبک Bun از گیتهاب و اجرای بار مخرب اصلی از طریق آن است.
فایل دوم، یک اینفواستیلر به نام Math_Symbol.js است که بهشدت مبهمسازی (obfuscate) شده تا شناسایی آن سختتر شود. این ماژول بهطور سیستماتیک متغیرهای محیطی سیستم، توکنهای گیتهاب و npm، کلیدهای دسترسی AWS، رازهای Kubernetes، توکنهای HashiCorp Vault و همچنین کلیدهای Stripe و Slack را جمعآوری میکند. پیش از ارسال، هرکدام از این توکنها بهصورت لحظهای اعتبارسنجی میشوند تا فقط دادههای «قابل استفاده» ارسال شود؛ سپس این اطلاعات رمزنگاریشده و به یک مخزن عمومی گیتهاب با توضیح «Shai-Hulud: Here We Go Again» فرستاده میشوند؛ اشارهای مستقیم به موج مشهور قبلی حملات زنجیرهی تأمین با همین نام که سال گذشته اکوسیستم npm را تکان داد.
خودتکثیری: چرا به آن «کرم» میگویند
ویژگیای که ChainDrop را از یک بدافزار ساده فراتر میبرد، توانایی خودانتشاری آن است. با هر توکن npm جدیدی که این بدافزار به آن دسترسی پیدا میکند، تلاش میکند بستههای دیگر همان نگهدارنده یا سازمان را هم آلوده کند؛ دقیقاً همان الگویی که باعث شد در عرض چند روز، از یک کتابخانه به صدها بستهی دیگر سرایت کند.

۴. زاویهای که این حمله را خاص میکند: هدفگیری مستقیم ابزارهای هوش مصنوعی
آنچه ChainDrop را از موج قبلی حملات Shai-Hulud جدا میکند، توجه ویژهاش به دستیارهای کدنویسی مبتنی بر هوش مصنوعی است. بر اساس تحلیلهای منتشرشده، این بدافزار بهطور خاص فایلهای پیکربندی Claude Code، Cursor، Codex و Gemini را جستوجو میکند تا توکنهای دسترسی این ابزارها را هم به فهرست دادههای سرقتی خود اضافه کند. این یعنی همان اعتبارنامههایی که به دستیار هوش مصنوعی شما اجازه میدهند به مخازن کد، APIها یا سرویسهای ابری متصل شود، میتوانند مستقیم در اختیار مهاجم قرار بگیرند. برای اخبار بهروز دربارهی چنین تهدیدهایی، صفحهی اخبار Mr ChatGPT منبع خوبی است.
نگرانکنندهتر از سرقت اطلاعات، مکانیزم ماندگاری (Persistence) این کرم است. ChainDrop یک هوک راهاندازی (startup hook) در Claude Code و یک تسک خودکار در VS Code ایجاد میکند. نتیجه این است که صرفاً باز کردن یک پوشهی آلوده در محیط توسعه، حتی بدون اجرای دستوری خاص، کافی است تا بدافزار دوباره فعال شود. به بیان ساده، محیط کاری روزمرهی یک برنامهنویس که با دستیار هوش مصنوعی کار میکند، خودش به یک نقطهی آلوده و خودفعالشونده تبدیل میشود.
۵. چرا رشد ابزارهای هوش مصنوعی، سطح حمله را هم بزرگتر میکند
در دو سال اخیر، دستیارهایی مثل Claude Code، GitHub Copilot، Cursor و Codex عملاً بخشی جداییناپذیر از چرخهی توسعهی نرمافزار شدهاند. این ابزارها معمولاً به مخازن کد، ترمینال، متغیرهای محیطی و گاهی حتی کلیدهای ابری دسترسی دارند تا بتوانند وظایف پیچیدهتری انجام دهند. همین سطح دسترسی بالا، آنها را به هدفی جذاب برای مهاجمان تبدیل کرده است. برای درک بهتر این تحول در نحوهی کار با هوش مصنوعی میتوانید مقالهی توهم هوش مصنوعی: توسعهدهندهی تنها در برابر مهندس واقعی را هم بخوانید که به همین چالش تعادل میان سرعت و دقت در کدنویسی با هوش مصنوعی میپردازد.
کارشناسان امنیتی معتقدند ChainDrop تنها اولین نمونه از نسلی از بدافزارهاست که بهطور خاص برای اکوسیستم هوش مصنوعی طراحی میشوند. با گسترش ابزارهایی که بهصورت خودمختار کد مینویسند، تست میکنند یا حتی دیپلوی میکنند، هر خطای امنیتی کوچک میتواند دامنهی بسیار بزرگتری نسبت به گذشته پیدا کند؛ موضوعی که در مقالهی اهمیت هوش مصنوعی در کسبوکار هم به آن پرداختهایم.
۶. مقایسه با موج قبلی: Shai-Hulud و درسی که گرفته نشد
نام «Shai-Hulud» که در پیام مهاجمان دیده شد، اشارهای مستقیم به کمپین مشهور حملات زنجیرهی تأمین npm در سال گذشته دارد که دهها بستهی محبوب را آلوده کرد. تکرار همین الگو نشان میدهد با وجود هشدارهای متعدد آن دوره، بسیاری از سازوکارهای دفاعی اکوسیستم npm همچنان در برابر حملاتی که از مسیر پایپلاینهای انتشار رسمی میآیند، آسیبپذیر ماندهاند. تفاوت اصلی اینبار، تمرکز آگاهانه روی سرقت اعتبارنامههای مرتبط با هوش مصنوعی است؛ نشانهای از اینکه مهاجمان هم دارند خودشان را با تغییر ابزارهای توسعهدهندگان بهروز میکنند.
۷. چه کسانی در معرض خطرند و چطور بفهمیم آلوده شدهایم
اگر در پروژههای خود از بستههایی مانند Keyv، Cacheable، flat-cache یا file-entry-cache استفاده میکنید، یا اگر هر کدام از این کتابخانهها بهصورت غیرمستقیم در زنجیرهی وابستگیهای پروژهی شما قرار دارند، احتمال قرارگیری در معرض خطر وجود دارد. بهترین راه، مقایسهی فهرست دقیق نسخههای نصبشده با شاخصهای سازش (Indicators of Compromise) منتشرشده توسط شرکتهای امنیتی مانند Socket، Wiz و StepSecurity است. وجود فایلهایی مثل setup.mjs یا Math_Symbol.js در node_modules، یا وجود یک هوک ناشناخته در تنظیمات Claude Code، از نشانههای هشداردهنده است.
۸. چه باید کرد؟ توصیههای عملی برای توسعهدهندگان و تیمها
شرکتهای امنیتی چند اقدام فوری را توصیه کردهاند. نخست، حذف فوری نسخههای آلوده و قفل کردن نسخهی بستهها (Version Pinning) به آخرین نسخهی تأییدشده و امن. دوم، عوض کردن تمام توکنها و اعتبارنامههایی که ممکن است در معرض دید بدافزار قرار گرفته باشند، از جمله توکنهای گیتهاب، npm، AWS، Kubernetes، Vault، Stripe و Slack. سوم، در صورت هرگونه شک به آلودگی، بازسازی کامل محیط توسعه از یک بکاپ سالم بهجای صرفاً پاک کردن فایلهای مشکوک. چهارم، استفاده از allowlist برای وابستگیها و فعالسازی سازوکارهای تأیید provenance در سطح سازمانی. برای آشنایی بیشتر با نقش هوش مصنوعی در تصمیمگیریهای امنیتی کسبوکار، مطالعهی مقالهی قابلیتها و محدودیتهای واقعی هوش مصنوعی نیز خالی از لطف نیست.

۹. آیندهی امنیت در عصر کدنویسی با هوش مصنوعی
ماجرای ChainDrop یک زنگ خطر روشن برای کل صنعت نرمافزار است: وقتی دستیارهای هوش مصنوعی به بخش ثابتی از فرآیند کدنویسی تبدیل میشوند، امنیت این ابزارها دیگر یک موضوع فرعی نیست، بلکه بخشی اصلی از امنیت زیرساخت شرکتهاست. کارشناسان انتظار دارند در ماههای آینده شاهد افزایش قابلتوجه بدافزارهایی باشیم که بهطور خاص برای سرقت اعتبارنامههای Claude Code، Copilot، Cursor و ابزارهای مشابه طراحی میشوند. برای یادگیری اصول درست تعامل با این ابزارها و کاهش خطاهای رایج، میتوانید نگاهی هم به مقالهی راهنمای نوشتن پرامپت برای مبتدیان بیندازید.
۱۰. پرسشهای پرتکرار دربارهی ChainDrop
ChainDrop دقیقاً چیست؟ یک بدافزار خودتکثیر (کرم) در اکوسیستم npm است که با نفوذ به حساب نگهدارندگان پروژهها، نسخههای مسموم اما دارای امضای معتبر منتشر میکند و اطلاعات حساس از جمله توکنهای ابزارهای هوش مصنوعی را میدزدد.
آیا خود Claude Code یا Cursor هک شدهاند؟ خیر؛ این ابزارها هدف مستقیم نفوذ نبودهاند. ChainDrop از طریق بستههای npm آلوده وارد سیستم میشود و سپس فایلهای پیکربندی محلی این ابزارها را در جستوجوی توکنها میکاود.
چطور بفهمم پروژهی من آلوده شده؟ فهرست وابستگیهای پروژه را با شاخصهای سازش منتشرشده توسط شرکتهای امنیتی مقایسه کنید و بهدنبال فایلهای مشکوک مانند setup.mjs یا هوکهای ناشناخته در تنظیمات ابزارهای هوش مصنوعی بگردید.
آیا فقط شرکتهای بزرگ در خطرند؟ نه؛ چون بستههای آلوده در هزاران پروژهی کوچک و بزرگ استفاده میشوند، هر توسعهدهندهای که از این کتابخانهها یا وابستگیهای آنها استفاده کند، میتواند در معرض خطر باشد.
نسخهٔ فوری این مطلب در تلگرام: اینجا بخوانید
