Punycode и омографы: когда поддельный домен похож на настоящий

Обновлено 25 сентября 2026 г.

Посмотрите на два адреса: paypal.com и pаypal.com. Одинаковые? Для глаз — да. Для компьютера — нисколько: во втором адресе вторая «а» — буква кириллицы, а не латинская «a». Это два разных домена, которые могут принадлежать двум разным людям. Так устроены атаки с омографами, и чтобы их понять, нужно ненадолго отвлечься на то, как интернет записывает имена.

Unicode, ASCII и Punycode: три слова, одна простая идея

Изначально доменные имена принимали только крошечный алфавит под названием ASCII: латинские буквы от a до z без диакритики, цифры и дефис. Никаких «é» или «ü», не говоря уже об арабском, китайском или кириллице.

Но мир пишет десятками алфавитов. Unicode — большой каталог, который даёт номер каждому символу каждой письменности: латинская «a» имеет номер U+0061, кириллическая «а» — U+0430. Одинаковый рисунок, разные номера.

Чтобы доменные имена можно было писать на любом языке, не перестраивая всю сеть, придумали переводчика — Punycode. Он превращает имя в Unicode в имя, где используются только символы ASCII, и помечает его префиксом xn--. Браузер показывает красивую версию; сеть видит только переведённую.

Схема: слева — что видим мы (Unicode), справа — что видит сеть (ASCII, форма xn--), посередине — переводчик Punycode. Обычное применение: société.fr превращается в xn--socit-esab.fr, честный французский сайт. Ловушка: pаypal.com с кириллической «а» превращается в xn--pypal-4ve.com, совсем другой домен. Рефлекс: видим xn-- в адресе — смотрим внимательно.
Рисунок 1: Punycode переводит имя в Unicode в форму ASCII, начинающуюся с «xn--». Очень полезно… и иногда используется во вред.

Как устроен домен вида «xn--»

Возьмём совершенно честный пример: французский домен société.fr («общество»). Сеть не умеет читать «é». Punycode откладывает особые буквы, оставляет обычные и добавляет в конце короткий код, который говорит, куда вернуть акценты:

société.fr   →   xn--socit-esab.fr

Мы видим «socit» (обычные буквы), затем «esab» — код, указывающий, какие символы и куда вставить. Префикс xn-- лишь предупреждает: «внимание, это имя переведено». Так работают миллионы законных имён — на немецком, арабском, китайском, русском (например, все домены в зоне .рф). Поэтому xn-- сам по себе не подозрителен. Подозрительным он становится, когда подражает известному бренду.

Атаки с омоглифами: ложные близнецы

Омоглиф — символ, который до неразличимости похож на другой. В Unicode их множество: кириллические «а», «е», «о», «р» и «с» — идеальные двойники латинских a, e, o, p и c. Греческая «ο» подражает «o».

Иллюстрация: два одинаковых персонажа держат букву a; один — латинская «a» U+0061, другой — кириллическая «а» U+0430. Таблица частых двойников: a, e, o, p, c, i и их кириллические или греческие аналоги. Даже без Unicode «rn» изображает «m», а «1» — «l». Знаменитый пример 2017 года: аррӏе.com, полностью кириллицей, соответствует xn--80ak6aa92e.com, и некоторые браузеры тогда показывали его как apple.com без предупреждения.
Рисунок 2: ложные близнецы. Для глаза одинаковые, для компьютера — совершенно разные.

Мошенник покупает домен, в котором одна или несколько букв заменены двойниками. В 2017 году исследователь эффектно это продемонстрировал: он зарегистрировал xn--80ak6aa92e.com, который пишется аррӏе.com полностью кириллическими буквами, и несколько крупных браузеров тогда просто показывали в адресной строке «apple.com». С тех пор браузеры этот случай исправили.

Почему адрес может выглядеть законным

Современные браузеры применяют правила осторожности: если имя подозрительно смешивает алфавиты или слишком похоже на известный домен, они показывают форму xn-- вместо красивой версии. Это хорошая защита, но у неё есть пределы:

  • вне адресной строки эти правила действуют не всегда: в тексте письма, SMS, PDF или мессенджера «замаскированная» версия показывается как есть;
  • правила различаются от браузера к браузеру, от версии к версии и от приложения к приложению;
  • беглый взгляд на маленьком экране не отличит два одинаковых символа. И Unicode нужен не всегда: rn изображает m, 1 изображает l, как объясняет руководство Фишинг: как мошенники доставляют свои письма.

И, как у любого домена-ловушки, у сайта может быть действительный сертификат HTTPS и красивый замочек: они доказывают, что соединение зашифровано, а не что сайт честный.

Как по-настоящему проверить домен

Если есть сомнения, не доверяем тому, что видим, а заставляем заговорить настоящее имя:

  1. Не кликаем. Копируем ссылку (правый клик, «копировать адрес ссылки»).
  2. Вставляем её в конвертер Punycode (их много, бесплатных, в интернете): если для имени, которое должно быть самым обычным, появилась форма xn--, это ловушка.
  3. Выделяем домен: часть прямо перед первым «/». Подробнее об этом — в руководстве Квишинг: когда фишинг прячется за QR-кодом.
  4. Идём безопасным путём: через закладку, сохранённую самостоятельно, или официальное приложение. Помогает и менеджер паролей: двойник его не обманет, и на поддельном домене он ничего не предложит.

Baitback делает часть этой работы автоматически: если вставить в него письмо, он отмечает ссылки в Punycode (форма xn--) и домены-двойники знакомых ему брендов, в том числе на омоглифах, а также проверяет конечную точку после переадресаций.

Находим регистратора и хостинг

Чтобы домен исчез, ищем, кто его продал и кто его размещает. В инструментах поиска всегда используем форму xn--: это настоящее имя, которое знают реестры.

  • Запрос RDAP или WHOIS по домену показывает регистратора, его адрес для жалоб («abuse») и дату создания домена. Двойник бренда, созданный на прошлой неделе, почти не оставляет сомнений.
  • По IP-адресу сайта находим его хостинг или стоящий перед ним CDN, который тоже принимает жалобы и передаёт их дальше.

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

Сообщаем о домене

Хорошая жалоба умещается в несколько строк: форма в Unicode и форма xn--, бренд, которому подражают, полный адрес страницы, снимок экрана, дата и время. Отправляем её регистратору и хостингу или CDN и предупреждаем бренд.

Если домен пришёл в письме, начинаем с Baitback: вставляем полный исходный текст письма, инструмент находит сервер отправки и его хостинг, выделяет подозрительные ссылки и готовит жалобы. Он также напоминает о платформах браузеров (Google Safe Browsing, Microsoft, Netcraft…), которые за несколько часов могут показать всем посетителям красное предупреждение.

Главное
  • Две одинаковые на вид буквы могут быть для компьютера разными символами: это и есть омоглиф.
  • Punycode переводит имена в Unicode в форму ASCII, начинающуюся с xn--.
  • xn-- сам по себе не подозрителен, но подозрителен в имени, которое должно быть обычным или подражает бренду.
  • Домен проверяют, копируя ссылку, а не разглядывая её, и заходят через закладку или официальное приложение.
  • Жалуемся регистратору, указав обе формы имени: блокировка отключает всё сразу.

Получили подозрительное письмо?

Вставьте его в Baitback: сервис найдёт сервер, с которого оно было отправлено, и его хостинг-провайдера, а затем подготовит ваши жалобы за один шаг.

Проверить письмо

Все руководства