11:20
19/4/2017

Advertisement

Choć trik ten znany jest od ~15 lat (i od początku pokazujemy go na naszych szkoleniach z Atakowania i Ochrony Webaplikacji) to kilka dni temu zrobiło się o nim głośniej. A to za sprawą domeny аррӏе.com (czy jesteście w stanie zauważyć, która z liter nie jest poprawna, tzn. nie pochodzi z podstawowego alfabetu łacińskiego, ale wygląda tak samo?).

Oto jak ta domena prezentuje się w przeglądarkach Firefox, Chrome i Safari:

Jak widać, tylko Safari prezentuję nazwę domeny w tzw. kodowanie punycode. Na Firefox i Chrome domena wygląda bardzo wiarygodnie. Wiarygodność dodatkowo podnosi widoczna “zielona kłódeczka” — no bo dlaczego nie? Przecież w dzisiejszych czasach, posiadanie certyfikatu SSL to jedynie oznaczenie, że połączenie jest szyfrowane. Nie można w niego “wierzyć”, raz, ze względu właśnie na takie zabawy z Unicodem, a dwa, ze względu na to, że wielokrotnie wystawcy certyfikatów byli przyłapywani na tym, że potwierdzali domeny, choć nie powinni tego robić.

Na czym więc polega magia domeny аррӏе.com, a tak naprawdę mechanizm ataków tzw. IDN homograph (to nie żadna “dziura phishingowa w przeglądarkach”, jak nazywają ją niektóre media)? Otóż każda litera domeny аррӏе.com pochodzi z cyrylicy. Litery te wyglądają tak samo (w większości fontów), ale mają inne kody znaków Unicodowych. (Przyznajcie się, myśleliście, że tylko litera “l” jest podstawiona? ;)

Zastanawiacie się, dlaczego nie wystarczyłoby podmienić tylko jednej litery w nazwie domeny? Odpowiedź jest prosta — takie triki niektóre przeglądarki wykrywają (wiadomo, phishing) i pokazują wtedy domenę we wspomnianym wcześniej kodowaniu punycode. Tu macie przykład domeny аpple.com, w której podmieniona jest tylko pierwsza litera “a” ((U+0430) zamiast “a” (U+0041)). Jeśli przekleicie ją do przelgądarek, zobaczycie:

Niestety, gdy całość domeny zawiera litery “podobne” do podstawowych liter z alfabetu łacińskiego, ale pochodzące tego samego alfabetu (np. cyrylicy), to domena jest wyświetlana jest 1:1, bez kodowania punycodes. Można to zrozumieć — Rosjanie chcą widzieć swoje domeny w czytelnej postaci, a nie jako nieczytelny dla człowieka punycodes.

Ciekawostka 1: za pomocą tego skryptu możecie pogenerować różne domeny bazując na podobnie wyglądających lietarch z różnych alfabetów.

Ciekawostka 2: W Unicode są też znaki Unicode imitujące dwuznaki, np. “dz” oraz slasha, które można użyć w nazwie domeny. Rozumiecie, co mamy na myśli?
:)

Mam Firefoksa i Chrome albo jestem jedynym użytkownikiem Opery — co robić, jak żyć?

W przypadku Google Chrome, trzeba poczekać. Wersja 59 wprowadza małą poprawkę. Do tego czasu można ratować się tym rozszerzeniem albo tym.

W przypadku Firefoksa poprawki nie będzie, ale możecie w przejść pod adres about:config i dla parametru network.IDN_show_punycode ustawić wartość true. Dzięki temu wszystkie domeny zawierające znaki spoza alfabetu łacińskiego będą zapisywane w postaci punycode, co ułatwi wykrycie phishingu.

Na koniec warto też wspomnieć, że najlepszym lekarstwem na phishing jest:

  • wykorzystywanie managerów haseł sparowanych z przeglądarką z funkcją autologowania. Manager na fałszywej domenie (nawet jeśli dzięki takim jak opisane powyżej trikom wygląda jak prawdziwa), nie wprowadzi hasła. Polecamy, jak zwykle, KeePassa
  • ustawienie, gdzie się da, dwuskładnikowego uwierzytelnienia w oparciu o klucze U2F, np. YubiKey. To najlepsza metoda, wspierana przez popularne usługi, tania (klucze od 8USD) i możliwa do zaimplementowania także w Waszych serwisach internetowych dzięki otwartemu SDK. Klucz U2F komunikuje się z przeglądarką i nie podpisze żądania logowania jeśli przesłany przez przeglądarkę URL nie będzie poprawnym URL-em do serwisu z którym klucz jest skojarzony. O zaletach tej metody, która skutecznie uniemożliwia nam ataki phishingowe na firmy, prowadzone w ramach wykonywanych przez nas testów penetracyjnych, pisaliśmy szerzej w artykule pt. Dlaczego każdy użytkownik GMaila powinien skonfigurować klucz U2F.

Jeśli interesują Was takie ataki na przeglądarki, ich użytkowników lub na same serwisy internetowe, to zapraszamy do udziału w naszym bestsellerowym szkoleniu z bezpieczeństwa webaplikacji — pokazujemy tam kilkadziesiąt ataków praktyce, a uczestnicy w trakcie szkolenia, za pomocą różnych technik i narzędzi, samodzielnie włamują się na testowe webaplikacje. Po spędzonych z nami 2 dniach hardkorowego hackowania webaplikacji, już nigdy nie spojrzycie tak samo na przeglądarkę i kod swoich projektów :) Najbliższe szkolenie w Warszawie w przyszłym tygodniu (zostały 2 ostatnie wolne miejsca), a kolejne w Gdańsku w maju, tuż przed konferencją Infoshare. Więcej o szkoleniu i formularz rejestracji znajdziecie tutaj.

Przeczytaj także:



54 komentarzy

Dodaj komentarz
  1. No dobrze, tylko w cyrylicy nie ma litery “l” :)

  2. To co ja jako jedyny użytkownik Opery mam zrobić żeby się zabezpieczyć po nie podaliście rozwiązania.

    • @Mati, w Operze możesz zainstalować wtyczkę pozwalającą instalować wtyczki dla Chrome (Download Chrome Extension), albo zmienić przeglądarkę na inną ;-)

    • Opera to kochana przegladarka!

    • Wersja developer jest odporna.

    • sorry… jakiej wy opery używacie? Ostatnią operę jaką znam to v 12.18, u mnie wpisany adres wyrzuca odpowiedni komunikat.
      http://img277.imagevenue.com/img.php?image=29601_apple_122_505lo.jpg

  3. W rejestrze .pl o tym pomyślano i w 2005r zablokowano do rejestracji domeny IDN jeśli nazwa domeny zawiera znaki wizualnie podobne do analogicznej, istniejącej, domeny w ascii. Nie do końca idealne rozwiązanie ale jest.

  4. W rosyjskim alfabecie owszem nie ma “I”, ale w ukraińskim już jest :)

  5. Ja wiem, że może jestem jedynym użytkownikiem korzystającym z Internet Explorer ;) ale moglibyście wspomnieć również o jego zachowaniu – zwłaszcza, że jest bardzo poprawne i dobre dla użytkownika – czyli od razu (podobnie jak Safari) rozwiązuje nazwę do punycode.

    • W EDGE też wyświetla poprawnie punny, Chyba jest nas dwóch korzystających z M$ ;)

    • jeśli korzystasz z IE to ta wiadomość powinna dojść do Ciebie za około pół roku ;P

    • Przestań. IE to skrót od Intranet Explorer, nie służy do otwartej sieci.

    • W przypadku wejścia na tego typu stronę (np. żółw.pl) w Microsoft Edge, adres pozostaje niezdekodowany natomiast widać na końcu paska adresu ikonę znaków alfabetu po kliknięciu której pokazuje się popup “Międzynarodowy adres witryny internetowej” gdzie widać zdekodowany punnycode (tutaj na xn--w-uga1v8h.pl).

    • Będąc pracownikiem M$ nie możesz korzystać z niczego innego xd

  6. Najnowsze Vivaldi również radzi sobie z tym poprawnie.

    • Trochę starszy Vivaldi też daje radę :)

  7. A czy sposobem obrony nie jest też sprawdzenie szczegółów certyfikatu TLS? Jakiś czas temu Chrome utrudniło to dość skutecznie, bo już nie wystarczy kliknąć na kłódce.

  8. Chrome 58.0.3029.68 beta (64-bit) wyświetla dokładnie taki sam komunikat jak Safari.

  9. LasstPass tez jest ok ?

  10. Opera wersja 44 faktycznie nie widzi tej strony prawidłowo, ale pod XP wersja 36 odczytuje “krzaczki”

  11. Epic Privacy Browser pracujący na chromium też pokazuje w punycode

  12. Jedyny użytkownik Opery? To chyba ja :D

    • Wcale nie – bo ja!

  13. Takie pytanko mam, gdzie można kupić wspomniany w artykule yubikey w tak niskiej cenie? Pytam, bo gdzie bym nie szukał, ceny są zdecydowanie wyższe.

    • Też o to chciałem zapytać. Chyba że mamy sobie sami sklecić U2F Zero z Githuba…

  14. KeePass ostatio mi tak zaszalał, że podając prawidłowe hasło do rozszyfrowania bazy wywalało mi błąd i wszystko poszło się jeeeechać …. przerzuciłem się na LastPass, może komuś się przyda ^^

    • Mnie się tak działo jak mi się zawieszał klawisz na klawiaturze. Też niby dobrze pisałem a hasło nie pasowało. Trochę powalczyłem zanim odkryłem problem. Raczej nie winiłbym KeePass’a – jest niezawodny. Proponuję wpisać hasło w notatniku i sprawdzić czy jakaś literka nie ucieka.

  15. @cheaterenator

    Przejęzyczenie wynikające z nazywania wszystkich takich tokenów “Yubikey”. Bo jak zacznie się szukać “U2F token”, to oprócz Yk U2F za 18$ są też HyperFido za 9$, Feitian ePass-FIDO za 7$, Vancosys FIDO U2F Security Key za 5$ (ceny z Amazona).

    Ale “wytrzymałościowo” najlepszy jest jednak Yk (brak ruchomych części, wszystko zalane żywicą, wodoodporne, najbardziej płaskie)

  16. ▌▌”аррӏе.com (czy jesteście w stanie zauważyć, która z liter nie jest poprawna, tzn. nie pochodzi z podstawowego alfabetu łacińskiego, ale wygląda tak samo?).”

    Zacofanie czasem się przydaje (a przede wszystkim niestandardowość — tu: wycięcie egzotycznych kodowań — po co mi znaki po chińsku, których i tak nie czytam?) i u mnie w całym tekście domena straszy wielkim kwadratem — trudno tego nie zauważyć… :)

  17. U mnie w Operze zamiast litery “ӏ” wstawia się jakiś kwadrat i nie można wyświetlić strony.

  18. Brakowało jeszcze TLD .соm :D

    • U mnie otwiera wyszukiwarkę (ze względu na spację).

  19. Polscy studenci używali tej techniki w celu oszukania programów antyplagiatowych. Zamiana liter sprawiała, że dokumenty były niepodobne do niczego.
    Ale obecnie chyba te programy już się na to nie łapią.

    • Niezłe

  20. keepass kijpasem a co z roboformem tez bezpieczny ?

  21. Na pewno zaletą KeePass’a jest jego otwarty kod źródłowy – można sprawdzić, czy producent nie wykrada zapisanych haseł przez Internet (a skoro wie, że można sprawdzić, to zapewne tego nie robi).
    A jeśli chodzi o kodowanie znaków, to po co przydzielać dwa różne kody literom, które wyglądają tak samo? Chodzi o to, żeby cała cyrylica miała ciąg kolejnych numerów znaków w Unicode (podobnie, jak w przypadku alfabetu łacińskiego)?

    • ▌▌Poza tym w prostym foncie znaki mogą wyglądać tak samo, ale już w np. ręcznie malowanym znaki z obcego alfabetu mogą być zupełnie inaczej poprowadzone.

  22. Dziękuje na pewno ten dodatek przyda się dla dodatkowej ochrony. Fajnie gdyby powstał temat dotyczący dodatków do przeglądarek, poprawiających bezpieczeństwo :)

  23. phishing bo ktos chcial sobie zrobic strone o jablkach – juz nawet to jest zabronione

  24. a o edge nikt nie napisał, tam jest puny

  25. ktos moze pomoc z tym autologowaniem przez keepassa? dziadostwo mi nie dziala za nic na swiecie na firefox a probowalem i podchodzilem do tego 4 razy.

  26. W przypadku znanych domen, jak apple.com, wystarczy zauważyć, że domena nie jest EV. Podstawowe co się sprawdza wchodząc na strony banków.

  27. OPERA FTW :P~

  28. Microsoft Edge 40.x bardzo dobrze pokazuje adres poprawnie rozkodowany. Warto o tym wspomnieć, bo nie każdy FF i Chrome żyje.

  29. Pytanie do redakcji:
    Ale z tego co wiem KeePass nie sprawdza adresów URL w przeglądarce tylko tytuły strony, więc jak miałby nas uchronić przed tym atakiem?

    Jeśli ktoś chce to sprawdzić to niech doda sobie w KeePassie dwa wpisy z tytułami:
    PACKT Publishing,
    ING,
    wejdzie sobie na stronę https://www.packtpub.com/packt/offers/free-learning
    i wybierze opcję Global auto-type – KeePass podpowie obie opcje

  30. U mnie Chrome w wersji 49.0.2623.112 m (nie pytajcie czemu ;)) wyświetla punycode.

    • Właściwie to skopiowali artykuł tylko napisali go innymi słowami

  31. Co to jest lietarch?

  32. I tyle dobrego z tego xn--.

    xn--al-vva.pl – chyba celowo wymyślone do uszustw. W Polsce jakoś praktycznie nikt nie stosuje polskich znaków w nazwie domen.

  33. Edge na Windows 10 Mobile zachowuje się jak safari, od razu zdekodowany adres.

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: