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