Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Аппаратура виртуализации для O-DAY антивирусной защиты.
Intel хочет победить вирусы
В конце 2010 года фирма Intel сообщила о своем желании приобрести одного из ведущих поставщиков антивирусных решений McAfee. На первый взгляд, несуразное решение, но только на первый. Встраивание механизмов защиты от вирусов непосредственно в аппаратуру компьютера это многообещающая идея и новая ступень в развитии антивирусных технологий.
Первая попытка создания такой защиты была предпринята лет десять тому назад: это пресловутый NX-бит, предотвращавший исполнение программ в помеченных этим битом виртуальных страницах памяти.
Результат оказался неудачным: защита, построенная на базе этой технологии, была встроена в операционные системы (пример DEP в Microsoft Windows), но с легкостью пробивалась вирусами. Причина провала проста программные компоненты этой защиты работают на том же самом уровне, что и сами вирусы, не имея перед ними приоритета.
Вывод из этой неудачи очевиден: аппаратура контроля должна инициировать программные модули на уровне, недоступном для любых пользовательских программ даже для тех, которые работают на уровне ядра операционной системы. Нужен более глубокий уровень, который сегодня уже реализован это уровень гипервизора. Скорее всего, архитекторы Intel начнут встраивать свои блоки антивирусной защиты именно в систему аппаратной виртуализации.
Что может аппаратура
Сама аппаратура, где бы ее ни размещали, конечно, не панацея от всех бед. Она может контролировать только относительно простые взаимосвязи между объектами программирования (значениями регистров, статусов блоков памяти). Поэтому важна связка контрольной аппаратуры, регистрирующей события, и логических обработчиков этих событий. В реальной работе компьютера таких событий очень много миллионы в секунду, и из них нужно выбирать только те, которые попадают под критерии вирусной атаки.
Классический гипервизор может контролировать только атаки вирусов, связанные с нарушениями общепринятых соглашений по построению программных модулей. Это ограничивает область эффективного использования такого аппаратного контроля: для построения абсолютной антивирусной защиты возможностей аппаратуры виртуализации явно не хватает. Нужно добавлять специализированные блоки, заточенные на регистрацию более широкого класса событий. Сформулировать требования к такой аппаратуре могут только специалисты в области антивирусной защиты. Видимо, это и послужило причиной интереса Intel к McAfee.
Уже сейчас, на существующей аппаратуре, можно контролировать соглашения о разделения областей ядра и прикладных программ на несколько непрерывных адресных пространств. Т.е. выполнять аппаратный контроль привязки уровня привилегий выполняемого кода к конкретным областям линейных адресов. Это позволит выявлять атаки вирусов, направленные на повышение своего уровня привилегий.
Нынешняя аппаратура позволяет контролировать и принцип целостности точек возврата, записанных в стек. Это потенциально может предотвращать атаки вирусов, связанные с переполнениями буферов.
В последнее время много говорится о вирусных атаках с периферийного оборудования, в составе которого есть собственные микропроцессоры (например, это сетевые и видео карты). Попытки доступа подобного оборудования к чужим областям памяти вычислительной системы также могут быть проконтролированы средствами аппаратуры виртуализации.
Кроме этого, достаточно просто контролировать запуск программных модулей, загруженных в память со съемных носителей (типа USB Flash). Метод такого контроля очевиден и легко реализуем: средствами аппаратуры виртуализации отслеживаются страницы оперативной памяти, куда происходила загрузка данных со съемного носителя, и эти блоки памяти помечаются как недоступные для исполнения. Попытка выполнить код из такого участка памяти приведет к возникновению события нарушения защиты, которое можно легко зарегистрировать. При наличии такого контроля вирусы типа широко известного Stuxnet будут обнаружены еще до начала их запуска.
Это только поверхностный перечень возможностей аппаратуры в составе блоков виртуализации, уже имеющихся в распоряжении программиста. К сожалению, пока этими возможностями никто не воспользовался.
Гипердрайвер «Красная пилюля» с антивирусной защитой
Чтобы показать возможности гипервизора в качестве антивирусного средства, выкладываю демонстрационную версию Гипердрайвера и ГиперАгента с возможностями обнаружения атак вирусов. Гипердрайвер контролирует средствами аппаратуры виртуализации все без исключения события, связанные с передачей управления команды и события прерываний, вызовы процедур, джампы. В этих точках происходят выходы из состояния задачи в состояние хоста, где программные обработчики этих событий анализируют состояние процессора. Если анализ показывает опасную ситуацию, информация о ней заносится в дамп событий, который можно просмотреть с помощью «ГиперАгента».
Гипердрайвер загружается с выключенным антивирусным контролем, а включение и выключение контроля происходит в «ГиперАгенте», на вкладке «Дамп».
В дампе сохраняется информация о процессоре, уровне привилегий, линейном адресе каждого события и о последних точках перехода. Для каждого события фиксируется физический адрес памяти, где размещался вызвавший его код.
Эта версия «Красной пилюли» контролирует три типа событий в точках передачи управления:
Выполнение кода в области виртуальных адресов 0000_0000h 7FFF_FFFFh с нулевым уровнем привилегий, Это детектирует вирусную атаку нацеленную на повышения уровня привилегий.
Передачу управления на код, состоящий из последовательности одинаковых байт (в данном случае при длине цепочки из 7 и более байт). Это детектирует вирусную атаку переполнением стека и динамически распределяемой памяти.
Выполнение любого кода при условии нахождения указателя стека в том же 4-килобайтном блоке, что и этот код. Это детектирует вирусную атаку по классическому сценарию ROP.
Перечень проверок можно было бы расширить, но это уже работа специалистов в области антивирусной защиты, к которым я не отношусь. Поэтому набор контролируемых ситуаций перекрывает только общеизвестные формальные методы (повышение уровня привилегий, переполнение буферов), используемыми вирусами для внедрения в целевую систему.
Программа написана в демонстрационных целях и не претендует на роль рабочего инструмента. Ее задача показать имеющиеся возможности и оценить потери быстродействия в системе при включении довольно затратной по времени обработки событий в хосте Гипердрайвера.
На вкладке просмотра дампа есть ползунковый регулятор глубины просмотра событий. В крайнем левом положении глубина просмотра максимально возможная, с детализацией до одного 4-килобайтного блока программного кода. В крайнем правом положении детализация ограничивается 16 блоками.
От глубины просмотра зависит и производительность системы, которую можно оценить и визуально, и по диаграммам загрузки ядер процессора.
Дамп регистрирует линейные адреса точек перехода (From_IP и Tо_IP). Программный код зарегистрированного в дампе события можно просмотреть двойным щелчком мыши в колонке Adr_Mem (адрес физической памяти).
Событие зарегистрировано по факту последовательности из 7 одинаковых байт (команда NOP) в точке передачи управления.
Для запуска Гипердрайвера отсылаю вас к инструкции в первой статье цикла: там все описано, и все ограничения на использования «Красной пилюли» также остаются (годятся только процессоры AMD и только 32-битная ОС, для работы программы ГиперАгент требуется Windows).
Как это работает подробности для профессионалов
Все эти возможности в «Красной пилюле» через использование аппаратуры Nested Paging (NPG) и контроля переходов Recording Control Transfers (LBR). Эти блоки есть и в процессорах AMD и в процессорах Intel хотя их названия различаются, они обеспечивают одинаковые возможности.
Блок контроля переходов (LBR) позволяет использовать для анализа информацию о точке перехода (FROM_IP, TO_IP). Блок теневой трансляции (NPG) позволяет контролировать все обращения к физическим страницам оперативной памяти через биты контроля U\S, R\W, NXE.
В теневой таблице переадресации РАЕ-64, доступ к которой есть только у гипервизора, для всех блоков памяти выставляется бит NXE, поэтому при попытке начать выполнение команд из этой страницы происходит выход в обработчики событий гипервизора. В точке выхода производится анализ соблюдения формальных соглашений, и если они не нарушены, то эта страница помечается как разрешенная к выполнению кода, после чего происходит возврат в задачу.
Количество страниц памяти, работа которых разрешена (при переходах между ними выходов в хост не происходит), можно регулировать. Конечно, такая регулировка одновременно сказывается на глубине контроля и скорости выполнения.
Можно одновременно с разрешением выполнения кода из страницы памяти запретить запись в нее, тогда будут детектироваться все самомодифицирующиеся программы, но этот способ контроля в демонстрационной версии не используется.
Поскольку аппаратура позволяет контролировать физические страницы памяти, контролируя DMA периферийных контроллеров, можно строить динамические списки блоков памяти загруженных с внешних носителей, сети и т.д. Контроль в точках начала использования новой страницы оперативной памяти позволит однозначно определить источник получения исполняемого блока и выполнить регистрацию данного события.
Перспективы использования
Возвращаясь к тому, с чего я начал, констатирую, что даже стандартная аппаратура системы виртуализации позволяет осуществлять эффективный контроль за атаками как известных, так и 0-day вирусов. Если же расширить состав оборудования контроля событий специализированными узлами, то надежность и скорость работы такой системы контроля возрастут многократно.
Таким образом, для систем виртуализации, по-видимому, в скором будущем откроется еще одна ниша применения антивирусная защита. Она может быть реализована в виде специализированных Гипердрайверов или в виде плагинов к промышленным системам виртуализации.
К сожалению, таким формализованным контролем можно перекрыть лишь небольшое множество методов атак (впрочем, самые актуальные из них, все-таки можно). Для атак, алгоритмы которых не могут быть формализованы, предлагаемый принцип контроля не годится. Такие атаки придется контролировать, применяя программные модули интеллектуального анализа, но обязательно в сочетании с поддержкой на аппаратном уровне.
В любом случае, вектор развития антивирусных технологий определился. Фирма Intel свой выбор сделала, купив McAfee. Посмотрим, кого купит себе AMD.
P.S.
Когда статья и программы, что называется, «вылеживались», ожидая конца новогоднего сезона, пришла новость о том, что в интервью с IDG/Computerworld технический директор Intel Джастин Раттнер сказал :
"Я думаю, что у нас есть реальные революционные идеи, чтобы переменить ход борьбы с вредоносными программами. Мы увидим большой прыжок в возможностях будущих устройств защитить себя от атак, будь то компьютеры, телефоны, планшеты или умные телевизоры".
Далее он продолжил объяснять, что новая технология будет основана на аппаратном обеспечении и не будет полагаться на сигнатуры. В результате этого "совершенно иного" подхода, технология даст возможность распознавать и останавливать самые новые вирусы.
Таким образом, основное утверждение автора, о том, что Intel собирается бороться с вирусами аппаратными средствами уже подтвердилась. Подождем подробностей, но готов спорить, что реализация данной технологии от Intel будет повторять методы уже работающие в «Красной пилюле».
P.P.S.
Придется разочаровать скептиков, которые не приняли всерьез утверждение, что технология виртуализации может применяться в скрытых модулях BIOS со зловредной начинкой. Пример такой программы, выполненной на основе Гипердрайвера «Красная пилюля», уже готов и будет темой следующей статьи этого цикла.