Фишинг существует уже давно. Невозможно подсчитать, какое количество людей предоставило мошенникам на блюдечке пароли от социальных сетей и почтовых сервисов, данные своих кредитных карт и банковских счетов, не удостоверившись в том, что в адресной строке в момент ввода логина и пароля был именно Vkontakte, а не Vkontaktle. Один из способов, с помощью которого можно замаскировать адрес, это использовать символы из других алфавитов.


Среди примеров фишинговых сайтов — страница poloniex.com, копирующая биржу криптовалют poloniex.com

Как мошенники используют кодировку


Интернационализированные доменные имена (IDN) содержат символы национальных алфавитов, отличающиеся от латинских символов. Для того, чтобы структуру системы доменных имён DNS не нужно было менять, для поддержки других языков используется преображение адресов, содержащих символы национальных алфавитов, в слова из символов ASCII. Такой способ был призван стать «мостом» между англоговорящими и неанглоговорящими пользователями.

Для кодирования символов из других алфавитов в символы ASCII используется Unicode. Стандарт Unicode включает в себя знаки почти всех письменных языков мира — более 136 тысяч символов из 139 современных и утративших актуальность языков. Unicode технически — это массив данных, в котором каждому из символов назначен код в формате ASCII, который затем раскодирует формат UTF — Unicode Transformation Format.

F: U+0046
A: U+0041
R: U+0052
S: U+0053
I: U+0049
G: U+0047
H: U+0048
T: U+0054
?: U+272A

Но в адресной строке мы не можем использовать некоторые символы. Тогда нам на помощь приходит Punycode (Паникод) — система преобразования Unicode в последовательность из букв и символов, разрешённых в доменных именах. В адресной строке мы видим набор символов, начинающийся с префикса «xn--», который сообщает об использовании Punycode. Например, «россия.рф» в Punycode выглядит как xn--h1alffa9f.xn--p1ai. В адресной строке браузера мы видим кириллицу, но передаётся она именно в Punycode, после чего браузер переводит набор символов на русский.

Буквы из разных языков могут выглядеть похоже или абсолютно идентично. Только в английском языке практически неотличимы «l» и «I» — маленькая «L» и большая «i». Русская и английская маленькая «а» — полностью идентичны. Такие символы называют «гомоглифами», а «гомографы» — слова, в которых они используются. Такой способ обмана пользователей использовался уже много лет. Несколько примеров похожего написания адресов:

xn--frsightsecurity-ulm.com --> fаrsightsecurity.com
— использована кириллическая «а» (U+0430)

xn--farsghtsecurity-xng.com --> fars?ghtsecurity.com
— использована строчная греческая «Йота» — "?" (U+0269)

xn--80ak6aa92e.com --> арр?е.com
— все символы — кириллические.

Компания Farsight Security искала фишинговые сайты, использующие эту уязвимость, в течение трёх месяцев с 17 октября 2017 года по 10 января 2018, и за это время обнаружила более 116 тысяч страниц, копирующих финансовые сайты, страницы модных брендов и биржи криптовалют и, конечно, социальные сети.

Несколько примеров:

xn--gucc-tpa.com. --> gucci.com.
ns1.xn--aobe-l6b.com. --> ns1.a?obe.com.
xn--aple-csa.com. --> ap?le.com.
www.xn--amzon-ucc.com. --> www.am?zon.com.
xn--cinbase-10a.com. --> coinbase.com.
xn--80aj7b8a.com. --> еьау.com.
www.xn--acebook-js3c.com. --> www.?acebook.com.
www.xn--oole-9pb06e.com. --> www.goo?le.com.
www.xn--mcrosoft-c2a.es. --> www.microsoft.es.
xn--wiipedia-nmb.com. --> wi?ipedia.com.
www.xn--yndex-0jc.com. --> www.y?ndex.com.




Защита личного аккаунта


Farsight Security предлагает несколько способов защиты от злоумышленников, использующих данный инструмент, главный из которых — бдительность пользователя.

  1. В основном мошенники используют спам-рассылки, поэтому необходимо быть особенно внимательными с письмами, текст или изображения в которых провоцируют немедленно нажать на ссылку, а также к письмам, предлагающих обновить или подтвердить информацию на сайтах, которыми вы пользуетесь.
  2. Вместо того, чтобы нажимать на ссылку в письме, копируйте и вставляйте её в адресную строку. Это позволит избежать встроенных в текст подозрительных URL-адресов.
  3. Вводите пароль только на сайтах с защищённым соединением (https://). Если вы не видите в адресной строке зелёную плашку, свидетельствующую о защищённом соединении, символа «s» в «https://», не вводите пароль.
  4. Обращайте внимание на смену URL в адресной строке.
  5. Включайте двухфакторную аутентификацию на всех сайтах, которые поддерживают эту возможность. Менее 10% всех пользователей Google её используют. Она с одной стороны выступает дополнительным инструментом безопасности, и с другой — позволит вам узнать о попытке взлома вашего аккаунта. Смартфон может стать «слабым звеном» в этой системе, поэтому позаботьтесь о сильном пин-коде.

Защита организации


Владельцам популярных сайтов, на которых пользователи вводят логин и пароль, покупают товары или загружают контент, Farsight Security советует постараться купить все похожие домены, а также отслеживать регистрацию гомографов.

Комментарии (31)


  1. Nikobraz
    22.01.2018 09:12
    -1

    А почему вообще разрешено юникод в URL использовать?
    ASCII хватит всем


    1. Oplkill
      22.01.2018 20:02

      Лучше просто запрещать не буквенные и не численные символы юникода


    1. NeoCode
      22.01.2018 20:39

      Наверное это нужно регистраторам чтобы еще денег срубить за регистрацию новых доменов.
      Насчет того что ascii для доменов хватит всем — согласен.


  1. vanxant
    22.01.2018 09:33

    Строго говоря, а и a таки немного разные. Но это нужно иметь чёрный пояс по шрифтам.


    1. maaGames
      22.01.2018 10:02

      Зависит от шрифта. Для эксперимента сделал скриншот вашего коммента, в фотошопе сделал вычитание одной буквы из другой и получил чёрный квадрат — абсолютное совпадение.


      1. alltiptop
        22.01.2018 10:51

        Кстати неплохой вариант (не массовый правда) — использовать разные шрифты или начертания для ascii и остального юникода в адресной строке, это если полностью не отключать punycode


        1. maaGames
          22.01.2018 10:54

          Где-то видел то ли предложение, то ли демонстрацию работы… В общем, не ascii символы писались жирным шрифтом. Или цветом даже дополнительно выделялось, не помню уже.


          1. swelf
            22.01.2018 13:45

            мигающее прежупреждение рядом с secure, то типу как самоподписанный сертификат. нажимаем и нам описывают какие тут символы не ascii. можт и есть такое дополнение.


  1. dartraiden
    22.01.2018 09:45
    +1

    Не знаю насчёт других браузеров, но в Firefox проблема решается включением настройки network.IDN_show_punycode
    Адреса, содержащие не-латинские символы, будут принудительно показываться в виде Punycode.

    В Internet Explorer тоже есть похожая настройка.


    1. ivan386
      22.01.2018 11:51

      Теряется тогда его смысл. Я за подсветку символов из разных диапазонов разными цветами.


      1. Hellsy22
        22.01.2018 14:33

        Для конкретного пользователя этого смысла изначально могло и не быть.


      1. Massacre
        22.01.2018 19:43

        Так оно и не надо практически никому, кроме SEOшников. Вы часто по таким именам переходите?

        Впрочем, в Pale Moon сделали опционально отображение punycode в области, предназначенной для информации о HTTPS подключении, так удобней, наверное…


        1. ivan386
          23.01.2018 01:30

          По поддельным? Не знаю. С кирилическими доменами сталкиваюсь иногда. Их гос организации потихоньку осваивают. Да и я использую.


  1. susnake
    22.01.2018 09:55
    +1

    Вводите пароль только на сайтах с защищённым соединением (https://). Если вы не видите в адресной строке зелёную плашку, свидетельствующую о защищённом соединении, символа «s» в «https://», не вводите пароль.

    Не работает. Мошеннику ничего не стоит сделать «зеленый» сертификат. Единственное что точно работает — менеджер паролей по типу Last Pass, которые запоминают сайт и на нем подставляют автоматически лигин или пароль. Ну или встроенный менеджер паролей в браузер.
    Сам как-то раз наткнулся на фишинговый сайт с сертификатом. Хотел зайти, а менеджер паролей не сработал. Минут 5 тупил почему, потом догадался, что попал на фишинговую страницу.


    1. Lordick
      23.01.2018 09:48

      Вот именно. Считаю злом повальную https-зацию. Сейчас ничего не стоит на каком-нибудь Let's Encrypt сделать сертификат и браузер радостно будет сигнализировать о том, что сайт зелёненький и доверять ему можно.


  1. fpinger
    22.01.2018 11:15

    Что проще всего? Выводить юникод символы цветными (жёлтый) и обозначить требование для серьёзных сайтов необходимость в латинице.
    Разделяй, раскрашивай и властвуй через строку браузера!


    1. ivan386
      22.01.2018 12:07

      Надо красить в разные цвета разные диапазоны. Иначе можно будет таким же образом подделывать домены которые полностью не на латинице.


      1. fpinger
        22.01.2018 12:22

        Не обязательно. Просто цветом выделять с когнитивной провокацией домен.Далее после привыкания пользователями к источнику информации можно, что-то более тонко регулировать.


      1. fpinger
        22.01.2018 12:23

        Вообще получается цветовая дифференциация, как по штанам =)


    1. grayfolk
      22.01.2018 12:08

      А кто будет определять «серьезность» сайта и по каким критериям?


      1. ivan386
        22.01.2018 12:18

        Можно по типу сертификата который они запрашивают:


        1. Domain Validation — не серьёзно.
        2. Organization Validation — серьёзно.
        3. Extendet Validation — очень серьёзно.


        1. Massacre
          22.01.2018 19:49

          В действительности, это определяет всего лишь количество денег, которые заплатил за сертификат возможный мошенник…


      1. fpinger
        22.01.2018 12:19

        Де факто — латиница уровень один.
        Прочие, хоть как на своём языке. Думаю, что для сбера не проблема сайт на латинице.
        Здесь дело в чём. Что не латиница — то красим. И пользователей учим, что если радуга — то это не официально.


        1. Goodkat
          23.01.2018 00:48

          Что не латиница — то красим.
          E — это латиница. Красим? Для сравнения, вот кириллица: Ё. Можете поиском проверить.


          1. fpinger
            23.01.2018 05:47

            Может оставить такие вопросы какой-нибудь комиссии стандартизации.
            В любом случае можно определится с «чистыми» URI касательно платёжных средств и т.д. Это как маркировка. Понятно что будет куча «не умных» пользователей и «хитрых» бизнесменов. Но можно отстранится от их игр.

            Другой вариант подписывать сертификатами целые списки URI, а не только домены. И цветом выделять то что за гранью.


  1. VeldRiN
    22.01.2018 11:16

    А кто регулятор кстати, почему такое допустили? Он посчитал это фишкой?


    1. ivan386
      22.01.2018 12:01

      Если там обычный Domain Validation сертификат то его выдают автоматически проверкой письмом на этот же домен или прописанный mail в whois. Проверяются такие сертификаты выборочно.


      Цифровые SSL сертификаты. Разновидности, как выбрать?


      1. VeldRiN
        22.01.2018 14:57

        я не совсем про сертификаты, я вообще удивлен, что можно регистрировать домен, где смешаны английский+национальный алфавит.чтоугодно


        1. ivan386
          22.01.2018 15:50

          Вы наверно хотите сказать латиницу. Но она используется далеко не только в английском. Тот же немецкий в основе своей использует латиницу с модификаторами.


          Лати?нский алфави?т (лати?ница) — восходящая к греческому алфавиту буквенная письменность, возникшая в латинском языке в середине I тысячелетия до н. э. и впоследствии распространившаяся по всему миру. Современный латинский алфавит, являющийся основой письменности большинства романских, германских, а также множества других языков, в своём базовом варианте состоит из 26 букв. Буквы в разных языках называются по-разному.

          В английской википедии в статье о паникоде для примера используется немецкое слово "bucher"(книги). В punycode оно в выглядит так "bcher-kva". Латиница которая входит в первые разрешённые символы оставлена в первой части "bcher". Код и позиция символа "u" закодирована во второй части "kva". Так что смешение это естественно для паникода.


          Запрещать использовать какие либо символы могут регистраторы просто не регистрируя такие домены. Также некоторые символы отказывается отображать браузер и вместо этого показывает в адресной строке паникод.


          С точки зрения DNS системы домены в паникод с любым сочетанием закодированных символов допустимы.


  1. molnij
    22.01.2018 13:03

    Мне почему-то казалось, что когда еще шло обсуждение.рф-доменов звучало, что домен должен быть или целиком на русском или целиком на английском, как раз во избежание подобных ситуаций, нет?


    1. ivan386
      22.01.2018 16:00

      Это регулирует регистратор. Паникод изначально был придуман совместимым со старой DNS системой. Для его использования регистратору нет нужды в каких то настройках. А вот модерация доменных имён уже требует дополнительных телодвижений.