Разработан вирус конструирующийся из установленных на компьютере программ

Разработан вирус конструирующийся из установленных на компьютере программ

Учёные по заказу армии США разработали образец вируса, который самособирается из фрагментов ПО, установленного на компьютере жертвы. Концептуальной разработке дали название Frankenstein, пишет журнал New Scientist. Перед учёными поставили задание создать код, который будет трудно обнаружить с помощью неизвестного антивируса. Задачу решили за счёт модульной конструкции вируса.

После установки на машину жертвы, вирус конструирует рабочее тело из так называемых «гаджетов» — маленьких фрагментов исходного кода, каждый из которых выполняет определённую узкую задачу. Гаджеты заимствуются из программ, уже установленных на компьютере пользователя, таких как Internet Explorer или Notepad. Типичная Windows-программа содержит около 100 000 гаджетов, своеобразных кирпичиков для сборки. Например, explorer.exe — 127859 гаджетов, gcc.exe — 97163 гаджетов, calc.exe — 60390, cmd.exe — 25008, notepad.exe — 6974.

Предыдущие исследования в данной области показали теоретическую возможность конструирования ПО таким способом, если доступно достаточное количество гаджетов. Теперь эта теория доказана на практике. Вишват Мохэн (Vishwath Mohan) и Кевин Хэмлен (Kevin Hamlen) из Техасского университета в Далласе создали из гаджетов программу, реализовав два простых алгоритма, которые могут использоваться в настоящем зловреде, передает xakep.ru.

Ключевая особенность «Франкенштейна» в том, что сборка рабочего тела по заданным инструкциям повторяется на каждом заражённом компьютере, но каждый раз задействуются новые гаджеты, так что бинарник вируса в каждом случае получается уникальным. За счёт этой особенности вредоносную программу практически невозможно обнаружить по базе вирусных сигнатур.

Подобный подход генерации кода гораздо эффективнее, чем мутация по заданному алгоритму, потому что антивирусные программы довольно быстро вычисляют алгоритм и приспосабливаются к нему. Чтобы вычислять вирусы вроде «Франкенштейна», им придётся анализировать не программный код, а реальное поведение программы, возможно, запуская её в песочнице. С другой стороны, вредоносная программа может определять наличие песочницы и менять своё поведение, как это делают некоторые нынешние вирусы.

Презентация научной работы Вишвата Мохэн и Кевина Хэмлена Frankenstein: Stitching Malware from Benign Binaries(pdf) состоялась на конференции USENIX Workshop on Offensive Technologies, которая прошла 6-7 августа 2012 года в городе Белвью (штат Вашингтон).

Инструмент для Linux-гейминга оказался дырой с root-доступом

Инструмент InputPlumber, который используется для объединения устройств ввода в Linux-системах (в том числе в SteamOS), оказался небезопасным. Специалисты SUSE обнаружили в нём критические уязвимости, позволяющие локальному злоумышленнику перехватывать пользовательские сессии, подсовывать нажатия клавиш и даже читать файлы с правами root.

Речь идёт о двух уязвимостях — CVE-2025-66005 и CVE-2025-14338. Обе связаны с тем, что InputPlumber практически не проверял, кто именно обращается к его D-Bus-сервису. А это особенно неприятно, учитывая, что сервис работает с правами root.

Как выяснилось в ходе плановой проверки пакетов, ранние версии InputPlumber вообще не содержали никакой аутентификации клиентов.

«Первая версия InputPlumber, которую мы проверяли, полностью игнорировала аутентификацию, из-за чего мы сразу её забраковали», — пишут эксперты SUSE в отчёте SUSE.

Разработчики попытались исправиться и добавить Polkit, но сделали это так, что защита в реальности часто не работала. Поддержка Polkit была опциональна на этапе компиляции — и по умолчанию оказывалась отключённой. В результате бинарники нередко поставлялись вообще без какой-либо валидации.

Более того, даже при включённом Polkit обнаружилась состояние гонки (race condition) — классическая проблема, связанная с небезопасным использованием unix-process в Polkit (CVE-2025-14338).

По сути, любой пользователь системы получал доступ ко всем D-Bus-методам InputPlumber. А это открывало довольно опасные вектора атаки.

Например, через метод CreateTargetDevice можно было создать виртуальную клавиатуру и начать «нажимать» клавиши в чужой активной сессии — будь то рабочий стол или экран входа в систему.

Проще говоря, один пользователь мог незаметно управлять вводом другого и потенциально добиться выполнения произвольного кода от его имени.

Другой метод — CreateCompositeDevice — позволял использовать конфигурационные файлы для сторонних целей. С его помощью исследователи смогли определить существование привилегированных файлов и даже частично утёкшие данные, включая содержимое /root/.bash_history, которое «подсвечивалось» через сообщения об ошибках.

После раскрытия информации разработчики InputPlumber устранили проблемы. В версии v0.69.0 Polkit-аутентификация включена по умолчанию, а небезопасный механизм проверки заменён на корректный.

Обновления уже добрались и до SteamOS — компания выпустила новые образы SteamOS 3.7.20, в которых уязвимости закрыты.

Пользователям, у которых InputPlumber установлен в системе, настоятельно рекомендуется обновиться как можно скорее. Даже если вы используете его «только для игр», root-сервисы без нормальной аутентификации — это всегда плохая идея.

RSS: Новости на портале Anti-Malware.ru