یک افزونهی رسمیظاهر در مارکتپلیس کرسر (Cursor) به دروازهی حمله تبدیل شد. در ۲۹ اکتبر ۲۰۲۶، نسخهی ۲.۱.۳۱۳ِ افزونهی Anthropic.claude-code حاوی کد مخرب بود که تا ۵۰۰۰ توسعهدهنده را در عرض ۱۱ ساعت هدف قرار داد.
به گزارش کرسر، بستهی مخرب توسط آنتروپیک (Anthropic) ساخته نشده بود و کدی را اجرا میکرد که یک درِ پشتی (Backdoor) SSH مداوم روی ماشینهای توسعهدهندگان نصب میکرد. پنجرهی آلودگی تقریباً ۱۱ ساعت بود — از ساعت ۲:۲۷ ب.ظ تا ۱:۳۵ ب.ظ وقت الهادئ (Pacific Time) در همان روز — و بر اساس مستندات کرسر حداکثر پنج هزار کاربر ممکن است نسخهی مخرب را نصب کرده باشند.
زمینه
حملههای زنجیره تأمین (Supply-chain attack) به افزونههای محیطهای توسعه یکپارچه (IDE) در سالهای اخیر به یک بردِ مطمئن برای دزدیدن اعتبارها و حرکت جانبی در شبکههای سازمانی تبدیل شدهاند. نقض مارکتپلیس VS Code در ۲۰۲۳ و سرقت افزونه JetBrains در ۲۰۲۴ الگوهای مشابهی داشتند: مهاجم از اعتماد توسعهدهندگان به مارکتپلیسهای رسمی سوءاستفاده میکند تا بار مخرب را تحویل دهد. رویداد کرسر قابل توجه است زیرا کد مخرب سعی کرد از پروتکل SSH — که به طور رایج برای مدیریت از راه دور استفاده میشود — سوءاستفاده کند و در صورت موفقیت در ارتقای امتیاز، مسیری مستقیم برای دسترسی از راه دور مداوم فراهم آورد. محققان امنیتی شفافیت افشای کرسر را ستودند، اما هشدار دادند که حملات زنجیره تأمین به افزونههای IDE به بردی قابل اعتماد برای دزدیدن اعتبار تبدیل شدهاند. این رویداد اهمیت تأیید مبدأ افزونه، نظارت بر یکپارچگی مارکتپلیس و استفاده از بررسیهای یکپارچگی در زمان اجرا را برای ابزارهای توسعه تأکید میکند. سازمانها باید در نظر بگیرند که افزونههای امضا شده را الزامی کنند، دسترسی به مارکتپلیس را به ناشرهای تاییدشده محدود کنند و اسکن خودکار افزونههای نصبشده را در خط لوله تشخیص نقطه پایانی ادغام کنند.
جزئیات فنی
افزونهی مخرب بلافاصله پس از بارگذاری عملیات زیر را آغاز میکرد:
- دزدیدن شناسههای میزبان (Host identifiers): نام میزبان، نام کاربری، سیستمعامل، معماری، مسیر دایرکتوری خانه، نامهای متغیرهای محیطی، دایرکتوریهای کاری فعلی، آدرس ایمیل گیت پیکربندیشده و آدرس IP عمومی ماشین.
- تزریق کلید عمومی SSH مهاجم به فایل
authorized_keysکاربر. - فعالسازی دیمون SSH محلی و تلاش برای برقراری یک تونل SSH معکوس (Reverse SSH tunnel) به سرور کنترل و فرماندهی (C2).
- نصب مکانیزم پایداری (Persistence): در macOS یک LaunchAgent و در ویندوز یک وظیفه زمانبندیشده (Scheduled Task) که سعی میکرد به عنوان SYSTEM اجرا شود؛ در صورت شکست، به اسکریپت استارتاپ (Startup script) روی میآورد.
- نیمههای پسزمینه (Background threads) هر ۶۰ ثانیه یک بار تونل معکوس را مجدداً امتحان میکردند.
- گزارش وضعیت و جزئیات میزبان از طریق درخواستهای HTTP POST به یک بیکن (Beacon) در پورت ۸۰۹۹.
کرسر تأکید کرد که سطح حمله محدود بود چون افزونه در بستر کاربر اجرا میشد و نمیتوانست بدون رضایت صریح کاربر امتیازها را ارتقا دهد. ایجاد تونل در اکثریت سیستمها به دلیل خطاهای کد و نیاز به امتیاز مدیر برای فعالسازی SSH در macOS و ویندوز ناموفق میماند، اما کلید مهاجم درauthorized_keysنوشته میشد و دادهها خارج میشدند. بار مخرب همچنان کلید مهاجم را درauthorized_keysثبت میکرد، مکانیزم پایداری را نصب میکرد و اطلاعات میزبان را به سرور مهاجم ارسال میکرد.
نکات مهم
- کرسر تأکید کرد که سطح حمله محدود بود چون افزونه در بستر کاربر اجرا میشد و نمیتوانست بدون رضایت صریح کاربر امتیازها را ارتقا دهد.
- ایجاد تونل در اکثریت سیستمها به دلیل خطاهای کد و نیاز به امتیاز مدیر برای فعالسازی SSH در macOS و ویندوز ناموفق میماند، اما کلید مهاجم در
authorized_keysنوشته میشد و دادهها خارج میشدند. - محققان امنیتی شفافیت افشای کرسر را ستودند، اما هشدار دادند که حملات زنجیره تأمین به افزونههای IDE به بردی قابل اعتماد برای دزدیدن اعتبار تبدیل شدهاند.
- کرسر نسخه مخرب را در عرض چند ساعت از مارکتپلیس حذف کرد و اعلام کرد که به طور مستقیم با کاربران متضرر تماس خواهد گرفت.
- اطلاعیه کرسر توصیه کرد که توسعهدهندگان فایل
authorized_keysرا بررسی کنند، کلیدهای ناشناس را حذف کنند و مطمئن شوند که هیچ LaunchAgent یا Scheduled Task غیرمنتظرهای باقی نمانده است.
تحلیل
این رویداد نشان میدهد که حتی اکوسیستمهای توسعه قابل اعتماد میتوانند وقتی یک بسته مخرب از دروازهها عبور کند، به سلاح تبدیل شوند. تفاوت کلیدی اینجا سرعت پاسخ کرسر — حذف در عرض ساعات، تماس مستقیم با کاربران متضرر و تعهد به سختسازی فرآیند بازبینی — است. با این حال، الگو تکرارپذیر است: مهاجمها روی اعتماد توسعهدهندگان به مارکتپلیسهای رسمی حساب میکنند. الزام امضای کد (Code-signing)، sandboxing رفتاری خودکار و فید یکپارچگی بیدرنگ (Real-time integrity feed) که کرسر وعده داده، معیار جدید برای رفع اعتماد باید باشند. تحلیلگران صنعت اشاره کردند که رویداد کرسر الگوی مشاهدهشده در نقضهای اخیر زنجیره تأمین را دنبال میکند، از جمله نقض مارکتپلیس VS Code در ۲۰۲۳ و سرقت افزونه JetBrains در ۲۰۲۴. در هر مورد مهاجمها از اعتماد توسعهدهندگان به مارکتپلیسهای رسمی سوءاستفاده کردند تا اعتبارها را بدزدند، پایگاههای پیشروی ایجاد کنند و به شبکههای سازمانی نفوذ کنند. مورد کرسر به دلیل تلاش برای سوءاستفاده از SSH، پروتکلی که به طور رایج برای مدیریت از راه دور به کار میرود، قابل توجه است؛ در صورت موفقیت در ارتقای امتیاز، مسیری مستقیم برای دسترسی از راه دور مداوم فراهم میشد.
گام بعدی شما
- فایل
authorized_keysرا بررسی کنید و هر کلید ناشناس را حذف نمایید. - لاگهای نقطه پایانی (Endpoint logs) را برای اتصالات خروجی به پورت ۸۰۹۹ بررسی کنید و این پورت را در حاشیه شبکه مسدود کنید تا پایان بررسی.
- کلیدهای SSH استفاده شده در خط لوله CI/CD را چرخش دهید (Rotate) و مجدداً تولید کنید.
- راهکارهای EDR را طوری تنظیم کنید که ایجاد LaunchAgent یا Scheduled Task ارجاعدهنده به مسیر نصب افزونه را پرچمگذاری کنند.
- از امضای کد برای تمام افزونههای مارکتپلیس استفاده کنید و از sandboxing رفتاری خودکار پیش از انتشار بهره ببرید.
- از فید یکپارچگی بیدرنگ کرسر برای تأیید هش هر افزونه نصبشده در برابر خط پایه معتبر استفاده کنید.




گفتگو