Появилась информация об аппаратных бэкдорах

Разработчики Ksplice опубликовали любопытный документ, в котором показана техника встраивания вируса в аппаратную часть компьютера. Код такого вируса в будущем будет очень сложно обнаружить и практически невозможно удалить. Хотя исследование нацелено на взлом ядра Linux, описанную технику гораздо проще реализовать на других OS, например, на Windows. Исследование содержит примеры работоспособного кода.

Чтобы произвести подобную атаку, нужно сначала разобраться с начальной загрузкой компьютера. Во время запуска компьютера, первым этапом загрузки является прохождение BIOS’ом самопроверки (POST) и запуск ROM-кода различных устройств компьютера. Эти ROM-программы позволяют правильно инициализировать устройство или позволить BIOS’у общаться с железом, про которое он ничего не знает (например, данная функция позволяет BIOS’у загрузить ОС с жёсткого диска, подключенного к SCSI адаптеру). Для этого у BIOS есть таблица прерываний, которую можно переопределить.

Суть атаки заключается в том, что атакующий записывает в ROM-память заданной платы компьютера вредоносный код, который производит следующие действия: он переопределяет прерывание, ответственное за чтение данных с жёсткого диска компьютера, что позволяет внедрить свой код в загружаемое Linux-ядро, путём переписывания части его кода. Поскольку ядро Linux является крайне сложной хорошо упакованной программой, нельзя переписать случайный кусок кода, ибо это может привести к неработоспособности системы. Поэтому зловредный код переписывает достаточно длинное сообщение об ошибке внутри ядра, при этом заменяя точку вхождения в ядро.

Этот зловредный код в свою очередь устанавливает в ядре Linux модуль для обработки обычно неиспользуемого 163 протокола и изменяет точку вхождения в ядро, чтобы модуль автоматически запустился. Затем ядро продолжает обычную загрузку. Нужно отметить, что все эти операции происходят совершенно незаметно для пользователя. Данный модуль заставляет Linux отвечать на запросы при обращении по 163 протоколу, запуская нужное приложение, например, /bin/bash с правами root-пользователя.

Подробности исследования

Источник: OpenNET.ru