Atak homografem IDN

An example of an IDN homograph attack; the Latin letters "e" and "a" are replaced with the Cyrillic letters "е" and "а".
Przykład ataku homografem IDN; łacińskie litery „e” i „a” zastępuje się literami cyrylicy „е” i „а”.

z homografem międzynarodowej nazwy domeny ( IDN ) to sposób, w jaki złośliwa strona może oszukać użytkowników komputerów co do zdalnego systemu, z którym się komunikują, wykorzystując fakt, że wiele różnych znaków wygląda podobnie (tj. ataku, chociaż technicznie rzecz biorąc, homoglif jest bardziej dokładnym określeniem dla różnych postaci, które wyglądają podobnie). Na przykład zwykły użytkownik witryny example.com może zostać zwabiony do kliknięcia łącza, w którym znak łaciński a " zastępuje się znakiem cyrylicy "а" .

Ten rodzaj ataku polegającego na fałszowaniu jest również znany jako fałszowanie skryptów . Unicode obejmuje wiele systemów pisma i z wielu powodów podobnie wyglądające znaki, takie jak greckie Ο , łacińskie O i cyrylica О, nie zostały przypisane do tego samego kodu. Ich nieprawidłowe lub złośliwe użycie stwarza możliwość ataków bezpieczeństwa.

Rejestracja homograficznych nazw domen jest podobna do typosquattingu , ponieważ obie formy ataków używają nazwy podobnej do bardziej znanej domeny, aby oszukać użytkownika. Główna różnica polega na tym, że w typosquattingu sprawca przyciąga ofiary, opierając się na naturalnych błędach typograficznych, które są często popełniane podczas ręcznego wprowadzania adresu URL , podczas gdy w przypadku homograph spoofingu sprawca oszukuje ofiary, prezentując wizualnie nierozróżnialne hiperłącza . Rzeczywiście, byłoby rzadkim przypadkiem, gdyby użytkownik sieci wpisał na przykład literę cyrylicy w angielskie słowo, takie jak „citibаnk”. Istnieją przypadki, w których rejestracja może być zarówno typosquattingiem, jak i fałszowaniem homografu; pary l/I , i/j i 0/O znajdują się blisko siebie na klawiaturach i, w zależności od kroju pisma, rozróżnienie może być trudne lub niemożliwe.

Historia

Homoglify są powszechne w trzech głównych alfabetach europejskich: łacińskim , greckim i cyrylicy . Unicode nie próbuje ujednolicić glifów i zamiast tego oddziela każdy skrypt .

Wczesną uciążliwością tego rodzaju, poprzedzającą datowanie Internetu, a nawet terminali tekstowych , było mylenie „l” (mała litera „L”) / „1” (liczba „jeden”) i „O” (duża litera oznaczająca samogłoska „o”) / „0” (liczba „zero”). Niektóre maszyny do pisania w erze przedkomputerowej łączyły nawet L i jedynkę ; użytkownicy musieli wpisać małą literę L, gdy potrzebny był numer jeden. Zamieszanie zero/o dało początek tradycji przecinania zer , czyli operatora komputera wpisałby je poprawnie. Unicode może się do tego znacznie przyczynić dzięki łączeniu znaków, akcentów, kilku rodzajów łączników itp., Często z powodu nieodpowiedniej obsługi renderowania , zwłaszcza w przypadku mniejszych rozmiarów czcionek i szerokiej gamy czcionek.

Jeszcze wcześniej pismo odręczne dawało wiele okazji do zamieszania. Godnym uwagi przykładem jest etymologia słowa „ zenit ”. Tłumaczenie z arabskiego „samt” obejmowało pomylenie przez skrybę „m” z „ni”. Było to powszechne w średniowiecznych czarnych listach , które nie łączyły pionowych kolumn na literach i, m, n lub u, co utrudniało ich rozróżnienie, gdy kilka było z rzędu. To ostatnie, podobnie jak pomieszanie „rn”/„m”/„rri” („RN”/„M”/„RRI”), jest nadal możliwe dla ludzkiego oka, nawet przy nowoczesnej zaawansowanej technologii komputerowej.

W różnych kontekstach znane jest również celowe zastępowanie podobnych znaków różnymi alfabetami. Na przykład sztuczna cyrylica była używana jako rozrywka lub przyciąganie uwagi, a „ kodowanie Volapuk ”, w którym cyrylica jest reprezentowana przez podobne znaki łacińskie, było używane we wczesnych latach Internetu jako sposób na przezwyciężenie braku wsparcia dla cyrylicy. Innym przykładem są tablice rejestracyjne pojazdów może mieć zarówno cyrylicę (do użytku domowego w krajach posługujących się cyrylicą), jak i łacinę (do jazdy międzynarodowej) z tymi samymi literami. Tablice rejestracyjne wydawane w Grecji ograniczają się do używania liter alfabetu greckiego , które mają homoglify w alfabecie łacińskim, ponieważ przepisy Unii Europejskiej wymagają użycia liter łacińskich.

Homografy w ASCII

ASCII ma kilka znaków lub par znaków, które wyglądają podobnie i są znane jako homografy (lub homoglify ). Ataki polegające na fałszowaniu oparte na tych podobieństwach są znane jako ataki polegające na fałszowaniu homografów . Na przykład 0 (liczba) i O (litera), „l” małe L i „I” wielkie „i”.

W typowym przykładzie hipotetycznego ataku ktoś może zarejestrować nazwę domeny , która wygląda prawie identycznie jak istniejąca domena, ale idzie gdzie indziej. Na przykład domena „rnicrosoft.com” zaczyna się od „r” i „n”, a nie od „m”. Inne przykłady to G00GLE.COM , która w niektórych czcionkach wygląda podobnie do GOOGLE.COM . Używając kombinacji wielkich i małych liter, googIe.com (duże i , a nie małe L ) wygląda bardzo podobnie do google.com w niektórych czcionkach. PayPal był celem oszustwa phishingowego wykorzystującego to przy użyciu domeny PayPaI.com . W niektórych czcionkach o wąskich odstępach, takich jak Tahoma (domyślnie w pasku adresu w systemie Windows XP ), umieszczenie c przed j , l lub i spowoduje utworzenie homoglifów, takich jak cl cj ci (dga).

Homografy w umiędzynarodowionych nazwach domen

W wielojęzycznych systemach komputerowych różne znaki logiczne mogą mieć identyczny wygląd. Na przykład Unicode U+0430, mała litera a cyrylicy („а”), może wyglądać identycznie jak znak Unicode U+0061, mała litera łacińska a, („a”), która jest małą literą „a” używaną w języku angielskim. Stąd wikipediа.org ( xn--wikipedi-86g.org ; wersja cyrylicy) zamiast wikipedia.org (wersja łacińska).

Problem wynika z odmiennego traktowania znaków w umyśle użytkownika iw oprogramowaniu komputera. Z punktu widzenia użytkownika cyrylica „а” w łańcuchu łacińskim to łacińskie „a”; w większości czcionek nie ma różnicy w glifach tych znaków. Jednak komputer traktuje je inaczej podczas przetwarzania ciągu znaków jako identyfikatora. W ten sposób załamuje się założenie użytkownika o zgodności jeden do jednego między wizualnym wyglądem nazwy a nazwaną jednostką.

Umiędzynarodowione nazwy domen zapewniają kompatybilność wsteczną dla nazw domen, aby używać pełnego zestawu znaków Unicode, a ten standard jest już powszechnie obsługiwany. Jednak ten system rozszerzył repertuar znaków z kilkudziesięciu znaków w jednym alfabecie do wielu tysięcy znaków w wielu pismach; znacznie zwiększyło to zakres ataków homograficznych.

Otwiera to bogate możliwości dla phishingu i innych rodzajów oszustw. Osoba atakująca może zarejestrować nazwę domeny, która wygląda tak samo jak nazwa legalnej witryny internetowej, ale w której niektóre litery zostały zastąpione homografami w innym alfabecie. Osoba atakująca może następnie wysyłać wiadomości e-mail, które rzekomo pochodzą z oryginalnej witryny, ale przekierowują użytkowników do fałszywej witryny. Fałszywa witryna może następnie zapisywać informacje, takie jak hasła lub dane konta, podczas przekazywania ruchu do prawdziwej witryny. Ofiary mogą nigdy nie zauważyć różnicy, dopóki na ich kontach nie pojawi się podejrzana lub przestępcza działalność.

W grudniu 2001 roku Evgeniy Gabrilovich i Alex Gontmakher, obaj z Technion w Izraelu , opublikowali artykuł zatytułowany „The Homograph Attack”, w którym opisano atak wykorzystujący adresy URL Unicode do sfałszowania adresu URL witryny . Aby udowodnić wykonalność tego rodzaju ataku, naukowcom udało się zarejestrować wariant nazwy domeny microsoft .com , który zawierał znaki cyrylicy.

Problemy tego rodzaju przewidywano przed wprowadzeniem IDN i wydano wytyczne dla rejestrów, aby spróbować uniknąć lub ograniczyć problem. Na przykład doradzono, aby rejestry akceptowały tylko znaki z alfabetu łacińskiego i alfabetu własnego kraju, a nie wszystkie znaki Unicode, ale ta rada została zlekceważona przez główne TLD . [ potrzebne źródło ]

7 lutego 2005 r. Slashdot poinformował, że ten exploit został ujawniony przez 3rica Johansona na konferencji hakerów Shmoocon . Przeglądarki internetowe obsługujące IDNA wydawały się kierować adres URL http://www.pаypal.com/, w którym pierwszy znak jest zastąpiony cyrylicą а , na stronę dobrze znanego serwisu płatności PayPal , ale w rzeczywistości prowadziły do ​​sfałszowanej strony strona internetowa o różnej zawartości. Popularne przeglądarki nadal miały problemy z prawidłowym wyświetlaniem międzynarodowych nazw domen do kwietnia 2017 r.

Następujące alfabety mają znaki, które mogą być użyte do ataków podszywania się (należy pamiętać, że są to tylko najbardziej oczywiste i powszechne, biorąc pod uwagę licencję artystyczną i ryzyko, jakie podejmie fałszerz, aby zostać złapanym; możliwości jest znacznie więcej, niż można wymienić Tutaj):

cyrylica

Cyrylica jest zdecydowanie najczęściej używanym alfabetem dla homoglifów, głównie dlatego, że zawiera 11 małych glifów, które są identyczne lub prawie identyczne z łacińskimi odpowiednikami.

Litery cyrylicy а , с , е , о , р , х i у mają optyczne odpowiedniki w podstawowym alfabecie łacińskim i wyglądają podobnie do a , c , e , o , p , x i y . Cyrylica З , Ч i б przypominają cyfry 3 , 4 i 6 . Kursywa generuje więcej homoglifów: дтпи lub дтпи ( д т п и w standardowej czcionce), przypominające d m n u (w niektórych czcionkach można użyć д , ponieważ jego kursywa przypomina małą literę g ; jednak w większości popularnych czcionek д zamiast tego przypomina częściowy znak różniczkowy , ).

Jeśli liczyć wielkie litery, А В С Е Н І Ј К М О Р Ѕ Т Х może zastąpić A B C E H I J K M O P S T X , oprócz wielkich liter dla małych cyrylicy homoglifów.

Problematyczne litery cyrylicy nierosyjskie to і i i , ј i j , ԛ ​​i q , ѕ i s , ԝ i w , Ү i Y , podczas gdy Ғ i F , Ԍ i G są do siebie w pewnym stopniu podobne. Cyrylicy ӓ ё ї ӧ można również użyć, jeśli sama nazwa IDN jest sfałszowana, aby sfałszować ä ë ï ö .

Chociaż Komi De ( đ ), shha ( һ ), palochka ( Ӏ ) i izhitsa ( ѵ ) są bardzo podobne do łacińskich d, h, l i v, te litery są albo rzadkie, albo archaiczne i nie są szeroko obsługiwane w większości standardowych czcionek (nie są ujęte w WGL-4 ). Próba ich użycia może wywołać efekt żądania okupu .

grecki

Z alfabetu greckiego tylko omicron ο i czasami nu ν wydają się identyczne z literami alfabetu łacińskiego małymi literami używanymi w adresach URL. Czcionki pisane kursywą będą zawierały greckie alfa, które wygląda jak łacińskie a .

Ta lista zwiększa się, jeśli dozwolone są również bliskie dopasowania (takie jak greckie εικηρτυωχγ dla eiknptuwxy). Używając wielkich liter , lista znacznie się rozszerza. Greckie ΑΒΕΗΙΚΜΝΟΡΤΧΥΖ wygląda identycznie jak łacińskie ABEHIKMNOPTXYZ. Greckie ΑΓΒΕΗΚΜΟΠΡΤΦΧ wygląda podobnie do cyrylicy АГВЕНКМОПРТФХ (podobnie jak cyrylica Л (Л) i greckie Λ w niektórych geometrycznych czcionkach bezszeryfowych), greckie litery κ i ο wyglądają podobnie do cyrylicy к i о. Poza tym greckie τ, φ może być podobne do cyrylicy т, ф w niektórych czcionkach, greckie δ przypomina cyrylicę б w alfabecie serbskim , a cyrylica а również kursywą to samo, co jego łaciński odpowiednik, co umożliwia zastąpienie go alfa lub odwrotnie. Księżycowa forma sigma, Ϲϲ, przypomina zarówno łacińską Cc, jak i cyrylicę Сс.

Jeśli sama nazwa IDN jest sfałszowana, greckie beta β może zastąpić niemieckie eszett ß w niektórych czcionkach (i w rzeczywistości strona kodowa 437 traktuje je jako równoważne), podobnie jak grecka odmiana końca słowa sigma ς dla ç ; akcentowane greckie zamienniki όίά mogą być zwykle używane dla óíá w wielu czcionkach, przy czym ostatnia z nich (alfa) ponownie przypomina tylko czcionkę pisaną kursywą.

ormiański

Alfabet ormiański może również zawierać krytyczne znaki: kilka znaków ormiańskich, takich jak օ, ո, ս, a także wielkie Տ i Լ są często całkowicie identyczne ze znakami łacińskimi we współczesnych czcionkach i symbolami, które są na tyle podobne, że można je udawać, takie jak ցհոօզս, które wyglądają jak ghnoqu, յ, które przypomina j (choć bez kropki) i ք, które może przypominać p lub f w zależności od czcionki; ա może przypominać cyrylicę ш. Jednak użycie języka ormiańskiego jest na szczęście nieco mniej niezawodne: nie wszystkie standardowe czcionki zawierają ormiańskie glify (podczas gdy pismo greckie i cyrylica tak); Windows przed Windows 7 renderował ormiański przy użyciu odrębnej czcionki Sylfaen , którego połączenie ormiańskiego z łaciną wyglądałoby oczywiście inaczej, gdyby użyto czcionki innej niż Sylfaen lub kroju pisma Unicode . (Jest to znane jako efekt żądania okupu .) Bieżąca wersja Tahomy , używana w systemie Windows 7, obsługuje ormiański (poprzednie wersje nie). Ponadto ta czcionka odróżnia łacińskie g od ormiańskiego ց.

Dwie litery w języku ormiańskim (Ձշ) również mogą przypominać cyfrę 2, Յ przypomina 3, a inna (վ) czasami przypomina cyfrę 4.

hebrajski

Podszywanie się pod język hebrajski jest na ogół rzadkie. Można wiarygodnie użyć tylko trzech liter z tego alfabetu: samekh (ס), które czasami przypomina o, vav ze znakiem diakrytycznym (וֹ), które przypomina i, oraz heth (ח), które przypomina literę n. Można również znaleźć mniej dokładne aproksymacje dla niektórych innych znaków alfanumerycznych, ale są one zwykle wystarczająco dokładne, aby można je było wykorzystać do celów brandingu zagranicznego , a nie do zastąpienia. Co więcej, alfabet hebrajski jest zapisywany od prawej do lewej i próba pomieszania go z glifami pisanymi od lewej do prawej może powodować problemy.

tajski


U góry: glify tajskie renderowane nowoczesną czcionką (IBM Plex), w której przypominają glify łacińskie. U dołu: te same glify renderowane za pomocą tradycyjnych pętli.

Chociaż pismo tajskie miało historycznie wyraźny wygląd z licznymi pętlami i małymi ozdobnikami, współczesna typografia tajska , poczynając od Manoptica w 1973 r. I kontynuując IBM Plex w epoce nowożytnej, coraz częściej przyjmowała uproszczony styl, w którym tajskie znaki są reprezentowane za pomocą glifów bardzo przypominające litery łacińskie. ค (A), ท (n), น (u), บ (U), ป (J), พ (W), ร (S) i ล (a) należą do tajskich glifów, które mogą bardzo przypominać łacinę .

chiński

Język chiński może być problematyczny w przypadku homografów, ponieważ istnieje wiele znaków zarówno tradycyjnych (zwykłe pismo), jak i uproszczonych znaków chińskich . W .org zarejestrowanie jednego wariantu powoduje, że drugi jest niedostępny dla nikogo; w .biz pojedyncza chińskojęzyczna rejestracja IDN zapewnia oba warianty jako aktywne domeny (które muszą mieć ten sam serwer nazw domen i tego samego abonenta). .hk (.香港) również przyjmuje tę politykę.

Inne skrypty

Inne skrypty Unicode, w których można znaleźć homografy, obejmują formy liczbowe ( cyfry rzymskie ), zgodność z CJK oraz dołączone litery i miesiące CJK (niektóre skróty), łacinę (niektóre dwuznaki), symbole walut , matematyczne symbole alfanumeryczne i alfabetyczne formy prezentacji ( ligatury typograficzne ).

Akcentowane znaki

Dwa imiona, które różnią się tylko akcentem na jednym znaku, mogą wyglądać bardzo podobnie, zwłaszcza gdy zastąpienie dotyczy kropkowanej litery i ; tytuł (kropkę) na i można zastąpić znakiem diakrytycznym ( takim jak akcent poważny lub ostry ; zarówno ì, jak i í są zawarte w większości standardowych zestawów znaków i czcionek), który można wykryć tylko po dokładnym przyjrzeniu się. W większości rejestrów domen najwyższego poziomu wíkipedia.tld (xn--wkipedia-c2a.tld) ​​i wikipedia.tld to dwie różne nazwy, które mogą być używane przez różnych rejestrujących. Jedynym wyjątkiem jest .ca , gdzie zarezerwowanie zwykłej wersji ASCII domeny uniemożliwia innemu rejestrującemu zastrzeżenie wersji tej samej nazwy z akcentami.

Niewyświetlane znaki

Unicode zawiera wiele znaków, które nie są domyślnie wyświetlane, takich jak spacja o zerowej szerokości . Ogólnie rzecz biorąc, ICANN zabrania rejestracji dowolnej domeny zawierającej te znaki, niezależnie od domeny TLD.

Znane ataki homograficzne

W 2011 roku nieznane źródło (rejestrujące się pod nazwą „Complety Anonymous”) zarejestrowało nazwę domeny homograficzną stacji telewizyjnej KBOI-TV w celu stworzenia fałszywej strony informacyjnej . Jedynym celem strony było rozpowszechnianie prima aprilisowego żartu dotyczącego wydania przez gubernatora stanu Idaho rzekomego zakazu sprzedaży muzyki Justina Biebera .

We wrześniu 2017 r. Ankit Anubhav, badacz bezpieczeństwa, odkrył atak z homografem IDN, w którym osoby atakujące zarejestrowały witrynę adoḅe.com w celu dostarczenia trojana Betabot.

Obrona przed atakiem

Łagodzenie po stronie klienta

Najprostszą obroną jest, aby przeglądarki internetowe nie obsługiwały IDNA lub innych podobnych mechanizmów, lub aby użytkownicy wyłączali wszelkie wsparcie, jakie mają ich przeglądarki. Może to oznaczać blokowanie dostępu do witryn IDNA, ale generalnie przeglądarki zezwalają na dostęp i wyświetlają tylko nazwy IDN w formacie Punycode . Tak czy inaczej, oznacza to porzucenie nazw domen innych niż ASCII.

  • Przeglądarka Google Chrome w wersji 51 i nowszych używa algorytmu podobnego do algorytmu używanego przez przeglądarkę Firefox. Poprzednie wersje wyświetlają nazwę IDN tylko wtedy, gdy wszystkie jej znaki należą do jednego (i tylko jednego) języka preferowanego przez użytkownika. Chromium i przeglądarki oparte na Chromium, takie jak Microsoft Edge (od 2019 r.) i Opera , również używają tego samego algorytmu.
  • Safari polega na renderowaniu problematycznych zestawów znaków jako Punycode . Można to zmienić, zmieniając ustawienia w plikach systemowych Mac OS X.
  • Mozilla Firefox w wersji 22 i nowszych wyświetla nazwy IDN, jeśli albo TLD zapobiega atakom homograficznym, ograniczając znaki, które mogą być używane w nazwach domen lub etykietach, nie mieszając skryptów dla różnych języków. W przeciwnym razie nazwy IDN są wyświetlane w formacie Punycode.
  • Internet Explorer w wersji 7 i nowszych zezwala na nazwy IDN z wyjątkiem etykiet, które zawierają różne skrypty dla różnych języków. Etykiety zawierające różne skrypty są wyświetlane w formacie Punycode. Istnieją wyjątki od ustawień regionalnych, w których znaki ASCII są często mieszane ze zlokalizowanymi skryptami. Internet Explorer 7 był w stanie korzystać z nazw IDN, ale nakłada ograniczenia na wyświetlanie nazw domen innych niż ASCII w oparciu o zdefiniowaną przez użytkownika listę dozwolonych języków i zapewnia filtr antyphishingowy, który sprawdza podejrzane strony internetowe w zdalnej bazie danych znanych witryn phishingowych . [ potrzebne źródło ]
  • Stary Microsoft Edge konwertuje cały Unicode na Punycode. [ potrzebne źródło ]

Jako dodatkową ochronę Internet Explorer 7, Firefox 2.0 i nowsze oraz Opera 9.10 zawierają filtry phishingowe, które próbują ostrzegać użytkowników, gdy odwiedzają złośliwe strony internetowe. Od kwietnia 2017 r. kilka przeglądarek (w tym Chrome, Firefox i Opera) wyświetlało nazwy IDN składające się wyłącznie ze znaków cyrylicy (nie jako punycode), co umożliwiało ataki typu spoofing. Chrome zaostrzył ograniczenia IDN w wersji 59, aby zapobiec temu atakowi.

Google Chrome i Firefox dostępne są rozszerzenia przeglądarki typu No Homo-Graphs , które sprawdzają, czy użytkownik odwiedza witrynę, która jest homografem innej domeny ze zdefiniowanej przez użytkownika listy.

Te metody obrony obejmują tylko przeglądarkę. Homograficzne adresy URL, w których znajduje się złośliwe oprogramowanie, nadal mogą być rozpowszechniane, bez wyświetlania ich jako Punycode, za pośrednictwem poczty e-mail , sieci społecznościowych lub innych witryn internetowych bez wykrycia, dopóki użytkownik nie kliknie łącza. Chociaż fałszywy link pojawi się w Punycode po kliknięciu, w tym momencie strona już zaczęła się ładować do przeglądarki, a złośliwe oprogramowanie mogło już zostać pobrane na komputer.

Łagodzenie działania operatora po stronie serwera/rejestru

Baza danych homografów IDN to biblioteka Pythona, która pozwala programistom bronić się przed tym za pomocą rozpoznawania znaków opartego na uczeniu maszynowym .

ICANN wdrożyła politykę zabraniającą jakiejkolwiek potencjalnie umiędzynarodowionej TLD wybierania liter, które mogłyby przypominać istniejącą łacińską TLD, a tym samym być wykorzystywane do ataków homograficznych. Proponowane domeny TLD IDN .бг (Bułgaria), .укр (Ukraina) i .ελ (Grecja) zostały odrzucone lub zablokowane z powodu ich postrzeganego podobieństwa do liter łacińskich. Wszystkie trzy (oraz serbski .срб i mongolski .мон ) zostały później zaakceptowane. Trzyliterowe TLD są uważane za bezpieczniejsze niż dwuliterowe TLD, ponieważ trudniej je dopasować do normalnych łacińskich domen krajowych ISO-3166; chociaż potencjał dopasowywania nowych domen generycznych pozostaje, takie domeny generyczne są znacznie droższe niż rejestracja adresu domeny drugiego lub trzeciego poziomu, co sprawia, że ​​​​próba rejestracji homoglificznej domeny TLD wyłącznie w celu tworzenia oszukańczych domen jest nieopłacalna ( co samo w sobie pociągnęłoby za sobą kontrolę ICANN).

Rosyjski operator rejestru Centrum Koordynacji dla TLD RU akceptuje tylko nazwy cyrylicy dla domeny najwyższego poziomu .рф , zabraniając mieszania ze znakami łacińskimi lub greckimi. Jednak problem w domenie .com i innych domenach gTLD pozostaje otwarty.

Zobacz też

Linki zewnętrzne