Выбрать главу

Кивино гнездо: Дежавю, или Хождение по кругу

Киви Берд

Опубликовано 21 сентября 2011 года

Новость №1

Новость первая — про китайский руткит Mebromi, который в очередной раз напомнил всем о часто забываемой опасности вирусов в BIOS, то есть в базовой системе ввода/вывода компьютера.

Забывчивость на данный счёт принято объяснять тем, что BIOS размещается в программно-аппаратной прошивке специального чипа на системной плате, а для перепрограммирования таких чипов не существует универсального средства. Иначе говоря, для множества компьютеров на рынке существует не только великое множество несовместимых файлов-прошивок, но и куча разных программ для их записи во флеш-память чипа BIOS. А это, по идее, значит, что злоумышленникам и вирусописателям просто нет смысла возиться с проникновением в столь неудобную для инфицирования подсистему. Но это в теории.

А на практике китайская антивирусная фирма Qihoo 360 недавно обнаружила гуляющий по компьютерам вредоносный код, который в качестве главного места базирования использует BIOS компьютера. Там он остаётся вне досягаемости для общераспространённых антивирусных программ-сканеров. Однако вирус, получивший от китайских исследователей название Mebromi, способен проникать в BIOS великого множества компьютеров самых разных фирм и моделей.

Объясняется этот кажущийся парадокс совсем простой причиной. Сколь бы ни было велико разнообразие компьютеров на рынке, чипы BIOS для всех них поставляет совсем немного компаний. Причём одной из самых распространённых в мире систем такого рода уже многие годы является Award BIOS. А руткит Mebromi, как установлено, заточен именно под Award.

Как только эта инфекция попадает в компьютер жертвы, первым делом она проверяет систему на предмет использования Award BIOS. Если это так, то Mebromi использует известный инструмент CBROM, чтобы подсадить свои фрагменты в память BIOS. Затем, когда система загружается в следующий раз, эта надстройка добавляет дополнительный код в MBR, главную загрузочную запись жёсткого диска, чтобы заразить загрузочные процессы winlogon.exe или winnt.exe (в Windows XP и 2003 или Windows 2000 соответственно) до того, как загрузится собственно операционная система Windows.

При следующем перезапуске ОС вредоносный код загружает специальный руткит, препятствующий очистке MBR от инфекции с помощью антивирусных сканеров. Но даже если жёсткий диск всё же удастся вычистить, вся процедура заражения повторяется по новой, как только при очередной перезагрузке срабатывает модуль инфекции из памяти BIOS. Таким образом, в компьютерах с Award BIOS руткит Mebromi оказывается способным выдерживать не только зачистку системы, переустановку ОС или переформатирование диска, но даже полную замену жёсткого диска. (Если же в компьютере используется не Award, а какая-то иная система, тогда заражению подвергается только MBR.)

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

Затем, в 2000-е годы то и дело появлялись образцы вредоносных кодов, демонстрировавшие принципиальную работоспособность этой идеи. В 2006 году, к примеру, в компьютерном андеграунде был отмечен «руткит-прототип» IceLord, уже вполне корректно заражавший BIOS (что характерно, тоже Award), однако сколь-нибудь заметного распространения эта разработка не получила.

Тогда же, в 2006 году об интересных результатах своего исследования рассказал британский специалист по компьютерной безопасности Джон Хисмен. Хисмена обеспокоило, что на рынке не существует инструментов, позволяющих проверять содержимое BIOS на наличие руткитов. И в то же время в компьютерах имеется достаточно развитый набор функций управления питанием, известный как ACPI (Advanced Configuration and Power Interface) и обладающий своим собственным интерпретируемым языком высокого уровня, который можно использовать для написания кода руткита и прописывать главные функции атаки непосредственно во флэш BIOS. Для демонстрации своей идеи Хисмен написал соответствующий рабочий код, с помощью которого повышал привилегии вредоносной программы, считывал содержимое памяти и так далее. Механизм внедрения этого руткита в компьютер, правда, Хисмен делать не стал.