Blog 24/7

atak homograficzny

TAB. 1Hasłoobie formy
Po angielskuhomograph attack
Którą formą pisaćobie formy Obie formy są w obiegu. Przy pierwszym wystąpieniu pisz „polski termin (english term)”, dalej sam polski.
Inne formypodszycie się pod domenę znakami łudząco podobnymi · fałszywa domena ze znakami cyrylicy
KategoriaAtaki i socjotechnika

Atak homograficzny (homograph attack) to podszycie się pod znaną domenę lub nazwę za pomocą znaków łudząco podobnych do liter oryginału. Najczęściej są to litery z innych alfabetów, na przykład cyrylicy lub greki, użyte w internacjonalizowanych nazwach domen (IDN). Unicode definiuje takie ciągi jako mylące (confusable): dwa napisy są mylące wtedy, gdy po sprowadzeniu do wspólnego „szkieletu” dają ten sam wynik [1]. Podobieństwo może też występować wewnątrz alfabetu łacińskiego, na przykład „rn” zamiast „m” albo cyfra 0 zamiast litery O. Atak jest jedną z form spoofingu domeny i służy głównie do phishingu.

Jak działa

Domeny w DNS zapisuje się znakami ASCII. Żeby w nazwie mogły wystąpić litery narodowe, stosuje się kodowanie Punycode, które jednoznacznie i odwracalnie zamienia napis Unicode na napis ASCII [2]. Etykieta zakodowana w ten sposób zaczyna się od specjalnego przedrostka, w praktyce „xn--” [2]. Przeglądarka może pokazać użytkownikowi wersję Unicode albo wersję zakodowaną.

Atakujący wykorzystuje tę różnicę. Rejestruje domenę, która w zapisie Unicode wygląda jak znana marka, a w DNS ma zupełnie inną nazwę. Jeśli przeglądarka pokaże wersję Unicode, użytkownik nie odróżni jej od oryginału. Schemat poniżej pokazuje drogę od rejestracji do wyłudzenia danych.

RYS. 1Atak homograficzny na domenę

Odmiany

Specyfikacja UTS #39 rozróżnia kilka rodzajów mylących napisów [1]. Najważniejsze dla bezpieczeństwa domen zestawia tabela.

RodzajOpisPrzykład
mieszany zestaw pismznaki z różnych alfabetów w jednym napisie [1]„paypal” z cyrylicką literą „а” [1]
całe słowo z innego pismakażda litera z jednego, obcego alfabetu [1]„scope” zapisane cyrylicą [1]
w obrębie jednego pismapodobne znaki z tego samego alfabetu [1]litera z akcentem zamiast zwykłej
bez Unicodepodobieństwo znaków ASCII„rn” zamiast „m”, 0 zamiast O

Ostatnia odmiana nie wymaga IDN i graniczy z typosquattingiem, który wykorzystuje pomyłki przy wpisywaniu adresu, a nie podobieństwo wyglądu.

W WordPressie

Właściciel strony WordPress może stać się celem albo narzędziem ataku homograficznego na dwa sposoby.

Domena witryny jako wzorzec. Przestępca może zarejestrować domenę łudząco podobną do domeny sklepu lub firmy i wysyłać z niej wiadomości do klientów. Tak prowadzi się BEC i kampanie wyłudzające dane logowania do panelu. Kopię strony WordPress łatwo sklonować, więc fałszywa witryna może wyglądać identycznie.

Nazwy użytkowników. Przy rejestracji WordPress sprawdza login funkcją validate_username(), która porównuje go z wersją oczyszczoną funkcją sanitize_user() w trybie ścisłym [7]. Tryb ścisły zostawia tylko litery i cyfry łacińskie, spację, podkreślnik, kropkę, łącznik i znak @ [8]. Login z cyrylicką literą nie przejdzie więc tej kontroli. Funkcję wywołują między innymi register_new_user(), edit_user() i kontroler użytkowników REST API [7]. Wtyczki, które zakładają konta innymi ścieżkami, powinny stosować tę samą kontrolę; w przeciwnym razie dwa konta o wizualnie identycznej nazwie mogą utrudnić przegląd listy administratorów, na przykład przy szukaniu nieautoryzowanego konta administratora.

Zagrożenia i skutki

Atak homograficzny usuwa najprostszy sygnał ostrzegawczy, czyli dziwny adres w pasku przeglądarki. Niebezpiecznik opisał w 2017 roku domenę, w której każda litera pochodziła z cyrylicy, a mimo to w większości czcionek wyglądała jak znany adres łaciński [5]. Fałszywa strona może mieć ważny certyfikat SSL/TLS, bo certyfikat potwierdza tylko kontrolę nad domeną, a domena atakującego jest prawdziwa. Kłódka w pasku adresu nie chroni więc przed tym atakiem [5].

Skutki są takie jak przy phishingu: przejęcie konta, wyłudzenie danych karty albo instalacja złośliwego oprogramowania pobranego ze strony, która wygląda na zaufaną.

Jak się bronić

Główna obrona leży po stronie przeglądarek. Chrome pokazuje nazwę w postaci Punycode, gdy etykieta miesza pisma łacińskie, cyrylickie lub greckie, gdy wszystkie litery wyglądają jak łacińskie, a domena najwyższego poziomu nie jest związana z danym pismem, oraz gdy szkielet nazwy pokrywa się z popularną domeną [3]. Chrome ostrzega też osobnym komunikatem przed adresami podobnymi do znanych domen [3]; pokrewną usługę opisuje hasło Safe Browsing.

Po stronie użytkownika najskuteczniejsze są narzędzia, które porównują domenę dokładnie, a nie wzrokowo. Niebezpiecznik zalecał menedżer haseł podpowiadający dane tylko na właściwej domenie oraz klucze sprzętowe U2F lub FIDO2, które weryfikują domenę przed uwierzytelnieniem [5]. Tę samą własność mają klucze dostępu oparte na FIDO2 / WebAuthn. W Firefoksie można wymusić wyświetlanie Punycode ustawieniem network.IDN_show_punycode [5].

Firmy mogą też rejestrować najbardziej oczywiste odmiany własnej domeny i monitorować rejestracje nazw podobnych do swojej marki.

Historia i przykłady

W kwietniu 2017 roku Xudong Zheng pokazał domenę xn--80ak6aa92e.com, która w przeglądarce wyglądała jak apple.com, bo składała się wyłącznie z liter cyrylicy [4]. Ominęła ona zabezpieczenia oparte na wykrywaniu mieszanych pism; podatne były Chrome, Firefox i Opera [4]. Chrome poprawił to w wersji 58, a Mozilla odpowiedziała, że jej model zagrożeń wyklucza homografy z całego pisma, bo nie da się ich wykryć programowo [4]. Niebezpiecznik opisał ten przypadek 19 kwietnia 2017 roku [5].

W styczniu 2022 roku Sekurak opisał fałszywą domenę podszywającą się pod serwis Allegro Lokalnie, w której jedną literę zastąpiono znakiem z diakrytykiem; w postaci Punycode adres miał postać xn--allegrolokalne-xlb.com [6]. Według Sekuraka Firefox pokazywał wtedy wersję Unicode, a Chrome wersję zakodowaną [6].

TAB. 2

Przypisy

8
  1. [1] UTS #39: Unicode Security Mechanisms · Unicode Consortium
  2. [2] RFC 3492: Punycode — A Bootstring encoding of Unicode for IDNA · IETF
  3. [3] IDN in Google Chrome · The Chromium Projects
  4. [4] Phishing with Unicode Domains · Xudong Zheng
  5. [5] Uwaga na niewykrywalny phishing poprzez domeny ze znakami Unicode podobnymi do liter z alfabetu łacińskiego · Niebezpiecznik
  6. [6] Czy widzicie tę niewinną kropkę w adresie allegrolokalnie? · Sekurak
  7. [7] validate_username() · WordPress.org
  8. [8] sanitize_user() · WordPress.org
TAB. 3

Hasła w tym artykule

11
TAB. 4

Linkują tutaj

9

Wszystkie kategorie → · Hasło w słowniku →

Blog 24/7
05.11CISA i FBI wzywają do zabezpieczenia sterowników chłodzenia po atakach w Europietherecord.media05.11Midnight Blizzard atakowała iPhone'y i Androidy przez zainfekowane strony w Europie i USAsecurityweek.com05.11APT29 kradła dane z iPhone'ów i Androidów przez przejęte i podrobione stronytherecord.media05.11Grupa APT29 przejęła skrypt Plerdy i atakowała niezałatane iPhone'y i Androidythehackernews.com05.11Microsoft wykrył 7,3 mld wiadomości phishingowych w III kwartale 2026microsoft.com05.11DigiCert ujawnia wyciek danych klientów i skanów dokumentów tożsamościbleepingcomputer.com05.11CWPdoor podmienia serwer cwpsrv w Control Web Panel i otwiera tylne wejście do Linuksableepingcomputer.com05.11Brytyjskie NCSC ostrzega, że narzędzia AI zwiększyły liczbę wykrywanych luk zero-daythehackernews.com05.11Skaner RootEvidence sprawdza starą lukę w Cisco IOS i dodaje nagłówki Opt-Outisc.sans.edu05.11Włamanie do portalu grantowego Norad, zagrożone dane 20 614 użytkownikówhelpnetsecurity.com