Разработка гипервизоров для обеспечения информационной безопасности::Журнал СА 7-8.2015
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

Принципы проектирования  

Dependency Inversion Principle. Принцип инверсии зависимостей в разработке

Мы подошли к последнему принципу проектирования приложений из серии SOLID – Dependency

 Читать далее...

Рынок труда  

Вакансия: Администратор 1С

Администратор 1С – это специалист, который необходим любой организации, где установлены программы

 Читать далее...

Книжная полка  

Книги для профессионалов, студентов и пользователей

Книги издательства «БХВ» вышли книги для тех, кто хочет овладеть самыми востребованными

 Читать далее...

Принципы проектирования  

Interface Segregation Principle. Принцип разделения интерфейсов в проектировании приложений

Эта статья из серии «SOLID» посвящена четвертому принципу проектирования приложений – Interface

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 10795
Комментарии: 0
Потоковая обработка данных

 Читать далее...

19.03.2018г.
Просмотров: 9042
Комментарии: 0
Релевантный поиск с использованием Elasticsearch и Solr

 Читать далее...

19.03.2018г.
Просмотров: 9090
Комментарии: 0
Конкурентное программирование на SCALA

 Читать далее...

19.03.2018г.
Просмотров: 5735
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6429
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 3736
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2731
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3531
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3521
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6016
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

Друзья сайта  

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

Архив номеров / 2015 / Выпуск №7-8 (152-153) / Разработка гипервизоров для обеспечения информационной безопасности

Рубрика: Разработка /  OS DAY – 2015

Николай Пакулин НИКОЛАЙ ПАКУЛИН, старший научный сотрудник ИСП РАН

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

В этой работе мы представляем проект Севигатор – опыт разработки гипервизора, который обеспечивает конфиденциальность данных приложений в условиях потенциально скомпрометированной ОС

Современные популярные ОС (прежде всего Linux и Windows) основаны на монолитных ядрах, в которых все компоненты ядра имеют одинаковые высокие привилегии. Такая архитектура позволяет добиться максимальной производительности, но приводит к существенным рискам безопасности: если злонамеренный код проникнет внутрь ядра, он потенциально получит доступ ко всем ресурсам компьютерной системы, включая данные в памяти приложений и на диске, и т.д. Целостность и конфиденциальность данных, передаваемых по сети, также оказываются под угрозой даже в случае использования криптографии.

Вопрос заключается в том, возможно ли защитить приложение, выполняющееся под управлением популярной ОС (прежде всего Linux и Windows), на широко распространенных процессорах семейства x86 без внесения изменений в код приложений, ядра ОС или аппаратных расширений? Системы защиты, расположенные в ядре, такие как антивирусы, межсетевые экраны, средства выявления вторжений, очевидно, не могут справиться с этой задачей, так как сами могут быть атакованы проникшими «зловредами».

Возможный ответ на вопрос, поставленный в предыдущем абзаце, заключается в том, чтобы перенести средства защиты на более высокий уровень привилегий, чем ядро ОС.

Практически все современные процессоры семейства x86 включают подсистему аппаратной поддержки виртуализации, которая позволяет запускать операционную систему в правдоподобном эмулированном окружении виртуальной машины. Система управления виртуальными машинами, гипервизор, может перехватывать практически любой аспект выполнения ОС: привилегированные инструкции, обращения к оборудованию, прерывания и системные вызовы. Таким образом, уровень привилегий гипервизора выше, чем у ядра ОС, он полностью изолирован от операционной системы и, как правило, гораздо меньше ядра ОС.

Мы предполагаем, что у злоумышленника есть возможность через уязвимость или закладку получить уровень привилегий ядра, но все оборудование, к которому предоставляется доступ ОС, является доверенным – мы не рассматриваем атаки через прямой доступ в память.

Идея использовать гипервизоры для обеспечения безопасности сравнительно не нова. Можно упомянуть такие проекты, как Overshadow [1], где был реализован подход к конфиденциальности данных приложений через шифрование страниц в оперативной памяти, BitVisor [2], в котором реализовали прозрачное шифрование запросов к диску и сетевого трафика, Barrier [3], в нем отслеживается целостность структур данных ядра и выявляются руткиты.

Севигатор обеспечивает изоляцию потенциально скомпрометированной ОС от сети, но при этом поддерживает функционирование доверенных приложений. Для них, и только для них, предоставляется доступ к сети. Важно, что для достижения этого результата не требуется модификация или пересборка приложений, библиотек и ядра.

Севигатор реализует следующий набор функций.

Конфиденциальность «в целом». Для минимизации затрат CPU при переключении контекста память приложений не шифруется. Поэтому недоверенные приложения и скомпрометированное ядро ОС, вообще говоря, имеют доступ на чтение (и даже на запись) в память защищаемых доверенных приложений. О какой защите мы в этом случае говорим? Основная идея Севигатора заключается в том, что недоверенные приложения и ядро ОС физически отключены от каналов связи: в виртуальной машине просто нет сетевой карты. Несмотря на то что недоверенные приложения могут прочитать конфиденциальные данные, они никому не смогут это «рассказать».

Рисунок 1. Обработка сетевых вызовов в Севигаторе. Сетевые запросы доверенных приложений перехватываются гипервизором и обрабатываются в выделенном сетевом стеке. Сетевые запросы ядра ОС и недоверенных приложений блокируются

Рисунок 1. Обработка сетевых вызовов в Севигаторе. Сетевые запросы доверенных приложений перехватываются гипервизором и обрабатываются в выделенном сетевом стеке. Сетевые запросы ядра ОС и недоверенных приложений блокируются

Для выявления искажений данных доверенных приложений принадлежащие им страницы памяти индексируются при переключении контекста – с них снимается криптографическая контрольная сумма. При возвращении управления в доверенное приложение контрольная сумма проверяется: если обнаруживается расхождение, это трактуется как атака на доверенное приложение, и оно теряет соединение с сетью.

Удаленное обслуживание системных вызовов. Несмотря на то что в виртуальной машине нет сетевой карты, доверенные приложения могут отправлять и получать данные через сеть. Для этого гипервизор перехватывает системные вызовы доверенного приложения, анализирует их и в том случае, когда они имеют отношение к сетевым операциям, выполняет их вне виртуальной машины.

В настоящее время Севигатор построен на основе микроядерного гипервизора NOVA [4]. Этот гипервизор представляет собой небольшую операционную систему, в которой высшими привилегиями обладает только микроядро (7 тыс. строк), а все остальные задачи, включая менеджер виртуальной машины, сетевой стек и драйверы, вынесены в приложения, находящиеся в третьем кольце защиты.

Сетевые системные вызовы (socket, bind, send, sento, recv и т.д.) перехватываются менеджером виртуальной машины и перенаправляются в приложение над ядром гипервизора, которое реализует сетевой стек. В нашей работе мы используем известный стек для встроенных систем lwIP [5]. В доверенном приложении работают операции сетевого ввода-вывода, включая отправку и получение сообщений UDP и потоки TCP.

Все сетевые операции выполняются вне ядра ОС, и тем самым недоверенные приложения и скомпрометированное ядро не могут нарушить конфиденциальность и целостность сетевого трафика доверенных приложений.

Аттестация приложений. Перед запуском доверенного приложения его необходимо аттестовать, то есть убедиться, что образ, загруженный в оперативную память, соответствует двоичному образу приложения, которое получило статус доверенного.

Для аттестации в гипервизор загружены паспорта доверенных приложений. Паспорт содержит криптографические контрольные суммы всех заголовков и секций исполняемого файла, образов всех страниц памяти загруженного приложения перед запуском, динамически загружаемых библиотек и конфигурационных файлов. При загрузке приложения гипервизор проверяет, что (1) исполняемые файлы приложения и библиотек не искажены, (2) загрузчик размещает страницы приложения в памяти без искажений, (3) конфигурационные файлы, которые читает приложение, не искажены. В случае, когда проверка завершается неуспешно, приложение теряет статус доверенного, и гипервизор не предоставляет ему доступ в сеть.

При обновлении приложения в виртуальной машине необходимо обновить его паспорт.

Обсуждение

Наши измерения показали, что накладные расходы на вызовы между процессами в гипервизоре составляют порядка 1-2% от общего времени обработки сетевого запроса, поэтому нет существенного проигрыша в производительности по сравнению с монолитными гипервизорами. При этом у микроядерной архитектуры есть существенные плюсы в плане защищенности: микроядерная архитектура гипервизора позволяет значительно сократить доверенную кодовую базу. Безусловная компрометация гипервизора возможна только в случае уязвимостей в микроядре. Небольшой размер микроядра делает возможным более-менее полную верификацию кода и минимизирует риск ошибки. Компрометация отдельных компонентов – менеджера виртуальных машин или сетевого стека – не приводит к компрометации гипервизора, так как они выполняются как процессы в выделенных адресных пространствах.

В работе представлен подход к обеспечению безопасности приложений в условиях скомпрометированного ядра ОС. В нашем подходе ОС заключена в виртуальную машину, а система защиты вынесена в гипервизор. Гипервизор предоставляет средства для изоляции недоверенных приложений от сети и предотвращения утечки данных, средства для обеспечения целостности кода и данных доверенного приложения, механизм обслуживания сетевого трафика вне виртуальной машины. 


  1. Xiaoxin Chen, Tal Garfinkel, E. Christopher Lewis, Pratap Subrahmanyam, Carl A. Waldspurger, Dan Boneh, Jeffrey Dwoskin, and Dan R.K. Ports. 2008. Overshadow: a virtualization-based approach to retrofitting protection in commodity operating systems. SIGOPS Oper. Syst. Rev. 42, 2 (March 2008), 2-13. DOI=10.1145/1353535.1346284 – http://doi.acm.org/10.1145/1353535.1346284.
  2. T. Shinagawa, H. Eiraku, K. Tanimoto, K. Omote, S. Hasegawa, T. Horie, M. Hirano, K. Kourai, Y. Oyama, E. Kawai, K. Kono, S. Chiba, Y. Shinjo, and K. Kato. 2009. BitVisor: a thin hypervisor for enforcing i/o device security. In Proceedings of the 2009 ACM SIGPLAN/SIGOPS international conference on Virtual execution environments (VEE '09). ACM, New York, NY, USA, 121-130.
  3. Jingyu Hua and Kouichi Sakurai. 2012. Barrier: a lightweight hypervisor for protecting kernel integrity via memory isolation. In Proceedings of the 27th Annual ACM Symposium on Applied Computing (SAC '12). ACM, New York, NY, USA, 1470-1477. DOI=10.1145/2245276.2232011 – http://doi.acm.org/10.1145/2245276.2232011.
  4. Udo Steinberg and Bernhard Kauer. 2010. NOVA: a microhypervisor-based secure virtualization architecture. In Proceedings of the 5th European conference on Computer systems (EuroSys '10). ACM, New York, NY, USA, 209-222. DOI=10.1145/1755913.1755935 – http://doi.acm.org/10.1145/1755913.1755935.
  5. Dunkels lwIP, a small independent implementation of the TCP/IP protocol suite – http://www.nongnu.org/lwip.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru