Короткий ответ
Спамеры заменяют буквы символами, которые выглядят так же: латинскую a кириллической а или наоборот, букву o нулем, а в середину слова вставляют невидимый символ. Человек читает слово как обычное, а список слов видит другое слово. Решение одно: до оценки привести текст к обычным буквам, то есть нормализовать его.
Ключевые факты
- Для компьютера похожий символ остается другим символом, даже если на экране он нарисован точно так же.
- В имени пользователя Telegram допустимы только a-z, 0-9 и подчеркивания, поэтому в поддельном @username используют цифры, подчеркивания и добавленные слова.
- На имя профиля и на сообщения это ограничение не действует. Именно там появляются буквы другого алфавита и невидимые символы.
- Список слов сверяет точные символы. Одной подмененной буквы хватает, чтобы его пройти.
- Бот должен сначала свернуть похожие символы обратно в обычный текст и только потом что-то сравнивать.
Что такое спам с похожими символами?
Это спам, написанный так, чтобы человек прочитал одно слово, а фильтр другое. Спамер меняет часть букв на символы, которые нарисованы так же, но внутри остаются другими символами. Технический термин: омоглиф.
Пример: «c0inbаse». На месте буквы o здесь ноль, а вторая «a» на самом деле кириллическая. Вы читаете название бренда. Черный список, в котором записано это название, совпадения не находит.
С русскими словами прием работает в обратную сторону. В слове «рaздача» вторая буква латинская, и на глаз этого не видно.
Какие приемы используют спамеры?
| Прием | Пример | Что видит человек |
|---|---|---|
| Буква из другого алфавита | «аirdrop» с кириллической а, «рaздача» с латинской a | airdrop, раздача |
| Цифры вместо букв | «B1nance», «c0in» | Бренд с небольшой странностью |
| Два алфавита в одном слове | «Suррort» с двумя кириллическими р | Support |
| Невидимые символы | Символ нулевой ширины внутри «airdrop» | airdrop, ничего странного не видно |
| Пробелы и знаки препинания | «a i r d r o p», «air.drop» | Слово, которое читается с одного взгляда |
| Стилизованные алфавиты | Жирные или рукописные «математические» буквы, малые прописные | Слово, набранное красивым шрифтом |
| Пары букв | «rn» вместо «m», «vv» вместо «w» | Правильное слово, если шрифт мелкий |
Спамеры сочетают приемы. В одном сообщении может быть цифра в названии бренда, кириллическая буква в слове «claim» и символ нулевой ширины посреди текста ссылки.
Почему списки слов их пропускают?
Список слов сравнивает символы по одному. Латинская «a» и кириллическая «а» для него разные символы, поэтому «airdrop» и «аirdrop» для него разные слова. Первое список блокирует, второе пропускает.
Можно добавить в список и второе написание. Тогда спамер подменит другую букву. У слова из семи букв, где у каждой буквы есть несколько возможных замен, тысячи написаний, и список всегда отстает на шаг.
Чем длиннее список, тем выше и другая цена: ваши собственные участники, удаленные за то, что процитировали спам или написали на своем языке.
Где похожие символы встречаются в именах?
Здесь часто путаются, поэтому стоит сказать точно.
- @username. В имени пользователя Telegram допустимы только a-z, 0-9 и подчеркивания. Кириллической буквы там быть не может. В поддельном имени пользователя используют то, что разрешено: ноль вместо o, 1 вместо l, «rn» вместо «m», удвоенную букву, лишнее подчеркивание или добавленное слово вроде «support» или «official».
- Имена профиля. На них это ограничение не действует. Копию имени вашего админа можно собрать из букв другого алфавита или с невидимыми символами, и в чате она будет выглядеть точно так же.
- Раздел «О себе» и сообщения. То же, что с именами профиля.
Поэтому у самозванца обычно безупречное имя профиля и чуть-чуть неправильное имя пользователя. Вот почему в руководстве о фейковом админе проверяют именно @username, буква за буквой.
Скопированные группы и каналы используют такие же почти совпадающие имена. Руководство настоящая ли это группа в Telegram перечисляет, что проверить перед вступлением.
Как заметить похожие символы вручную?
- Наберите и найдите. Скопируйте подозрительный текст в простой текстовый редактор. Наберите настоящее слово сами и запустите поиск. Если поиск не находит скопированное слово, хотя бы один символ отличается.
- Пройдите по слову стрелкой. Если после нажатия курсор остался на месте, он только что перешагнул невидимый символ.
- Смените шрифт. Символы, которые совпадают в одном шрифте, в другом часто различаются. Моноширинный шрифт показывает большинство подмен.
- Читайте имена пользователей вслух, символ за символом. «Ноль» и «подчеркивание» легко произнести и трудно пропустить.
- Не судите о ссылке по ее тексту. Проверьте, куда она ведет, до того как открыть.
Это работает для одного сообщения. Для активной группы это не работает.
Что должен делать бот?
Сначала нормализовать, потом оценивать. Прежде чем сравнивать сообщение с чем бы то ни было, бот должен свернуть текст обратно в обычные буквы:
- Убрать символы нулевой ширины и другие невидимые символы.
- Заменить похожие символы из других алфавитов и стилизованные буквы на обычную букву, под которую они подделаны.
- Прочитать цифры, поставленные вместо букв, как эти буквы.
- Убрать игры с пробелами и знаками препинания.
После этого бот оценивает результат. То же относится к именам: бот должен сравнивать имя профиля каждого участника с именами ваших админов после нормализации обоих.
У нормализации есть один риск. Текст, который действительно написан по-русски, по-гречески или на любом другом языке, должен остаться самим собой. Сигналом служит смесь внутри слова, а не сам алфавит.
Targa делает это на каждом тарифе. Она сворачивает похожие символы, приемы с нулевой шириной и игры с пробелами обратно в обычный текст перед сопоставлением. Ваш собственный черный список применяется после такого же сворачивания. Участник, чье имя профиля или фото копирует одного из ваших админов, получает отметку, и имена вида «@Brand_Official_Support» тоже проверяются. Участников проверяют заново, когда меняются их имя, раздел «О себе» или фото. У каждого действия есть причина, которую можно прочитать по команде /why.
Чего Targa не может: пойти за самозванцем в личный чат. Скопированное имя ловится, пока аккаунт находится в вашей группе. Настройки, которые закрывают остальное, описаны в руководстве как убрать спам-ботов. Можно также прочитать, как работает Targa.
Частые вопросы
Что такое похожие символы?
Это символы из другого алфавита или набора знаков, которые выглядят как привычные буквы. Кириллические а, е, о, р и с пишутся так же, как латинские a, e, o, p и c. Для человека это одно и то же слово. Для фильтра нет.
Почему мой фильтр по словам пропускает очевидный спам?
Потому что он сравнивает символы, а не их начертание. Если вы запретили слово «раздача», а спамер написал его с латинской a, с символом нулевой ширины или с точкой между буквами, фильтр видит слово, которого никогда не встречал.
Может ли имя пользователя в Telegram содержать кириллицу?
Нет. В имени пользователя Telegram допустимы только a-z, 0-9 и подчеркивания. Для копии используют то, что осталось: ноль вместо o, 1 вместо l, rn вместо m, лишнее подчеркивание или добавленное слово. У имени профиля такого ограничения нет.
Как проверить подозрительное слово вручную?
Скопируйте его в простой текстовый редактор, наберите настоящее слово сами и запустите поиск по тому, что набрали. Если поиск не находит скопированное слово, хотя бы один символ в нем другой. Если пройти по слову стрелкой, найдутся и невидимые символы.
Текст на двух алфавитах всегда спам?
Нет. Те, кто пишет на двух языках, постоянно чередуют алфавиты от слова к слову. Тревожный признак: два алфавита внутри одного слова, особенно в названии бренда, монеты или в слове support.
Посмотрите, что мошенник видит в вашей группе
Бесплатная проверка группы читает ее открытые сигналы и показывает, где она уязвима. Аккаунт не нужен.