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