Искусственный интеллект против хомоглифов: невидимые символы скрывают вредоносный код

information security

На первый взгляд calendaromatic казался безобидным календарным приложением с дружелюбным интерфейсом. Однако исследование показало, что эта программа представляет собой сложную угрозу, использующую современные фреймворки и скрытые каналы передачи данных. Особую опасность придавало её распространение через агрессивную рекламную кампанию - пользователи вручную загружали и запускали её после появления в результатах поиска и на рекламных площадках.

Описание

Расследование выявило использование фреймворка NeutralinoJS, который позиционируется как облегченная альтернатива Electron. Он позволяет упаковывать HTML, CSS и JavaScript в кроссплатформенные настольные приложения, но вместо полноценного движка Chromium использует Microsoft Edge WebView2. Важно отметить, что Neutralino предоставляет API для работы с файловой системой, запуска процессов и управления окнами, что означает, что любой произвольный JavaScript внутри приложения может напрямую взаимодействовать с операционной си

Файл calendaromatic.exe оказался самораспаковывающимся архивом 7z SFX, подписанным действительным сертификатом на имя CROWN SKY LLC. Это добавляло видимость легитимности. После распаковки обнаружились два файла: calendaromatic-win_x64.exe и resources.neu. Основная логика была скрыта в resources.neu - сжатом bundle веб-кода приложения.

Ключевым моментом стала функция clean() в файле main.js. Изначально она казалась безвредным помощником для sanitizing данных о праздниках из API. Однако при детальном анализе выяснилось, что функция сканировала каждый символ ответа на предмет Unicode homoglyphs - символов, которые выглядят идентично для человеческого глаза, но имеют разные кодовые точки. Например, обычный дефис (-) мог быть заменен на знак минуса (−), en dash (-) или em dash (-). Для человека это просто черточка, но для функции эти微小ные различия кодировали скрытые инструкции.

Каждый хомоглиф преобразовывался в биты, и после сбора достаточного количества восстанавливалась скрытая строка. Декодированная строка затем выполнялась с помощью хитрого приема в JavaScript: вызов chars.constructor.constructor ссылался на конструктор Function, что эквивалентно eval(). Это означало, что приложение могло запустить любой код, который сервер smuggled в названия праздников с помощью lookalike символов.

В коде была определена переменная API_CONFIG с тремя endpoint: /api/calendar, /api/calendar/available и /health. Функция loadHolidaysFromAPI() делала GET-запросы к /api/calendar, добавляя текущий год, и применяла функцию clean() к полученным данным. Таким образом, техника использовала homoglyphs как covert channel: в ответах API, которые выглядели как обычные данные о праздниках, некоторые дефисы заменялись на Unicode аналоги, невидимые для пользователя, но интерпретируемые кодом как биты для сборки скрытой полезной нагрузки.

Для подтверждения угрозы была развернута изолированная лабораторная среда: Windows 11 без внешней сети, NeutralinoJS, Python 3.11 для serving контролируемых JSON-ответов, mkcert для trusted локального TLS-сертификата. Календарное приложение было настроено на взаимодействие с локальным сервером, имитирующим calendaromatic[.]com. В ответ сервер отправлял специально crafted JSON с homoglyph-последовательностью, которая декодировалась в команду запуска calc.exe. Эксперимент подтвердил уязвимость: приложение успешно выполняло скрытый код.

Анализ домена calendaromatic[.]com показал, что он был зарегистрирован 14 августа 2025 года через NameCheap с использованием nameservers Cloudflare. География трафика указывала на целевой характер атаки: 77,7% запросов приходилось из США, затем Великобритания, Канада, Австралия, Франция и Индия.

Этот случай демонстрирует, что современные угрозы часто используют незаметные техники, маскируясь под легитимные приложения. Разница между дефисом и en dash может оказаться критичной для безопасности. Искусственный интеллект сыграл ключевую роль в ускорении анализа, позволив быстро разобрать минифицированный JavaScript и выявить подозрительную логику, что вручную заняло бы гораздо больше времени.

Индикаторы компрометации

Domains

  • calendaromatic.com

SHA256

  • 497ed5bca59fa6c01f80d55c5f528a40daff4e4afddfbe58dbd452c45d4866a3
  • 69934dc1d4fdb552037774ee7a75c20608c09680128c9840b508551dbcf463ad
  • c24774d9b3455b47a41c218d404ae6b702da0d2e3e8ad3d2a353ffddd62239c2
  • e32d6b2b38b11db56ae5bce0d5e5413578a62960aa3fab48553f048c4d5f91f0
Комментарии: 0