Многоуровневое мандатное управление доступом в многооконной графической среде ОС класса Linux Авторы: к.т.н., доцент Д. В. Ефанов * аспирант кафедры 36 П. Г. Рощин ФГУП «ЦНИИ ЭИСУ» Москва, 2013
2 Постановка задачи Графическая оболочка, в которой возможна работа с конфиденциальной информацией Обеспечение мандатного принципа управления доступом Визуализация мандатных уровней Средство запуска приложений с мандатным уровнем Контроль информационного взаимодействия Х-клиентов с помощью системы мандатного управления доступом
3 Среда пользователя Графические приложения SELinux в графической среде Linux с улучшенной безопасностью гибкая система мандатного управления доступом применяет разработанную заранее политику безопасности Ядро Linux SELinux Политики безопасности Х-сервер Менеджер окон Среда рабочего стола GNOME Модули аутентификации SELinux
4 Визуализация контекстов безопасности с помощью менеджера окон Политики безопасности Запуск приложений с мандатным уровнем Визуализация уровней
5 Схема работы механизма визуализации КБ в менеджере окон Механизм управления окнами Механизм растеризации рамок окон Получение контекста безопасности от Х-сервера Программный интерфейс X-сервера Передача метки Изменение цвета рамки окна в зависимости от метки Передача метки Цвет рамки Исходный код менеджера окон Дополнения Файл настроек, определяющий цвет для каждого уровня Политики безопасности Запуск приложений с мандатным уровнем Визуализация уровней
6 Механизм многоэкземплярности Реализация системы защиты в Х-сервере, изменение политик для обеспечения совместимости Создание модулей политик для графических приложений: панель, менеджер окон Разработка политик SELinux Методика разработки политик SELinux для графических приложений Политика для панели GNOME Политика для служб GNOME Политика для обеспече- ния работы Х-сервера Базовая политика SELinux Механизм многоэкземплярности Политика для работы с многоэкземплярностью РАМ модуль аутентификации Linux Политики безопасности Запуск приложений с мандатным уровнем Визуализация уровней
7 Механизм многоэкземплярности PAM Модуль namespace Реальные директории (полный доступ) /tmp /var/tmp /home/user Многоэкземплярные директории (минимальные привилегии доступа) /tmp/tmp.inst /var/tmp/tmp.inst /home/user.inst user:Несекретноfile1 user:Секретноfile2 user:Сов. Секретноfile3 /tmp/tmp.inst/Несекретно/file1 /var/tmp/tmp.inst/Секретно/file2 /home/user.inst/Сов. секретно/file3 Разработка конфигурационных файлов Доработка модуля для работы с SELinux Настройка политик SELinux для работы с РАМ Политики безопасности Запуск приложений с мандатным уровнем Визуализация уровней
8 Защищённый Х-сервер Управление информационными потоками на уровне сервера: буфер обмена, межпроцессное взаимодействие Контроль за снятием снимков экрана Политики безопасности Запуск приложений с мандатным уровнем Визуализация уровней Совершенно секретно Секретно Несекретно
9 Разработка библиотеки для интеграции SELinux и окружения пользователя Преимущества: Ускорение процесса разработки SELinux-ориентированных приложений Уменьшение количества ошибок Повышение качества кода Политики безопасности Библиотека C-функций: Перевод меток на русский язык Разбор текстовых меток Ориентированность на многоуровневую среду Библиотека GTK-функций: Генератор графического интерфейса выбора мандатной метки Функция получения метки от пользователя SELinux API Поддержка языка Си Большинство программ в Linux разработаны на языке Си Поддержка языка Python Многие конфигурационные утилиты и приложения написаны на Python Визуализация уровней Запуск приложений с мандатным уровнем
10 Программа для запуска приложений с мандатной меткой Графический интерфейс, осуществляющий запуск пользовательских графических приложений с произвольной мандатной меткой, реализованый с использованием системных библиотек. Политики безопасности Визуализация уровней Запуск приложений с мандатным уровнем
11 Результат работы программы перевода мандатных меток Интеграция с Mcstrans системный администратор может настроить правила перевода символьного представления уровней и категорий в обозначения, понятные человеку Политики безопасности Запуск приложений с мандатным уровнем Визуализация уровней
12 Схема работы механизма запуска приложений Панель быстрого запуска приложений с графическим интерфейсом newrole программа для запуска приложений с мандатной меткой SELinux API Получение и разбор текущей метки пользователя Перевод меток на русский язык Графический интерфейс выбора метки приложения Составление метки запуска Новый процесс с меткой Новый процесс с меткой Секретно SELinux API для GTK+ Политики безопасности Ввод данных пользователя (метка «Секретно») Визуализация уровней Запуск приложений с мандатным уровнем
13 Тестирование Для автоматизации некоторых процессов тестирования разработаны собственные утилиты и модули. Разработана система автоматического тестирования отдельных модулей защиты операционной системы. Корректность работы графических утилит проверяется вручную. Разработаны следующие утилиты для тестирования: setester программа тестирования и отладки политик SELinux sechecker программа тестирования корректности работы мандатной системы управления доступом audit2setester программа автоматизации разработки политик SELinux В программу запуска приложений с мандатным уровнем дополнительно добавлены модули для тестирования корректности работы меток
14 Заключение Разработан метод настройки SELinux и разработки политик, интегрированных с механизмом многоэкземплярности для обеспечения изоляции и корректной работы графических приложений в защищённой среде Разработана готовая к использованию среда исполнения графических приложений с мандатными уровнями и категориями Реализован графический интерфейс управления мандатными метками в виде библиотеки, которая позволяет унифицировать работу с уровнями в операционной системе Обеспечена графическая поддержка многоуровневой среды: визуализация мандатных уровней и категорий, возможность запуска графических приложений с заданной пользователем мандатной меткой Дальнейшие усилия направлены на повышение удобства пользователя, организацию контролируемого межпроцессного взаимодействия, а также файловый менеджер, предназначенный для работы в защищённой среде.
15 Спасибо за внимание!