Проект «Безопасный браузер» Визовитин Николай Кадашев Дмитрий Проблема Незащищенный компьютер (под управлением ОС Windows) со внешним IP адресом остается незараженным порядка 2 часов. Постановка задачи Создать систему, которая исключает проникновение вредоносного кода на компьютер пользователя предоставляет функциональность веб-браузера (как минимум) Вариант решения Изолировать host’а от сетевого интерфейса Запустить на host’е виртуальную машину, внутри которой работает ОС, загруженная с «чистого» образа Предоставить ОС внутри виртуальной машины эксклюзивный доступ к сетевому интерфейсу Использовать внутри этой ОС один из популярных браузеров Компоненты Виртуальная машина VirtualBox Гостевая ОС Windows XP Embedded Браузер Возможно Internet Explorer Средство изоляции Драйвер сетевой карты и перенаправления Компоненты: виртуальная машина Открытый исходный код Host OS: Windows Guest OS: Windows Высокая производительность Возможность работать без аппаратных расширений Bochs Cooperative Linux Denali FreeVPS Kernel Virtual Machine OpenVZ QEMU Mode Linux Xen User VirtualBox Компоненты: гостевая ОС Windows XP Embedded знакомая пользователю система наличие инструментария для создания облегченной версии ОС с предустановленным ПО Но могут возникнуть проблемы с лицензированием и распространением Компоненты: средство изоляции и перенаправления Host OS должна быть изолирована от сетевого интерфейса => необходимо удалить драйвер устройства Данные на сетевом интерфейсе должны быть доступны виртуальной машине => нужен драйвер сетевой карты для получения доступа к этим данным Вывод: следует написать универсальный драйвер сетевой карты с нестандартным интерфейсом, которым и заменить драйвер целевого устройства Виртуальная машина и сетевой интерфейс (NAT) Host OS Virtual Machine Guest OS Application Other applications Other applications NIC driver NIC driver V NIC V PCI Bus PCI Bus NIC Предоставление эксклюзивного доступа к сетевому интерфейсу Host OS Virtual Machine Guest OS Application Other applications Other applications NIC driver NIC driver V NIC V PCI Bus PCI Bus NIC Перенаправление обращений к ресурсам сетевой карты Guest OS NIC driver Interrupt PCI configuration space I/O ports Memory … Memory … Virtual NIC Host OS NIC driver Interrupt PCI configuration space I/O ports Архитектура «Безопасного браузера» Host OS (Windows) VirtualBox Guest OS (Windows XPe) Virtual PCI Bus Virtual NIC Request Filter NICFWD Bus Driver PCI Bus NIC NIC Driver Bus Driver Applications Выполнено Получен исходный код VirtualBox. Мы научились его собирать. Изучен исходный код VirtualBox (шина PCI, PIC, несколько сетевых карт) Мы научились собирать образы Windows XP Embedded Изучено программирование устройств PCI Изучено устройство шины PCI Написан драйвер сетевой карты для host ОС Планы Написать модуль фильтрации обращений к ресурсам Написать виртуальную сетевую карту Выбрать браузер и создать «чистый» образ Windows XPe Реализовать сохранение настроек браузера Реализовать сохранение файлов из гостевой ОС Решить вопросы с лицензированием Спасибо за внимание Ваши вопросы