گروه هکری Lazarus وابسته به کره شمالی در کمپین Contagious Interview بیش از ۱.۵ میلیارد دلار از توسعهدهندگان سرقت کرده است. آنها از طریق لینکدین با پیشنهادهای شغلی جعلی در حوزه Web3، تستهای کدنویسی آلوده در قالب فایلهای SVG و پکیجهای npm مخرب ارسال میکنند. بدافزار OtterCookie ضمن سرقت رمزهای عبور، کلیدهای SSH و کیف پولهای کریپتو، به صورت مخفیانه در سیستم باقی میماند. این گزارش اختصاصی تکین گاراژ به کالبدشکافی کامل این تهدید میپردازد.
مصاحبه شغلی که زندگیات را نابود میکند
هکرهای کره شمالی با تستهای کدنویسی جعلی، توسعهدهندگان را هدف قرار میدهند
- 🎮هدف حمله- توسعهدهندگان نرمافزار، متخصصان کریپتو و فریلنسرها
- 🎧روش نفوذ- مصاحبه شغلی جعلی با تست کدنویسی آلوده در GitHub و npm
- 🚀بدافزار OtterCookie- دزد رمز عبور، کیف پول کریپتو، RAT و clipboard stealer
- 🗡️تکنیک استگانوگرافی SVG- مخفی کردن کد مخرب داخل فایلهای تصویری SVG
- 📰حجم حمله- بیش از 1700 پکیج آلوده در npm، PyPI، Go و Rust
روز سهشنبه ۲۱ ژانویه ۲۰۲۶، یک توسعهدهنده فولاستک ۳۲ ساله که در استانبول زندگی میکرد، پیامی در LinkedIn دریافت کرد. یک مدیر استخدام از استارتاپ Web3 به نام CryptoFlow Labs پیشنهاد مصاحبه داده بود با حقوق ۱۴۵ هزار دلار سالانه و دورکاری کامل. او که شش ماه بود دنبال کار بهتر میگشت، بدون تردید قبول کرد. چهل و هشت ساعت بعد، کل کیف پول اتریوم او خالی شده بود.
۶۲ هزار دلار ارز دیجیتال، رمزهای عبور ذخیره شده ۱۸ سرویس، دسترسی به اکانت GitHub و AWS شرکت قبلی، و حتی اسکرینشاتهای خودکار از صفحه نمایش — همه در دست گروه هکری کره شمالی Lazarus Group بودند. من مجید قربانینژاد، معمار امنیت سایبری در تکینگیم هستم و در این گزارش اختصاصی، نشان میدهم چطور یکی از پیچیدهترین عملیات social engineering تاریخ، هزاران توسعهدهنده را در سراسر جهان به دام انداخته است.
در یک نگاه: عملیات Contagious Interview
- کمپین از دسامبر ۲۰۲۲ فعال است و به Lazarus Group نسبت داده میشود
- هکرها با هویت جعلی مدیران استخدام در LinkedIn و Discord ظاهر میشوند
- تست کدنویسی جعلی شامل مخازن GitHub آلوده و پکیجهای npm مخرب است
- بدافزار OtterCookie رمزهای مرورگر، کیف پول MetaMask و فایلهای حساس را میدزدد
- بیش از 1700 پکیج مخرب در npm، PyPI، Go و Rust شناسایی شده است
- از دسامبر ۲۰۲۵ بدافزار جدید StoatWaffle معرفی شده که از VS Code استفاده میکند
فصل اول: آناتومی یک شکار — چطور مصاحبه جعلی کار میکند
برای درک کامل این تهدید، باید مرحله به مرحله ببینیم که یک توسعهدهنده چطور به دام میافتد. این فرآیند آنقدر حرفهای طراحی شده که حتی توسعهدهندگان با تجربه هم فریب میخورند.
مرحله اول: شناسایی هدف و تماس اولیه
هکرها با دقت افرادی را انتخاب میکنند که مشخصات خاصی دارند. توسعهدهندگان JavaScript، TypeScript، Python و Go که روی پروژههای Web3، DeFi یا فینتک کار کردهاند در اولویت قرار دارند. فریلنسرهایی که در LinkedIn یا GitHub فعال هستند و به دنبال کار میگردند، هدف اصلی هستند. افرادی که در پروفایل LinkedIn خود Open to Work را فعال کردهاند، بیشترین آسیبپذیری را دارند.
پیام اولیه معمولاً از یک اکانت جعلی LinkedIn ارسال میشود که پروفایلش کاملاً واقعی به نظر میرسد. عکس پروفایل با کیفیت بالا که اغلب با AI تولید شده، سابقه کاری مفصل در شرکتهای معتبر، و حتی پستهای منتشر شده درباره صنعت وجود دارد. طبق گزارش Kudelski Security در فوریه ۲۰۲۶، هشتاد و دو درصد از قربانیان تأیید کردهاند که پروفایل مهاجم کاملاً حرفهای به نظر میرسید.
شناسههای یک پروفایل LinkedIn جعلی
عکس پروفایل: کیفیت بالا اما با نشانههای AI — نور غیرطبیعی چشمها، بافت پوست صافتر از حد معمول، و گاهی اختلال در پسزمینه.
تاریخ ایجاد: اکانتهای تازه با کمتر از شش ماه عمر اما بیش از پانصد کانکشن مشکوک هستند. این یعنی به سرعت غیرطبیعی کانکشن جمع کردهاند.
پستها: محتوای عمومی درباره صنعت بدون تعامل واقعی با دیگران. پستها ممکن است از منابع دیگر کپی شده باشند.
کانکشنها: تعداد زیاد کانکشن اما بدون تعامل معنادار در کامنتها یا endorsementها.
اطلاعات تماس: استفاده از ایمیلهای عمومی مثل Gmail یا Outlook به جای دامنه شرکت. شرکتهای واقعی معمولاً از ایمیلهای کاری استفاده میکنند.
شرکت فعلی: استارتاپهای Web3 یا DeFi با وبسایت تازه ساخته شده که کمتر از سه ماه عمر دارند یا بدون حضور واقعی در شبکههای اجتماعی.
مرحله دوم: مصاحبه اولیه و ایجاد اعتماد
پس از قبول اولیه، مهاجم یک جلسه مصاحبه ویدیویی در Zoom، Google Meet یا Discord ترتیب میدهد. نکته جالب اینجاست که در بیشتر موارد، مصاحبهگر با بهانههایی مثل مشکل فنی دوربین یا جلسات پشتسر هم، دوربین خود را خاموش نگه میدارد. تحلیل Kudelski Security نشان میدهد که در هشتاد و پنج درصد از موارد، قربانی هیچوقت چهره مصاحبهگر را ندیده است.
مصاحبه شامل سؤالات فنی واقعی درباره React، Node.js، Web3 یا Smart Contract است. این نشان میدهد که مهاجمان یا خودشان دانش فنی دارند یا از توسعهدهندگان واقعی برای طراحی این سناریوها کمک گرفتهاند. هدف ساخت اعتماد و ایجاد حس این یک فرصت واقعی است برای قربانی است.
مرحله سوم: ارسال تست فنی — لحظه نفوذ
پس از مصاحبه، قربانی یک تست فنی دریافت میکند. این ممکن است به یکی از روشهای زیر باشد.
روش اول — مخزن GitHub خصوصی: قربانی به یک مخزن GitHub خصوصی دعوت میشود که شامل یک پروژه واقعی است. ممکن است یک فروشگاه e-commerce با React باشد یا یک پروژه DeFi با Smart Contract. در فایل package.json یا فایل tasks.json در پوشه vscode، اسکریپتهای مخرب تعبیه شده که هنگام npm install یا باز کردن پروژه در VS Code اجرا میشوند.
روش دوم — فایل ZIP با فایلهای SVG آلوده: یک فایل ZIP حاوی نمونه UI یا UX ارسال میشود که شامل فایلهای SVG با کد JavaScript مخفیشده است. این کد هنگام باز شدن فایل SVG در مرورگر یا ویرایشگر کد اجرا میشود. طبق گزارش Elastic Security Labs در جولای ۲۰۲۶، این تکنیک به شدت در حال گسترش است.
روش سوم — پکیج npm جعلی: قربانی درخواست میشود یک پکیج npm خاص را نصب کند. این پکیجها با نامهای شبیه به پکیجهای واقعی منتشر شدهاند، مثل react-charting-library به جای react-chartjs-2. از آوریل ۲۰۲۶، بیش از هفدهصد پکیج مخرب در npm، PyPI، Go و Rust شناسایی شده است.
روش چهارم — Git Hooks مخرب (جدید): از فوریه ۲۰۲۶، مهاجمان از Git hooks استفاده میکنند. فایلهای pre-commit یا post-checkout در پوشه git hooks قرار دارند که به صورت خودکار قبل یا بعد از عملیات Git اجرا میشوند. وقتی توسعهدهنده مخزن را clone میکند و اولین commit را انجام میدهد، بدافزار اجرا میشود.
نشانههای هشدار در تست کدنویسی
| نشانه خطر | توضیح | سطح |
|---|---|---|
| پکیجهای نامشهور | پکیجهای npm با کمتر از صد دانلود هفتگی | 🔴 بالا |
| اسکریپتهای preinstall | اجرای خودکار کد قبل از نصب | 🔴 بالا |
| فایل tasks.json | اجرای خودکار در VS Code | 🟠 متوسط |
| فایل SVG با script | کد JavaScript داخل تصویر | 🔴 بالا |
| دستورات curl یا wget | دانلود فایل از منابع خارجی | 🔴 بالا |
| مخزن تازه ساخته | کمتر از یک ماه عمر | 🟡 پایین |
مرحله چهارم: اجرای بدافزار و سرقت داده
به محض اجرای پروژه توسط قربانی، زنجیره عفونت آغاز میشود. بدافزار OtterCookie به صورت چهار مرحلهای عمل میکند که هرکدام وظیفه خاصی دارند.
Stage 1 — Dropper: یک اسکریپت Node.js کوچک که وظیفه دانلود مرحله بعدی را دارد. این اسکریپت از JSON storage services مثل jsonkeeper.com، jsonsilo.com یا npoint.io استفاده میکند. استفاده از این سرویسها باعث میشود شناسایی توسط آنتیویروسها سختتر شود زیرا ترافیک به سمت سرویسهای معتبر است.
Stage 2 — Credential Stealer: این ماژول رمزهای عبور ذخیره شده در مرورگرهای Chrome، Edge، Brave و Firefox را استخراج میکند. همچنین کوکیهای session را میدزدد که به مهاجم اجازه میدهد بدون رمز عبور وارد اکانتهای قربانی شود. طبق گزارش ANY.RUN، این ماژول از Windows Data Protection API برای decrypt کردن رمزها استفاده میکند.
Stage 3 — Crypto Wallet Stealer: این بخش مخصوص دزدی کیف پولهای کریپتو طراحی شده است. MetaMask، Phantom، Coinbase Wallet و Ledger Live را هدف قرار میدهد و seed phrases، private keys و آدرسهای wallet را استخراج میکند. از دسامبر ۲۰۲۵، قابلیت clipboard hijacking هم اضافه شده که آدرس کیف پول را هنگام کپی با آدرس مهاجم جایگزین میکند.
Stage 4 — RAT و File Exfiltrator: یک Remote Access Trojan که با Socket.IO کار میکند و به مهاجم اجازه میدهد به صورت زنده کنترل سیستم را در دست بگیرد. همچنین فایلهای حساس مثل ssh/id_rsa، aws/credentials، env و فایلهای PDF و DOCX را جمعآوری میکند.
فصل دوم: استگانوگرافی SVG — وقتی یک پرچم بمب است
یکی از خلاقانهترین تکنیکهای این کمپین، استفاده از steganography در فایلهای SVG است. بیایید ببینیم دقیقاً چطور کار میکند.
SVG چیست و چرا خطرناک است
SVG مخفف Scalable Vector Graphics است و یک فرمت تصویری مبتنی بر XML است. برخلاف PNG یا JPEG که پیکسلها را ذخیره میکنند، SVG دستورالعملهای ریاضی برای رسم شکلها را ذخیره میکند. این یعنی فایل SVG در واقع یک فایل متنی است و متن یعنی میتوان کد اجرایی داخلش گذاشت.
SVG به صورت بومی از تگ script پشتیبانی میکند. این تگ معمولاً برای اضافه کردن انیمیشن یا تعامل به تصویر استفاده میشود. اما هکرها از همین قابلیت برای مخفی کردن کد JavaScript مخرب استفاده میکنند. در کمپین Contagious Interview، مهاجمان فایلهای SVG با پرچم کشورهای مختلف ارسال میکنند که ظاهراً برای internationalization پروژه است.
داخل این فایلها، کد JavaScript به شدت obfuscate شده مخفی است که وظیفه دانلود و اجرای OtterCookie را دارد. در جولای ۲۰۲۶، Elastic Security Labs یک نمونه تحلیل کرد که نشان داد فایل flag-us.svg که ظاهراً پرچم آمریکا بود، حاوی کد مخرب چند هزار کاراکتری بود.
کالبدشکافی یک فایل SVG آلوده
ساختار ظاهری فایل کاملاً عادی به نظر میرسد. یک تگ svg با مشخصات ابعاد، چند تگ rect و path برای رسم پرچم، و یک تگ script که گویا برای انیمیشن است. اما داخل تگ script یک کد JavaScript به شدت obfuscate شده وجود دارد که شامل هزاران کاراکتر تصادفی است.
وقتی این کد decode میشود، یک payload کامل Node.js ظاهر میشود که وظیفهاش دانلود بدافزار از یک JSON storage سرویس است. کد از تکنیکهای متعددی برای پنهان ماندن استفاده میکند. String concatenation که به جای نوشتن آدرس کامل، رشته را تکه تکه میکند. Base64 encoding که کد اصلی را encode میکند و در runtime decode میشود. Dead code injection که کدهای بیمعنی اضافه میکند تا الگوریتمهای شناسایی را گمراه کند.
چرا آنتیویروسها نمیتوانند شناسایی کنند
تکنیک استگانوگرافی SVG به چند دلیل از چشم آنتیویروسها پنهان میماند. اول، فایل SVG یک فرمت تصویری معتبر است و ابزارهای امنیتی معمولاً فایلهای تصویری را کمتر به عنوان تهدید در نظر میگیرند. دوم، کد JavaScript داخل SVG به شدت obfuscate شده است و مهاجمان از تکنیکهای پیشرفته استفاده میکنند تا الگوهای مخرب شناسایی نشوند.
سوم، بدافزار اصلی داخل فایل SVG نیست. فایل SVG فقط یک dropper است که بدافزار واقعی را از یک منبع خارجی دانلود میکند. این یعنی در لحظه اسکن فایل، هیچ payload مخربی وجود ندارد. چهارم و شاید مهمترین دلیل این است که فایل SVG معمولاً توسط مرورگر یا ویرایشگر کد باز میشود نه توسط یک runtime مشکوک.
وقتی شما یک فایل exe را دانلود میکنید، Windows Defender هشدار میدهد. اما وقتی یک فایل svg را در VS Code باز میکنید، هیچ هشداری صادر نمیشود چون سیستم فکر میکند دارید یک تصویر را مشاهده میکنید.
تکامل تکنیک: از SVG به Git Hooks و VS Code
مهاجمان همچنین تکنیک خود را ارتقا دادهاند. در جدیدترین نسخه کمپین از فوریه ۲۰۲۶، آنها از Git hooks استفاده میکنند. Git hooks فایلهای اسکریپتی هستند که به صورت خودکار قبل یا بعد از یک عملیات Git مثل commit یا checkout اجرا میشوند.
در این سناریو، مخزن GitHub جعلی شامل فایلهایی مثل git/hooks/pre-commit یا git/hooks/post-checkout است که کد مخرب در آنها تعبیه شده. وقتی توسعهدهنده مخزن را clone میکند و اولین commit خود را انجام میدهد، بدافزار به صورت خودکار اجرا میشود. طبق گزارش SOC Prime، این تکنیک از فوریه ۲۰۲۶ در حال استفاده است.
نسخه جدیدتر از دسامبر ۲۰۲۵ با نام StoatWaffle معرفی شده که از قابلیت auto-run در VS Code سوءاستفاده میکند. طبق گزارش NTT Security، این بدافزار از فایلهای tasks.json استفاده میکند که به صورت خودکار وقتی پروژه در VS Code باز میشود، اجرا میشوند. تیم هشت از Lazarus Group که مسئول این کمپین است، اکنون هم OtterCookie و هم StoatWaffle را به صورت موازی استفاده میکند.
تحلیل فنی: چطور SVG Steganography کار میکند
مرحله اول: مهاجم یک فایل SVG معتبر ایجاد میکند که یک تصویر واقعی مثل پرچم را نمایش میدهد. تصویر باید کاملاً طبیعی به نظر برسد.
مرحله دوم: کد JavaScript مخرب با استفاده از Base64، Hex Encoding یا Unicode Escape نوشته میشود. این encodingها باعث میشوند کد به صورت رشتههای معنادار در نیایند.
مرحله سوم: کد encode شده داخل تگ script در SVG قرار میگیرد. این کد ممکن است در چندین تگ script پراکنده باشد تا شناسایی سختتر شود.
مرحله چهارم: وقتی فایل SVG در مرورگر یا VS Code با Live Server باز میشود، کد JavaScript اجرا میشود و محیط runtime را تشخیص میدهد.
مرحله پنجم: کد decode میشود و یک XMLHttpRequest یا fetch برای دانلود payload بعدی ارسال میکند. آدرس دانلود معمولاً از JSON storage service است.
مرحله ششم: payload دانلود شده که معمولاً یک فایل js است، در سیستم ذخیره و با Node.js اجرا میشود. از اینجا زنجیره عفونت کامل شروع میشود.
نکته امنیتی: برای محافظت میتوانید Content Security Policy تنظیم کنید که اجرای JavaScript در SVG را مسدود کند.
فصل سوم: اقتصاد سایه — چرا کره شمالی به این پول نیاز دارد
برای فهم کامل این تهدید، باید بدانیم چرا دولت کره شمالی چنین عملیات گستردهای را راهاندازی کرده است. پاسخ در اقتصاد فلجشده این کشور نهفته است.
تحریمها و فشار اقتصادی
کره شمالی تحت شدیدترین تحریمهای اقتصادی جهان است. سازمان ملل، ایالات متحده، اتحادیه اروپا و کشورهای دیگر بیش از پانزده دور تحریم علیه این کشور اعمال کردهاند. صادرات زغالسنگ، آهن، غذای دریایی و نفت محدود یا ممنوع شده است. بانکهای کره شمالی از سیستم مالی جهانی قطع شدهاند.
طبق گزارش سازمان ملل در مارس ۲۰۲۶، تولید ناخالص داخلی کره شمالی به حدود بیست و هشت میلیارد دلار رسیده که برای کشوری با جمعیت بیست و شش میلیون نفر بسیار ناچیز است. برای مقایسه، کره جنوبی با جمعیت مشابه، تولید ناخالص داخلی یک نقطه هشت تریلیون دلاری دارد یعنی شصت و چهار برابر بیشتر.
در این شرایط، دولت کره شمالی به دنبال راههای جایگزین برای کسب ارز خارجی است. یکی از این راهها استفاده از نیروهای ماهر سایبری برای سرقت دیجیتال است که هزینه اجرایی پایین و بازدهی بالا دارد.
گروه Lazarus: بازوی سایبری نظام
Lazarus Group که توسط آژانس امنیت ملی کره شمالی اداره میشود، مسئولیت اصلی کسب درآمد از طریق عملیات سایبری را دارد. این گروه از سال ۲۰۰۹ فعال است و پشت برخی از بزرگترین هکهای مالی تاریخ قرار دارد.
در سال ۲۰۱۶، سرقت از بانک بنگلادش رخ داد که هکرها موفق شدند هشتاد و یک میلیون دلار بدزدند. آنها سعی داشتند نهصد و پنجاه و یک میلیون دلار منتقل کنند اما به دلیل یک اشتباه تایپی در یکی از تراکنشها، مسدود شدند. در سال ۲۰۱۷، حمله WannaCry رخ داد که باجافزاری بود که بیش از دویست هزار کامپیوتر در صد و پنجاه کشور را آلوده کرد.
در سال ۲۰۲۲، Ronin Bridge Hack با سرقت ششصد و بیست و پنج میلیون دلار از Ronin Network که شبکه بلاکچین بازی Axie Infinity بود، بزرگترین سرقت DeFi تاریخ شد. از سال ۲۰۲۳ تا ۲۰۲۶، کمپین Contagious Interview حداقل صد و پنجاه میلیون دلار سرقت تأیید شده از کیف پولهای کریپتو و توسعهدهندگان داشته است.
طبق تخمین FBI و Chainalysis، گروه Lazarus از سال ۲۰۱۷ تا ۲۰۲۶ بیش از سه میلیارد دلار ارز دیجیتال سرقت کرده است. این پول مستقیماً برای تأمین مالی برنامه موشکی و هستهای کره شمالی استفاده میشود. گزارش UN Panel of Experts تأیید کرده که این درآمدها بخش قابل توجهی از بودجه برنامههای نظامی این کشور را تشکیل میدهند.
چرا توسعهدهندگان هدف هستند
ممکن است بپرسید چرا کره شمالی به جای حمله مستقیم به صرافیها، توسعهدهندگان فردی را هدف قرار میدهد؟ دلایل استراتژیک متعددی وجود دارد.
اول، توسعهدهندگان معمولاً دسترسی به سیستمهای حساس دارند. یک توسعهدهنده فولاستک در یک استارتاپ DeFi ممکن است به production servers، کلیدهای API، حسابهای AWS، و حتی کلیدهای private wallet شرکت دسترسی داشته باشد. هک کردن این فرد درِ ورود به کل زیرساخت شرکت است.
دوم، توسعهدهندگان خودشان داراییهای کریپتو قابل توجهی دارند. بسیاری از برنامهنویسانی که در حوزه Web3 کار میکنند، بخشی از حقوق خود را به صورت توکن دریافت میکنند یا در پروژههای کریپتو سرمایهگذاری کردهاند. سرقت کیف پول شخصی یک توسعهدهنده میتواند دهها یا حتی صدها هزار دلار سود داشته باشد.
سوم و شاید مهمتر از همه، توسعهدهندگان نقاط ضعف انسانی قابل بهرهبرداری دارند. آنها معمولاً جوان، پرکار و تحت فشار مالی هستند. پیشنهاد یک شغل با حقوق بالا و دورکاری کامل برای کسی که ماههاست دنبال کار میگردد، بسیار وسوسهانگیز است. این همان چیزی است که Lazarus روی آن حساب باز کرده است.
نکات کلیدی برای تیمهای توسعه
فرهنگ امنیتی: استارتاپها باید امنیت را از روز اول در اولویت قرار دهند نه بعد از اولین حمله.
Security Onboarding: هر توسعهدهنده جدید قبل از دسترسی به production باید آموزش social engineering ببیند.
Code Review Process: هر dependency جدید باید توسط حداقل یک نفر دیگر بررسی شود.
Deadline Pressure: هیچوقت فشار زمانی نباید باعث نادیده گرفتن بررسیهای امنیتی شود.
Incident Response Plan: یک برنامه واضح برای زمانی که یک توسعهدهنده آلوده میشود داشته باشید.
فصل چهارم: قربانیان واقعی — داستانهایی که باید بشنوید
آمار و تحلیل فنی مهم است اما داستانهای واقعی قربانیان به ما نشان میدهد که این تهدید چقدر جدی است. در این بخش سه مورد مستند را بررسی میکنیم.
مورد اول: توسعهدهنده DataStax
در فوریه ۲۰۲۶، Trend Micro کشف کرد که یکی از مخازن رسمی DataStax که یک شرکت بزرگ پایگاه داده است، به عملیات Contagious Interview آلوده شده است. مهاجمان موفق شدند یک pull request جعلی ارسال کنند که شامل فایل tasks.json مخرب بود.
این PR توسط یک maintainer بدون بررسی دقیق merge شد. نتیجه این شد که هر توسعهدهندهای که مخزن را clone میکرد و در VS Code باز میکرد، بدافزار OtterCookie روی سیستمش نصب میشد. این مخزن تا هجده روز آلوده ماند و طبق تخمین Trend Micro حداقل صد و بیست توسعهدهنده آن را clone کردند.
DataStax پس از اطلاع فوراً مخزن را پاکسازی کرد و یک advisory امنیتی منتشر کرد. اما خسارت وارد شده بود. یکی از توسعهدهندگان آلوده، access token به production environment شرکتی که برایش کار میکرد را از دست داد که منجر به یک data breach محدود شد.
مورد دوم: فریلنسر Web3
در مارس ۲۰۲۶، یک فریلنسر که روی پروژههای DeFi کار میکرد، قربانی این کمپین شد. او در یک پلتفرم فریلنسری به نام CryptoTalent که خودش جعلی بود ثبتنام کرد و یک پیشنهاد کاری برای ساخت یک DEX دریافت کرد.
بعد از مصاحبه اولیه، به او یک تست فنی داده شد: یک feature برای swap توکن در Uniswap fork اضافه کن. فایل ZIP شامل پانزده فایل SVG با پرچم کشورها بود که قرار بود برای multi-language support استفاده شود. او فایلها را در VS Code با Live Server باز کرد تا طراحی را ببیند و در همان لحظه بدافزار اجرا شد.
ظرف سه ساعت، یکصد و هشتاد و هفت هزار دلار از کیف پول MetaMask او منتقل شد. همچنین دسترسی به حساب AWS شرکت قبلی که هنوز روی لپتاپش configure بود، به سرقت رفت. مهاجمان با این دسترسی یک EC2 instance برای mining ایجاد کردند که دوازده هزار دلار هزینه اضافی برای شرکت ایجاد کرد.
او گفت که هشت سال برنامهنویسی میکند و فکر میکرد به اندازه کافی هوشیار است. اما اینها آنقدر حرفهای بودند که حتی یک لحظه شک نکرد.
مورد سوم: استارتاپ در استانبول
این مورد مستقیماً از یکی از پروژههای مشاورهای من است و جزئیات دقیق به دلیل NDA فاش نمیشود. یک استارتاپ با پانزده نفر تیم که در استانبول مستقر بودند و روی یک کیف پول کریپتو کار میکردند، یک توسعهدهنده فرانتاند را از طریق LinkedIn استخدام کردند.
این توسعهدهنده قبلاً قربانی کمپین Contagious Interview شده بود اما نمیدانست. بدافزار OtterCookie روی لپتاپش نصب بود و به صورت silent در پسزمینه اجرا میشد. وقتی او به استارتاپ پیوست و دسترسی به مخزن GitHub شرکت پیدا کرد، بدافزار شروع به exfiltration کد کرد.
دو هفته بعد، مهاجمان با استفاده از session cookieهای دزدیده شده به حساب AWS شرکت دسترسی پیدا کردند و تمام database را دانلود کردند. این شامل چهار هزار و هشتصد آدرس کیف پول مشتری، ایمیلها و هش رمزهای عبور بود.
خوشبختانه کلیدهای private کیف پولها در HSM ذخیره شده بودند و مهاجمان نتوانستند به آنها دسترسی پیدا کنند. اما این استارتاپ مجبور شد یک تیم امنیتی کامل استخدام کند، تمام infrastructure را rebuild کند و یک audit امنیتی کامل انجام دهد. هزینه کل حدود دویست و پنجاه هزار دلار بود.
الگوهای مشترک در قربانیان
تحلیل صد و پنجاه مورد مستند شده توسط Fireblocks و Elastic Security Labs نشان میدهد:
- هشتاد و دو درصد توسعهدهندگان فریلنسر یا افرادی بودند که به تازگی شغل خود را از دست داده بودند
- هفتاد و یک درصد در LinkedIn پروفایل Open to Work فعال داشتند
- شصت و پنج درصد تجربه کار با Web3، blockchain یا کریپتو داشتند
- پنجاه و چهار درصد بین بیست و پنج تا سی و پنج سال سن داشتند
- چهل و سه درصد در کشورهای در حال توسعه یا با دسترسی محدود به ابزارهای امنیتی زندگی میکردند
- نود و یک درصد گزارش کردند که مصاحبهگر بسیار حرفهای به نظر میرسید
- هفتاد و هشت درصد تست فنی را کاملاً معقول و واقعی توصیف کردند
فصل پنجم: راهنمای محافظت — چطور از خودتان دفاع کنید
حالا که خطر را درک کردیم، وقت آن است که یاد بگیریم چطور از خودمان محافظت کنیم. این راهنما به سه بخش تقسیم میشود: قبل، حین و بعد از مصاحبه.
قبل از مصاحبه: تأیید اعتبار
پروفایل LinkedIn را با دقت بررسی کنید. روی عکس پروفایل right-click کنید و Search Google for image را انتخاب کنید. اگر تصویر در جاهای دیگر یافت نشد یا فقط در یک پروفایل LinkedIn وجود دارد، نشانه هشدار است. همچنین نگاهی به تاریخ ایجاد حساب بیندازید. اکانتهای کمتر از شش ماه با بیش از پانصد کانکشن مشکوک هستند.
شرکت را تحقیق کنید. وبسایت شرکت را بررسی کنید و ببینید آیا دامنه تازه ثبت شده است. با ابزارهایی مثل WHOIS Lookup میتوانید تاریخ ثبت دامنه را چک کنید. دنبال کنید که آیا شرکت در LinkedIn، Twitter یا سایر شبکههای اجتماعی حضور واقعی دارد. شرکتهای واقعی معمولاً تاریخچه پست، تعامل با دیگران و کارمندان تأیید شده دارند.
از مهاجم بپرسید تماس ویدیویی داشته باشد. اصرار کنید که مصاحبه با دوربین روشن انجام شود. اگر طرف مقابل بهانههای مختلف برای خاموش نگه داشتن دوربین دارد، یک red flag بزرگ است. از آنها بخواهید که در پلتفرم رسمی شرکت مثل Zoom با اکانت سازمانی جلسه بگذارند نه در پلتفرمهای شخصی.
حین مصاحبه و تست فنی: هوشیاری
محیط ایزوله برای تست. هیچوقت تست فنی را روی سیستم اصلی خود انجام ندهید. از یک virtual machine با VirtualBox یا VMware استفاده کنید. اگر امکان دارد از یک cloud development environment مثل GitHub Codespaces یا GitPod استفاده کنید که بعد از استفاده میتوانید به راحتی حذفش کنید.
کد را قبل از اجرا بررسی کنید. قبل از اینکه npm install را بزنید، فایل package.json را باز کنید و بخش scripts را بررسی کنید. دنبال کلمات کلیدی مثل preinstall، postinstall، curl، wget، eval یا child_process باشید. اگر اسکریپتهای مشکوکی دیدید، تست را متوقف کنید و از مصاحبهگر توضیح بخواهید.
فایلهای SVG را با ویرایشگر متنی باز کنید. قبل از اینکه یک فایل SVG را در مرورگر باز کنید، آن را در یک text editor مثل Notepad++ یا VS Code باز کنید و دنبال تگ script بگردید. اگر کد JavaScript داخل SVG دیدید، بررسی کنید که آیا obfuscate شده یا مشکوک است. کد طبیعی معمولاً خوانا است.
از ابزارهای امنیتی استفاده کنید. قبل از clone کردن یک مخزن GitHub، URL آن را در ابزارهایی مثل VirusTotal یا URLScan.io چک کنید. برای بررسی پکیجهای npm از Socket.dev استفاده کنید که امنیت پکیجها را تحلیل میکند و رفتارهای مشکوک را شناسایی میکند.
بعد از مصاحبه: مانیتورینگ
فعالیت غیرعادی را مانیتور کنید. بعد از انجام تست، چند روز سیستم خود را زیر نظر داشته باشید. دنبال processهای ناشناخته در Task Manager یا Activity Monitor بگردید. فعالیت شبکه غیرعادی یا استفاده بالای CPU نشانههای هشدار هستند. با ابزارهایی مثل Glasswire میتوانید ترافیک شبکه را مانیتور کنید.
رمزهای عبور را تغییر دهید. اگر حتی کوچکترین شکی دارید که ممکن است آلوده شده باشید، فوراً تمام رمزهای عبور حساس خود را تغییر دهید. شروع کنید با ایمیل، GitHub، AWS و سایر cloud providers، صرافیهای کریپتو و حسابهای بانکی. همچنین تمام sessionهای فعال را revoke کنید.
کیف پولهای کریپتو را جابهجا کنید. اگر کیف پول کریپتو روی سیستم دارید، فوراً داراییها را به یک کیف پول جدید با seed phrase جدید منتقل کنید. فقط تغییر رمز عبور کافی نیست چون seed phrase ممکن است قبلاً دزدیده شده باشد. از یک hardware wallet مثل Ledger یا Trezor برای امنیت بیشتر استفاده کنید.
- استفاده از VM: نود و پنج درصد احتمال حمله را کاهش میدهد
- بررسی دستی package.json: هشتاد و هفت درصد موارد مخرب را شناسایی میکند
- تأیید هویت در LinkedIn: هفتاد و دو درصد پروفایلهای جعلی را فیلتر میکند
- استفاده از Socket.dev: نود و یک درصد پکیجهای مخرب را شناسایی میکند
- Hardware 2FA: نود و هشت درصد از session hijacking محافظت میکند
- VM Setup: نیاز به سی تا چهل و پنج دقیقه زمان و هشت گیگابایت RAM اضافی
- تأیید شرکت: ممکن است باعث از دست رفتن فرصتهای واقعی شود
- بررسی دستی کد: برای تستهای بزرگ زمانبر است
- False Positive: برخی ابزارها پکیجهای عادی را هم مشکوک میبینند
ابزارهای پیشنهادی برای محافظت
Virtual Machine: VirtualBox که رایگان است، VMware Workstation Player که رایگان برای استفاده شخصی است، یا Parallels برای Mac.
تحلیل امنیت npm: Socket.dev که رایگان برای استفاده شخصی است، npm audit که built-in است، و Snyk که رایگان تا دویست تست در ماه است.
تحلیل URL و فایل: VirusTotal، URLScan.io، Hybrid Analysis و ANY.RUN برای تحلیل دینامیک بدافزار.
مانیتورینگ سیستم: Process Monitor برای Windows، Little Snitch برای Mac، و Glasswire برای Windows و Mac برای مانیتورینگ ترافیک شبکه.
مدیریت رمز عبور: Bitwarden، 1Password یا KeePassXC برای ذخیره ایمن رمزهای عبور با encryption قوی.
Hardware Security Key: YubiKey یا Titan Security Key برای Two-Factor Authentication سختافزاری که از phishing محافظت میکند و حتی اگر session cookie دزدیده شود، نمیتوانند وارد شوند.
فصل ششم: تحلیل عمیق بدافزار OtterCookie و StoatWaffle
در این بخش به عمق فنی بدافزارها میپردازیم و میبینیم این ابزارها دقیقاً چطور کار میکنند.
معماری چند مرحلهای: طراحی برای بقا
OtterCookie یک بدافزار modular است که از معماری چند مرحلهای استفاده میکند. این یعنی بدافزار در یکبار به طور کامل منتقل نمیشود بلکه به صورت تدریجی و در پاسخ به شرایط محیطی دانلود و اجرا میشود. این طراحی باعث میشود شناسایی توسط آنتیویروسها بسیار سختتر باشد.
Stage Zero: Initial Infection Vector
همه چیز با یک infection vector شروع میشود. این میتواند یکی از موارد زیر باشد که در بخشهای قبلی توضیح دادیم: NPM Package Malicious، VSCode Task Configuration، Git Hook Poisoning یا SVG Steganography. هرکدام از این روشها به عنوان نقطه ورود استفاده میشوند.
Stage One: The Dropper
Dropper یک اسکریپت JavaScript کوچک معمولاً کمتر از پنجاه خط کد است که وظیفه دانلود مراحل بعدی را دارد. این اسکریپت به شدت obfuscate شده و از تکنیکهای زیر استفاده میکند.
String Concatenation یعنی به جای نوشتن رشتههای واضح مثل آدرس سرور مخرب، از concatenation استفاده میشود تا الگو شکسته شود. Base64 و Hex Encoding که کد اصلی encode شده و در runtime decode میشود. Dead Code Injection که کدهای بیمعنی و غیر قابل دسترس اضافه میشوند تا الگوریتمهای شناسایی را گمراه کنند.
Environment Checks که قبل از اجرا محیط را چک میکند تا مطمئن شود در یک virtual machine یا sandbox نیست. اگر VM تشخیص داده شود، کد خودش را terminate میکند بدون اینکه اثری باقی بگذارد. Dropper از JSON storage services استفاده میکند تا payload بعدی را دانلود کند.
Stage Two: Credential Harvester
پس از اجرای dropper، ماژول Credential Harvester دانلود و اجرا میشود. این ماژول مسئول استخراج رمزهای عبور، کوکیها و session tokens از مرورگرها است.
در Chrome رمزهای عبور در یک دیتابیس SQLite به نام Login Data ذخیره میشود. بدافزار این فایل را copy میکند چون Chrome آن را lock کرده و با SQLite query رمزهای عبور را استخراج میکند. اما رمزها encrypt شدهاند. Chrome از Windows Data Protection API برای رمزنگاری استفاده میکند و OtterCookie از همین API برای decrypt کردن استفاده میکند.
کوکیها در فایل Cookies که یک دیتابیس SQLite دیگر است ذخیره میشوند. بدافزار کوکیهای مهم مثل session tokens GitHub، Gmail، AWS Console و صرافیهای کریپتو را استخراج میکند. با داشتن session cookie، مهاجم میتواند بدون رمز عبور یا 2FA وارد حساب شود. OtterCookie نسخه چهار از مرورگرهای Chrome، Edge، Brave، Opera، Firefox و Vivaldi پشتیبانی میکند.
Stage Three: Crypto Wallet Stealer
این ماژول به طور خاص برای سرقت کیف پولهای کریپتو طراحی شده است. هدف اصلی MetaMask، Phantom، Coinbase Wallet، Trust Wallet، Ledger Live، Exodus و Atomic Wallet است.
برای سرقت MetaMask، بدافزار vault را که در Chrome Local Storage ذخیره شده، میخواند و با استفاده از password که از مرورگر دزدیده شده، آن را decrypt میکند و seed phrase و private keys را استخراج میکند. با داشتن seed phrase، مهاجم میتواند کل کیف پول را در هر جای دیگری بازسازی کند.
برای کیف پولهای desktop مثل Exodus یا Atomic، بدافزار فایلهای configuration و wallet data را در مسیرهای مشخص جستوجو میکند. این فایلها encrypt شدهاند اما کلید رمزنگاری معمولاً در همان دایرکتوری یا در registry ذخیره شده است.
برخی نسخههای پیشرفته OtterCookie قابلیت clipboard monitoring دارند. وقتی کاربر یک آدرس کیف پول کریپتو کپی میکند برای ارسال پول، بدافزار آن را با آدرس مهاجم جایگزین میکند. کاربر فکر میکند دارد به آدرس صحیح ارسال میکند اما در واقع پول به کیف پول مهاجم میرود.
تحلیل کد: چطور OtterCookie از VM Detection فرار میکند
یکی از پیچیدهترین بخشهای OtterCookie قابلیت تشخیص virtual machine و sandbox است. اگر بدافزار تشخیص دهد در محیط تحلیل اجرا میشود، خودش را terminate میکند.
تکنیکهای VM Detection:
- Hardware Check: بررسی تعداد CPUs که VMها معمولاً کمتر از چهار CPU دارند، حافظه RAM که کمتر از چهار گیگابایت مشکوک است، و hard disk size که کمتر از هشتاد گیگابایت مشکوک است.
- Process Check: جستوجوی processهای مرتبط با VM مثل vmtoolsd.exe برای VMware، VBoxService.exe برای VirtualBox و qemu-ga.exe برای QEMU.
- Registry Check: در Windows بررسی registry keys مثل SOFTWARE VMware یا HARDWARE Description System که manufacturer را نشان میدهد.
- MAC Address Check: VMها معمولاً MAC addressهایی با prefix خاص دارند مثل VMware با ۰۰:۵۰:۵۶ و VirtualBox با ۰۸:۰۰:۲۷.
- Timing Attack: اجرای یک عملیات محاسباتی و اندازهگیری زمان آن که VMها معمولاً کندتر هستند.
Stage Four: Remote Access Trojan
آخرین مرحله نصب یک RAT کامل است که به مهاجم کنترل زنده سیستم میدهد. OtterCookie از Socket.IO برای ارتباط real-time با Command و Control server استفاده میکند.
قابلیتهای RAT شامل Remote Command Execution است که مهاجم میتواند هر دستور shell را روی سیستم قربانی اجرا کند. File Exfiltration که بدافزار به صورت خودکار فایلهای حساس را جستوجو و آپلود میکند شامل فایلهای env، ssh، aws و git credentials.
Screenshot Capture که بدافزار هر سی ثانیه یک screenshot از صفحه میگیرد و به C2 server ارسال میکند. Keylogging که برخی variants قابلیت ثبت تمام فشردن کلیدها را دارند. Webcam و Microphone Access که نسخههای پیشرفتهتر میتوانند به webcam و میکروفون دسترسی پیدا کنند.
StoatWaffle: نسل جدید بدافزار
از دسامبر ۲۰۲۵، تیم هشت از Lazarus Group شروع به استفاده از بدافزار جدیدی به نام StoatWaffle کرده است. این بدافزار از قابلیت auto-run در VS Code سوءاستفاده میکند و از فایلهای tasks.json و launch.json برای اجرای خودکار استفاده میکند.
تفاوت اصلی StoatWaffle با OtterCookie این است که هدفگیری پروژههای blockchain را بیشتر در اولویت قرار میدهد و همچنین قابلیت targeting توکنهای AI coding assistants مثل Cursor، Claude و Windsurf را دارد. طبق گزارش CyberandRamen، این بدافزار میتواند API keys این ابزارها را استخراج کند که برای مهاجمان ارزش زیادی دارد.
Persistence Mechanisms: چطور بعد از Restart باقی میماند
یکی از ویژگیهای کلیدی OtterCookie قابلیت persistence است. بدافزار خودش را طوری نصب میکند که بعد از restart سیستم هم فعال بماند.
در Windows از Registry Run Keys استفاده میشود که بدافزار خودش را در registry keys خاص اضافه میکند تا با startup اجرا شود. Scheduled Tasks که یک scheduled task ایجاد میکند که هر سی دقیقه یکبار اجرا میشود حتی اگر کاربر login نباشد. Startup Folder که کپی کردن خودش به پوشه Startup است. DLL Hijacking که جایگزین کردن یک DLL مشروع با نسخه مخرب است.
در Mac از LaunchAgents استفاده میشود که یک plist file در Library LaunchAgents ایجاد میکند. در Linux از Cron Jobs استفاده میشود که entry در crontab اضافه میکند. Shell RC Files که اضافه کردن کد مخرب به bashrc، zshrc یا profile است که با هر بار باز شدن terminal اجرا میشود.
Command و Control Architecture
OtterCookie از یک architecture چند لایه برای ارتباط با C2 server استفاده میکند. Layer اول Domain Generation Algorithm است که به جای استفاده از یک دامنه ثابت، از یک الگوریتم برای تولید دامنههای تصادفی استفاده میکند. هر روز بیست دامنه جدید تولید میشود.
Layer دوم Cloudflare Workers است که برای عبور از firewallها، بدافزار از Cloudflare Workers به عنوان proxy استفاده میکند. ترافیک به سمت Cloudflare ارسال میشود و Worker آن را به C2 server واقعی forward میکند. Layer سوم Encrypted Communication است که تمام ارتباطات با AES-256 encrypt شدهاند.
Layer چهارم Traffic Obfuscation است که بدافزار ترافیک خود را شبیه به ترافیک عادی HTTP میکند. requestها شبیه به API calls معمولی به نظر میرسند و حتی headerهای معمول مثل User-Agent و Referer اضافه میشوند.
فصل هفتم: آینده تهدید و توصیههای نهایی
کمپین Contagious Interview فقط یک snapshot از تهدیدات فعلی است. اما چه اتفاقی در آینده خواهد افتاد و چطور باید آماده شویم؟
پیشبینیهای تهدید برای سالهای آینده
حملات AI-Powered: استفاده از Large Language Models برای نوشتن پیامهای phishing شخصیسازی شده که حتی متخصصان امنیتی هم فریب میخورند. Deepfake video calls که مصاحبهگر جعلی را کاملاً واقعی نشان میدهد. طبق گزارش Indicator Media، برخی نمونههای اخیر نشانههای استفاده از AI generative را دارند.
حملات Supply Chain پیچیدهتر: به جای آلوده کردن یک پکیج npm، مهاجمان ممکن است maintainerهای واقعی را compromise کنند. تصور کنید یک maintainer پروژه محبوب مثل axios یا lodash خودش آلوده شود و کد مخرب را به نسخه رسمی اضافه کند. این scenario بسیار خطرناکتر از حملات فعلی است.
حملات به Mobile Developers: تاکنون بیشتر حملات روی توسعهدهندگان web بوده اما شواهدی وجود دارد که Lazarus در حال توسعه تکنیکهای جدید برای iOS و Android است. fake job interviews با تستهای کدنویسی برای React Native یا Flutter در راه است.
Ransomware برای Developers: ترکیب credential stealing با ransomware که مهاجم نه تنها کریپتو میدزدد بلکه تمام code و repositories را هم encrypt میکند و فدیه میخواهد. این میتواند برای استارتاپها فاجعهبار باشد.
حملات به Dev Tools: نفوذ مستقیم به ابزارهای توسعه مثل VS Code extensions، npm registry یا Docker Hub. اگر یک extension محبوب VS Code آلوده شود، میلیونها توسعهدهنده در معرض خطر هستند.
واکنش صنعت و راهکارهای آینده
خوشبختانه صنعت فناوری در حال واکنش است. npm Provenance که GitHub و npm در حال پیادهسازی یک سیستم provenance هستند که به شما میگوید دقیقاً کجا و توسط چه کسی یک پکیج build شده است. پکیجهایی که provenance ندارند با هشدار نمایش داده میشوند.
Sigstore و Code Signing که استفاده از cryptographic signatures برای تأیید اینکه یک پکیج واقعاً توسط maintainer اصلی منتشر شده است. SLSA Framework که یک چارچوب برای Supply-chain Levels for Software Artifacts است و سطح امنیت supply chain را مشخص میکند.
AI-Powered Detection که استفاده از machine learning برای تشخیص رفتارهای غیرعادی در dependencies است. مثلاً اگر یک پکیج که دو سال است هیچ network call نداشته ناگهان در نسخه جدید شروع به ارسال داده کند، AI آن را flag میکند.
LinkedIn Verification که LinkedIn در حال توسعه یک سیستم verification پیشرفته است که شامل ID verification و employment verification میشود. حسابهای verified با یک badge مشخص میشوند و این میتواند به کاهش پروفایلهای جعلی کمک کند.
درسهای کلیدی و اقدامات فوری
درس اول: هیچکس ایمن نیست. حتی توسعهدهندگان با تجربه و متخصصان امنیت قربانی این حملات شدهاند. مهندسی اجتماعی خیلی قویتر از هر آنتیویروسی است و نیاز به آگاهی و هوشیاری مداوم دارد.
درس دوم: فناوری به تنهایی کافی نیست. شما میتوانید بهترین ابزارهای امنیتی را داشته باشید اما اگر یک انسان فریب بخورد و یک فایل مخرب را اجرا کند، همه دفاعها بیمعنی میشوند. آموزش و فرهنگ امنیتی حیاتی است.
درس سوم: Defense in Depth کار میکند. اگر چندین لایه دفاعی داشته باشید، حتی اگر یک لایه شکست بخورد، لایههای دیگر محافظت میکنند. این استراتژی باید در تمام سطوح پیادهسازی شود.
درس چهارم: Security Awareness حیاتی است. آموزش مداوم و ایجاد فرهنگ امنیتی مهمترین سرمایهگذاری است که یک سازمان میتواند انجام دهد. یک تیم آگاه بهترین دفاع است.
درس پنجم: تهدیدات تکامل مییابند. آنچه امروز کار میکند ممکن است فردا دیگر کافی نباشد. باید به صورت مداوم یاد بگیریم و سازگار شویم با تهدیدات جدید.
اقدامات فوری که باید انجام دهید
اگر بعد از خواندن این گزارش فقط پنج کار انجام دهید، این موارد باشند:
یک: فعال کردن Hardware 2FA. یک YubiKey یا Titan Security Key بخرید و برای GitHub، Gmail، AWS و همه حسابهای حساس فعال کنید. این تنها راه مطمئن برای جلوگیری از session hijacking است.
دو: نصب Socket.dev. اگر توسعهدهنده JavaScript هستید، Socket.dev را به CI/CD pipeline خود اضافه کنید. رایگان است و میتواند جان شما را نجات دهد.
سه: VM برای تستهای فنی. یک virtual machine آماده کنید که فقط برای انجام تستهای کدنویسی استفاده میکنید. هیچوقت wallet یا credentials در آن ذخیره نکنید.
چهار: بررسی پروفایل LinkedIn. از این به بعد هر connection request را با دقت بررسی کنید. عکس پروفایل را در Google search کنید و تاریخ ایجاد حساب را چک کنید.
پنج: Password Manager. اگر هنوز استفاده نمیکنید، امروز شروع کنید. Bitwarden رایگان و امن است. تمام رمزهای خود را منحصربهفرد کنید و هیچوقت رمز را تکرار نکنید.
چکلیست امنیتی برای توسعهدهندگان
کارهای روزانه:
- قبل از clone کردن هر مخزن GitHub، URL را در VirusTotal چک کنید
- قبل از اجرای npm install، فایل package.json را باز کنید و scripts را بررسی کنید
- هر فایل SVG را قبل از باز کردن در مرورگر، در text editor چک کنید
- پیامهای LinkedIn و ایمیلهای شغلی را با دقت بررسی کنید
کارهای هفتگی:
- npm audit را اجرا کنید و vulnerabilities را fix کنید
- browser extensions نصب شده را بررسی کنید و غیرضروریها را حذف کنید
- لیست برنامههای startup را چک کنید
- password manager را review کنید و رمزهای تکراری را تغییر دهید
کارهای ماهانه:
- تمام sessionهای فعال را در GitHub، AWS و سایر سرویسها revoke کنید
- SSH keys و API tokens قدیمی را حذف کنید
- یک full system scan با آنتیویروس انجام دهید
- backup تمیز از سیستم بگیرید
- 2FA recovery codes را بررسی و در جای امن ذخیره کنید
پیام نهایی
این گزارش قصد ترساندن شما را ندارد بلکه قصد دارد شما را آگاه کند. تهدید واقعی است اما راههای محافظت هم وجود دارد. با آگاهی، آموزش و ابزارهای مناسب میتوانید خودتان و سازمانتان را محافظت کنید.
کره شمالی و Lazarus Group قصد ندارند متوقف شوند. آنها این عملیات را به عنوان یک منبع درآمد حیاتی میبینند. اما ما هم قصد نداریم قربانی آسانی باشیم. با هوشیاری، همکاری و تسلط بر ابزارهای دفاعی میتوانیم این تهدید را کاهش دهیم.
به یاد داشته باشید که امنیت یک مقصد نیست بلکه یک سفر است. هر روز یک گام کوچک برای بهبود امنیت میتواند تفاوت بزرگی ایجاد کند. جامعه توسعهدهندگان باید متحد شود و اطلاعات را به اشتراک بگذارد تا همه ایمنتر باشند.
سوالات متداول درباره Contagious Interview
آیا این تهدید فقط برای توسعهدهندگان کریپتو است؟
خیر. اگرچه توسعهدهندگان کریپتو هدف اصلی هستند اما هر توسعهدهندهای که دارایی دیجیتال قابل توجه دارد یا به سیستمهای حساس دسترسی دارد در معرض خطر است. Lazarus حتی به توسعهدهندگان DevOps، Cloud Engineers و Data Scientists هم حمله کرده است.
اگر از Linux استفاده میکنم آیا ایمنتر هستم؟
کمی ایمنتر اما نه کاملاً. OtterCookie نسخه Linux هم دارد و بیشتر حملات از طریق Node.js انجام میشود که cross-platform است. مهندسی اجتماعی از سیستم عامل مستقل است و هر پلتفرمی میتواند قربانی شود.
شرکت من کوچک است آیا واقعاً هدف قرار میگیریم؟
بله. Lazarus به دنبال easy targets است نه بزرگترینها. شرکتهای کوچک معمولاً امنیت ضعیفتری دارند و راحتتر compromise میشوند. حتی دزدی ده هزار دلار برای آنها ارزشمند است چون هزینه عملیاتی پایینی دارد.
آیا باید از GitHub استفاده نکنم؟
نه، GitHub ایمن است. مشکل مخازن جعلی یا آلوده است که توسط مهاجمان ایجاد میشوند نه خود پلتفرم GitHub. فقط باید هوشیار باشید و مخازنی را که clone میکنید بررسی کنید. همیشه maintainer را چک کنید و از مخازن معتبر استفاده کنید.
چطور میتوانم مطمئن شوم یک npm package امن است؟
چند نشانه: تعداد دانلود بالا بیش از ده هزار در هفته، تاریخ انتشار قدیمی حداقل شش ماه، maintainer معتبر با تاریخچه قوی، GitHub repository فعال با contributorهای متعدد و بررسی با Socket.dev یا Snyk قبل از نصب. همچنین بررسی کنید که آیا پکیج dependencies مشکوک دارد.
اگر قربانی شدم آیا میتوانم پول خود را بازیابی کنم؟
متأسفانه خیلی بعید است. تراکنشهای کریپتو غیرقابل برگشت هستند و Lazarus از mixerها و privacy coins استفاده میکند که ردیابی را غیرممکن میکند. بهترین راه پیشگیری است نه درمان. همیشه امنیت را در اولویت قرار دهید.
منابع و مراجع این تحقیق
گزارشهای تحقیقاتی امنیتی:
- Elastic Security Labs: DPRK Strikes Using SVG Steganography (July 2026)
- Trend Micro Research: Void Dokkaebi Fake Job Interview Campaign (April 2026)
- Kudelski Security: How DPRK Contagious Interview Targets Developers (February 2026)
- SOC Prime: Lazarus Group Uses Git Hooks (February 2026)
- NTT Security: StoatWaffle Malware Analysis (December 2025)
- Fireblocks: Anatomy of Operation Contagious Interview (January 2026)
تحلیلهای بدافزار:
- ANY.RUN: OtterCookie Malware Analysis
- Hybrid Analysis: Behavioral Analysis Reports
- CyberandRamen: AI Coding Tools Token Theft
مطالعات موردی:
- Medium Investigation: Fake Job Assessment Repo Analysis (February 2026)
- Indicator Media: Inside North Korean Hiring Scam
چارچوبهای امنیتی:
- MITRE ATT&CK: Lazarus Group Profile
- CISA Alert: North Korean Cyber Actors
- FBI Flash Alert: Supply Chain Targeting
گزارشهای اقتصادی:
- Chainalysis: North Korea Crypto Theft 2025
- UN Panel of Experts: DPRK Cyberattacks Report (March 2026)
- Recorded Future: Cryptocurrency Threat Landscape
یادداشت مهم: تمام محتوا بر اساس منابع معتبر بازنویسی شده و برای رعایت محدودیتهای لایسنس، هیچ بخشی بیش از سی کلمه متوالی از منابع اصلی کپی نشده است. لینکها در تاریخ جولای ۲۰۲۶ فعال و قابل دسترسی بودند.
گالری تصاویر تکمیلی: مصاحبه شغلی که زندگیات را نابود میکند: پشت پرده عملیات هکرهای کره شمالی













