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

advertisement
Проект «Безопасный браузер»
Визовитин Николай
Научный руководитель:
Д.В. Иртегов
Идея проекта


Делегирование работы с физическими
устройствами в виртуальную машину с
минимальным участием host OS
В применении к сетевой карте –
«Безопасный браузер»
Отображение ресурсов виртуальной
сетевой карты на ресурсы реальной
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
DMA (Direct Memory Access)



Большинство устройств использует DMA
Неконтролируемый доступ устройства к
памяти опасен
У различных устройств способ управления
DMA может достаточно сильно отличаться
DMA, решение

“Заставить” драйвер guest OS использовать
для DMA заранее известный участок
памяти, также зарезервированный в host OS
DMA, решение
Driver
ntoskwrp.exe
ntoskrnl.exe
IoGetDmaAdapter()
Guest
Host
Guest Memory
VBox Memory
ntoskrnl.exe
IoGetDmaAdapter()
Host Memory
DMA, подзадачи
Driver
1
ntoskwrp.exe
ntoskrnl.exe
IoGetDmaAdapter()
Guest
Host
2
ntoskrnl.exe
3
IoGetDmaAdapter()
Guest Memory
VBox Memory
Host Memory
1. Модификация ядра guest OS
ntoskrnl.exe
ntoskrnl.lib (import library)
dumpbin
dll2lib
exports2wrapper.py
ntoskrnl.lib
(static library)
*.def
*.c,*.h (ntoskwrp sources)
cl (compiler)
link (linker)
ntoskwrp.exe
2. Передача сообщений между
guest OS и host OS


Виртуализация возможна в силу сильной
ограниченности знаний host OS о guest OS и
наоборот
Взаимодействие guest OS и host OS обычно
происходит через специализированный
backdoor драйвер
2. Передача сообщений между
guest OS и host OS (продолжение)
Требуется:
 передача сообщений между guest OS и host
OS
 остановка выполнения guest OS на время
передачи сообщения
 возможность передачи сообщений без
дополнительных драйверов в guest OS, в
любое время
2. Передача сообщений между
guest OS и host OS (продолжение)




backdoor драйвер не подходит
Передача сообщений посредством
обращений к виртуальному устройству
Т.к. в VirtualBox поток эмуляции
единственный, то достигается остановка
выполнения guest OS
Виртуальное устройство доступно всегда
3. Перенаправление обращений к
памяти


Guest OS должна иметь возможность
читать/писать в отведенную под DMA
память (в host’е)
Необходимо перенаправление обращений к
соответствующим участкам памяти из
виртуальной машины в host OS
Выполнено



Разработан достаточно удобный способ
модификации ядра ОС
Разработан способ передачи сообщений
между guest OS и host OS
Реализована поддержка передачи
сообщений в ядре guest OS, виртуальной
сетевой карте и универсальном драйвере
сетевой карты в host OS
Планы

Реализация перенаправления обращений к
памяти для DMA

Тестирование системы делегирования
работы с физическим устройством в
виртуальную машину
Спасибо за внимание
Ваши вопросы
Download