Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
Проблемы обеспечения информационной
безопасности
Пакулин Николай Витальевич,
Институт системного программирования РАН (ИСП РАН)
[email protected] http://ispras.ru/
Выступление в МФТИ
4 марта 2013 года
Что такое информационная
безопасность
2
Что такое информационная
безопасность (2) • Информационная безопасность – это процесс обеспечения
конфиденциальности, целостности и доступности информации (ГОСТ Р ИСО/МЭК 17799). – Конфиденциальность – свойство информационных ресурсов, в
том числе информации, связанное с тем, что они не станут доступными и не будут раскрыты для неуполномоченных лиц.
– Целостность: неизменность информации в процессе её передачи или хранения.
– Доступность: свойство информационных ресурсов, в том числе информации, определяющее возможность их получения и использования по требованию уполномоченных лиц.
3
Мой процесс – моя крепость • Операционная
система строит для приложения процесс – Защищает данные от
наблюдения/изменения
– Защищает код от модификации
– Предоставляет доступ через определенные точки («ворота»)
• Все под контролем?
Все под контролем? Stuxnet
Разрушение технологического процесса DuQu – кража конфиденциальных данных
Flame – кибер-шпионаж Gauss – кража конфиденциальных данных
Статистика выявления
уязвимостей в ПО
По сведениям Национально базы данных уязвимостей, США http://web.nvd.nist.gov/view/vuln/statistics
2006
2012
●Системное ПО
Операционные
системы
Серверное ПО
●Прикладное ПО
Браузеры
Просмотр
мультимедиа
●Информационные
системы
●Встроенное ПО
Тенденции роста
злонамеренного ПО
●Рост числа выявленных сигнатур на 50-100% в год
Ничто не бывает хорошо во
всех отношениях… • Для ядра ОС процессы прозрачны
– Доступ к оперативной памяти, загрузка кода, …
• Ядро ОС монолитно – Все компоненты находятся на одном уровне
привилегий
• Внедрение злонамеренного кода в ядро дает полный контроль над системой – Использование уязвимостей ОС
– Краденые сертификаты цифровой подписи
– Недокументированные возможности
– …
Чем совершеннее вещь, тем
реже она удаётся (Ницше) • «Массовые операционные системы характеризуются
двумя чертами, которые делают их малонадежными и слабо защищенными: они слишком объемные, а отдельные компоненты крайне плохо изолированы друг от друга»
Таненбаум и др. (2006)
• «С течением времени цифровые системы будут только усложняться, а сложность – худший враг безопасности»
Шнайер (2000)
• «Всего лишь одна логическая ошибка в коде операционной системы может полностью свести на нет работу всех защитных механизмов»
Мэдник и Донован (1973)
9/26
Уязвимости и закладки
• Уязвимость – недостаток в системе, используя который, можно нарушить её целостность и вызвать неправильную работу. – Программные ошибки
– Ошибки проектирования
– Ненадежные механизмы защиты
• Закладка – преднамеренно искаженный или скрытно внедренный исполнимый код, предоставляющий неавторизованный доступ – В аппаратуре, драйверах, системном ПО,
прикладном ПО
10
Борьба с уязвимостями
• Выпуск обновлений
• Исследование и анализ кода
– Статическая верификация программ
– Динамический анализ программ
– Стенды полунатурного моделирования
• Контроль ПО внешними средствами
11
ЗАЩИТА ПРИКЛАДНЫХ
ПРОГРАММ ОТ
СКОМПРОМЕТИРОВАННОЙ ОС
Проект Севигатор
12
Проект Севигатор: постановка задачи
• Обеспечение конфиденциальности «в целом»
– Контроль доступа к каналам передачи и хранения данных в условиях недоверенной операционной системы
– Недоверенный код лишен возможности передать конфиденциальные данные внешнему получателю
• Обеспечение целостности
– Контроль модификации критической информации: • Запись возможна только доверенным процессам
• Возможность доступа к критичной информации только «по чтению» для недоверенного кода (в т.ч. ядра ОС)
• Передача данных по каналам разрешена только авторизованным приложениям
• Отсутствие необходимости модифицировать код операционной системы и приложений
13
Архитектура системы защиты
14
Гипервизор
Доступ
запрещен
Доступ
разрешен
Trusted process
Delegate
Internet
Сервисная виртуальная
машина
Виртуальная машина
пользователя
Модуль защиты
Process
Syscall interception
Введение в виртуализацию
• Виртуализация – разделение ресурсов вычислительной системы между несколькими ОС, выполняющимися одновременно – Виртуальная машина
• Гипервизор (Virtual Machine Manager) – программа или аппаратная схема, обеспечивающая одновременное выполнение нескольких ОС на одной вычислительной системе – Изоляция ОС друг от друга,
– Защиту и безопасность
– Разделение ресурсов между различными запущенными ОС
• Технологии: Intel VT и AMD-V
15
VM1
Процессы
ОС
Драйверы
VM2
Процессы
ОС
Драйверы
Гипервизор
Virtual Machine Manager
Аппаратура
вычислительной системы
Введение в виртуализацию (2)
• Задачи гипервизора
– Настройка трансляции адресов: из
«физических» адресов ВМ в аппаратные
физические адреса
– Настройка разделения устройств между ВМ
– Перехват привилегированных команд
– Перехват и маршрутизация прерываний
– Обработка явных обращений (VMMCALL)
16
Применение виртуализации
для защиты ПО • Привилегии гипервизора выше, чем
привилегии ядра ОС
• Гипервизор управляет доступом к физической памяти
• Гипервизор управляет доступом к аппаратным ресурсам
• Объем кода гипервизора << объем кода ядра ОС – Возможен анализ качества (выявление
уязвимостей)
17
Архитектура системы защиты
18
Гипервизор
Доступ
запрещен
Доступ
разрешен
Trusted process
Delegate
Internet
Сервисная виртуальная
машина
Виртуальная машина
пользователя
Модуль защиты
Process
Syscall interception
Возможные точки вредоносного воздействия
на доверенный процесс
19
Контекст процесса
Файл подкачки
Исполняемые файлы
Реги
стры
(EIP
)
Таблицы приписки
Ви
ртуальн
ая п
ам
ять
DM
A
Фи
зическая п
амять
Ядро ОС
Другой процесс
Загрузка
Регистрация доверенного
приложения • Стартовый набор ограничений задается
«регистрационной» информацией программы – Регистрационная информация содержит контрольные суммы
(SHA-1) для всех объектных модулей приложения • в т.ч. ld.so для динамически компонуемых приложений
– Регистрационная информация не привязана к конкретному имени или расположению приложения в файловой системе
• у каждого приложения есть уникальный ID
• Запуск доверенного приложения осуществляется специальной программой «монитором», который сообщает гипервизору ID приложения
• Гипервизор сравнивает загруженный образ с сохраненными контрольными суммами
Возможные точки вредоносного воздействия
на доверенный процесс
21
Контекст процесса
Файл подкачки
Исполняемые файлы
Реги
стры
(EIP
)
Таблицы приписки
Ви
ртуальн
ая п
ам
ять
DM
A
Фи
зическая п
амять
Ядро ОС
Другой процесс
Загрузка
Трансляция адресов виртуальной
машины
Директория страниц
Таблица страниц
Директория страниц
Таблица страниц
Таблица страниц
Гипервизор (вложен. таблицы ВМ)
Виртуальная машина (таблицы ОС)
Таблица страниц
Адрес 1
Адрес 2
Адрес 44
Адрес 1*
Адрес 2*
Вирт. адрес Физ. адрес
Физ. адрес Маш. адрес
Попытка доступа к закрытой странице
вза
им
но
-
од
но
знач
но
е
соо
твет
стви
е
Виртуальная машина
Процесс 1
Процесс 2
Процесс 3
Таблицы
приписки
Таблицы
приписки
V1
V2
V3
P
Расшир.
таблицы
приписки
Расшир.
таблицы
приписки
Расшир.
таблицы
приписки
M
Взаимоисключающие
режимы доступа
Принцип защиты физической
памяти
23
• Расширенные таблицы приписки контролируют доступ к общей физической памяти
• Отдельные для каждого доверенного процесса
– деление по PID
• Отдельные для ядра ОС
– деление по режиму привилегий
Другой процесс Другой процесс
Доверенный процесс Доверенный процесс Доверенный процесс
Гипервизор
Ядро ОС
Другой процесс
Перехват прерывания выполнения
процесса
Перехват возврата управления
процессу
Передача управления
между процессом и
ядром ОС только
через гипервизор
• Сохранение регистров
• Переключение домена
• Проверка регистров
• Переключение домена
Проверка ограничений на
содержимое памяти
Контроль за потоком управления
24
ОБЕСПЕЧЕНИЕ
КОНФИДЕНЦИАЛЬНОСТИ:
ОГРАНИЧЕНИЕ ДОСТУПА К
РЕСУРСАМ 25
Основная VM
Ядро ОС
Сервисная VM
Ядро ОС
Гипервизор
Клиент
Авторизованный процесс
Параметры вызова Сопоставление
Интернет
Сервер
Опер. системы
в обеих машинах
недоверенные
Модуль ядра КБ Модуль ядра КБ
Хранилище
Архитектура удалённого
исполнения системных вызовов
26
Обмен данными ВМ и гипервизора
27
Виртуальная
машина
Кольцевой буфер
Гипервизор
Виртуальное
PCI устройство
IRQ (извещение о данных в буфере)
Обработчик прерывания
…
ЗАПРОС
ОТВЕТ
Гипервизор
Основная ВМ (недоверенная)
Сервисная ВМ (доверенная)
NFS клиент NFS сервер
Системный вызов
Доверенный процесс
Ядро ОС
Параметры/Результаты
вызова
«READ» – разрешен всем
«WRITE» – только доверенным процессам
Сопоставление
• запрос допустимости «write»
операций
• извещение о результатах
«read» операций доверенного
процесса
Файловая система
Процесс
28
УГРОЗЫ И ВОЗМОЖНЫЕ
АТАКИ НА СИСТЕМУ
ЗАЩИТЫ 29
Возможные точки вредоносного воздействия на гипервизор
Исполняемые файлы
Фи
зическая п
ам
ять
D
MA
вм
Ядро ОС
процесс
Загрузка
Регистрационная информация
Гипервизор
Компонент СЗ
Проект активации
31
“dynaload” driver
Secure loader
Hypervisor
Trusted Platform Module
SKINIT JMP
• ZERO PCR-17 • HASH(secure loader) PCR-17
PCR17 TPM Private Key
• HASH(hypervisor) PCR-17 • HASH(nonce) PCR-17
• SIGN(PCR17 | Private Key) • Signed checksum User
“activate” SHA-1
Дополнительные угрозы
• Перепрошивка BIOS
• System Management Mode (SMM)
• Эмуляция действий пользователя
• Подмена конфигурационных файлов
• Взлом сервисной ОС
32
Теоретические возможности
взломать систему
Ошибка в реализации системы защиты
Нарушение требования доверенности прикладных
программ
Неправильная конфигурация системы
Подмена пакетов программ
DMA атака на стабильность системы
Уязвимости/Закладки в аппаратуре
33
ОБСУЖДЕНИЕ
34
Обеспечение информационной
безопасности
• Обеспечение информационной
безопасности – комплексная,
многофакторная деятельность
– Анализ конфигурации системы защиты
– Анализ исходных текстов системного ПО
– Анализ бинарных кодов системного ПО
– Мониторинг во время выполнения
35
Статус проекта Севигатор
• Разработана архитектура защиты в условиях уязвимой ОС – Целостность кода и данных доверенного ПО
– Целостность каналов связи доверенного ПО
– Конфиденциальность данных доверенного ПО
• Реализован прототип для Linux/KVM – AMD 32-x битный режим
– Защита памяти, ограничение доступа к сети, защищенные файловые хранилища
– Защита приложений в ОС Linux
– ~ 10 тыс. строк на Си
36
Нерешенные задачи
• Перенос на аппаратную платформу (в процессе)
• Поддержка многоядерного выполнения ВМ пользователя
• Доверенная загрузка СЗ
• Поддержка Windows
• Поддержка дополнительных видов ресурсов (USB!)
• Перенос на ARM / Android
• Верификация архитектур защиты (математика!)
37
СПАСИБО ЗА ВНИМАНИЕ!
38