Разработка гипервизоров для обеспечения информационной безопасности Николай Пакулин npak@ispras.ru Определимся с терминами User Application •Непривилегированные инструкции •Отсутствует доступ к аппаратным ресурсам (прежде всего, MMU) Supervisor •Любые инструкции •Доступ к служебным регистрам CPU •Доступ к аппаратным ресурсам Hypervisor Hardware •Перехват служебных операций супервизора •Перехват обращений к памяти •Перехват прерываний Гипервизор – программа, контролирующая выполнение операционной системы более-менее прозрачным для ОС образом. Гипервизор создает для ОС правдоподобное окружение – вируальную машину ОС Драйверы Ядро ОС Драйверы Virtual Machine Manager Гипервизор Аппаратура Приложение Процессы Приложение Приложение VM Приложение О какой защите идёт речь? • Информационная безопасность – это процесс обеспечения конфиденциальности, целостности и доступности информации (ГОСТ Р ИСО/МЭК 17799). – Изоляция ВМ, разделение ресурсов – само собой – Речь идёт о защите приложений в ВМ: какие бонусы даёт выполнение ОС под контролем гипервизора? Механизмы защиты и гипервизоры • Конфиденциальность данных приложений в оперативной памяти – Overshadow – прозрачное шифрование страниц памяти • Целостность памяти, выявление вторжений • Конфиденциальность данных на диске – BitVisor/TreVisor – прозрачное шифрование PCI запросов • (High) Availability – VMware, Hyper-V, Xen Конфиденциальность ОЗУ Передача управления между процессом и ядром ОС только через гипервизор Расшифровка страниц памяти Доверенныйпроцесс процесс Доверенный Доверенный процесс Перехват прерывания выполнения процесса • Проверка регистров • Проверка контекста Гипервизор Перехват возврата управления процессу • Сохранение регистров • Шифрование Ядро ОС Другойпроцесс процесс Другой Другой процесс страниц памяти Целостность ядра, обнаружение вторжений Передача управления между процессом и ядром ОС только через гипервизор Сохранение контрольных сумм Другойпроцесс процесс Другой Процессы Ядро ОС Перехват прерывания выполнения процесса • Проверка целостности памяти Гипервизор Конфиденциальность данных Драйвер I/O I/O Memory Перехват операций вводавывода Гипервизор Шифрование расшифрование I/O Диск Севигатор Защита приложений от злонамеренного ПО с высоким уровнем привилегий Возможные атаки на приложения Контекст процесса Физическая память Виртуальная память Исполняемые файлы Загрузка Таблицы приписки DMA Регистры (EIP) Файл подкачки 9 Ядро ОС Другой процесс Цели и задачи • Обеспечение конфиденциальности «в целом» – Контроль доступа к каналам передачи и хранения данных в условиях недоверенной операционной системы – Недоверенный код лишен возможности передать конфиденциальные данные внешнему получателю • Обеспечение целостности – Контроль модификации критической информации: – Запись возможна только доверенным процессам – Возможность доступа к критичной информации только «по чтению» для недоверенного кода (в т.ч. ядра ОС) • Передача данных по каналам разрешена только авторизованным приложениям • Отсутствие необходимости модифицировать код операционной системы и приложений Архитектура Недоверенное приложение Доверенное приложение Перехват системного вызова Ядро ОС Менеджер ВМ Не имеет доступа к сетевому оборудованию Обслуживание системного вызова вне ОС Сетевой стек Доступ к аппаратуре сети Драйвер Микроядро • Системный вызов доверенного приложения перехватывается и обслуживается вне ВМ Особенности реализации • Перехват и удалённое обслуживание системных вызовов доверенных приложений • Защита целостности памяти доверенных приложений • Реализация гипервизора основана на микроядре – Изоляция компонентов: ВММ, сетевой стек, драйвер – Системные вызовы обслуживаются в отдельных приложениях – Компрометация такого приложения не приводит к компрометации всей системы • Небольшая доверенная кодовая база! Оценка накладных расходов Время, мс 140 Linux в ВМ 120 100 lwIP над гипервизором 80 60 Сист. вызовы в lwIP 40 20 0 Обслуживание сист. вызовов в dom0 ВМ СПАСИБО! Дальнейшее развитие • Повысить эффективность сетевого стека • Добавить поддержку защищенной файловой системы • Добавить поддержку других коммуникационных каналов – USB • Поддержка ОС Windows