В среде специалистов по компьютерной безопасности шумиха: обсуждается идея «недетектируемого» руткита, основанного на технологиях виртуальных машин. Вопросы на повестке дня: о чем все это, и нужно ли начинать беспокоиться?
Проект руткита, работающего ниже уровня операционной системы, разрабатывается в Университете Мичигана и спонсируется Майкрософт. Широкой общественности стало известно о нем после публикации программы конференции IEEE Symposium on Security and Privacy, на которой будет представлена данная proof-of-concept-разработка.
Идея парней из Мичигана состоит в том, что можно вынести вредоносный код за пределы пользовательской операционной системы, сделав его принципиально невидимым изнутри нее. Для этого между операционной системой и оборудованием внедряется дополнительная прослойка, представленная монитором виртуальных машин (VMM). На стадии загрузки машины управление от BIOS переходит не к загрузчику пользовательской операционной системы, а к VMM, который в свою очередь загружает установленную операционную систему. Т.о., последняя оказывается «виртуальной машиной»; все взаимодействие между программами пользователя и оборудованием происходит через происходит через VMM.
Параллельно пользовательской, VMM скрытно запускает еще одну операционную систему. В ней исполняются вредоносные программы. Оборудование доступно им напрямую. Кейлоггер внутри «вредной» ОС может считывать нажатия клавиш клавиатуры, а троян-прокси — осуществлять сетевую коммуникацию. При этом следы их деятельности и код находятся за пределами ОС пользователя и, следовательно, не могут быть непосредственно обнаружены изнутри нее — даже при помощи сколь угодно мощного антивируса или фаервола.
Несмотря на кажущуюся опасность данной proof-of-concept-разработки, поводов для беспокойства я не вижу.
Во-первых, реализация такого руткита сложна и не под силу большинству вирусописателей — даже несмотря на то, что в качестве его основы берется готовый движок VMM.
Во-вторых, наличие прослойки между оборудованием и операционной системой невозможно скрыть — оно сказывается на работоспособности системы и значениях некоторых системных переменных.
В-третьих, обнаружить присутствие виртуализованного руткита довольно просто. Помимо отслеживания вышеупомянутых признаков снижения производительности, самый простой способ обнаружения и детектирования кода руткита — загрузка компьютера с внешнего устройства (USB, CD) и сканирование жесткого диска с него.
SubVirt — очередная страшилка