Mimic: вредоносный скрипт, который портит нервы программистам

620defbab2d34f588bffa4bc6ff928be.jpgУчастники российских государственных тендеров раньше применяли маленькую хитрость: заказчик и поставщик заранее договариваются о сделке. Затем в условиях тендера на открытом сайте некоторые кириллические символы заменяют на латинские, чтобы конкурент не нашёл тендер с помощью поиска.

Такой же способ используют авторы вредоносного скрипта Mimic, но с другой целью: испоганить программный код таким способом, что он не будет компилироваться, вызовет сотни синтаксических ошибок, а программист не сможет понять, в чём дело.

Например, в коде C# обычный символ точки с запятой (;) заменяется на греческий вопросительный знак (;). Подло, зато эффективно.
Кроме точки с запятой, в Unicode есть несколько других символов, которые одинаково выглядят в разных алфавитах. Они называются омоглифами.

Mimic использует это, он заменяет распространённые символы ASCII на омоглифы из других алфавитов.

Например, код начинает выдавать такую ошибку.

08f3ffde696a4d40a570d696be63b6d3.png

Кажется, с чего бы это?

Или можно поменять символы по полной программе.

5be12abca44d445fbdc1a088f49d5475.png

По мнению автора, скрипт вызывает следующие чувства:

  • веселье
  • расстройство
  • любопытство
  • убийственную ярость


С программой можно поиграться на своём собственном исходном коде — просто проверить, сможете ли вы найти все ошибки.

Проделать это с чужими исходниками без ведома автора опасно. «Вас могут уволить, а потом убить», — предупреждает автор.

Вообще, такие фокусы подходят для разного рода мошенничеств: указания липовых URL и поисковых запросов, обмана клиентов в чёрном SEO, атак XSS и т.д.

© Geektimes