Проект «Безопасный браузер

реклама
Проект «Безопасный браузер»
Визовитин Николай
Научный руководитель:
Д.В. Иртегов
Идея проекта




Защита от внедрения вредоносного кода через сеть
Использование изолированной среды –
виртуальной машины
Изоляция host OS от сетевого интерфейса и его
монопольное использование guest OS
Использование внутри guest OS популярных
приложений для работы с сетью, в т.ч. браузера
Реализация



Host: универсальный драйвер сетевой
карты с нестандартным интерфейсом
VM: виртуальная сетевая карта,
представляющая реальную
Guest: драйвер сетевой карты (от
производителя)
Отображение ресурсов виртуальной
сетевой карты на ресурсы реальной
Rtenicxp.sys (Guest OS NIC driver)
Interrupts
PCI configuration
space
Port I/O
Memory
Mapped I/O
DMA
DevNICFwd (Virtual NIC)
NICFwd.sys (Host OS NIC driver)
Interrupts
PCI configuration
space
RTL8168
Port I/O
Memory
Mapped I/O
DMA
PCI configuration space

Применяется набор фильтров для
ограничения доступа к регистрам
конфигурационного пространства реального
устройства и/или специальной обработки
обращений.
Port I/O, MM I/O

Без учета DMA достаточно только
преобразовывать адреса портов и памяти.
Interrupts



Поскольку прерывания PCI устройств определяются
уровнем сигнала (level-sensitive), то драйвер
должен их подтверждать (acknowledge), после чего
уровень становится низким.
Для определения момента подтверждения
применяется эвристика на базе данных об
операциях записи в I/O регистры.
Также уровень автоматически понижается через
короткий промежуток времени.
DMA (Direct Memory Access)



Большинство устройств использует DMA
Неконтролируемый доступ устройства к
памяти опасен
У различных устройств способ управления
DMA может достаточно сильно отличаться
DMA, решение №1

“Заставить” драйвер guest OS использовать
для DMA заранее известный участок
памяти, также зарезервированный в host OS
+ Достаточно универсально
- Может быть весьма сложно или
нереализуемо
DMA, решение №2

Поддержка ограниченного числа устройств,
для которых известен способ управления
DMA (в т.ч. управляющие I/O регистры)
+ Определенно реализуемо
- Не универсально
Выполнено

Полностью реализована поддержка:
–
–
–



прерываний
регистров ввода/вывода (как Port I/O, так и MM I/O)
конфигурационного пространства PCI
Произведены необходимые модификации VirtualBox
(подсистема конфигурирования, frontends, …)
Все исходные коды адаптированы под новую
версию VirtualBox
Исправлены ошибки
Планы

Реализовать поддержку DMA

Создание “чистого” образа guest OS
Реализация механизма сохранения
пользовательских настроек и данных из
guest OS

Спасибо за внимание
Ваши вопросы
Скачать