جعل dns چیست؟ ما در حال نوشتن یک افزونه برای سرور DNS مایکروسافت هستیم تا در برابر جعل IDN محافظت کنیم. حفاظت از سیستم بر اساس نرم افزار رایگان

جعل DNS یک روش ساده برای جعل dns یک سیستم است، یک بلوک تفکیک نام dns با استفاده از اطلاعات نادرست دریافت شده از میزبانی که مسئول آن اطلاعات نیست. هر بسته dns دارای یک شماره شناسه 16 بیتی است، شماره شناسه بخشی از بسته dns است که به شما امکان می دهد هر بسته dns را که از پورت 53 عبور می کند شناسایی کنید و همچنین درخواست می تواند بیش از یک بار باشد. id تنها راه تمایز بین درخواست‌های مختلف dns مربوط به این موضوع است، که سرورهای dns از آن برای تعیین درخواست اصلی استفاده می‌کنند. در مورد BIND، این عدد برای هر درخواست 1 سطح افزایش می یابد. حمله ای شبیه به TCP seq id می تواند انجام شود، اگرچه دشوارتر است. حتی اگر BIND نتواند اطلاعاتی را که ارسال می‌کنید ذخیره کند، پاسخ را به میزبان اصلی ارسال می‌کند. در صورتی که ircd در پاسخ به میزبانی که به آن متصل است، درخواستی برای PTR ارائه کند، بسته پاسخ ممکن است طوری فرموله شود که حاوی اطلاعات تکمیلی، که از آن ircd کش داخلی را انجام می دهد. این حمله نیازمند دسترسی root به سرور dns است که مسئول in-addr. arpa بلوک اطلاعات dns است. همچنین، ircd فقط می‌تواند یک دامنه را کش کند. حمله دیگری وجود دارد، زیرا id شامل 16 بیت است. کاربر می‌تواند روی آن تکرار کند. برای جعل کردن dns خود، فرض کنید در DALNet "e، باید 65000 درخواست ایجاد شده را به سرور ns ارسال کنید، به محض اینکه کامپیوتر پاسخی به درخواست دریافت کرد، باید بسته را بخوانید و شناسه صحیح در آن نوشته خواهد شد. پس از دریافت شناسه، باید هر بسته ای را پیدا کنید ابزار ایجادبرای ایجاد یک بسته dns. فقط بسته های dns جعلی باقی می ماند، به ns. dal.net ارسال می شود و یک اتصال TCP جعلی دریافت می کند.

بیان کلی مشکل با توجه به رشد سریع اینترنت، مشکل امنیت منابع اطلاعاتبیشتر و بیشتر مهم می شوند. اگر به اینترنت متصل باشید، سیستم شما ممکن است مورد حمله قرار گیرد. کار DNS را در نظر بگیرید. آدرس دهی خارج از بخش توسط آدرس های IP انجام می شود، اما سرورها معمولاً با نام دامنه قابل دسترسی هستند. در این راستا، سیستمی برای تبدیل (تطبیق) نام دامنه به آدرس IP - سرورهای DNS (Domain Name System) ایجاد شد. این سیستم وظیفه یافتن آدرس IP یک هاست راه دور را از روی نام آن دارد. اصل عملکرد سیستم DNS به شرح زیر است - یک میزبان راه دور درخواست خاصی را به آدرس IP نزدیکترین سرور DNS ارسال می کند که در آن نام سروری را که آدرس IP آن باید پیدا شود نشان می دهد. با دریافت درخواست، سرور DNS پایگاه داده خود را برای نام دامنه درخواستی جستجو می کند. اگر نام پیدا شود، سرور DNS پاسخی را نشان می دهد که نشانی IP جستجو شده را نشان می دهد. اگر نام مشخص شده در درخواست توسط سرور DNS در پایگاه داده نام خود پیدا نشد، درخواست DNS توسط سرور DNS به یکی از سرورهای DNS ریشه ارسال می شود و روال توضیح داده شده در این پاراگراف تا زمانی که نام مشخص شود تکرار می شود. یافت. بیایید یک طرح کلی از یک سرور DNS جعلی را در نظر بگیریم: انتظار برای درخواست DNS. دریافت یک درخواست DNS، استخراج اطلاعات لازم از آن و ارسال یک پاسخ DNS نادرست از طریق شبکه به میزبان درخواست کننده، از طرف (از آدرس IP) سرور DNS واقعی، که نشان دهنده آدرس IP سرور DNS نادرست است. ; در صورت دریافت بسته از یک هاست، تغییر آدرس IP آن در هدر IP بسته به آدرس IP سرور DNS جعلی و ارسال بسته به سرور (یعنی سرور DNS جعلی با سرور در کار می کند. از طرف خودش)؛ در صورت دریافت بسته از سرور، تغییر آدرس IP آن در هدر IP بسته به آدرس IP سرور DNS جعلی و ارسال بسته به میزبان (برای هاست سرور DNS جعلی سرور واقعی است. ).

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

همانطور که تجزیه و تحلیل روش های موجود حفاظت نشان می دهد، مقابله با حملات می تواند انجام شود روش های زیر. با انتقال DNS به TCP انتقال از UDP به TCP سرعت سیستم را تا حدودی کند می کند. هنگام استفاده از TCP، ایجاد یک اتصال مجازی مورد نیاز است و همچنین قابل توجه است که سیستم عامل شبکه پایانی ابتدا درخواست DNS را با استفاده از پروتکل UDP ارسال می کند و اگر پاسخ خاصی از سرور DNS دریافت کند، سیستم عامل شبکه یک درخواست DNS با استفاده از TCP ارسال می کند. استفاده از پروتکل TCP حمله جعل بسته را پیچیده می کند، اما کار را کند می کند. با تجزیه و تحلیل ترافیک DNS. با تجزیه و تحلیل ترافیک می توان با حملات مقابله کرد. بسته های جعلی با آدرس های IP نادرست به طور مداوم به سرور DNS ارسال می شوند. اگر بسته نادرست دریافتی با مقدار درخواست مطابقت داشته باشد، IP false به عنوان true پذیرفته می شود. اگر هیچ رهگیری بسته ای از سرور وجود نداشته باشد، حمله با تعداد زیادی بسته DNS با همان نام مشخص می شود. این به دلیل نیاز به انتخاب برخی از پارامترهای تبادل DNS است. با تجزیه و تحلیل ترافیک DNS، می توانید چنین بسته هایی را نادیده بگیرید تا از جعل آدرس IP جلوگیری کنید.

نتیجه گیری با مطالعه عملکرد سرور DNS، می توانید آن را ببینید نسخه فعلیکاملاً نابهینه و در برابر حملات آسیب پذیر است نوع متفاوت. حملات را می توان با تجزیه و تحلیل ترافیک DNS یا با تغییر DNS از UPD به TCP مقابله کرد. هیچ یک از روش ها محافظت کامل در برابر حملات را فراهم نمی کند، هر دو روش فقط احتمال حمله را پیچیده می کنند. هر دو روش به منابع اضافی از سرور نیاز دارند. در مورد انتقال سرور DNS به TCP، زمان تبادل بین سرورها نیز افزایش می یابد، زیرا پروتکل UDP سریعتر از پروتکل TCP است. در این لحظهمدل‌های اقدام متقابل پیشنهادی مؤثرترین هستند و توصیه می‌شود برای دستیابی به بالاترین امنیت ممکن از آنها به صورت ترکیبی استفاده شود.

عفونت DNS یا جعل DNS نوعی حمله سایبری است که از آسیب‌پذیری‌های سیستم در سرور DNS برای هدایت ترافیک از سرورهای قانونی به سرورهای جعلی استفاده می‌کند.

نحوه عملکرد DNS Infection یا DNS Spoofing

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

خطرات

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

برای جلوگیری از آلودگی DNS، کاربران نباید پیوندهای ناشناخته را دنبال کنند و مرتباً رایانه خود را چک کنند بد افزار. همیشه این کار را با استفاده از برنامه نصب شده بر روی رایانه خود انجام دهید و نه نسخه آنلاین که می تواند جعلی نیز باشد.

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

بیایید تصور کنیم که شرکت مورد حمله مالک دامنه organic.org است و منبع داخلی portal.organization.org در داخل این شرکت استفاده می شود. هدف مهاجم این است که اعتبار کاربر را دریافت کند و برای این کار از طریق ایمیل یا پیام رسان مورد استفاده شرکت، لینکی را ارسال می کند.

پس از دریافت چنین پیامی، به احتمال زیاد متوجه نخواهید شد که پیوند به جایی اشتباه هدایت می شود. پس از کلیک بر روی لینک، یک login\password درخواست می شود و قربانی با تصور اینکه در یک منبع داخلی است، داده های خود را وارد می کند. حساب. شانس یک مهاجم به ویژه اگر قبلاً به محیط نفوذ کرده باشد، سیستم هر کارمندی را به خطر انداخته باشد و اکنون برای امتیازات یک مدیر سیستم مبارزه کند، زیاد است.

در اینجا نمی‌توانید یک «ضد احمق» مطلق پیدا کنید، اما می‌توانید سعی کنید این حمله را در مرحله حل نام از طریق یک درخواست dns رهگیری کنید.

برای محافظت، باید نام‌هایی را که در درخواست‌های dns رهگیری شده با آن‌ها مواجه می‌شویم، به‌طور مداوم به خاطر بسپاریم. این شرکت از منابع داخلی خود استفاده می کند، به این معنی که ما به سرعت در یک درخواست به portal.organization.org متوجه خواهیم شد. به محض اینکه با نامی "مشابه" با نام قبلی مواجه شدیم، می توانیم پاسخ dns را با بازگرداندن خطا به جای آدرس IP مهاجم جایگزین کنیم.
الگوریتم های تعیین «شباهت» چیست؟

  • UTS39 Confusable Detection (http://www.unicode.org/reports/tr39/#Confusable_Detection) یونیکد نه تنها یک جدول کاراکترهای مکانیکی ارزشمند است، بلکه مجموعه ای از استانداردها و دستورالعمل ها است. UTS39 یک الگوریتم عادی سازی رشته یونیکد را تعریف می کند که در آن رشته هایی که از نظر همگلیف متفاوت هستند (به عنوان مثال، روسی "a" و لاتین "a") به یک شکل تبدیل می شوند.
  • کلماتی که در جایگشت حروف داخلی متفاوت هستند. اشتباه گرفتن organisation.org با orgainzation.org بسیار آسان است
  • جایگزینی دامنه سطح اول. سطح اول نام معمولاً معنی ندارد و کارمند شرکتی که "سازمان" را می بیند ممکن است تفاوت در .org یا .net را نادیده بگیرد، اگرچه ممکن است استثناهایی وجود داشته باشد.
به احتمال زیاد، سرور شرکتی متصل نخواهد شد، که استاندارد میزبان ها یا ارائه دهندگان وب است، اما سرور dns مایکروسافت به دلیل استفاده گسترده از دایرکتوری فعال است. و اولین مشکلی که هنگام نوشتن فیلتر برای سرور dns مایکروسافت با آن مواجه شدم - API برای فیلتر کردن درخواست های dns پیدا نکردم. این مشکل از راه های زیادی قابل حل است، من تزریق dll و قلاب IAT روی api را برای کار با سوکت ها انتخاب کردم.

برای درک روش، به دانش فرمت PE نیاز دارید، برای مثال، می توانید بیشتر بخوانید. یک فایل اجرایی از هدرها، یک جدول بخش و خود بخش ها تشکیل شده است. خود بخش ها بلوکی از داده ها هستند که لودر باید در یک آدرس نسبی در حافظه نگاشت (آدرس مجازی نسبی - RVA) و تمام منابع، کد و سایر داده ها در داخل بخش ها قرار می گیرند. همچنین در داخل هدر پیوندهایی (RVA) به تعدادی جداول لازم برای کارکرد برنامه وجود دارد که در چارچوب این مقاله دو مورد مهم خواهد بود - جدول واردات و جدول صادرات. جدول واردات حاوی لیستی از توابع است که برای کارکرد برنامه مورد نیاز هستند، اما در فایل های دیگر قرار دارند. جدول صادرات یک جدول "معکوس" است که حاوی لیستی از توابع صادر شده از این فایل است، یا در مورد صادرات، نام فایل و نام تابع برای رفع وابستگی.

ما تزریق dll را بدون CreateRemoteThread مزاحم انجام خواهیم داد. من تصمیم گرفتم از ارسال صادرات PE استفاده کنم - این یک تکنیک شناخته شده است که برای بارگیری در فرآیند مورد نظر، یک dll در فهرست با فایل exe با نامی برابر با نام هر dll از exe ایجاد می شود. جدول واردات فایل (نکته اصلی این است که از HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\KnownDLLs استفاده نکنید). در dll ایجاد شده، جدول صادرات از dll هدف کپی می شود، اما به جای اشاره گر به کد تابع صادر شده، باید RVA را در رشته فوروارد مانند "endpoint! sendto" بنویسید. خود سرور dns مایکروسافت به عنوان یک سرویس HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\DNS پیاده سازی شده است که در %systemroot%\system32\dns.exe قرار دارد.

الگوریتم تزریق نهایی در سرور dns به صورت زیر خواهد بود:

  • دایرکتوری %systemroot%\system32\dnsflt را ایجاد کنید (می توانید از هر دایرکتوری دیگری استفاده کنید، نیازی به یافتن دایرکتوری در system32 نیست).
  • %systemroot%\system32\dnsapi.dll را در آنجا کپی می کنیم - این dll است که dns.exe چیزی را از آن وارد می کند، می توانید هر "nonknowndll" دیگری را انتخاب کنید.
  • dll کپی شده را به endpoint.dll تغییر نام دهید - ما از این نام در خط جلو استفاده خواهیم کرد.
  • dll تزریق شده خود را می گیریم و جدول صادرات صحیح را به آن اضافه می کنیم، dll خود را در %systemroot%\system32\dnsflt کپی می کنیم.
  • در رجیستری در کلید HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\DNS، ImagePath را به آدرس باینری جدید %systemroot%\system32\dnsflt\dns.exe تغییر دهید.
  • ایجاد یک پیوند نمادین از %systemroot%\system32\dnsflt\dns.exe به %systemroot%\system32\dns.exe
چرا مرحله آخر؟ واقعیت این است که ویندوز دارای یک فایروال داخلی است و به طور پیش فرض در داخل است سرور ویندوزفقط برنامه %systemroot%\system32\dns.exe حق گوش دادن در پورت 53 را دارد. اگر بخواهید آن را از دایرکتوری دیگری اجرا کنید، به شبکه دسترسی نخواهید داشت. اصلا چرا کپی کردم؟ به منظور به حداقل رساندن تاثیر بر روی کل سیستم و لمس نکردن dnsapi.dll اصلی. به نظر می رسد که اگر بتوانید یک سیم لینک به یک برنامه ایجاد کنید، می توانید حقوق شبکه آن را دریافت کنید. به‌طور پیش‌فرض، فقط مدیران حق ایجاد یک پیوند نمادین را دارند، اما شگفت‌آور است که با دادن حق ایجاد یک پیوند نمادین به کاربر، به او این امکان را می‌دهید که فایروال داخلی را دور بزند.

پس از بارگذاری در داخل فرآیند از DllMain، امکان ایجاد یک موضوع و نصب رهگیری وجود خواهد داشت. در بسیار مورد سادهسرویس dns ما آدرس IP نام را با ارسال یک بسته UDP از پورت 53 از طریق تابع sendto از ws2_32.dll به مشتری می گوید. این استاندارد پیشنهاد می‌کند که اگر پاسخ خیلی بزرگ باشد، می‌توان از پورت TCP 53 استفاده کرد و بدیهی است که رهگیری sendto در این مورد بی‌فایده خواهد بود. با این حال، رسیدگی به پرونده با tcp، اگرچه زمان‌برتر است، اما می‌تواند به روشی مشابه انجام شود. در حال حاضر، من ساده ترین مورد با UDP را به شما می گویم. بنابراین، می دانیم که کد dns.exe تابع sendto را از ws2_32.dll وارد می کند و از آن برای پاسخ به درخواست dns استفاده می کند. همچنین توابع زیادی برای رهگیری وجود دارد روش های مختلف، این یک اسپلایسینگ کلاسیک است، زمانی که اولین دستورالعمل sendto با jmp در تابع خود جایگزین می شود و پس از تکمیل آن، انتقالی به دستورالعمل های sendto ذخیره شده قبلی و سپس داخل تابع sendto انجام می شود. Splicing کار خواهد کرد حتی اگر GetProcAddress برای فراخوانی sendto به جای یک جدول import استفاده شود، اما اگر از جدول import استفاده شود، استفاده از قلاب IAT به جای اتصال آسان تر است. برای انجام این کار، باید جدول واردات را در تصویر دانلود شده dns.exe پیدا کنید. خود جدول ساختاری تا حدودی گیج کننده دارد و برای جزئیات باید به توضیحات فرمت PE بروید.

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

بنابراین، ما رهگیری را نصب کردیم و شروع به دریافت اطلاعات کردیم. نمونه اولیه تابع sendto به شکل زیر است:

Int sendto(_In_ SOCKET s, _In_ const char *buf, _In_ int len, _In_ int flags, _In_ const struct sockaddr *to, _In_ int tolen);
اگر s یک سوکت در پورت 53 باشد، نشانگر buf حاوی یک پاسخ lens dns خواهد بود. خود قالب در RFC1035 توضیح داده شده است، من به طور خلاصه توضیح خواهم داد که برای رسیدن به داده های مورد علاقه چه کاری باید انجام شود.

ساختار پیام در استاندارد به شرح زیر است:

سر از اطلاعات لازم: نوع پیام، کد خطا و تعداد عناصر در بخش ها. عنوان خود به این شکل است:

ساختار DNS_HEADER ( شناسه uint16_t؛ // شماره شناسایی uint8_t rd: 1؛ // بازگشت مورد نظر uint8_t tc: 1؛ // پیام کوتاه شده uint8_t aa: 1؛ // پاسخ معتبر uint8_t کد باز: 4؛ // هدف از پیام qr: uint8_t 1؛ // query/response flag uint8_t rcode: 4؛ // کد پاسخ uint8_t cd: 1؛ // بررسی غیرفعال شدن آگهی uint8_t: 1؛ // داده های احراز هویت شده uint8_t z: 1؛ // z آن رزرو شده uint8_t ra: 1 ؛ // بازگشتی موجود uint16_t q_count؛ // تعداد ورودی‌های سؤال uint16_t ans_count؛ // تعداد ورودی‌های پاسخ uint16_t auth_count؛ // تعداد ورودی‌های مرجع uint16_t add_count؛ // تعداد ورودی‌های منبع );
بخش سوال باید تجزیه شود تا به پاسخ برسید. خود بخش شامل تعداد بلوک های مشخص شده در هدر (q_count) است. هر بلوک از یک نام، نوع و کلاس درخواست تشکیل شده است. نام به صورت دنباله ای از رشته ها کدگذاری می شود که هر کدام با یک بایت با طول رشته شروع می شود. در انتها یک رشته با طول صفر وجود دارد. به عنوان مثال، نام homedomain2008.ru به شکل زیر است:

بخش Answers مشابه به نظر می رسد: بلوک شامل نام، نوع، کلاس، ttl و داده های اضافی است. آدرس IP در افزودنی موجود خواهد بود. داده ها. مشکل دیگری برای تجزیه نام وجود دارد. ظاهراً برای کاهش اندازه پیام، به جای طول برچسب، می توانید پیوندی به ناحیه داده دیگری پیدا کنید. به صورت زیر کدگذاری می شود: اگر 2 بیت مهم طول برابر با 11 باشد، بایت بعدی و همچنین کم اهمیت ترین بیت های طول باید به عنوان یک افست در بایت نسبت به ابتدای بایت تفسیر شوند. پیام تجزیه بیشتر نام باید با رفتن به این افست انجام شود.

بنابراین، ما API مورد نیاز را رهگیری کردیم، پاسخ dns را تجزیه کردیم، اکنون باید تصمیم بگیریم: این پاسخ را بیشتر رد کنیم یا یک خطا را برگردانیم. برای هر نامی که هنوز در پایگاه داده نیست، باید از پاسخ بررسی کنید که آیا "مشکوک" است یا خیر.
ما نام‌هایی را که نتیجه تابع اسکلت از استاندارد فنی یونیکد tr39 با نتیجه هر یک از نام‌های پایه مطابقت دارد، یا نام‌هایی که با نام‌هایی که در پایه وجود دارند با یک جایگشت متفاوت از آن‌ها متفاوت است، «مشکوک» در نظر می‌گیریم. نامه های داخلی برای اجرای چک ها 2 جدول ذخیره می کنیم. اولی شامل نتایج اسکلت برای همه نام‌ها از پایه خواهد بود، در جدول دوم رشته‌هایی را که از رشته‌های پایه با حذف اولین و آخرین کاراکتر از هر برچسب به جز سطح اول به دست آمده‌اند، می‌نویسیم. سپس کاراکترهای باقیمانده هر برچسب را مرتب کنید. حال اگر نام جدید در یکی از دو جدول قرار گیرد آن را مشکوک می دانیم.

منظور از تابع اسکلت تعیین شباهت دو رشته است؛ برای این کار، کاراکترها برای هر رشته نرمال می شوند. به عنوان مثال، Xlœ به Xloe تبدیل می شود، و بنابراین، با مقایسه نتیجه تابع، می توان شباهت رشته های یونیکد را تعیین کرد.

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

  • ترکیبی از جایگشت ها و هموگلیف ها.
  • افزودن/جایگزین کردن کاراکترها توسط اسکلت در نظر گرفته نشده است.
  • UTS tr39 به اسکلت محدود نمی شود، شما هنوز هم می توانید ترکیب مجموعه کاراکترها را در یک برچسب محدود کنید.
  • نقطه ژاپنی با عرض کامل و سایر جداکننده های برچسب.
  • و چیزهای شگفت انگیزی مانند

تاکتیک جعل هویت شخصی به منظور دسترسی به داده های محرمانه یا حساب های بانکی نه تنها توسط مجرمان در دنیای واقعی، بلکه توسط همکاران آنها در فضای مجازی نیز با موفقیت مورد استفاده قرار می گیرد. این عمل جعل نامیده می شود - یک دسته جمعی که شامل مفاهیم جعل آدرس IP (ارسال پیام به رایانه با استفاده از آدرس IP منبع قابل اعتماد)، جعل ایمیل (جعل هدر ایمیل ها برای پنهان کردن فرستنده واقعی) و جعل DNS (تغییر DNS) است. تنظیمات سرور برای هدایت نام دامنه به آدرس IP متجاوزان).

جعل چگونه کار می کند؟

جعل، تکنیک جعل هویت شخص دیگری برای فریب یک شبکه یا یک کاربر خاص به منظور القای اطمینان نسبت به قابلیت اطمینان منبع اطلاعات است. به عنوان مثال، هکرها با استفاده از جعل ایمیل می توانند کاربر را در مورد صحت فرستنده گمراه کنند و به داده های محرمانه دسترسی پیدا کنند. یا ممکن است سعی کنند از تکنیک های جعل پرس و جو IP و DNS برای جعل شبکه کاربر استفاده کنند و آنها را به سایت های کلاهبرداری که به عنوان سایت های واقعی ظاهر می شوند هدایت کنند و در نتیجه رایانه کاربر آلوده شود.

چگونه تقلب را تشخیص دهیم؟

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

چگونه تقلب را از بین ببریم؟

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

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

از یک طرف، محافظت در برابر جعل ممکن است شامل پیروی از اصول اولیه مرور ایمن اینترنت باشد. با این حال، شما می توانید خیلی بیشتر برای ایمنی خود انجام دهید. اول از همه، می توانید حفاظت از رایانه شخصی خود و داده های ذخیره شده روی آن را به یک راه حل آنتی ویروس قدرتمند، مانند راه حلی که توسط Avast توسعه یافته است، بسپارید، که به طور قابل اعتمادی در برابر سایت های کلاهبرداری محافظت می کند و ویروس هایی را که سعی در نفوذ به شبکه شما دارند مسدود می کند.

جعل DNS ( جعل DNS)

سیستم DNS ( سیستم نام دامنه) تبدیل می کند نام دامنه(به عنوان مثال www.test.com) به آدرس IP آن (به عنوان مثال 192.168.0.1) و بالعکس. این حمله از فناوری ارسال پاسخ های جعلی به پرس و جوهای DNS قربانی استفاده می کند. حمله بر دو روش اصلی استوار است.

جعل شناسه DNS (جعل شناسه DNS)

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

    بررسی تمام مقادیر موجود فیلد شناسایی. خیلی کاربردی نیست زیرا تعداد کل مقادیر ممکن 65535 است (اندازه فیلد 16 بیت).

    ارسال چند صد درخواست DNS به ترتیب صحیح. بدیهی است که این روش چندان قابل اعتماد نیست.

    یافتن سروری که شناسه های قابل پیش بینی تولید می کند (به عنوان مثال، افزایش 1). این نوع آسیب‌پذیری در برخی نسخه‌های Bind و ذاتی است سیستم های ویندوز 9 برابر

در هر صورت باید به سرور DNS واقعی پاسخ داد. این را می توان به عنوان مثال با انجام یک حمله انکار سرویس علیه سرور به دست آورد.

برای انجام یک حمله موفق، مهاجم باید سرور DNS (ns.attaquant.com) را که برای منطقه attaquant.com معتبر است، کنترل کند. سرور DNS مقصد (ns.cible.com) ظاهراً قابل پیش بینی تولید می کند شماره های شناسایی(با هر درخواست 1 افزایش می یابد).

حمله به چهار مرحله نیاز دارد:

در نتیجه، حافظه پنهان سرور DNS مورد نظر حاوی مطابقت مورد نیاز مهاجم خواهد بود و به مشتریان زیر که آدرس www.spoofed.com را درخواست می کنند، آدرس ماشین مهاجم را دریافت می کنند. ممکن است حاوی یک کپی از سایت واقعی باشد که با کمک آن مهاجم می تواند اطلاعات محرمانه را بدزدد.

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

سرورهای DNS از کش برای ذخیره نتایج پرس و جوهای قبلی در طول زمان استفاده می کنند. این کار برای جلوگیری از تکرار مداوم درخواست ها به سرورهای مجاز دامنه های مربوطه انجام می شود. دومین نوع حمله جعل DNS، تغییر حافظه پنهان سرور DNS است. به عنوان مثال:

ما از همان داده های مثال قبلی استفاده می کنیم. در اینجا نکات کلیدی این گزینه حمله آمده است:

    یک درخواست DNS برای حل نام www.attaquant.com به سرور DNS دامنه cible.com ارسال کنید.

    سرور DNS هدف درخواستی برای حل نام www.attaquant.com به سرور DNS مهاجم ارسال می کند.