SigRed

محققان امنیت سایبری در تاریخ ۱۴ جولای ۲۰۲۰ یک آسیب‌پذیری (SigRed) بسیار مهم wormable را فاش کردند که دارای نمره‌ی۱۰ از ۱۰ در مقیاس CVSS است و روی نسخه‌های ویندوز سرور ۲۰۰۳ تا ۲۰۱۹ تأثیر می‌گذارد.

این نقص اجرای کد از راه دور ۱۷ ساله (CVE-2020-1350) که توسط Check Point لقب SigRed را گرفته است[۱]، می‌تواند به یک مهاجم غیرمجاز و از راه دور اجازه دهد سطح دسترسی مدیر دامنه را روی سرورهای مورد هدف به دست آورد و کنترل کاملی روی زیرساخت‌های IT سازمان داشته باشد.

یک مهاجم می‌تواند با ارسال queryهای DNS موذی به یک سرور DNS ویندوز از آسیب‌پذیری SigRed بهره‌برداری کند و به اجرای کد دلخواه خود برسد. این آسیب‌پذیری به هکر این امکان را می‌دهد تا بتواند ایمیل‌های کاربران و ترافیک شبکه را ره‌گیری و دست‌کاری کند، سرویس‌هایی را از دسترس خارج کند، گواهی‌نامه‌ی کاربران را برداشت کند و موارد دیگر.

در گزارش مفصلی[۲] که با The Hacker News به اشتراک گذاشته شد، محقق Check Point  یعنی Sagi Tzadik تأیید کرد که این نقص در سطح اینترنت wormable است و به مهاجمان اجازه می‌دهد حمله‌ای را انجام دهند که می‌تواند از یک رایانه‌ی آسیب‌پذیر به رایانه‌ی دیگر و بدون هیچ‌گونه تعامل انسانی گسترش یابد.

این محقق دراین‌باره گفت: “یک بهره‌برداری واحد می‌تواند یک واکنش زنجیره‌ای را آغاز کند که اجازه می‌دهد حملات از یک دستگاه آسیب‌پذیر به دستگاه آسیب‌پذیر دیگر گسترش یابد بدون اینکه نیاز به تعامل انسانی داشته باشد.”

“این بدان معناست که یک دستگاهِ واحدِ به خطر افتاده می‌تواند فوق‌العاده پخش‌کننده باشد و این حمله را در چند دقیقه پس از اولین بهره‌برداری در سراسر شبکه‌ی سازمان پخش می‌کند.

پس‌ازآنکه این شرکت سایبری با مسئولیت‌پذیری، یافته‌های خود را به مایکروسافت گزارش داد، سازنده‌ی ویندوز برای این آسیب‌پذیری یک وصله آماده کرد و آن را در تاریخ ۱۴ جولای ۲۰۲۰ به‌عنوان بخشی از وصله‌های سه‌شنبه‌های هر ماه خود، که همچنین شامل به‌روزرسانی‌های امنیتی برای ۱۲۲ آسیب‌پذیری دیگر است، منتشر کرد. از بین این ۱۲۲ آسیب‌پذیری، ۱۸ مورد در دسته‌بندی حیاتی و ۱۰۵ مورد ازلحاظ شدت در دسته‌بندی مهم قرار گرفتند.

مایکروسافت دراین‌باره گفت[۳]: هیچ مدرکی برای اثبات اینکه این اشکال توسط مهاجمان به‌طور فعال مورداستفاده قرار گرفته باشد وجود ندارد و به کاربران توصیه می‌کند که بلافاصله وصله‌های موردنظر را نصب کنند.

مایکروسافت گفت: “سرور DNS ویندوز یک جزء اصلی شبکه است. درحالی‌که این آسیب‌پذیری در حال حاضر مشخص نیست که در حملات فعال مورداستفاده قرار می‌گیرد یا نه، ضروری است که مشتریان برای رفع هرچه سریع‌تر این آسیب‌پذیری، به‌روزرسانی‌های ویندوز را اعمال کنند.”

پاسخ‌های DNS موذی دست‌کاری شده

محققان Check Point با بیان اینکه هدف شناسایی یک آسیب‌پذیری است که به یک مهاجم غیرمجاز اجازه می‌دهد تا یک محیط دامنه ویندوز را به خطر بی اندازد، گفتند که آن‌ها روی DNS ویندوز متمرکزشده‌اند، به‌طور خاص با نگاهی دقیق‌تر به اینکه چگونه یک سرور DNS در حقیقت یک query دریافتی یا یک پاسخ را برای یک query ارسال‌شده، تجزیه می‌کند.

وقتی یک سرور DNS نتواند آدرس IP را برای نام دامنه معین (مثلاً www.google.com) resolve کند، یک query ارسال‌شده اتفاق می‌افتد، درنتیجه‌این query به یک نام سرور معتبر DNS (NS) ارسال می‌شود[۴].

برای بهره‌برداری از این معماری، SigRed شامل پیکربندی رکوردهایNS resource  یک دامنه (deadbeef.fun) برای اشاره به یک نام سرور موذی (ns1.41414141.club) می‌شود[۵] و از سرور DNS مورد هدف برای دامنه به‌منظور این‌که آخری پاسخ‌های نام سرور را برای همه‌ی queryهای متعاقب و مربوط به دامنه یا زیر دامنه‌های آن، تجزیه کند؛ پرس‌وجو می‌کند.

با استفاده از این تنظیم، یک مهاجم می‌تواند یک نقص سرریز عدد صحیح در عملکردی ایجاد کند که پاسخ‌های دریافتی را برای query های فرستاده‌شده تجزیه می‌کند (“dns.exe! SigWireRead”) و برای ارسال یک پاسخ DNS که شامل یک منبع SIG بزرگ‌تر از ۶۴ کیلوبایت است[۶] و یک سرریز بافر مبتنی بر پشته کنترل‌شده‌ی تقریباً ۶۴ کیلوبایت روی یک بافر اختصاص داده‌شده‌ی کوچک القا می‌کند.

به‌عبارت‌دیگر؛ این نقص عملکردی را برای تخصیص حافظه برای ضبط منبع (“RR_AllocateEx”) هدف قرار می‌دهد تا نتیجه‌ای بزرگ‌تر از ۶۵٫۵۳۵ بایت ایجاد کند تا باعث ایجاد سرریز عدد صحیح شود که منجر به تخصیص بسیار کوچک‌تر از حد انتظار می‌شود.

اما با تنها یک پیام DNS محدود به ۵۱۲ بایت در UDP (یا ۴،۰۹۶ بایت در صورت پشتیبانی از سرور از مکانیسم‌های افزودنی[۷]) و ۶۵۵۳۵ بایت در TCP ، محققان دریافتند که یک پاسخ SIG با امضای طولانی به‌تنهایی کافی نیست تا آسیب‌پذیری را برانگیزد.

برای دستیابی به این هدف، حمله‌ی هوشمندانه از فشرده‌سازی نام DNS در پاسخ‌های DNS استفاده می‌کند[۸] تا با استفاده از تکنیک فوق، یک سرریز بافر ایجاد کند تا اندازه تخصیص را به میزان قابل‌توجهی افزایش دهد.

بهره‌برداری از راه دور از نقص SigRed

SigRed را می‌توان از راه دور از طریق یک مرورگر در سناریوهای محدودی فعال کرد (به‌عنوان‌مثال مرورگرهای Internet Explorer و Microsoft Chase مبتنی بر غیر Chromium)، که به یک مهاجم اجازه می‌دهد تا از پشتیبانی سرورهای DNS ویندوز برای استفاده مجدد در اتصال و ویژگی‌های query pipelining برای قاچاق یک DNS query داخل یک payload درخواست HTTP به یک سرور DNS مورد هدف[۹] در هنگام بازدید از یک وب‌سایت تحت کنترل آن‌ها سوءاستفاده کند.

از این گذشته، این نقص می‌تواند به‌منظور نشت آدرس‌های حافظه مورد بهره‌برداری قرار گیرد. این نقص با خراب کردن metadata یک پرونده منبع DNS و حتی دستیابی به قابلیت‌های write-what-where که در آن وجود دارد[۱۰]، باعث می‌شود یک دشمن بتواند جریان اجرای عملیات را ربوده و دستورالعمل‌های ناخواسته را اجرا کند.

SigRed

باکمال تعجب، مشتریانDNS  (“dnsapi.dll”) در معرض این نقص نیستند و این موضوع محققان را به این گمان سوق می‌دهد که مایکروسافت دو پایه کد کاملاً متفاوت را برای سرور DNS و مشتری DNS مدیریت می‌کند و وصله‌های مربوط به باگ‌ها را بین آن‌ها به اشتراک نمی‌گذارد.

با توجه به‌شدت این آسیب‌پذیری و احتمال زیاد بهره‌برداری فعال  از آن، به کاربران توصیه می‌شود تا سرورهای DNS تحت تأثیر خود را هر چه سریع‌تر وصله کنند تا این خطر را کاهش دهند.

به‌عنوان یک راه‌حل موقت، حداکثر طول یک پیام DNS (بیش از TCP) می‌تواند روی “۰xFF00” تنظیم شود تا شانس سرریز بافر را از بین ببرد:

reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters” /v “TcpReceivePacketSize” /t REG_DWORD /d 0xFF00 /f

net stop DNS && net start DNS

Omri Herscovici که محقق Check Point است به The Hacker News دراین‌باره گفت: “رخنه‌ی سرور DNS یک چیز بسیار جدی است. بیشتر اوقات، حمله‌کننده فقط یک اینچ از رخنه به کل سازمان فاصله می‌گیرد. فقط تعداد انگشت‌شماری از این نوع آسیب‌پذیری تابه‌حال منتشرشده‌اند.”

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

منابع

[۱] https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1350

[۲] https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers

[۳] https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server

[۴] https://youtu.be/PUlMmhD5it8

[۵] https://en.wikipedia.org/wiki/List_of_DNS_record_types

[۶] https://tools.ietf.org/html/rfc2535#section-2.3.1

[۷] https://en.wikipedia.org/wiki/Extension_mechanisms_for_DNS

[۸] https://powerdns.org/hello-dns/basic.md.html#dnsbasics

[۹] https://tools.ietf.org/html/rfc7766#section-6.2.1

[۱۰] https://cwe.mitre.org/data/definitions/123.html

[۱۱] https://thehackernews.com/2020/07/windows-dns-server-hacking.html