Xakep #305. Многошаговые SQL-инъекции
Специалисты компании ESET обнаружили в России и Украине вредоносную программу InvisiMole, которая используется для кибершпионажа. InvisiMole открывает атакующим удаленный доступ к зараженному устройству, позволяет следить за действиями жертвы и перехватывать конфиденциальные данные.
По данным телеметрии ESET, кибергруппа, использующая InvisiMole, активна как минимум с 2013 года. Тем не менее, малварь не была изучена и не детектировалась до момента обнаружения продуктами ESET на зараженных компьютерах в России и Украине. Вредоносная кампания высокотаргетирована, что объясняет низкий уровень зараженности – всего несколько десятков компьютеров. InvisiMole, по всей видимости, применялась только в целевых атаках на высокопоставленные объекты, что и позволяло избегать обнаружения на протяжении пяти лет.
InvisiMole имеет модульную архитектуру. Так, малварь свой путь с DLL-обертки (wrapper DLL), скомпилированной с помощью Free Pascal Compiler. По данным специалистов, DLL помещается в папку Windows и маскируется под легитимный файл библиотеки mpr.dll с поддельной информацией о версии. Хотя образцы с другими именами обертки аналитикам не встречались, они отмечают, что в коде DLL есть указания на то, что файл может называться также fxsst.dll или winmm.dll.
Первый способ запуска малвари – техника подмены DLL (DLL hijacking). DLL-обертка помещается в ту же папку, что и explorer.exe, и загружается при запуске Windows вместе с процессом Windows Explorer вместо легитимной библиотеки, расположенной в %windir%\system32. Были обнаружены 32- и 64-битные версии малвари, что обеспечивает устойчивое присутствие в обеих архитектурах.
В качестве альтернативы подмене DLL возможны другие методы загрузки и обеспечения персистентности. DLL-обертка экспортирует функцию GetDataLength. При вызове этой функции DLL проверяет, была ли она загружена процессом rundll32.exe с помощью explorer.exe или svchost.exeв качестве родительского процесса, и только после этого запускает полезную нагрузку. Это предполагает другие возможные методы обеспечения персистентности – внесение задач в планировщик (родительский процесс – svchost.exe) или запись в ключ автозапуска реестра (родительский процесс – explorer.exe).
Вне зависимости от способа обеспечения устойчивого присутствия, поведение вредоносной программы и непосредственно полезной нагрузки во всех случаях одинаково. DLL-обертка загружает модуль, хранящийся в ресурсах под названиями RC2FM и RC2CL, и (если используется подмена DLL) легитимную библиотеку в процесс explorer.exe, чтобы не нарушать нормальную работу приложения и оставаться незамеченной.
Оба модуля (RC2FM и RC2CL) представляют собой многофункциональные бэкдоры, позволяющие малвари собрать максимум информации о цели.
Модуль RC2FM поддерживает 15 команд. В частности, он может удаленно включать микрофон, записывать аудио, делать снимки экрана, создавать списки файлов на встроенных и внешних дисках, а также передавать собранную информацию своим операторам. Получив соответствующую команду, модуль может вносить изменения в систему. В файлах реализована опция ведения журналов, но имя системного журнала не задано в изученном образце. Это дает основания предполагать, что функция использовалась только на стадии разработки.
Второй модуль, RC2CL, обладает еще более широким списком инструментов для шпионажа – 84 команды. Его функции, скорее, нацелены на максимальный сбор информации, чем на внесение изменений в систему. Он изучает зараженный компьютер и передает атакующим исчерпывающие данные: системную (список активных процессов, запущенных служб, загруженных драйверов или доступных дисков) и сетевую информацию (таблица IP адресов, скорость интернет-соединения), список установленных и используемых программ, недавно открытых документов и других интересующих файлов.
Операторы InvisiMole могут удаленно включать веб-камеру и микрофон, делать снимки экрана и каждого открытого окна. Спайварь позволяет просматривать определенные директории и внешние устройства, отслеживать изменения документов и извлекать выбранные файлы.
Интересно, что в модуле RC2CL также предусмотрена опция выключения функционала бэкдора и работы в качестве прокси. В этом случае малварь выключает файервол Windows и создает сервер, который поддерживает коммуникацию между клиентом и C&C-сервером или двумя клиентами. Кроме того, бэкдор способен вмешиваться в работу системы (например, разлогиниться за пользователя, завершить процесс или выключить систему), но преимущественно обеспечивает выполнение пассивных операций.
Так как InvisiMole собирает большой объем конфиденциальных данных, которые некоторое время хранятся в файлах и удаляются лишь после успешной загрузки на C&C-серверы, разработчики вредоноса не забыли позаботиться и о сокрытии следов. Проблема в том, что опытный системный администратор может восстановить даже удаленные файлы, что поможет в расследовании атаки после того, как жертва узнает о компрометации. Чтобы это предотвратить, InvisiMole имеет функцию безопасного удаления всех файлов. Это означает, что сначала идет перезапись данных нулевыми или рандомными байтами, и только после этого происходит удаление файла.
Эксперты ESET пишут, что можно только догадываться, почему авторы малвари используют два модуля с дублирующими функциями. Можно было бы предположить, что меньший модуль, RC2FM, используется на первом этапе разведки, а больший, RC2CL, запускается только на машинах, заинтересовавших операторов. Но это предположение было бы неверно, — два модуля запускаются одновременно. Второе возможное объяснение: модули собраны разными авторами, а затем объединены, чтобы обеспечить операторов InvisiMole максимумом инструментов.
Исследователи отмечают, что вектор заражения InvisiMole пока не установлен. В настоящее время рассматриваются все варианты, включая ручную установку при наличии физического доступа к машине.