Разработка гипервизоров для обеспечения информационной безопасности Николай Пакулин

реклама
Разработка гипервизоров для
обеспечения информационной
безопасности
Николай Пакулин
[email protected]
Определимся с терминами
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
Скачать