Диссертация (1144110), страница 15
Текст из файла (страница 15)
Вследствие чего ВПОможет использовать свои компоненты, функционирующие на различных уровнях,для обхода защитных механизмов.77Для решения данной проблемы предлагается внедрить на каждый уровеньсистемы (выделение уровней представлено в работе [102]) специальныхпрограммных агентов, реализующих сбор информации о событиях нижележащегоуровня. Тогда агент, расположенный на уровне ядра ОС, осуществляет мониторингсобытий уровня пользователя, а сбор данных об уровне ядра осуществляется спомощью гипервизора.В работе [102] авторы выделили четыре уровня:1)уровень приложений ОС;2)уровень ядра ОС;3)уровень гипервизора;4)уровень аппаратного обеспечения.Для каждого уровня иерархии набор отслеживаемых событий зависит отстепени конкретизации. Для агента, функционирующего на уровне ядра ОС,такими событиями могут быть:−открытие, редактирование, копирование файлов, представляющихценность;−сетевые операции;−запуск программ;−операции доступа к реестру;−операции над процессами и потоками.Уровень ядра ОС позволяет детализировать события вышележащегоуровня, а также получать информацию, характерную для этого уровня.
Сборданныхособытияхуровняядравозможенспомощьюгипервизора,осуществляющего наблюдение за работой системы, функционирующей внутриВМ. К отслеживаемым событиям можно отнести:−системные вызовы;−исключения;−прерывания;−запуск виртуальной машины (ВМ);−модификация структур данных ядра.78Гипервизор, являющийся по умолчанию доверенным компонентомсистемы, способен осуществлять перехват множества аспектов выполненияпрограмм, при этом, изоляция от ОС позволяет избежать возможных атак состороны ВПО, расположенного внутри ОС.Важно отметить, что использование гипервизора позволяет контролироватьсобытия не только ядра, но и события других гипервизоров, благодаря реализациифункции вложенной виртуализации.Гипервизор представляет собой программное средство, обеспечивающееработу одной или нескольких виртуальных машин. Каждая виртуальная машинапредставляет собой контролируемую среду, внутри которой может работатьполноценная ОС, включая ядро и уже контролируемые ею приложенияпользователя [104].При выборе гипервизора следует руководствоваться тем, какая технологиявиртуализации используется в нем, и типом его архитектуры.
Гипервизоры могутстроиться на основе различных технологиях виртуализации:1.Технология полной эмуляции инструкций процессора. Даннаятехнология виртуализации заключается в полной имитации гипервизоромповедения всех инструкций процессора, включая эмуляцию поведения всегонеобходимого оборудования. Достоинства технологии полной эмуляции –сохранение полного контроля за поведением каждой инструкции и возможностьзапускать ОС разработанной для процессоров с другой архитектурой. Кнедостаткам технологии можно отнести низкую производительность и большойобъем кода, необходимый для ее реализации. Например, для архитектуры x86следует реализовать более 600 мнемоник инструкций. Примером такогогипервизора служит проект Bochs [105].2.Технология паравиртуализации.
Данная технология базируется наосуществлении модификации ядра ОС таким образом, чтобы его можно былозапускать в виде обычного процесса другой ОС. Модификация представляет собойподменувсехфункцийидрайверовустройств,взаимодействующихсоборудованием. Подобный набор функций обычно имеет название HAL (Hardware79Abstraction Layer). К достоинствам технологии паравиртуализации следует отнестивысокуюпроизводительность,котораяобеспечивается,посколькувсенеобходимые функции могут быть реализованы без полноценной эмуляцииреальных устройств.
Недостатками технологии являются необходимость доступа кисходным текстам ОС и сниженная степень контроля за системой, посколькунемалая часть ядра ОС не будет использоваться. Примером гипервизора на основеэтой технологии является Xen [106].3.Технология trap&emulate. Эта технология виртуализации заключаетсяв том, что гипервизор работает с кодом ОС, выполняя ее код порциями. Каждуюследующую порцию кода гипервизор загружает в память и анализирует на предметналичия в ней привилегированных инструкций. Каждая такая привилегированнаяинструкция заменяется на код ловушки, после чего гипервизор осуществляетвыполнение такой модифицированной порции кода. При попадании в ловушку кодпередает управление гипервизору, который эмулирует инструкцию необходимымобразом, сохраняя контроль за поведением системы.
К достоинству этого способаследует отнести контроль за всеми инструкциями системы, подобно тому, как еслибы осуществлялась полная эмуляция инструкций. Также преимуществом являетсязначительный прирост в скорости работы. К недостаткам следует отнести высокуюсложность и большой объем кода, реализующего анализ порций кода [107].4.Аппаратная технология виртуализации. Фактически, это технологияаппаратной поддержки техники trap&emulate, реализуемая во всех современныхпроцессорах Intel и AMD. При этом, в разных процессорах она реализуетсякомпаниямипо-разному,присохранениифактическиодинаковойфункциональности. Технологии носят название Intel-VT и AMD-V.
Обеаппаратные технологии позволяют реализовать эффективные гипервизоры смалым количеством кода: для реализации простого гипервизора не требуется более4000 строк.Суть технологии сводится к тому, что анализом порций кода ирасстановкой ловушек занимается непосредственно процессор, а код гипервизорареализует функции эмуляции событий только там, где это необходимо.Достоинствами технологии являются высокая производительность, сохранение80контроля за поведением системы и малый объем кода, необходимый дляреализации гипервизора.
Последнее достоинство особенно важно при разработкесистем безопасности, поскольку оно позволяет свести объем доверенного кодасистемы к минимуму. Примером гипервизора, использующего эту технологию,является VMWare ESXi [108].Для выявления событий ядра ОС следует использовать аппаратнуютехнологию виртуализации. Гипервизор можно строить с использованиемнескольких вариантов архитектур:−монолитный гипервизор (VMWare ESXi);−гипервизор с сервисной ОС (Microsoft Hyper-V);−гипервизор, совмещенный с ОС (Oracle Virtual Box);−тонкий гипервизор (Bitvisor).Все указанные архитектуры, помимо тонкого гипервизора, рассчитаны назапуск нескольких виртуальных машин и совмещают в себе как драйвера, так иэмуляторы устройств. Архитектура тонкого гипервизора, напротив, исключает изсвоего состава и эмуляторы, и драйвера устройств, необходимые другим видамгипервизоров для обеспечения совместной работы нескольких виртуальных машинс одним оборудованием (например, нескольких виртуальных машин с однойсетевой картой).Таким образом, для выявления событий ядра ОС предлагается использоватьтонкий гипервизор на основе аппаратной технологии виртуализации.
Именно такойгипервизор обладает необходимыми средствами контроля за поведением ОС, имеетмалый объем своего кода и сохраняет высокую производительность системы.Тонкий гипервизор на основе аппаратной технологии виртуализациипозволяет контролировать следующие аппаратные события в системе:1.Чтение и запись MSR (Model Specific Registers).
Эти регистрыучаствуют в работе системных вызовов и определяют режим работы процессора.Данные события целесообразно использовать для детектирования системных81вызовов в системе или для обнаружения попыток нарушить целостность системныхструктур ОС.2.Чтение, запись и выполнение любых областей оперативной памяти.Эти события можно использовать для обнаружения попыток нарушенияцелостности системных структур или кода ОС.3.Запускгипервизоров.Благодаряэтимсобытиям,можноконтролировать работу других гипервизоров и, при необходимости, запрещать ихработу.4.Выполнениесистемныхинструкций.Этагруппасобытийсвидетельствует о попытках нарушить целостность системы или о работеэксплойта.
В нормальном поведении ОС ядро сначала, с помощью этихинструкций, выполняет настройку процессора и оборудования, после чего этинастройки не меняются, и система работает с тем, что уже было установлено.5.Программирование оборудования. Эти события включают в себяиспользование специальных инструкций и обращения к определенным областямфизического адресного пространства. Контроль таких событий позволитобнаружить нелегитимные попытки обратиться к аппаратным компонентамсистемы.6.Исключения при выполнении кода.
Эти события включают в себя 16стандартных векторов исключений, которые генерируются процессором привозникновении ошибок в процессе исполнения инструкций. Большинство такихисключений не должны возникать при нормальной работе системы (например,#MC – Machine Check), поэтому их появление в системе свидетельствует овозможном нарушении безопасности.7.Прерывания от устройств.
Эти события генерируются внешними, поотношению к процессору, устройствами (например, контроллером USB).Благодаря обнаружению таких событий можно осуществлять контроль работы ОСс устройствами.Важно отметить, что, помимо функций выявления событий, гипервизоробладает возможностью защиты собственного адресного пространства от82нарушений со стороны процессора и оборудования. Для защиты своего адресногопространства, включая код и данные, которые необходимы гипервизору дляработы, применяется технология вторичной трансляции адресов: EPT (ExtendedPage Tables) у Intel, и NPT (Nested Page Tables) у AMD. Эта технология позволяетгипервизору настроить дополнительныйуровеньтрансляцииадресов изфизических адресов, которыми пользуется ОС, в физические адреса, которымипользуется сам гипервизор.