Кіріспе
Жарамсыз DNS деректерін пайдаланатын кибершабуыл – DNS-ті жалғандау, сондай-ақ DNS кэшін улау деп аталады. Бұл компьютерлік қауіпсіздікті бұзудың бір түрі, онда бұрмаланған Домендік атаулар жүйесінің деректері DNS-ті шешушінің кэшіне енгізіліп, атау серверіне қате нәтиже жазбасын қайтаруға себеп болады, мысалы IP-адресті. Нәтижесінде трафик шабуылшы таңдаған кез келген компьютерге бағытталады.
DNS spoofing, also referred to as DNS cache poisoning, is a form of computer security hacking in which corrupt Domain Name System data is introduced into the DNS resolver's cache, causing the name server to return an incorrect result record, e. g. an IP address. This results in traffic being diverted to any computer that the attacker chooses.
Домендік атаулар жүйесінің жалпы көрінісі
Домендік атаулар жүйесінің сервері адам оқи алатын домендік атауды (мысалы, example.com) түйіндер арасындағы байланысты маршруттау үшін қолданылатын сандық IP-адреске аударады. Әдетте, егер сервер сұралған аударманы білмесе, ол басқа серверден сұрайды, және бұл процесс рекурсивті түрде жалғаса береді. Өнімділікті арттыру үшін сервер әдетте осы аудармаларды белгілі бір уақытқа есте сақтайды (кэштейді). Бұл, егер ол сол аударма үшін тағы бір сұрау алса, кэш мерзімі біткенше басқа серверлерге сұрау жібермей-ақ жауап бере алады деген сөз. DNS сервері бұрыс аударма алса және оны өнімділікті жақсарту үшін кэштей сақтаса, ол «уланған» деп есептеледі және бұрыс деректерді клиенттерге жібереді. DNS сервері уланған болса, ол қате IP-адресті қайтара алады, соның салдарынан трафик басқа компьютерге (көбінесе шабуылшының компьютеріне) бағытталады.
Кэшке қарсы шабуылдар
Көбінесе, желіге қосылған компьютер Интернет-провайдер (ISP) немесе компьютер пайдаланушысының ұйымы ұсынатын DNS серверін пайдаланады. DNS серверлері ұйым желісінде бұрын алынған сұраныс нәтижелерін кэштеу арқылы шешімді жауап беру жылдамдығын арттыру үшін қолданылады. Бір DNS серверіне жасалған улану шабуылдары, тікелей сол зақымдалған сервермен қызмет көрсетілетін немесе оның бағынышты серверлері арқылы жанама түрде қызмет көрсетілетін пайдаланушыларға әсер етуі мүмкін. Кэшке зиян келтіру үшін шабуылшы DNS бағдарламалық құралындағы қателерді пайдаланады. Сервер DNS жауаптарын дұрыс тексеруі керек, олар сенімді дереккөзден (мысалы, DNSSEC қолдану арқылы) екенін қамтамасыз ету үшін; әйтпесе сервер дұрыс емес жазбаларды жергілікті кэште сақтап, оларды сол сұранысты жасаған басқа пайдаланушыларға ұсына алады. Бұл шабуыл пайдаланушыларды веб-сайттан шабуылшы таңдаған басқа сайтқа қайта бағыттау үшін пайдаланылуы мүмкін. Мысалы, шабуылшы белгілі бір DNS серверіндегі мақсатты веб-сайттың IP-адресіне қатысты DNS жазбаларын жалғандап, оларды өзі басқаратын сервердің IP-адресімен ауыстырады. Содан кейін шабуылшы өзі басқаратын серверде мақсатты сервердегі аттармен сәйкес келетін файлдарды жасайды. Бұл файлдар көбінесе компьютер құрттары мен вирустар сияқты зиянды кодты қамтиды. Уланған DNS серверіне сілтеме жасаған пайдаланушы, сенімсіз серверден келген мазмұнды қабылдап алып, білмей тұрып зиянды кодты жүктеп алады. Бұл әдіс фишинг шабуылдары үшін де қолданылуы мүмкін, онда банктік және кредит/дебет картасының деректері сияқты жеке ақпаратты жинау үшін нақты веб-сайттың жалған нұсқасы жасалады. DNS кэшіне улануға жүйелердің осалдығы тікелей әсерінен асып түседі, себебі ол пайдаланушыларды фишинг, зиянды бағдарламалық құралдарды енгізу, қызмет көрсетуден бас тарту және жүйедегі осалдықтарға байланысты веб-сайтты басып алу сияқты қосымша қауіптерге ұшыратады. Әлеуметтік инженерия тәсілдерін қолданудан бастап, DNS серверлік бағдарламалық құралындағы әлсіздіктерді пайдалануға дейінгі әртүрлі әдістер осы шабуылдарға әкелуі мүмкін.
Нұсқалар
Келесі нұсқаларда серверге қатысты жазбалар уланып, шабуылшының IP-мекенжайындағы атау серверіне қайта бағытталады. Бұл шабуылдар атау сервері үшін екенін болжайды. Шабуыл жасау үшін шабуылшы мақсатты DNS серверін өзінің атау серверлерінің бірі басқаратын доменге сұрау жіберуге мәжбүрлеуі керек.
To accomplish the attacks, the attacker must force the target DNS server to make a request for a domain controlled by one of the attacker's nameservers.
Алдын алу және азайту
DNS серверлеріне қарсы кэшке уланудың көптеген шабуылдарын басқа DNS серверлері берген ақпаратқа сену деңгейін төмендету және сұрауға тікелей қатысы жоқ DNS жазбаларын назардан тыс қалдыру арқылы болдырмауға болады. Мысалы, BIND 9.5.0 P1 және одан жоғары нұсқалары осы тексерулерді жүргізеді. DNS сұраныстарын бастапқы портты кездейсоқ реттеу, криптографиялық тұрғыдан қауіпсіз кездейсоқ сандарды пайдаланумен біріктіріліп, бастапқы портты және 16 биттік криптографиялық нонсті таңдау, DNS жарысының сәтті шабуылдарын жасау ықтималдығын едәуір азайта алады. Дегенмен, маршрутизаторлар, брандмауэрлер, проксилер және басқа шлюз құрылғылары желілік адрес трансляциясын (NAT) немесе, дәлірек айтқанда, порт адрес трансляциясын (PAT) орындағанда, қосылым күйін қадағалау үшін бастапқы порттарды қайта жаза алады. PAT құрылғылары бастапқы порттарды өзгерткенде, атау серверлері мен түйінді шешушілер іске асырған бастапқы порттың кездейсоқтығын жоюы мүмкін. Secure DNS (DNSSEC) деректердің нақтылығын анықтау үшін сенімді ашық кілт сертификатымен цифрлық қолтаңбаларды қолданады. DNSSEC кэшке улану шабуылдарына қарсы тұра алады. 2010 жылы DNSSEC Интернет түбірлік аймағы серверлерінде іске асырылды, бірақ оны барлық жоғарғы деңгейдегі домен серверлерінде де орналастыру қажет. Олардың DNSSEC-ке дайындығы Интернет-жоғарғы деңгейлі домендер тізімінде көрсетілген. 2020 жылғы мәліметтер бойынша, барлық бастапқы TLD-лер DNSSEC-ті қолдайды, сондай-ақ көптеген ірі елдердің елдік кодты TLD-лері де қолдайды, бірақ көптеген елдік кодты TLD-лер әлі де қолдамайды. Мұндай шабуылдарды байланыс орнатылғаннан кейін, тасымалдау немесе қолданба деңгейінде толық тексеру жүргізу арқылы жеңілдетуге болады. Бұған жалпы мысал ретінде Транспорттық қабаттық қауіпсіздік және цифрлық қолтаңбаларды пайдалануды келтіруге болады. Мысалы, HTTPS (HTTP-нің қауіпсіз нұсқасы) арқылы пайдаланушылар сервердің цифрлық сертификатының жарамдылығын және оның веб-сайттың күтілетін иесіне тиесілігін тексеруге болады. Сол сияқты, қауіпсіз қабықша қашықтан кіру бағдарламасы сессияны жалғастыру алдында соңғы нүктелердегі (егер белгілі болса) цифрлық сертификаттарды тексереді. Автоматты түрде жаңартуларды жүктейтін қолданбалар үшін, қолданба қолтаңбалау сертификатының көшірмесін жергілікті түрде сақтап, бағдарламалық жасақтама жаңартуында сақталған қолтаңбаны кіріктірілген сертификатқа қатысты растай алады.