Hootan Alghaspour
Hootan Alghaspour
خواندن ۱۰ دقیقه·۴ سال پیش

حملات IDN homograph و homograph spoofing

مستحضر هستید که در مکتب یونیکد حروف هر زبان کد مخصوص به خود را دارند و حتی در یک زبان هم ممکن است انواع نگارش حرف، کدهای یونیکد متفاوت داشته باشند که در نتیجه از نظر کامپیوتر دو حرف و کلمه مجزا هستند.

مثلاً wikipediа.org با wikipedia.org یکی نیست، a آخر در مورد اول یونیکد u0430 در الفبای سیریلیک است در حالیکه در مورد دوم حرف a معمولی لاتین با یونیکد u0061

در ویرگول بدلیل فونت استفاده شده این تفاوت را احساس می کنید اما در بسیاری از فونت های پیش فرض این تفاوت محسوس نیست.

حمله internationalized domain name (IDN) homograph جزو حملات Spoofing و Typosquatting و به مقصود phishing دسته بندی می شود.

اولین بار در سال 2001 Evgeniy Gabrilovich و Alex Gontmakher در مقاله The Homograph Attack به این آسیب پذیری اشاره کردند. به Script Spoofing هم معروف است. script در معنی نوشتار.

مثلاً درباره خود ویرگول

دقت کنید دو o وسط را تغییر داده ام. ردیف دوم O بزرگ انگلیسی است. خود نام دامنه اساساً case-insensitive است. بنابراین اگر نام دامنه کلاً از یک زبان باشد بزرگی و کوچکی آن تفاوتی نمی کند. مشکل جایی ایجاد می شود که نام دامنه از حروف زبان های مختلف تشکیل شده باشد. جاییکه شما بتوانید دامنه یونیکد ثبت کنید.

ثبت کننده های دامنه مختلف سیاست های مختلفی برای ثبت دامنه با یونیکد دارند، مثلاً nic.ir تا چندی پیش اجازه ثبت دامنه های یونیکد فارسی را می داد. همچنین در نسخ جدیدتر استاندارد IDN الزاماً حروف دامنه باید از یک زبان باشند. که البته با توجه به شباهت الفبا و حروف بسیاری از زبان ها به هم همچنان امکان اجرای حملات IDN homograph و homograph spoofing هنوز وجود دارد.

یکی از معروفترین مثال های این حمله توسط Xudong Zheng برای دامنه apple.com انجام شده است.

در تصویر بالا نه تنها url تقریباً عین apple.com است ، نه تنها گواهینامه معتبر دارد، بلکه حتی در نتایج جستجو ها هم بسادگی قابل تشخیص نیست.

The homograph protection mechanism in Chrome, Firefox, and Opera unfortunately fails if every characters is replaced with a similar character from a single foreign language. The domain "аррӏе.com", registered as "xn–80ak6aa92e.com", bypasses the filter by only using Cyrillic characters. You can check this out yourself in the proof-of-concept using Chrome, Firefox, or Opera.

Visually, the two domains are indistinguishable due to the font used by Chrome and Firefox. As a result, it becomes impossible to identify the site as fraudulent without carefully inspecting the site's URL or SSL certificate. This Go program nicely demonstrates the difference between the two sets of characters. Safari, along with several less mainstream browsers are fortunately not vulnerable.

Internet Explorer does not display native characters in domains unless it belongs to one of the computer's system languages. As a result, it suffers from the same vulnerability if the system has Russian (and other Cyrillic languages) enabled. Internet Explorer's documentation acknowledges that users are "increasing the risk of spoofing attack" when their system supports additional languages.
از اخطار عکس گرفتم بعد در exceptionهای بیت دیفندر اضافه کردم که صفحه باز شود و عکس بگیرم بزارم اینجا!
از اخطار عکس گرفتم بعد در exceptionهای بیت دیفندر اضافه کردم که صفحه باز شود و عکس بگیرم بزارم اینجا!


برای ساخت دامنه هایی با IDN homograph و تست موضوع می توان از ابزار EvilURL استفاده کرد، البته ابزارهای دیگر هم هستند.

یک مدل هم homograph spoofing attacks داریم که طرف در همان کاراکترهای اسکی جای مثلاً جای o (حرف) کاراکتر 0 (عدد) را قرار دهد و مثلاً google.com بشود g00gle.com

ابزار dnstwist نیز یکی از ابزارهایی است که علاوه بر generate کردن انواع نام های مشابه و homographها و ... ، حتی چک می کند که آن نام دامنه مشابه ثبت شده است یا نه.

گزینه و آپشن های جالبی دارد که در صفحه اش توضیح داده شده اند.

هکرها چگونه از این آسیب پذیری استفاده می کنند؟

با وجود قدیمی بودن، این آسیب پذیری هنوز قربانیان بسیار دارد.

همانطور که ذکر شد این حمله عمدتاً با نیت فیشینگ و فریب کاربر انجام می شود.

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

از سوی دیگر ممکن است مهاجم موتورهای جستجو را برای فریب کاربران سایت واقعی هدف قرار دهد.

درباره Punycode

بصورت خلاصه ASCII Compatible Encoding (ACE) scheme to encode the Unicode data ، وقتی عبارت “--xn” را ابتدای عبارتی می بینید یعنی نام دامنه یونیکدی بوده که به punycode تبدیل شده است.

Punycode is a representation of Unicode with the limited ASCII character subset used for Internet hostnames. Using Punycode, host names containing Unicode characters are transcoded to a subset of ASCII consisting of letters, digits, and hyphens, which is called the Letter-Digit-Hyphen (LDH) subset.

While the Domain Name System (DNS) technically supports arbitrary sequences of octets in domain name labels, the DNS standards recommend the use of the LDH subset of ASCII conventionally used for host names, and require that string comparisons between DNS domain names should be case-insensitive. The Punycode syntax is a method of encoding strings containing Unicode characters, such as internationalized domain names (IDNA), into the LDH subset of ASCII favored by DNS.

To prevent non-international domain names containing hyphens from being accidentally interpreted as Punycode, international domain name Punycode sequences have a so-called ASCII Compatible Encoding (ACE) prefix, "xn--", prepended. Thus the domain name "bücher.tld" would be represented in ASCII as "xn--bcher-kva.tld".

مثلاً دولت.com را که به dolat.ir ریدایرکت می شود با curl ببینید.

مثال های دیگر:

راه های شناسایی و مقابله :

مرورگرها تا حدی در این مورد حفاظت دارند و مثلاً کوروم در مواجهه با این شرایط به شما اخطار می دهد، یا دامنه را به Punycode تبدیل می کنند تا برای کاربر قابل تشخیص باشد. هر چند هر روز روش ها و متدهای جدید برای عبور از این مکانیزم های امنیتی مرورگرها ارائه می شوند.نرم افزارهای امنیتی روی سیستم نیز جلوی چنین حملاتی را می گیرند. مثلاً آنتی ویروس خالی bitdefender که روی این سیستم دارم بلافاصله اخطار می دهد و ارتباط را قطع می کند.

انواع add-on و extension نیز برای جلوگیری از این دست حملات برای مرورگرها ارائه شده اند.

راه های مختلفی هم از دید سازمان مورد هدف قرار گرفته و موسسات امنیتی در منابع ضمیمه شده ذکر شده اند که البته خیلی موثر نیستند و کار دائم می طلبند.

مقابله با این حملات بیشتر در سطح رجیستررهای TLD ها انجام می شود، مثلاً nic.ir ظاهراً دیگر دامنه فارسی یونیکد ثبت نمی کند و Russian registry operator فقط الفبای سلتیک برای دامنه های .рф قبول می کند، اما مثلاً در .com هنوز می توان انواع دامنه یونیکد ثبت نمود.


با وجود قدیمی بودن روش ، حملات از این دست هر روز پیشرفته تر و گسترده تر می شوند.مقاله ذیل را ببینید:

The Akamai DNS traffic that the algorithm processed is compared against DNS queries made by millions of devices belonging to home users and small businesses, on more than 30 worldwide ISP networks. The volume of devices and users is estimated based on the source IP addresses. This method has the limitation of overestimation when devices use multiple IP addresses over time. We try to overcome this limitation as much as possible by looking at a small time frame of data, and conducting frequent (daily) sampling, but that should be noted by readers.

The IDN homograph detection algorithm was applied on a daily basis over the course of 32 days. Throughout this period, we identified 6670 homograph IDNs in total. We stress that every identified homograph IDN was queried in DNS traffic by at least one device in contrast to registered IDNs that are never accessed in traffic. Within 7 out of the last 32 days, we identified 67 newly-detected daily domains on average that were never seen before (as portrayed in Figure 1). Therefore, we conclude that every day at least several dozens of registered homograph IDN are accessed for the first time, despite the existence of preventive measures.

Moreover, we identified a total number of 29,071 devices that accessed at least one homograph IDN within the examined 32 days period. Within 7 out of the last 32 days, there were, on average, over 850 devices that daily accessed homograph IDNs for the first time (see Figure 2). Therefore, we conclude that every day hundreds of Internet devices unintentionally access a homograph IDN for the first time.

Every device that made at least one access to a homograph IDN within a given day made between 2-5 access attempts (measured by DNS queries) to homograph IDNs in total (see Figure 3). Multiple access attempts might result from automatic behavior such as link prefetching or user behavior such hitting a refresh button. Nevertheless, the fact that a device never makes more than 5 daily access attempts on average strengthens our claim that visits to homograph IDNs are unintentional and not recurring; otherwise, the average would be significantly higher.
The number of newly detected homograph IDN on daily basis
The number of newly detected homograph IDN on daily basis
The rate of daily device that access homograph IDN for the first time (newly visiting devices)
The rate of daily device that access homograph IDN for the first time (newly visiting devices)
The average rate of daily DNS queries made by devices to homograph IDNs
The average rate of daily DNS queries made by devices to homograph IDNs

مقاله 3چارت بالا : WATCH YOUR STEP: THE PREVALENCE OF IDN HOMOGRAPH ATTACKS


طبق معمول بدیهیست ما درباره یک موضوع فنی که کارشناسان امر باید مطلع باشند صحبت کردیم و هر کس هر کاری بکند گردن خودش است و نمی توان بصورت غیرمستقیم شخص دیگری را که نیت دیگری هم داشته متهم کرد. لذا هیچ کدام از مقالات در این دست جزو مصادیق محتوی مجرمانه نیستند.
هکhackفیشینگphishingامنیت
هوتن القاس پور
شاید از این پست‌ها خوشتان بیاید