

در صبح جمعه ۱۲ مهٔ ۲۰۱۷ جهان امنیت سایبری با یکی از بزرگترین همهگیریهای باجافزاری تاریخ مواجه شد؛ موجی که بهسرعت از بیمارستانهای بریتانیا تا خودپردازهای چین و خطوط تولید رنو در فرانسه پیش رفت و بیش از ۳۰۰ هزار سیستم را در ۱۵۰ کشور درگیر کرد. این بدافزار که «WannaCry» یا «WannaCrypt0r 2.0» نام گرفت، بهلطف سوءاستفاده از یک آسیبپذیری بحرانی در پیادهسازی SMBv1 ویندوز (مشهور به EternalBlue) توانست خود را در شبکهها همانند کرم (worm) تکثیر کند و شکل جدیدی از تهدید را به نمایش گذارد؛ تهدیدی که ترکیبی از باجافزار (ransomware) و کرم شبکهای (network worm) بود و نشان داد چگونه هکرها میتوانند از ابزارهای فوقپیشرفتهٔ درزکرده از آژانسهای اطلاعاتی برای حملات جنایی در سطح گسترده استفاده کنند.
پروتکل Server Message Block یا SMB، ستون فقرات بهاشتراکگذاری فایل و چاپگر در شبکههای ویندوزی است. نخستین پیادهسازیهای SMB به اواخر دههٔ ۸۰ میلادی بازمیگردد، اما نسخهٔ ۱ (SMBv1) که در ویندوز NT 4.0 جا افتاد، همچنان تا سال ۲۰۱۷ روی میلیونها ماشین فعال بود. SMBv1 بهدلیل معماری قدیمی، شناسایینشدهبودن طول پیام و نبود احراز هویت سفتوسخت، بارها هدف حفرههای امنیتی قرار گرفته بود؛ بااینحال، عطف به سازگاری عقبرو، بسیاری از سازمانها نتوانستند آن را کنار بگذارند.
آسیبپذیری CVE-2017-0144 در سرویس srv.sys ویندوز ریشه داشت؛ ماژولی که فراخوانهای low-level SMBv1 را پردازش میکند. مشکل از جایی آغاز میشود که سرور SMB، فیلد Trans2 SESSION_SETUP را که معمولاً حاوی اطلاعات متغیر طول است، بدون اعتبارسنجی اندازهٔ واقعی در حافظه کپی میکند. وقتی مهاجم بستهٔ دستکاریشدهای میفرستد که طول ادعا شده در هدر با طول دادهها هماهنگ نیست، سرور در حلقهٔ copy به سرریز بافر میرسد و ضمن تخریب stack، امکان اجرای کد دلخواه در حالت kernel (سطح Ring 0) را فراهم میکند.
EternalBlue در حقیقت exploit کاملی بود که این باگ را قابل بهرهبرداری از راه دور میکرد؛ ابزاری که نخستین بار در آوریل ۲۰۱۷ همراه با مجموعهای از اکسپلویتهای «Equation Group» (منسوب به NSA) توسط گروه Shadow Brokers افشا شد. بدینترتیب، مهاجمان سایبری دسترسی رایگان به کدی یافتند که سالها با بودجهٔ دولتی توسعه یافته بود.
۱. اسکن پورت ۴۴۵/TCP: بدافزار ابتدا جهان را برای یافتن میزبانهایی که پورت SMB آنها باز بود، جار میزد.
۲. ارسال بستهٔ مخرب EternalBlue: در صورت کشف مقصد آسیبپذیر، بستهٔ crafted اجرا میشد و shellcode با سطح سیستم فراخوانی میشد.
3. استقرار DoublePulsar: اکسپلویت پس از موفقیت، backdoor موسوم به DoublePulsar را تزریق میکرد؛ درایوری در حافظهٔ کرنل که امکان اجرای دستورات DLL injection بعدی را تسهیل میکرد.
4. ریختن WannaCry و رمزگذاری: از طریق DoublePulsar، فایل اجرایی WannaCry روی سیستم قربانی کاپی و اجرا میشد، کلید AES-128 یکتا ساخته، با کلید عمومی RSA-2048 توسعهدهندگان رمز میشد و سپس همهٔ پسوندهای هدف روی دیسک با الگوریتم دومرحلهای AES/RSA رمز میشدند.
5. بازنشر خودکار: بدافزار فهرست آدرسهای IP محلی/اینترنتی را پیمایش کرده و همان چرخه را روی میزبانهای بعدی تکرار میکرد.
یکی از نکات جالب WannaCry وجود درخواست HTTP به دامنهای شبهتصادفی (iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com) بود. اگر پاسخ ۲۰۰ OK دریافت میکرد، بدافزار در همانجا متوقف میشد. پژوهشگر امنیتی بریتانیایی Marcus Hutchins تنها با ثبت آن دامنه، موج اول حمله را مهار کرد. ظاهراً نویسندگان باجافزار در تلاش برای دورزدن SandBoxها از «Domain Generation Algorithm» بهعنوان حسگر محیط مجازی استفاده کرده بودند؛ غافل از آنکه همین در را برای خنثیسازی سراسری باز گذاشته بودند.
مایکروسافت در ۱۴ مارس ۲۰۱۷ (دو ماه پیش از حمله) بستهٔ امنیتی MS17-010 را منتشر کرد که نهتنها CVE-2017-0144، بلکه مجموعهای از نقصهای SMBv1 را بست. بااینحال چند عامل باعث گسترش آسیبپذیری شد:
ناهماهنگی چرخهٔ وصله در سازمانهای بزرگ – بسیاری مؤسسات پزشکی یا صنعتی وابسته به نرمافزارهای قدیمی بودند که با نسخههای جدید ویندوز یا پچهای اخیر ناسازگار بود.
پایان پشتیبانی ویندوز XP و 2003 – شمار قابل توجهی از سیستمهای حیاتی، بهویژه در دستگاههای پزشکی و کیوسکهای خودپرداز، هنوز روی نسخههای EoL بودند. مایکروسافت در نهایت بهطور فوقالعاده برای XP وصله منتشر کرد، اما دیگر دیر شده بود.
فعال بودن SMBv1 در شبکههای داخلی – حتی سازمانهای کاملاً پچشده تا زمان حمله SMBv1 را غیرفعال نکرده بودند و بدینترتیب راه نفوذ مستمر برای کرم فراهم بود.
سرویس درمان ملی بریتانیا (NHS) مجبور شد عملهای جراحی را لغو و بیمارستانها را به حالت اضطراری ببرد.
شرکت مخابراتی Telefónica در اسپانیا شبکهٔ داخلی خود را آفلاین کرد.
صنایع خودروسازی رنو، نیسان و هوندا خطوط تولید را موقتاً تعطیل کردند.
در چین، بیش از ۲۹ هزار دانشگاه و ۳۰۰ هزار کامپیوتر دولتی آسیب دیدند.
برآورد خسارت مستقیم و غیرمستقیم به اعدادی بین ۴ تا ۸ میلیارد دلار رسید، هرچند مبلغ باج دریافتشده در کیفپولهای بیتکوین WannaCry کمتر از ۱۵۰ هزار دلار بود؛ نشانی دیگر از آنکه هدف، بیشتر ایجاد اختلال بود تا منفعت مالی صرف.
EternalBlue با ارسال یک SMB1 Trans2 Request شامل فیلد ParameterCount جعلی از مقدار واقعی بزرگتر، سرور را وادار میکند در مسیر SrvOs2FeaToNt ساختار FEA List را بدون کنترل اندازه در حافظه جای دهد. بهدنبال آن، متغیر stack Srv!SrvAllocateSecurityContext رونویسی میشود و آدرس برگشت به نقطهای در shellcode حمله تغییر مییابد. این shellcode سپس:
1. جدول تابع KeServiceDescriptorTable را برای یافتن توابع سیستم فراخوانی میکند.
2. تابع PsCreateSystemThread را فراخوانی میزند تا ترد در سطح Ring 0 بسازد.
3. DLL backdoor را تزریق میکند تا کنترل بلندمدت حفظ شود.
چالش اصلی exploit، گذر از ASLR و متریکهای تصادفیسازی ویستا به بعد بود؛ نویسندگان EternalBlue با سوءاستفاده از نشت اطلاعات در پیام SMB به تفکیک نسخهٔ سیستم و محاسبهٔ پایهٔ کرنل دست یافتند.
1. غیرفعالسازی SMBv1: دستور Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol در PowerShell تبدیل به توصیهٔ جهانی شد.
2. پیادهسازی Micro-Segmentation: محدودکردن ترافیک East-West برای اینکه کرم نتواند آزادانه در شبکه حرکت کند.
3. Patch Management چرخهای: مدل «Patch Tuesday» دیگر کافی نیست؛ پیادهسازی روندهای CI/CD امنیتی و تست خودکار سختافزارهای قدیمی الزامی شد.
4. تهیهٔ نسخهٔ پشتیبان آفلاین: ذخیرهٔ زمانبندیشدهٔ snapshotها روی رسانهٔ غیرقابلنوشتن، بازیابی بعدی را تضمین میکند.
5. مانیتورینگ رفتاری (EDR/XDR): تشخیص توالیهای ایجاد فایلهای با پسوند .WNCRY یا الگوریتمهای رمزگذاری سریع میتواند آلودگی را در دقیقهٔ اول شناسایی و قرنطینه کند.
بازنگری در افشای آسیبپذیریهای ذخیرهشده توسط دولتها: انتشار ابزارهای NSA باب بحث «Vulnerability Equities Process» را داغ کرد. آیا دولتها باید پیش از ذخیرهٔ اکسپلویت، به سازندگان نرمافزار هشدار دهند؟
افول اعتماد به SMBv1: مایکروسافت از ویندوز ۱۰ نسخهٔ 1709 به بعد، SMBv1 را بهطور پیشفرض غیرفعال کرد.
هزینهٔ واقعی تأخیر وصله: مهاجمان نشان دادند فاصلۀ بین انتشار پچ و استقرار کامل میتواند مرگبار باشد.
تغییر در رویکرد جریمههای GDPR: جریمههای مبتنی بر «نقض داده» به «تعطیلی عملیات» نیز گسترش یافتند؛ زیرا خاموشی بیمارستانها تبعات انسانی مستقیمی داشت.
WannaCry بیش از یک باجافزار بود؛ زنگ خطری جهانی دربارهٔ شکنندگی زیرساختهای قدیمی و خطر ذخیرهٔ اکسپلویتهای ناشناخته در گنجینههای دولتی. آسیبپذیری CVE-2017-0144 موجودیتی فنی در کُد SMBv1 بود، اما عوامل انسانی—بهروزرسانی نکردن، وابستگی به فناوری منسوخ، و اشتراکگذاری بیپروا—باعث شدند جرقهٔ یک نقص نرمافزاری به آتشی فراگیر بدل شود. آنچه WannaCry به جهان آموخت، اهمیت حیاتی مدیریت داراییها، وصلهٔ پیشگیرانه و استراتژی «فرض بر نفوذ» بود: اینکه مسأله، نه «آیا» بلکه «چه زمانی» است و باید پیش از آن به فکر دفاع چندلایه و بازیابی سریع بود.
منابع پیشنهادی برای مطالعهٔ درباره حمله wannac cry: