Исследователи продолжают восхищаться сложностью трояна Flame (Flamer,
Skywiper). Прошло несколько месяцев с момента его обнаружения, но
анализ кода продолжается до сих пор. Очередную порцию аналитики вчера
опубликовала польская компания CERT Polska, их отчёт посвящён методам внедрения кода Flame в процессы Windows.
Исследователи отмечают, что инъекция кода в процессы и треды
считается традиционной техникой работы вирусов, но Flame — это особый
случай, потому что здесь данный метод доведён до совершенства. Перенос
кода между процессами происходит на протяжении всего цикла
жизнедеятельности трояна, начиная от инсталляции, и заканчивая
самоуничтожением. «Flame использует эту технику для переноса и
копирования своих элементов в разные части операционной системы жертвы с
потрясающей ловкостью», — пишут исследователи.
Они рассказывают, как после заражения через эксплойт уязвимости MS10-061
код Flame запускается программой rundll32.exe, после чего внедряется в
services.exe, а оттуда — в разные компоненты Windows, в том числе в
процесс explorer.exe. В дальнейшем фрагменты кода из разных процессов
начинают синхронизировать свои действия: код в explorer.exe ждёт команды
от services.exe, после чего создаёт процесс iexplore.exe. В дальнейшем
коммуникация между services.exe и iexplore.exe продолжается через
именованный канал, причём его имя может генерироваться из случайных
символов и отличаться между разными инсталляциями. Тред из services.exe
записывает указания в именованный канал, а процесс iexplore.exe получает
и исполняет их.
Все эти сложности с коммуникациями между тремя процессами необходимы
для того, чтобы затруднить обнаружение трояна. Если explorer.exe
пытается выйти в интернет (например, как это сделано в SpyEye), то это
неизбежно вызовет подозрение у файрвола и антивирусной программы. В
модульной системе Flame в интернет выходит только процесс iexplorer.exe,
что не вызывает никаких подозрений. Запуск iexplorer.exe через
explorer.exe тоже является естественной процедурой, ведь пользователи
Windows именно так запускают браузер. Вот почему Flame использует
explorer.exe в качестве прокси.
Добавить к этому поддельные сертификаты Windows Update — и
складывается полная картина, почему Flame так долго мог скрываться от
обнаружения даже на компьютерах с антивирусным ПО и файрволами.
Комментарий: Честно говоря ничего гениального в использовании именованных каналов нет, сам юзал, просто если кто узнает об использовании подобной простой техники сразу же "тыкают пальцем" и говорят "ламер", хотя простота и скрытность подкупают, не зря же говорят, что "все гениальное просто")) Нет ничего гениального и в прямом вызове iexplore.exe для передачи данных, да и в технике внедрения. И, кстати, в HEX виде так и представлен полный путь к iexplore.exe ))))) ?????
|