Письмо с уведомлением о задолженности и вложением-счётом по-прежнему приводит к заражению компьютеров в бухгалтерии и отделах закупок. В разобранном случае адресату пришёл архив необычного формата, внутри которого вместо платёжного документа лежал запутанный сценарий. Его запуск заканчивался закреплением в системе программы удалённого доступа XWorm. Значима здесь не столько сама полезная нагрузка, сколько способ доставки: редкий формат вложения и многоступенчатая маскировка помогают обойти типовые почтовые фильтры.
Описание
Схема начинается с авансового мошенничества. Получателю сообщают о неоплаченном счёте и предлагают сверить документы во вложении. Файл подписан по-испански как счёт-фактура. Его расширение относилось к формату LZH - сжатию, распространённому в Японии и Восточной Азии. В деловой переписке за пределами региона такой формат почти не встречается. Почтовые шлюзы чаще настроены на проверку ZIP, RAR и двойных расширений, поэтому редкое вложение нередко проходит через фильтры без внимания. Внутри архива вместо документа обнаружился файл сценария длиной более тысячи строк.
Как показало исследование, код сценария намеренно запутан, поэтому прочитать его глазами невозможно. Запуск занимает доли секунды и не выводит на экран ни одного окна. Во временной папке пользователя появляются четыре служебных файла: командный сценарий, сценарий управления системой и два блока данных. Сценарий управления запускается со скрытым окном и в обход политики выполнения, заданной в операционной системе. Пользователь не видит ни окон, ни индикаторов загрузки.
Дальше события развиваются по заранее выстроенной цепочке. Командный сценарий вызывает сценарий управления, после чего удаляет все промежуточные файлы, включая самого себя. Следующий этап читает два подготовленных блока данных, расшифровывает их встроенным ключом и загружает результат прямо в оперативную память, минуя диск. Одна часть расшифрованного содержимого работает как загрузчик для второй. Сценарий следит за временем: если операция длится больше десяти минут, он завершается, чтобы не попасть в поле зрения инструментов анализа.
Разбор подобных образцов ведут в изолированной среде. Сценарий запускают в песочнице, отслеживая изменения в служебных папках и обращения системных процессов к файлам. Так восстанавливают последовательность действий, которую автор намеренно разбросал по тысяче строк. Без динамического наблюдения часть шагов осталась бы незамеченной: расшифровка происходит в памяти, а промежуточные файлы к моменту завершения работы уже удалены.
В памяти оказываются два двоичных файла. Один выглядит как библиотека легитимного приложения, второй - как исполняемый файл вредоносной программы. Разделение ролей затрудняет обнаружение: вредоносный код внедряется в уже запущенный процесс, и система доверяет ему как собственному компоненту.
Вредоносный файл написан для платформы .NET (программная среда Microsoft) и не защищён средствами запутывания кода. Это упростило разбор и позволило увидеть логику целиком. При запуске программа расшифровывает параметры соединения: адрес управляющего сервера, порт и служебные идентификаторы. Затем она устанавливает связь, а при обрыве регулярно пытается подключиться заново. Перед соединением она собирает сведения о конфигурации компьютера, которые помогают оценить ценность заражённой машины.
Программа умеет больше, чем просто собирать данные. Она поддерживает выполнение команд, двусторонний обмен сообщениями с оператором и самоудаление по его требованию. Последняя возможность особенно неприятна: после кражи данных злоумышленник стирает следы присутствия, и расследование осложняется. Для компании это оборачивается утечкой бухгалтерской отчётности, переписки, персональных данных клиентов и коммерческой тайны. Расходы складываются из простоя, оплаты расследования, восстановления систем и возможных претензий регуляторов.
Защита начинается с почтового шлюза. Фильтры стоит настраивать с учётом редких форматов архивов, а не только привычных ZIP и RAR. Сотрудникам, работающим с платежами, полезно напоминать простое правило: счёт-фактура не приходит файлом сценария, и запускать его нельзя. Отключение автозапуска сценариев, работа под учётной записью с минимальными правами и запрет на выполнение кода из временных папок заметно снижают шансы атаки. Двухфакторная аутентификация в корпоративных сервисах и разделение сети на сегменты ограничивают ущерб, если заражение уже произошло.
Многоступенчатые цепочки с расшифровкой в памяти и самоудалением промежуточных файлов давно перестали быть признаком изощрённых группировок. Готовые программы удалённого доступа перепродаются, поэтому порог входа для массовых кампаний снизился. Нападающие прячут их за редкими форматами архивов и запутанными сценариями, рассчитывая на невнимательность получателя. Против такой тактики работает сочетание фильтрации почты, ограничения прав пользователей и контроля событий на конечных точках.