Кіріспе

Домендік атаулардағы визуалды ұқсас әріптер

Интернационалдастырылған домендік атау (IDN) гомографтық шабуыл – қасақана зиян келтіруші тарап компьютер пайдаланушыларын олар байланысып жатқан қашықтағы жүйе туралы жаңылыстыруға тырысады, мұнда көптеген әртүрлі таңбалар бірдей көрінеді (яғни, олар гомографтар, сондықтан шабуыл осылай аталады, бірақ техникалық тұрғыдан алғанда, ұқсас әртүрлі таңбалар үшін гомоглиф дәлірек термин болып табылады). Мысалы, кириллица, грек және латын әліпбилерінде әрқайсысында бірдей пішіндегі, бірақ мағынасы әртүрлі әріптер бар. Бұл шабуыл түрі «жазу жүйесін жалғандау» деп те аталады. Юникодта көптеген жазу жүйелері бар, және бірқатар себептерге байланысты грек әрпі Ο, латын әрпі O және кириллица әрпі О сияқты бір-біріне ұқсас таңбаларға бірдей код тағайындалмаған. Оларды қате немесе қасақана пайдалану қауіпсіздікке қатер тудыру мүмкіндігін білдіреді. Мысалы, әдеттегі пайдаланушы «а» әрпінің үшінші әрпі латын әрпі «a» емес, кириллица әрпі «а» екенін білмей, оны таныс сілтеме деп ойлап, сұрақсыз басуы мүмкін, бұл мақсатталған доменнен мүлдем басқа домен екенін сезбейді. Гомографиялық домендік атауларды тіркеу типоскватингке ұқсас, себебі екі түрлі шабуыл да пайдаланушыны алдау үшін белгілі бір доменге ұқсас атауды қолданады. Басты айырмашылық – типоскватингте қылмыскер URL-ді қолмен енгізу кезінде жиі жасалатын қателерге сүйене отырып құрбандарды тартады, ал гомографтық жалғандауда қылмыскер визуалды түрде ажыратуға болмайтын гиперсілтемелерді ұсыну арқылы құрбандарды алдайды. Шындығында, веб-пайдаланушының, мысалы, «citibаnk» сияқты ағылшын сөзінің ішінде кириллица әрпін теруі сирек кездесетін жағдай. Бір тіркеу типоскватинг пен гомографтық жалғандаудың екеуі де болуы мүмкін; l/I, i/j және 0/O әріптері пернетақтада бір-біріне жақын орналасқан және, қаріпке байланысты, оларды ажырату қиын немесе мүмкін емес болуы мүмкін.

Тарих

Мұндай ертедегі қиындық, Интернетке және тіпті мәтін терминалдарына дейін, "l" (кіші әріп "L") / "1" (саны "бір") және "O" (үлкен әріп "O") / "0" (саны "нөл") арасындағы шатасу болды. Компьютерлік дәуірге дейінгі кейбір тегіш машиналарында тіпті L және бірлік біріктірілген; пайдаланушылар бірлік қажет болған кезде кіші әріпті L жазуға мәжбүр болды. Нөл/о шатасуы нөлдерді қиып жазу дәстүрін тудырды, соның арқасында компьютер операторы оларды дұрыс жазатын болды. Одан да ертерек, қолмен жазу мүмкіндіктері шатасуға кең мүмкіндік берді. Көрінетін мысал – "зенит" сөзінің этимологиясы. Араб тіліндегі "samt" сөзінен аударғанда, жазушы "m" әрпін "ni" деп жаңылыстырған. Бұл ортағасырлық қара әріптерде жиі кездесетін, онда i, m, n немесе u әріптеріндегі тік сызықтар біріктірілмейтін, сондықтан бірнеше әріп қатар тұрғанда оларды ажырату қиынға соғатын. Соңғысы, сондай-ақ "rn"/"m"/"rri" ("RN"/"M"/"RRI") шатасуы, тіпті қазіргі заманғы озық компьютерлік технологиямен де адам көзі үшін әлі де мүмкін. Әртүрлі әліпбилердегі ұқсас әріптерді қасақана алмастыру да түрлі жағдайларда белгілі. Мысалы, жалған кириллица көңіл көтеру немесе назар аудару үшін пайдаланылды, ал "Volapuk кодтау", онда кириллица әліпбиі ұқсас латын әріптерімен бейнеленеді, Интернеттің алғашқы күндері кириллица әліпбиін қолдаудың болмауымен күресу үшін қолданылды. Тағы бір мысал: көлік тіркеу нөмірлерінде кириллица (кириллица қолданылатын елдерде ішкі пайдалану үшін) және латын (халықаралық жүргізу үшін) бірдей әріптер болуы мүмкін. Грекияда шығарылатын тіркеу нөмірлері латын әліпбиінде гомоглифтері бар грек әліпбиінің әріптерін ғана қолданумен шектеледі, себебі Еуропалық Одақтың ережелері латын әріптерін қолдануды талап етеді.

ASCII-дегі гомографтар

ASCII-де бірнеше әріптер немесе бір-біріне ұқсас әріптер жұбы бар, олар гомографтар (немесе гомоглифтер) деп аталады. Осы ұқсастықтарға негізделген алдау шабуылдары гомографиялық алдау шабуылдары деп аталады. Мысалы, 0 (сан) және O (әріп), кіші әріпті "l" және үлкен әріпті "I". Гипотетикалық шабуылдың әдеттегі мысалында, біреу қолданыстағы доменге өте ұқсас, бірақ басқа жерге бағытталатын домендік атауды тіркеуі мүмкін. Мысалы, "rnicrosoft.com" домені "m" емес, "r" және "n" әріптерімен басталады. Басқа мысалдар – G00GLE.COM, ол кейбір шрифттерде GOOGLE.COM-ға ұқсайды. Үлкен және кіші әріптердің араласуымен googIe.com (үлкен "I" әрпі, кіші "l" емес) кейбір шрифттерде google.com-ға ұқсайды. PayPal осыны пайдаланып фишингтік алдаудың құрбаны болды, PayPaI.com доменін қолданды. Тахома (Windows XP-дегі мекенжай жолағының әдепкі шрифті) сияқты тар аралықты шрифттерде j, l немесе i әрпінің алдына c әрпін қою cl, cj, ci (d, g, a) сияқты гомоглифтерді тудырады.

Кирилл қарпі

Кириллица – гомоглифтер үшін ең көп қолданылатын әліпби, себебі оның құрамында латын әріптерімен бірдей немесе шамамен бірдей 11 кіші әріп бар. Кириллицадағы а, с, е, о, р, х және у әрпі негізгі латын әліпбиіндегі оптикалық әріптерге ұқсас және a, c, e, o, p, x және y-ге жақын немесе бірдей көрінеді. Кириллицаның З, Ч және б әріптері 3, 4 және 6 сандарына ұқсайды. Курсивтік шрифттер көбірек гомоглифтер тудырады: дтпи немесе дтпи (стандартты шрифттерде дтпи), dmnu-ға ұқсайды (кейбір шрифттерде д әрпі қолданылуы мүмкін, себебі оның курсивтік түрі кіші әріпті g-ға ұқсайды; алайда, көптеген стандартты шрифттерде д әрпі жартылай дифференциалдық белгіге ұқсайды, ∂). Егер үлкен әріптер де ескерілсе, АВСЕНІЈКМОРЅТХ әріптері ABCEHIJKMOPSTX әріптерін, кіші әріпті кириллицадағы гомоглифтердің үлкен әріптерімен қоса алмастыра алады. Кириллицадағы ресейлік емес, проблемалы әріптер – і және i, ј және j, ԛ және q, ѕ және s, ԝ және w, Ү және Y, ал Ғ және F, Ԍ және G бір-біріне қандай да бір ұқсастықтарды көрсетеді. Егер IDN-нің өзі жалған болса, онда Кириллицадағы ӓёїӧ әріптерін äëïö әріптерін жалғандау үшін де қолдануға болады. Коми Де (ԁ), ша (һ), палочка (Ӏ) және изжица (ѵ) әріптері латынның d, h, l және v әріптеріне өте ұқсас болғанымен, бұл әріптер сирек немесе көне және көптеген стандартты шрифттерде кеңінен қолдау таппайды (олар WGL 4 стандартына енгізілмеген). Оларды қолдану, парақорлық хат әсерін тудыруы мүмкін.

Грек тілінде

Грек әліпбиінен тек омикрон ο және кейде ню ν URL-дерде қолданылатын кіші әріптердегі латын әліпбиінің әріптерімен бірдей көрінеді. Курсивте жазылған қаріптерде грек әрпі α латынның a әрпіне ұқсайды. Егер жақын нұсқаларға рұқсат берілсе, тізім ұзарады (мысалы, грек тілінде εικηρτυωχγ eiknptuwxy). Үлкен әріптер қолданылғанда тізім едәуір кеңейеді. Грек әріптері ΑΒΕΗΙΚΜΝΟΡΤΧΥΖ латын әріптері ABEHIKMNOPTXYZ-ге ұқсас. Грек әріптері ΑΓΒΕΗΚΜΟΠΡΤΦΧ кириллицадағы АГВЕНКМОПРТФХ-қа ұқсас (сондай-ақ, кейбір геометриялық безсериф қаріптерінде кириллицаның Л (Л) және грек әрпі Λ), грек әріптері κ және ο кириллицадағы к және о-ға ұқсас. Сонымен қатар, грек әріптері τ және φ кейбір қаріптерде кириллицаның т және ф әріптеріне ұқсас болуы мүмкін, грек әрпі δ серб әліпбиіндегі кириллицаның б әрпіне ұқсас, ал кириллицаның а әрпі латын әрпімен бірдей болып, оны альфамен немесе керісінше алмастыруға мүмкіндік береді. Ай тәрізді сигманың түрі Ϲϲ латын әріптері Cc және кириллица әріптері Сс-қа ұқсас. Егер IDN жалған болса, грек әрпі β кейбір қаріптерде неміс әрпі ß-ның орнына қолданылуы мүмкін (әсіресе, 437 кодтық бетінде олар теңдес деп есептеледі), сондай-ақ грек сөзінің соңғы нұсқасы сигма ς әрпі ç әрпінің орнына қолданылуы мүмкін. Акценттері бар грек әріптері όίά көбінесе көптеген қаріптерде óíá әріптерінің орнына қолданылуы мүмкін, олардың соңғысы (альфа) тек қана курсивте жазылғанда a әрпіне ұқсайды.

Армян тілі

Армян әліпбиі маңызды таңбаларды да қоса алады: бірнеше армян әріптері, мысалы օ, ո, ս, сондай-ақ үлкен Տ және Լ қазіргі шрифттердегі латын әріптерімен толыққандай сәйкес келеді, ал ցհոօզս сияқты әріптер латын әріптеріне өте ұқсас (ghnoqu сияқты көрінеді), յ әрпі j-ға (нүктесіз болса да) ұқсайды, ал ք әрпі шрифтке байланысты p немесе f әрпін еске түсіреді; ա әрпі кириллицадағы ш әрпіне ұқсауы мүмкін. Дегенмен, армян тілінің қолданылуы аздаған сенімсіздік тудырады: барлық стандартты шрифттер армян глифтерін қамтымайды (грек және кириллица шрифттерінің керісінше); Windows 7-ден бұрынғы Windows жүйелері армян тілін ерекше Sylfaen шрифтінде көрсеткен, ал Sylfaen немесе Unicode шрифтінен басқа шрифт қолданылса, армян мен латын әріптерінің қосылуы айқын түрде көзге түседі. (Бұл «құтқару қағазы» эффектісі деп аталады.) Windows 7 жүйесінде қолданылатын Tahoma шрифтінің қазіргі нұсқасы армян тілін қолдайды (алдыңғы нұсқалары қолдамаған). Бұған қоса, бұл шрифт латынның g әрпін армянның ց әрпінен ажыратады. Армян тіліндегі екі әріп (Ձշ) 2 санына ұқсауы мүмкін, Յ әрпі 3 санына, ал тағы бір (վ) әрпі кейде 4 санына ұқсап кетеді.

еврейше

Еврей тіліндегі әріп алмастыру көбінесе сирек кездеседі. Осы әліпбиден тек үш әріпті сенімді түрде қолдануға болады: samekh (ס), кейде o әрпіне ұқсайды, диакритикалық белгісі бар vav (וֹ), i әрпіне ұқсайды және heth (ח), n әрпіне ұқсайды. Басқа алфавиттік-цифрлық белгілердің шамамен келтірілген, дәл емес нұсқаларын табуға да болады, бірақ олар көбінесе ауыстыру үшін емес, тек шетелдік брендтеу мақсатында қолдануға жеткілікті дәлдікке ие. Сонымен қатар, еврей әліпбиі оңнан солға қарай жазылады, сондықтан оны солдан оңға қарай жазылған символдармен араластыру мәселе тудыруы мүмкін.

Тайланд тілі

Таиланд жазуы тарихи түрде көптеген иректер мен ұсақ әшекейлермен ерекшеленсе, 1973 жылы Manoptica шрифтінен басталып, қазіргі заманғы IBM Plex шрифтісімен жалғасқан қазіргі тай типографиясы, тай әріптерін латын әріптеріне өте ұқсас глифтермен бейнелейтін қарапайым стильді көбірек қабылдады. К (A), Т (n), Н (u), Б (U), П (J), П (W), Р (S) және Л (a) – латын әріптеріне жақын тай глифтерінің арасында.

Қытай

Қытай тілі гомографтар тұрғысынан қиындық тудыруы мүмкін, себебі көптеген таңбалар дәстүрлі (қалыпты жазу) және оңайлатылған қытай таңбалары түрінде кездеседі. org доменінде бір нұсқаны тіркеу, екінші нұсқаны ешкімге қолжетімді етпейді; бірақ biz доменінде бір қытай тіліндегі IDN тіркеуі екі нұсқаны да белсенді домен ретінде ұсынады (олардың домендік атау сервері мен тіркеушісі бірдей болуы тиіс). hk (.香港) домені де осы саясатты қолданады.

Басқа жазулар

Басқа да омографтарды кездестіруге болатын Юникод жазуларына сандық нысандар (рим цифрлары), CJK үйлесімділігі және қоршалған CJK әріптері мен айлары (кейбір аббревиатуралар), латын (кейбір диграфтар), валюта белгілері, математикалық алфавиттік-цифрлық белгілер және әліпбилік көрсету нысандары (типографиялық лигатуралар) жатады.

Ақсақал таңбалар

Тек бір әріптің белгішесімен ғана ерекшеленетін екі атау өте ұқсас көрінуі мүмкін, әсіресе егер алмастыру нүктелі i әрпін қамтитын болса; i әрпіндегі нүкте (tittle) диакритикалық белгімен (мысалы, төменгі немесе жоғары белгіше; ì және í екеуі де көптеген стандартты әріптер жинағында және қаріптерде кездеседі) алмастырылуы мүмкін, оны тек жақыннан қарап тексеру арқылы ғана анықтауға болады. Көптеген жоғарғы деңгейлі домен тізілімдерінде wíkipedia.tld (xn--wkipedia-c2a.tld) және wikipedia.tld – әртүрлі тіркеушілерге тиесілі болуы мүмкін екі түрлі атау. Бір ерекшелік – ca, онда доменнің қарапайым ASCII нұсқасын тіркеу, басқа тіркеушіге сол атаудың белгішелі нұсқасын талап етуге мүмкіндік бермейді.

Көрсетілмейтін таңбалар

Юникодта әдетте көрсетілмейтін көптеген символдар бар, мысалы, ені нөлдік кеңістік. Жалпы алғанда, ICANN кез келген доменді, осындай символдарды қамтыса, тіркеуге тыйым салады, домендік аймаққа қарамастан.

Белгілі гомографтық шабуылдар

2011 жылы белгісіз көз ("Толық аноним" деген атпен тіркелді) KBOI TV телеарнасының домен атауын гомографиялық түрде тіркеп, жалған жаңалықтар веб-сайтын құрды. Сайттың жалғыз мақсаты – Айдахо штатының губернаторы Джастин Бибердің музыкасын сатуға тыйым салғандығы туралы сәуірдің бірінші күніне арналған әзілді тарату болды. 2017 жылдың қыркүйегінде қауіпсіздік зерттеушісі Анкит Анубхав шабуылдаушылардың adoḅe.com доменін тіркеп, Betabot троянын тарату арқылы IDN гомографиялық шабуыл жасағанын анықтады.

Клиент тарапынан жұмсалатын шығындар

Ең қарапайым қорғаныс – веб-браузерлердің IDNA немесе басқа ұқсас механизмдерді қолдамауы немесе пайдаланушылардың браузерлеріндегі қолдауды өшіруі. Бұл IDNA сайттарына кіруді тоқтатуды білдіруі мүмкін, бірақ көбінесе браузерлер кіруге рұқсат береді және IDN-ді тек Punycode форматында көрсетеді. Қай жағдайда болсын, бұл ASCII емес домендік атаулардан бас тартумен тең. Mozilla Firefox 22 және одан кейінгі нұсқалары IDN-ді көрсетеді, егер TLD домендік атауларда қолданылатын таңбаларды шектеу арқылы гомографтық шабуылдардың алдын алса немесе таңбалар әртүрлі тілдерге арналған жазу жүйелерін араластырмаса. Әйтпесе, IDN Punycode форматында көрсетіледі. Google Chrome 51 және одан кейінгі нұсқалары Firefox қолданғанға ұқсас алгоритмді пайдаланады. Алдыңғы нұсқалар IDN-ді тек қана егер оның барлық таңбалары пайдаланушы таңдаған бір (және жалғыз) тілге жатса ғана көрсетеді. Chromium және Chromium негізіндегі браузерлер, мысалы, Microsoft Edge (2019 жылдан бастап) және Opera да осы алгоритмді қолданады. Safari әдісі – проблемалық таңбалар жиынтығын Punycode ретінде көрсету. Бұл Mac OS X жүйелік файлдарындағы параметрлерді өзгерту арқылы өзгертілуі мүмкін. Internet Explorer 7 және одан кейінгі нұсқалары әртүрлі тілдерге арналған жазу жүйелерін араластыратын таңбалардан басқа IDN-ге рұқсат береді. Жазу жүйелерін араластыратын таңбалар Punycode форматында көрсетіледі. ASCII таңбалары жергілікті жазу жүйелерімен араластырылатын жағдайларға ерекшеліктер бар. Internet Explorer 7 IDN-ді қолдана алады, бірақ ол пайдаланушы анықтаған рұқсат етілген тілдер тізіміне негізделген ASCII емес домендік атауларды көрсетуге шектеулер қояды және күдікті веб-сайттарды белгілі фишинг сайттарының қашықтағы дерекқорымен салыстыратын фишингке қарсы сүзгіні қамтамасыз етеді. Ескі Microsoft Edge барлық Unicode символдарын Punycode-қа аударады. Қосымша қорғаныс ретінде Internet Explorer 7, Firefox 2.0 және одан жоғары нұсқалары, сондай-ақ Opera 9.10 құрылғыларына зиянды веб-сайттарға кіргенде пайдаланушыларды ескертуге тырысатын фишинг сүзгілерін қосады. 2017 жылдың сәуір айынан бастап бірнеше браузерлер (Chrome, Firefox және Opera сияқты) тек қана кириллица таңбаларынан тұратын IDN-ді қалыпты түрде (Punycode ретінде емес) көрсетіп, гомографтық шабуылдарға мүмкіндік берді. Chrome 59 нұсқасында IDN шектеулерін күшейтіп, осы шабуылдың алдын алды. Google Chrome және Firefox үшін No Homo Graphs сияқты браузер кеңейтімдері қол жетімді, олар пайдаланушы веб-сайтқа кіргенде, оның пайдаланушы анықтаған тізімдегі басқа доменнің гомографы емесін тексереді. Осы қорғаныс әдістері тек браузер шегінде ғана жұмыс істейді. Зыянды бағдарламаны қамтитын гомографиялық URL-дер электрондық пошта, әлеуметтік желілер немесе басқа веб-сайттар арқылы Punycode ретінде көрсетілмей таратылуы мүмкін, пайдаланушы сілтемені басып кіргенше олар анықталмайды. Сілтеме басылғанда жалған сілтеме Punycode форматында көрсетілсе де, сол кезде бет браузерге жүктеле бастайды.

Сервер жағында/реестр операторының шектеулері

IDN гомографтар дерекқоры – бұл Python кітапханасы, ол әзірлеушілерге машиналық оқыту негізінде таңбаларды тану арқылы осыған қарсы қорғануға мүмкіндік береді. ICANN кез келген мүмкін интернационалданған TLD-ге латын әліпбиіндегі TLD-ге ұқсайтын әріптерді таңдауға тыйым салатын саясатты енгізді, осылайша гомографтық шабуылдардың алдын алуға болады. Ұсынылған IDN TLD .бг (Болгария), .укр (Украина) және .ελ (Грекия) латын әріптеріне ұқсас болғандықтан қабылданбады немесе қарастырылуы тоқтап қалды. Бұл үш домен (сондай-ақ серб .срб және моңғол .мон) кейін қабылданды. Екі әріпті TLD-ге қарағанда үш әріпті TLD қауіпсіз деп есептеледі, себебі оларды стандартты латын ISO 3166 елдік домендерімен шатастыру қиын; жаңа жалпы домендермен сәйкестік мүмкіндігі сақталғанымен, мұндай домендерді тіркеу екінші немесе үшінші деңгейдегі доменді тіркеуден әлдеқайда қымбат, сондықтан жалған домендер жасау мақсатымен гомоглифтік TLD-ні тіркеуге тырысу өте қымбатқа түседі (мұндай әрекет ICANN-ның назарына түседі). Ресейлік домендік оператор, Координациялық орталық, .рф домені үшін тек кириллицадағы атауларды қабылдайды, латын немесе грек әріптерін араластыруға тыйым салады. Дегенмен, com және басқа gTLD-лердегі мәселе әлі де шешілмеген.

Зерттеуге негізделген жеңілдету шаралары

2019 жылғы зерттеулерінде Сузуки және авторлар тобы IDN-ді тануға арналған ShamFinder бағдарламасын ұсынды, осылайша олардың нақты қолданыстағы жағдайлардағы кең таралғанын көрсетті. Сол сияқты, Чиба және авторлар тобы (2019) DomainScouter жүйесін жасады, ол 570 жоғарғы деңгейлі домен (TLD) бойынша шамамен 4,4 миллион тіркелген IDN-ді талдау арқылы домендердегі әртүрлі гомографиялық IDN-ді анықтауға қабілетті. Ол 8 284 IDN гомографының табысқа қол жеткізді, соның ішінде ағылшын тілінен өзге тілдердегі брендтерге бағытталған көптеген бұрын анықталмаған жағдайлар да бар еді.