Лекция 3. Проблемы обеспечения информационной

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