روش مقابله با اکسپلویت EternalBlue (CVE-2017-0146 / MS17-010)

مقدمه

در سال ۲۰۱۷ میلادی یک آسیب‌پذیری حیاتی به نام EternalBlue در سیستم عامل ویندوز میکروسافت به صورت عمومی افشا گردید که به نفوذگر اجازه می‌داد از راه دور و با برقراری ارتباط روی پورت ۴۴۵ (SMB) روی سیستم آسیب‌پذیر کد دلخواه خود را اجرا نماید. این آسیب‌پذیری که تا پیش از آن، سال‌ها مورد استفاده سازمان‌های جاسوسی آمریکایی بود به صورت عمومی افشا شده و کد استفاده از آن در اختیار بدافزارنویسان قرار گرفت.

اگر چه میکروسافت همان موقع اقدام به انتشار وصله جهت نسخه‌های آسیب‌پذیر ویندوز نمود و حتی بعد از مدتی برای ویندوزهای XP و ۲۰۰۳ که منسوخ محسوب می‌شدند نیز وصله‌های خارج از نوبت ارائه کرد؛ اما به علت در دسترس بودن کد حمله و نصب نکردن وصله توسط بسیاری از کاربران، همچنان شاهد حملات گسترده از طریق این آسیب‌پذیری هستیم و بسیاری از بدافزارها و کرم‌های شبکه نیز از این روش برای انتشار خود استفاده می‌کنند.

راهکارها و توصیه‌ها

در ادامه به موارد زیر پرداخته خواهد شد:

  1. چگونه سیستم / شبکه خود را برای آسیب‌پذیر بودن تست نماییم؟
  2. راهکارهای اصلی رفع آسیب‌پذیری
  3. راهکارهای موقت و جایگزین
  4. راهکارهای کاهش ریسک در شبکه
این آسیب‌پذیری با نام‌های WannaCry و CVE.2017.0146 در سیستم IPS پادویش شناسایی و جلوگیری می‌شود.

تست آسیب‌پذیری – آیا سیستم من آسیب‌پذیر است؟

روش تست یک سیستم

جهت تست آسیب‌پذیری سیستم می‌توانید از اسکریپت زیر استفاده نمایید:

  1. اسکریپت  check-eternalblue.ps1 را دانلود نمایید. (این اسکریپت توسط میکروسافت تهیه شده است)
  2. پس از اجرا، پیام سبز رنگ «System is Patched» نشانگر این است که سیستم شما نسبت به این اکسپلویت آسیب‌پذیر نمی‌باشد.
    • این اسکریپت فقط نصب این آپدیت را چک می‌کند، همواره سعی کنید سیستم خود را آپدیت نگهدارید.
  3. اما اگر پیام قرمز رنگ «System is NOT Patched» را مشاهده کردید لازم است به بخش راهکارها مراجعه و آپدیت را دریافت و نصب نمایید.
جهت اجرای این اسکریپت لازم است Powershell 2.0 یا بالاتر روی سیستم شما نصب باشد. جهت تست در ویندوزهای قدیمی‌تر از سایر روش‌های قید شده در سایت میکروسافت بهره بگیرید.

روش تست کل شبکه (مخصوص مدیران شبکه)

در این روش کل سیستم‌های شبکه برای وجود/عدم وجود آسیب‌پذیری تست می‌شوند. در این مقاله از اسکریپت NMap جهت پویش آسیب‌پذیری استفاده شده است:

  1. یک سیستم را که به پورت 445 سایر سیستم‌ها دسترسی دارد انتخاب نمایید.
  2. نرم‌افزار nmap را دانلود و نصب نمایید. (نسخه ۷.۷۰ به بالا)
  3. دستور زیر را در کامندلاین ویندوز اجرا نمایید:
    • nmap -Pn -sS -p445 --open --max-hostgroup 3 --script smb-vuln-ms17-010.nse --script-args vulns.short -v <ip-address-range> | findstr "VULNERABLE smb-vuln-ms17-010: report" 
    • عبارت <ip-address-range> را با رنج آی‌پی مدنظر خود (مثلا 192.168.1.0/24) جایگزین کنید.
دقت کنید که در این روش شما در واقع یک پیش‌حمله شبیه‌سازی شده را انجام می‌دهید که امکان دارد توسط سیستم‌های امنیتی در شبکه شما تشخیص و جلوگیری شود.

در نتیجه قبل از اجرا، لازم است تنظیمات فایروال و شبکه شما اجازه این دسترسی را داده باشند. همچنین اگر سامانه تشخیص نفوذ (IPS) در شبکه دارید یا ضدویروس شما مجهز به این امکان است، برای نتایج دقیقتر و جلوگیری از جاافتادن سیستم‌ها لازم است آنها را طوری تنظیم کنید که اجازه حمله از طریق سیستم انتخاب شده را بدهد.

راهکار اصلی مقابله با آلودگی (نصب آپدیت)

اگر سیستم شما آسیب‌پذیر است لازم است ویندوز خود را آپدیت نمایید.

طبیعتا ما توصیه می­‌کنیم همواره همه وصله­‌های امنیتی را نصب کنید و بروز باشید. بهترین راه برای این کار این است که مکانیزم آپدیت خودکار ویندوز فعال باشد و کار کند. اما برای کاربرانی که ویندوزشان به اینترنت متصل نیست، یا به هر دلیلی آپدیت ویندوز را غیرفعال کرده‌­اند، روش زیر جهت نصب آپدیت توصیه می­‌شود:

  1. به صفحه MS17-010 در سایت میکروسافت مراجعه کنید.
  2. از جدول موجود در این صفحه، شماره نسخه ویندوز خود را با دقت انتخاب کنید.
    • مثلا اگر ویندوز ده دارید، بسته به 32 بیت یا 64 بیتی بودن سیستم و اینکه آپدیت 1511 یا 1607 هستید یا خیر باید بسته مناسب را انتخاب کنید. نسخه ویندوزتان را می‌توانید با زدن همزمان کلیدهای Win+R و اجرای برنامه msinfo32 ببینید.
    • اما اگر در مورد نسخه ویندوز خود شک دارید، می‌توانید چند آپدیت را دریافت کرده و امتحان کنید.
  3. بعد از پیدا کردن شماره نسخه ویندوز، روی آن کلیک کنید. (مثلا Windows 7 for 32-bit Systems Service Pack 1)
  4. در صفحه جدید یکباردیگر نام ویندوز خود را پیدا کنید و فایل مربوطه را دانلود کنید.
  5. سپس فایل را روی ویندوز خود نصب کرده و در صورت نیاز حتما سیستم را ریستارت کنید.
  6. نکته: برای آپدیت ویندوزهای XP، ۸ و سرور ۲۰۰۳ از این لینک اقدام نمایید.

راهکارهای موقت و جایگزین

اگر امکان نصب وصله را ندارید، می‌توانید موقتا از روش‌های زیر برای رفع خطر آلودگی استفاده کنید.

روش بستن File Sharing ویندوز

راه درست این است که ویندوز خود را آپدیت کنید. اما برای کسانی که به دلیلی نمی­توانند آپدیت ویندوز را نصب کنند، بستن File Sharing یک گزینه موقت است.

البته طبیعتا با این کار برخی قابلیت­‌های ویندوز را از دست خواهید داد، اما برای بسیاری از کاربران این قابلیت استفاده‌­ای ندارد. حتی اگر آپدیت را نصب کرده باشید بازهم اگر از مکانیزم اشتراک فایل ویندوز استفاده نمی­‌کنید، خوب است آن را خاموش کنید.

اما این مکانیزم چیست؟

این مکانیزم برای جابجا کردن فایل بین دو سیستم در شبکه استفاده می­‌شود. مثلا اگر می­‌خواهید از روی یک سیستم دیگر به فایل­‌های سیستم خود دسترسی پیدا کنید، استفاده از File Sharing یا Shared Folderاولین کاری است که به ذهن می‌آید. همچنین این مکانیزم برای اشتراک گذاشتن پرینتر در شبکه نیز استفاده می‌­شود تا سایر رایانه­‌ها بتوانند از پرینتر سیستم شما استفاده کنند.

دقت کنید که اگر این گزینه را غیرفعال کنید باز هم می‌توانید فولدرها و پرینترهای سایر سیستم‌ها را ببینید و از آن استفاده کنید، اما دیگران قادر به رویت فایل‌ها و پرینترهای به اشتراک گذاشته روی سیستم شما نخواهند بود.

اگر هیچ یک از این‌ها را استفاده نمی­‌کنید، می­‌توانید File Sharing را به روش زیر غیرفعال کنید:

  1. برای ویندوز XP: به کنترل پنل ویندوز رفته و گزینه Network Connection را انتخاب کنید.
  2. برای ویندوزهای هفت به بعد: منوی استارت را باز کرده و دنبال گزینه View Network Connections بگردید و آن را باز کنید.
  3. در پنجره باز شده روی هر کارت شبکه فعال کلیک راست کرده و Properties را انتخاب کنید.
  4. در پنجره بعدی، گزینه File and Printer Sharing را غیرفعال کنید.

حواستان باشد که غیرفعال کردن یک گزینه موقتی است و باید سیستم خود را حتما بروز کنید.

روش غیرفعال کردن پروتکل SMBv1

به جای غیرفعال کردن کامل File Sharing می‌توانید تنها پروتکل نسخه ۱ که مربوط به این آسیب‌پذیری است را ببندید. با این روش تنها ویندوزهای XP, Server 2003 و ماقبل ارتباط File and Printer Sharing‌ خود را از دست می‌دهند. به علاوه در صورت وجود ارتباط SMB با سیستم‌های لینوکسی قدیمی نیز ممکن است ارتباط قطع گردد.

  1. برنامه regedit را باز کنید.
  2. آدرس HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters را پیدا و باز نمایید.
  3. در بخش سمت راست، به دنبال عبارت SMB1 بگردید و اگر وجود ندارد یک مقدار جدید با این نام از نوع DWORD بسازید.
  4. مقدار آن را برابر صفر (0) قرار دهید.
  5. سیستم را ریست کنید. (تا قبل از ریست سیستم تغییرات اعمال نخواهند شد)

این کار از طریق Group Policy در مسیر Computer Configuration\Preferences folder\Windows Settings\Registry نیز قابل انجام است و کافیست به روش بالا کلید رجیستری را تنظیم نمایید. دقت نمایید که در این روش، باید ابتدا از اعمال Group Policy به کلاینت مطمئن شوید و سپس سیستم ریست شود تا تغییرات اعمال شوند. (بازه معمول اعمال Group Policy هر بیست دقیقه است)

راهکارهای کاهش ریسک در شبکه

جهت کاهش ریسک این آسیب‌پذیری به طور کلی توصیه می‌شود اقدامات زیر در سطح زیرساخت شبکه انجام گیرند:

  1. انجام VLAN بندی کلاینت‌ها، به نحوی که کلاینت‌های هر بخش سازمان با توجه به سطح دسترسی مورد نیاز در یک VLAN مخصوص قرار بگیرند.
  2. همچنین VLANبندی سرورها، به نحوی که سرورهای دارای کاربرد متفاوت در بخش‌های جدا قرار بگیرند. بخصوص سرورهای متصل به اینترنت و بدون اینترنت جدا شده و نیز سرورهای قابل دسترس از اینترنت در VLAN جدا قرار بگیرند.
  3. تنظیم سیاست‌های شبکه به نحوی که کلاینت‌های بی‌ربط یکدیگر را نبینند.
  4. تنظیم سیاست‌ها به نحوی که ارتباط بین VLANها فقط برحسب پورت و پروتکل لازم انجام گرفته و سایر پروتکل‌ها بسته شوند.
  5. نصب ضدویروس دارای امکان IPS و اطمینان از عملکرد آن در شبکه
  6. پیگیری گزارشگیری از سیستم ضدویروس جهت یافتن کلاینت‌های آلوده و برطرف کردن آلودگی (در کنسول پادویش از طریق گزارش Custom Report\IDS – Top Sources Of Attack می‌توانید لیست آی‌پی‌های حمله‌کننده را بیابید)
این آسیب‌پذیری با نام‌های WannaCry و CVE.2017.0146 در سیستم IPS پادویش شناسایی و جلوگیری می‌شود.