Mimic: вредоносный скрипт, который портит нервы программистам
Участники российских государственных тендеров раньше применяли маленькую хитрость: заказчик и поставщик заранее договариваются о сделке. Затем в условиях тендера на открытом сайте некоторые кириллические символы заменяют на латинские, чтобы конкурент не нашёл тендер с помощью поиска.
Такой же способ используют авторы вредоносного скрипта Mimic, но с другой целью: испоганить программный код таким способом, что он не будет компилироваться, вызовет сотни синтаксических ошибок, а программист не сможет понять, в чём дело.
Например, в коде C# обычный символ точки с запятой (;) заменяется на греческий вопросительный знак (;). Подло, зато эффективно.
Кроме точки с запятой, в Unicode есть несколько других символов, которые одинаково выглядят в разных алфавитах. Они называются омоглифами.
Mimic использует это, он заменяет распространённые символы ASCII на омоглифы из других алфавитов.
Например, код начинает выдавать такую ошибку.
Кажется, с чего бы это?
Или можно поменять символы по полной программе.
По мнению автора, скрипт вызывает следующие чувства:
- веселье
- расстройство
- любопытство
- убийственную ярость
С программой можно поиграться на своём собственном исходном коде — просто проверить, сможете ли вы найти все ошибки.
Проделать это с чужими исходниками без ведома автора опасно. «Вас могут уволить, а потом убить», — предупреждает автор.
Вообще, такие фокусы подходят для разного рода мошенничеств: указания липовых URL и поисковых запросов, обмана клиентов в чёрном SEO, атак XSS и т.д.