Среди примеров фишинговых сайтов — страница 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 предлагает несколько способов защиты от злоумышленников, использующих данный инструмент, главный из которых — бдительность пользователя.
- В основном мошенники используют спам-рассылки, поэтому необходимо быть особенно внимательными с письмами, текст или изображения в которых провоцируют немедленно нажать на ссылку, а также к письмам, предлагающих обновить или подтвердить информацию на сайтах, которыми вы пользуетесь.
- Вместо того, чтобы нажимать на ссылку в письме, копируйте и вставляйте её в адресную строку. Это позволит избежать встроенных в текст подозрительных URL-адресов.
- Вводите пароль только на сайтах с защищённым соединением (https://). Если вы не видите в адресной строке зелёную плашку, свидетельствующую о защищённом соединении, символа «s» в «https://», не вводите пароль.
- Обращайте внимание на смену URL в адресной строке.
- Включайте двухфакторную аутентификацию на всех сайтах, которые поддерживают эту возможность. Менее 10% всех пользователей Google её используют. Она с одной стороны выступает дополнительным инструментом безопасности, и с другой — позволит вам узнать о попытке взлома вашего аккаунта. Смартфон может стать «слабым звеном» в этой системе, поэтому позаботьтесь о сильном пин-коде.
Защита организации
Владельцам популярных сайтов, на которых пользователи вводят логин и пароль, покупают товары или загружают контент, Farsight Security советует постараться купить все похожие домены, а также отслеживать регистрацию гомографов.
Комментарии (31)
vanxant
22.01.2018 09:33Строго говоря, а и a таки немного разные. Но это нужно иметь чёрный пояс по шрифтам.
maaGames
22.01.2018 10:02Зависит от шрифта. Для эксперимента сделал скриншот вашего коммента, в фотошопе сделал вычитание одной буквы из другой и получил чёрный квадрат — абсолютное совпадение.
alltiptop
22.01.2018 10:51Кстати неплохой вариант (не массовый правда) — использовать разные шрифты или начертания для ascii и остального юникода в адресной строке, это если полностью не отключать punycode
maaGames
22.01.2018 10:54Где-то видел то ли предложение, то ли демонстрацию работы… В общем, не ascii символы писались жирным шрифтом. Или цветом даже дополнительно выделялось, не помню уже.
swelf
22.01.2018 13:45мигающее прежупреждение рядом с secure, то типу как самоподписанный сертификат. нажимаем и нам описывают какие тут символы не ascii. можт и есть такое дополнение.
dartraiden
22.01.2018 09:45+1Не знаю насчёт других браузеров, но в Firefox проблема решается включением настройки network.IDN_show_punycode
Адреса, содержащие не-латинские символы, будут принудительно показываться в виде Punycode.
В Internet Explorer тоже есть похожая настройка.ivan386
22.01.2018 11:51Теряется тогда его смысл. Я за подсветку символов из разных диапазонов разными цветами.
Massacre
22.01.2018 19:43Так оно и не надо практически никому, кроме SEOшников. Вы часто по таким именам переходите?
Впрочем, в Pale Moon сделали опционально отображение punycode в области, предназначенной для информации о HTTPS подключении, так удобней, наверное…ivan386
23.01.2018 01:30По поддельным? Не знаю. С кирилическими доменами сталкиваюсь иногда. Их гос организации потихоньку осваивают. Да и я использую.
susnake
22.01.2018 09:55+1Вводите пароль только на сайтах с защищённым соединением (https://). Если вы не видите в адресной строке зелёную плашку, свидетельствующую о защищённом соединении, символа «s» в «https://», не вводите пароль.
Не работает. Мошеннику ничего не стоит сделать «зеленый» сертификат. Единственное что точно работает — менеджер паролей по типу Last Pass, которые запоминают сайт и на нем подставляют автоматически лигин или пароль. Ну или встроенный менеджер паролей в браузер.
Сам как-то раз наткнулся на фишинговый сайт с сертификатом. Хотел зайти, а менеджер паролей не сработал. Минут 5 тупил почему, потом догадался, что попал на фишинговую страницу.Lordick
23.01.2018 09:48Вот именно. Считаю злом повальную https-зацию. Сейчас ничего не стоит на каком-нибудь Let's Encrypt сделать сертификат и браузер радостно будет сигнализировать о том, что сайт зелёненький и доверять ему можно.
fpinger
22.01.2018 11:15Что проще всего? Выводить юникод символы цветными (жёлтый) и обозначить требование для серьёзных сайтов необходимость в латинице.
Разделяй, раскрашивай и властвуй через строку браузера!ivan386
22.01.2018 12:07Надо красить в разные цвета разные диапазоны. Иначе можно будет таким же образом подделывать домены которые полностью не на латинице.
fpinger
22.01.2018 12:22Не обязательно. Просто цветом выделять с когнитивной провокацией домен.Далее после привыкания пользователями к источнику информации можно, что-то более тонко регулировать.
grayfolk
22.01.2018 12:08А кто будет определять «серьезность» сайта и по каким критериям?
ivan386
22.01.2018 12:18Можно по типу сертификата который они запрашивают:
- Domain Validation — не серьёзно.
- Organization Validation — серьёзно.
- Extendet Validation — очень серьёзно.
Massacre
22.01.2018 19:49В действительности, это определяет всего лишь количество денег, которые заплатил за сертификат возможный мошенник…
fpinger
22.01.2018 12:19Де факто — латиница уровень один.
Прочие, хоть как на своём языке. Думаю, что для сбера не проблема сайт на латинице.
Здесь дело в чём. Что не латиница — то красим. И пользователей учим, что если радуга — то это не официально.Goodkat
23.01.2018 00:48Что не латиница — то красим.
E — это латиница. Красим? Для сравнения, вот кириллица: Ё. Можете поиском проверить.fpinger
23.01.2018 05:47Может оставить такие вопросы какой-нибудь комиссии стандартизации.
В любом случае можно определится с «чистыми» URI касательно платёжных средств и т.д. Это как маркировка. Понятно что будет куча «не умных» пользователей и «хитрых» бизнесменов. Но можно отстранится от их игр.
Другой вариант подписывать сертификатами целые списки URI, а не только домены. И цветом выделять то что за гранью.
VeldRiN
22.01.2018 11:16А кто регулятор кстати, почему такое допустили? Он посчитал это фишкой?
ivan386
22.01.2018 12:01Если там обычный Domain Validation сертификат то его выдают автоматически проверкой письмом на этот же домен или прописанный mail в whois. Проверяются такие сертификаты выборочно.
VeldRiN
22.01.2018 14:57я не совсем про сертификаты, я вообще удивлен, что можно регистрировать домен, где смешаны английский+национальный алфавит.чтоугодно
ivan386
22.01.2018 15:50Вы наверно хотите сказать латиницу. Но она используется далеко не только в английском. Тот же немецкий в основе своей использует латиницу с модификаторами.
Лати?нский алфави?т (лати?ница) — восходящая к греческому алфавиту буквенная письменность, возникшая в латинском языке в середине I тысячелетия до н. э. и впоследствии распространившаяся по всему миру. Современный латинский алфавит, являющийся основой письменности большинства романских, германских, а также множества других языков, в своём базовом варианте состоит из 26 букв. Буквы в разных языках называются по-разному.
В английской википедии в статье о паникоде для примера используется немецкое слово "bucher"(книги). В punycode оно в выглядит так "bcher-kva". Латиница которая входит в первые разрешённые символы оставлена в первой части "bcher". Код и позиция символа "u" закодирована во второй части "kva". Так что смешение это естественно для паникода.
Запрещать использовать какие либо символы могут регистраторы просто не регистрируя такие домены. Также некоторые символы отказывается отображать браузер и вместо этого показывает в адресной строке паникод.
С точки зрения DNS системы домены в паникод с любым сочетанием закодированных символов допустимы.
molnij
22.01.2018 13:03Мне почему-то казалось, что когда еще шло обсуждение.рф-доменов звучало, что домен должен быть или целиком на русском или целиком на английском, как раз во избежание подобных ситуаций, нет?
ivan386
22.01.2018 16:00Это регулирует регистратор. Паникод изначально был придуман совместимым со старой DNS системой. Для его использования регистратору нет нужды в каких то настройках. А вот модерация доменных имён уже требует дополнительных телодвижений.
Nikobraz
А почему вообще разрешено юникод в URL использовать?
ASCII хватит всем
Oplkill
Лучше просто запрещать не буквенные и не численные символы юникода
NeoCode
Наверное это нужно регистраторам чтобы еще денег срубить за регистрацию новых доменов.
Насчет того что ascii для доменов хватит всем — согласен.