Авторы TrickBot выпустили сотую, юбилейную версию многофункционального зловреда, расширив набор средств, которые тот использует для самозащиты. Новые функциональные возможности обеспечивают загрузку основного кода напрямую из памяти, без сохранения на жестком диске.
Вредоносная программа TrickBot обычно распространяется через спам-рассылки или с помощью других зловредов. После запуска она загружает дополнительные модули, позволяющие похищать данные из базы служб Active Directory, копировать себя на другие машины в сети, блокировать доступ к рабочему столу, извлекать пароли и куки из браузеров, воровать ключи OpenSSH, открывать бэкдор. Возможности TrickBot неоднократно использовались для загрузки программ-шифровальщиков Ryuk и Conti.
В прошлом месяце ИТ-компании нанесли скоординированный удар по инфраструктуре TrickBot, однако, судя по нововведению, ботоводы все еще надеются восстановить свои операции в прежнем объеме.
Анализ новой версии зловреда показал, что тот обрел новый защитный модуль — MemoryModule. Эта библиотека позволяет TrickBot внедрять свою DLL в легитимный процесс wermgr.exe (служба отчетов об ошибках Windows) непосредственно из памяти и затем завершать исходный вредоносный exe-процесс. С этой целью MemoryModule применяет технику process doppelgänging, предполагающую использование WinAPI, которые отвечают за транзакции файловой системы NTFS.
Технология транзакций NTFS была впервые введена в Windows Vista; она позволяет группировать файловые операции в сущность, называемую транзакцией. Эта технология упрощает восстановление при ошибках в установке или обновлении программ — изменения всегда можно откатить. Примечательно, что в последнем случае следов на жестком диске не остается. Запуск произвольного процесса внутри файловой транзакции не требует прав администратора; более того, до закрытия или отката она не видна никому, что тоже на руку злоумышленникам.
Техника, применяемая новым модулем TrickBot, работает следующим образом: вначале он создает новую транзакцию NTFS и в ее контексте — временный файл для вредоносного кода, затем MemoryModule проецирует содержимое этого файла на часть адресного пространства целевого процесса и откатывает транзакцию. В результате созданный TrickBot файл бесследно исчезает, а его полезная нагрузка остается в памяти системного процесса wermgr.exe.