150 likes | 427 Views
Многоуровневое мандатное управление доступом в многооконной графической среде ОС класса Linux. Авторы: к.т.н ., доцент Д . В. Ефанов * аспирант кафедры № 36 П . Г. Рощин. ФГУП «ЦНИИ ЭИСУ » Москва , 2013. Постановка задачи. Графическая оболочка, в которой возможна
E N D
Многоуровневое мандатное управление доступом в многооконной графической среде ОС класса Linux Авторы: к.т.н., доцентД. В. Ефанов* аспирант кафедры № 36 П. Г. Рощин • ФГУП «ЦНИИ ЭИСУ» • Москва, 2013
Постановка задачи Графическая оболочка, в которой возможна работа с конфиденциальной информацией Визуализация мандатных уровней Средство запуска приложений с мандатным уровнем Обеспечение мандатного принципа управления доступом Контроль информационного взаимодействия Х-клиентов с помощью системы мандатного управления доступом
SELinux в графической среде Linux с улучшенной безопасностью гибкая система мандатного управления доступом применяет разработанную заранее политику безопасности SELinux Среда пользователя Графические приложения Менеджер окон Среда рабочего стола GNOME Модули аутентификации Х-сервер Политики безопасности Ядро Linux SELinux
Визуализация контекстов безопасности с помощью менеджера окон Визуализация уровней Политики безопасности Запуск приложений с мандатным уровнем
Схема работы механизма визуализации КБ в менеджере окон Визуализация уровней Политики безопасности Запуск приложений с мандатным уровнем Исходный код менеджера окон Дополнения Механизм управления окнами Получение контекста безопасности от Х-сервера Передача метки Передача метки Программный интерфейс X-сервера Механизм растеризации рамок окон Изменение цвета рамки окна в зависимости от метки Файл настроек, определяющий цвет для каждого уровня Передача метки Цвет рамки
Механизм многоэкземплярности Реализация системы защиты в Х-сервере, изменение политик для обеспечения совместимости Создание модулей политик для графических приложений: панель, менеджер окон Разработка политик SELinux Визуализация уровней Политики безопасности Запуск приложений с мандатным уровнем Базовая политика SELinux РАМ — модуль аутентификации Linux Политика для работы с многоэкземплярностью Механизм многоэкземплярности Политика для панели GNOME Политика для служб GNOME Методика разработки политик SELinux для графических приложений Политика для обеспече- ния работы Х-сервера
Механизм многоэкземплярности Визуализация уровней Политики безопасности Запуск приложений с мандатным уровнем Реальные директории (полный доступ) PAM Модуль namespace Многоэкземплярные директории (минимальные привилегии доступа) user:Несекретно file1 /tmp /tmp/tmp.inst user:Секретно file2 /var/tmp /var/tmp/tmp.inst user:Сов. Секретно file3 /home/user /home/user.inst Разработка конфигурационных файлов /tmp/tmp.inst/Несекретно/file1 /var/tmp/tmp.inst/Секретно/file2 Доработка модуля для работы с SELinux Настройка политик SELinux для работы с РАМ /home/user.inst/Сов. секретно/file3
Защищённый Х-сервер Управление информационными потоками на уровне сервера: буфер обмена, межпроцессное взаимодействие Контроль за снятием снимков экрана Визуализация уровней Политики безопасности Запуск приложений с мандатным уровнем Совершенносекретно Секретно Несекретно
Разработка библиотеки для интеграции SELinux и окружения пользователя Преимущества: Ускорение процесса разработки SELinux-ориентированных приложений Уменьшение количества ошибок Повышение качества кода Визуализация уровней Политики безопасности Запуск приложений с мандатным уровнем SELinux API Библиотека C-функций: • Перевод меток на русский язык • Разбор текстовых меток • Ориентированность на многоуровневую среду Библиотека GTK-функций: • Генератор графического интерфейса выбора мандатной метки • Функция получения метки от пользователя Поддержка языка Си Большинство программ в Linux разработаны на языке Си Поддержка языка Python Многие конфигурационные утилиты иприложения написаны на Python
Программа для запуска приложений с мандатной меткой Визуализация уровней Политики безопасности Запуск приложений с мандатным уровнем Графический интерфейс, осуществляющий запуск пользовательских графических приложений с произвольной мандатной меткой, реализованый с использованием системных библиотек.
Результат работы программы перевода мандатных меток Визуализация уровней Политики безопасности Запуск приложений с мандатным уровнем Интеграция с Mcstrans — системный администратор может настроить правила перевода символьного представления уровней и категорий в обозначения, понятные человеку
Схема работы механизма запуска приложений Визуализация уровней Политики безопасности Запуск приложений с мандатным уровнем Новый процесс с меткой Секретно newrole программа для запуска приложений с мандатной меткой SELinux API SELinux API для GTK+ Панель быстрого запуска приложений с графическим интерфейсом Перевод меток на русский язык Получение и разбор текущей метки пользователя Составление метки запуска Графический интерфейс выбора метки приложения Ввод данных пользователя (метка «Секретно»)
Тестирование Для автоматизации некоторых процессов тестирования разработаны собственные утилиты и модули. Разработана система автоматического тестирования отдельных модулей защиты операционной системы. Корректность работы графических утилит проверяется вручную. Разработаны следующие утилиты для тестирования: setester — программа тестирования и отладки политик SELinux sechecker — программа тестирования корректности работы мандатной системы управления доступом audit2setester — программа автоматизации разработки политик SELinux В программу запуска приложений с мандатным уровнем дополнительно добавлены модули для тестирования корректности работы меток
Заключение Разработан метод настройки SELinux и разработки политик, интегрированных с механизмом многоэкземплярности для обеспечения изоляции и корректной работы графических приложений в защищённой среде Разработана готовая к использованию среда исполнения графических приложений с мандатными уровнями и категориями Реализован графический интерфейс управления мандатными метками в виде библиотеки, которая позволяет унифицировать работу с уровнями в операционной системе Обеспечена графическая поддержка многоуровневой среды: визуализация мандатных уровней и категорий, возможность запуска графических приложений с заданной пользователем мандатной меткой Дальнейшие усилия направлены на повышение удобства пользователя, организацию контролируемого межпроцессного взаимодействия, а также файловый менеджер, предназначенный для работы в защищённой среде.