شگرد تازه هکرهای ایرانی؛ وقتی آزمون استخدامی به تله جاسوسی تبدیل میشود!
بررسیهای شرکت امنیتی کسپرسکی از دو خانواده بدافزاری جدید به نامهای NodeRabbit و PollCat پرده برداشته است. هر دو بدافزار برای اجرا روی سیستمعاملهای مختلف طراحی شدهاند و مهاجمان آنها را در قالب آزمونهای کدنویسی و پیشنهادهای کاری جعلی توزیع کردهاند. کسپرسکی این فعالیتها را به گروه Nimbus Manticore نسبت داده؛ گروه هکری که با نام Mirage Kitten نیز شناخته میشود و کمپینهای جذب نیروی آن تحت عنوان Iranian Dream Job شهرت دارد و توسط نهادهای بینالمللی و شرکتهای بزرگ فناوری به عنوان عوامل سایبری وابسته به جمهوری اسلامی و سپاه پاسداران معرفی میشوند از روشهای پیچیده مهندسی اجتماعی استفاده میکنند.
یک پیشنهاد شغلی در لینکدین، یک آزمون فنی برنامهنویسی و یک فایل ZIP که ظاهراً برای سنجش مهارتهای یک مهندس نرمافزار طراحی شده است؛ همهچیز عادی به نظر میرسد. اما در یک کارزار سایبری جدید، همین فرایند به مسیری برای نصب بدافزار و دسترسی از راه دور به سیستم قربانی تبدیل شده است.
بررسیهای شرکت امنیتی کسپرسکی از دو خانواده بدافزاری جدید به نامهای NodeRabbit و PollCat پرده برداشته است. هر دو بدافزار برای اجرا روی سیستمعاملهای مختلف طراحی شدهاند و مهاجمان آنها را در قالب آزمونهای کدنویسی و پیشنهادهای کاری جعلی توزیع کردهاند. کسپرسکی این فعالیتها را به گروه Nimbus Manticore نسبت داده؛ گروه هکری که با نام Mirage Kitten نیز شناخته میشود و کمپینهای جذب نیروی آن تحت عنوان Iranian Dream Job شهرت دارد و توسط نهادهای بینالمللی و شرکتهای بزرگ فناوری به عنوان عوامل سایبری وابسته به جمهوری اسلامی و سپاه پاسداران معرفی میشوند از روشهای پیچیده مهندسی اجتماعی استفاده میکنند.
آنچه این کارزار را قابل توجه میکند، فقط وجود دو بدافزار جدید نیست؛ بلکه استفاده از خود فرایند استخدام و محیط کاری برنامهنویسان بهعنوان بخشی از زنجیره حمله است.
پیشنهاد شغلی جعلی، اولین قدم حمله
مهاجمان در لینکدین و دیگر پلتفرمهای کاریابی، خود را بهعنوان مسئول جذب نیرو معرفی میکنند و با مهندسان نرمافزار تماس میگیرند. سپس از آنها میخواهند برای یک موقعیت شغلی، آزمون فنی انجام دهند.
در یکی از نمونههایی که Kaspersky بررسی کرده، فایل Front-Technical-Challenge.zip روی زیرساخت AWS قرار داشت. این فایل یک پروژه مدیریت کارها به نام Taskflow را در خود داشت و از متقاضی خواسته میشد باگهای بخش Frontend را پیدا و برطرف کند.
نکته مشکوک این بود که در دستورالعمل آزمون، بهطور مشخص از کاربر خواسته شده بود به فایل server.js دست نزند؛ چون گفته شده بود این بخش «بدون مشکل» است. اما کد مخرب دقیقاً در همین فایل قرار گرفته بود. این آزمون همچنین یک محدودیت زمانی سهساعته داشت؛ موضوعی که میتواند کاربر را تشویق کند بدون بررسی دقیق پروژه، آن را روی سیستم خود اجرا کند.
بدافزار NodeRabbit؛ بدافزار داخل پروژه کدنویسی
یکی از دو بدافزار جدید NodeRabbit است؛ یک تروجان دسترسی از راه دور یا Remote Access Trojan که با Node.js ساخته شده است. اولین نمونه آن روی سیستمی در افغانستان شناسایی شد و نمونههای دیگری نیز در مصر و اتیوپی پیدا شدند.
در نمونه افغانستان، فایل server.js یک بسته دستکاریشده npm به نام colorized_terminal نسخه 2.1.0 را فراخوانی میکرد. مهاجمان این بسته را مستقیماً داخل پوشه node_modules قرار داده بودند و آن را در مخزن رسمی npm منتشر نکرده بودند.
بنابراین حتی اگر کاربر تصور کند پروژه از وابستگیهای معمول npm استفاده میکند، اجرای پروژه باعث فعالشدن کد مخرب میشود. این بسته پس از فراخوانی، NodeRabbit را بهصورت یک فرایند جداگانه در پسزمینه اجرا میکرد.
بدافزار NodeRabbit چه کاری میتواند انجام دهد؟
این بدافزار با سرور فرماندهی و کنترل مهاجمان (C2) ارتباط برقرار میکند و طبق گزارش کسپرسکی ۱۱ فرمان را پشتیبانی میکند. از جمله:
- جمعآوری اطلاعات سیستم؛
- فهرستکردن فرایندهای در حال اجرا؛
- اجرای دستورات Shell؛
- بررسی پوشهها و فایلها؛
- خواندن فایلها و ارسال آنها بهصورت قطعهقطعه؛
- حذف فایل یا پوشه؛
- ساخت پوشههای جدید؛
- جمعآوری اطلاعات کارت شبکه، MAC Address، IP و DNS؛
- تغییر فاصله زمانی ارتباط با سرور مهاجم.
این بدافزار همچنین میتواند یک اسکریپت Node.js را در یک فایل موقت ذخیره، اجرا و سپس حذف کند تا ردپای اجرای آن کمتر باقی بماند. کسپرسکی دو گونه دیگر از NodeRabbit را نیز شناسایی کرده که از نظر کد با نمونه اول ارتباط دارند. در یکی از آنها بهجای colorized_terminal از بسته دستکاریشده pretty-log استفاده شده است.
هدف فقط یک کامپیوتر نیست؛ محیط توسعه هم زیر نظر است
در نسخه پیشرفتهتر NodeRabbit، قابلیتهایی دیده شده که مستقیماً محیط توسعه برنامهنویسان را هدف میگیرد. این نسخه میتواند اطلاعات فایلهای داده Outlook با پسوندهای .ost و .pst را جستوجو کند، یک افزونه جعلی VS Code با نام GitHub Copilot Helper نصب کند و مکانیزمهای مختلف ماندگاری روی سیستم را بررسی کند.
همچنین میتواند مخازن Git را در مسیرهای رایج توسعه پیدا کند و با قرار دادن یک Launcher در Git Hooks، راهی برای اجرای دوباره کد مخرب ایجاد کند. Git Hookها اسکریپتهایی هستند که در زمان انجام رویدادهایی مانند Commit در یک مخزن Git اجرا میشوند.
این بخش از کارزار اهمیت زیادی دارد، چون نشان میدهد مهاجم فقط به اطلاعات موجود روی لپتاپ قربانی علاقه ندارد؛ ابزارها و فرایند کاری خود برنامهنویس نیز بخشی از سطح حمله هستند.
بدافزار PollCat؛ آزمون برنامهنویسی با ظاهر یک CTF
بدافزار دوم PollCat نام دارد. این RAT نیز چندسکویی است، اما با JavaScript درهمریخته (Obfuscated JavaScript) نوشته شده است.
برای توزیع آن از فایل دیگری با نام RankChallenge-react-6uJSX3-main.zip استفاده شده است. ظاهر پروژه به یک چالش برنامهنویسی یا مسابقه Capture The Flag شباهت دارد.
در بخشهای مختلف پروژه عباراتی مانند ctf-server، کلیدهای ctf-* و عبارت path/to/ctf دیده شده است. Kaspersky همچنین میگوید دستورالعملهای پروژه با چیزی که واقعاً داخل آرشیو قرار دارد کاملاً همخوانی ندارند.
این موارد از نظر کسپرسکی با یک پروژه تولیدشده با کمک AI یا یک قالب آماده سازگار است؛ اما اینکه مهاجمان واقعاً از یک ابزار هوش مصنوعی برای ساخت پروژه استفاده کردهاند، یک احتمال و تحلیل است، نه یک واقعیت اثباتشده.
رمز یکبارمصرفی که امنیت واقعی ایجاد نمیکند
راهنمای PDF داخل این آزمون از کاربر میخواهد روی گزینه «Continue» کلیک کند و یک رمز یکبارمصرف ششرقمی (OTP) وارد کند. این رمز هر ۳۰ ثانیه تغییر میکند و کاربر برای تکمیل آزمون یک ساعت فرصت دارد.
این محدودیت زمانی احتمالاً برای ایجاد حس فوریت طراحی شده تا قربانی پروژه را سریع اجرا کند.
اما نکته مهمتر این است که PollCat به اعتبارسنجی این رمز وابسته نیست. بدافزار مستقل از فرایند احراز هویت اجرا میشود و حتی شکست اعتبارسنجی OTP مانع فعالیت آن نمیشود. در صورت ورود موفق نیز یک JWT صادر شده و نمونه دیگری از PollCat اجرا میشود.
بدافزار PollCat چه اطلاعاتی جمع میکند؟
این بدافزار ۲۲ فرمان دارد که امکان انجام طیف گستردهای از عملیات را فراهم میکند؛ از اجرای Shell و JavaScript گرفته تا مدیریت فایل، انتقال فایل، بارگذاری DLL، ساخت و استخراج فایل ZIP و بررسی فرایندها، درایوها و Mount Pointها.
سه فرمان با نامهای WS_DOWNLOAD، REQUEST_ELEVATION و PERSIST در نمونه بررسیشده هنوز فعال یا کامل پیادهسازی نشده بودند. این بدافزار همچنین به دنبال پوشههای مرتبط با ۲۴ شرکت و محصول نرمافزاری و امنیتی میگردد؛ از جمله Microsoft، Google، Cisco، Palo Alto Networks، Fortinet، Kaspersky، ESET، CrowdStrike، SentinelOne و Malwarebytes.
اگر چنین پوشهای پیدا شود، PollCat محتویات ریشه آن را فهرست میکند و نتیجه را به سرور مهاجم ارسال میکند. طبق گزارش، این کار برای شناسایی نرمافزارها و ابزارهای امنیتی موجود روی سیستم انجام میشود.
یک کدبیس برای سه سیستمعامل
یکی از مهمترین تغییرات این کارزار، حرکت از بدافزارهای سنتیتر به سمت ابزارهای چندسکویی است. کسپرسکی میگوید این گروه در گذشته از بدافزارهای نوشتهشده با C، C++ و Go استفاده میکرد، اما NodeRabbit و PollCat با Node.js و JavaScript ساخته شدهاند. این تغییر به مهاجمان اجازه میدهد ابزارهایی داشته باشند که روی ویندوز، لینوکس و مکاواس قابل اجرا هستند. این رویکرد با هدفگیری برنامهنویسان همخوانی دارد؛ چون محیط کاری توسعهدهندگان لزوماً به ویندوز محدود نیست و ممکن است از لینوکس یا macOS استفاده کنند.
ماندگاری روی سیستم قربانی
NodeRabbit بسته به سیستمعامل از روشهای متفاوتی برای ماندگاری استفاده میکند: در ویندوز، از Windows Run Registry Key؛ در لینوکس، از Cron؛ در macOS، از Launch Agent. در برخی نمونهها نیز این مکانیزمها با ظاهر بهروزرسانی نرمافزارهای معتبر مانند Microsoft Edge یا Intel Driver & Support Assistant مخفی شدهاند. PollCat نیز یک Scheduled Task روزانه ایجاد میکند و سپس با سرور فرماندهی و کنترل ارتباط برقرار میکند.
چرا این حمله متفاوت است؟
در اینجا مهاجم از یک آسیبپذیری پیچیده یا یک نقص امنیتی ناشناخته شروع نمیکند. خود اعتماد قربانی به فرایند استخدام، نقطه ورود حمله است.
یک برنامهنویس عادت دارد پروژهای را دریافت کند، وابستگیهای آن را نصب کند و کد را برای بررسی اجرا کند. مهاجم همین رفتار عادی را به نقطه ضعف تبدیل کرده است.
از طرف دیگر، قرار دادن کد مخرب داخل node_modules نشان میدهد بررسی ساده نام بستهها یا جستوجوی آنها در npm لزوماً کافی نیست؛ چون بسته مخرب میتواند مستقیماً داخل آرشیو پروژه قرار گرفته باشد. کسپرسکی همچنین ارتباط PollCat با Nimbus Manticore را بر اساس شباهتهای ساختاری، شیوه دریافت فرمان، زمانبندی Beaconها، مجموعه فرمانها و استفاده از Azure Websites و دامنههای پشت Cloudflare با MiniFast، درب پشتی (Backdoor) دیگری که پیشتر به این گروه نسبت داده شده، ارزیابی کرده است.
یک نکته ساده اما مهم
اگر یک شرکت ناشناس یا فردی که خود را استخدامکننده معرفی میکند، از شما خواست برای یک فرصت شغلی پروژهای را اجرا کنید، صرفاً به ظاهر حرفهای آن اعتماد نکنید. پروژه را قبل از اجرا بررسی کنید، وابستگیهای داخل node_modules را جدی بگیرید و آزمونهای ناشناس را روی سیستم اصلی کاری خود اجرا نکنید. اگر امکانش وجود دارد، چنین پروژههایی را در یک محیط جدا و ایزوله بررسی کنید. در این کارزار، چیزی که قربانی را گرفتار میکند لزوماً یک فایل با ظاهر مشکوک نیست؛ ممکن است همان «آزمون فنی استخدام» باشد که قرار است شغل آیندهاش را تعیین کند.