Администрирование системы защиты SELinux
Покупка
Издательство:
ДМК Пресс
Автор:
Вермейлен Свен
Год издания: 2020
Кол-во страниц: 300
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-97060-557-8
Артикул: 748314.02.99
Эта книга показывает, как значительно усилить безопасность операционной системы Linux и устранить имеющиеся уязвимости установленных приложений. Вы узнаете, как работает SELinux, как можно настроить ее под свои нужды и усилить с ее помощью защиту систем виртуализации, включающих технологию libvirt (sVirt) и контейнеризацию Docker. Также рассказывается об управляющих действиях, позволяющих улучшить безопасность конкретной системы с помощью принудительного контроля доступа - стратегии защиты, определяющей безопасность Linux уже много лет. Большинство возможностей системы защиты рассматривается на реальных примерах.
Книга предназначена для администраторов операционной системы Linux, в задачу которых входит управление ее защищенностью.
- Полная коллекция по информатике и вычислительной технике
- Защита информации. Компьютерная безопасность
- Интермедиатор. Информационная безопасность (сводная)
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Интермедиатор. Обеспечение безопасности (сводная)
- Информационная безопасность
- Операционные системы и программы-оболочки
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 10.03.01: Информационная безопасность
- ВО - Специалитет
- 10.05.01: Компьютерная безопасность
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Свен Вермейлен Администрирование системы защиты SELinux
Sven Vermeulen SELinux System Administration Ward off traditional security permissions and effectively secure your Linux systems with SELinux BIRMINGHAM - MUMBAI
Свен Вермейлен Москва, 2020 Администрирование системы защиты SELinux Рассмотрение традиционных решений по обеспечению безопасности и эффективной защиты операционных систем семейства Linux с помощью средств SELinux
УДК 004.451 ББК 32.972.1 В34 Вермейлен С. В34 Администрирование системы защиты SELinux / пер. с анг. В. Л. Верещагина, О. К. Севостьяновой. – М.: ДМК Пресс, 2020. – 300 с.: ил. ISBN 978-5-97060-557-8 Эта книга показывает, как значительно усилить безопасность операционной системы Linux и устранить имеющиеся уязвимости установленных приложений. Вы узнаете, как работает SELinux, как можно настроить ее под свои нужды и усилить с ее помощью защиту систем виртуализации, включающих технологию libvirt (sVirt) и контейнеризацию Docker. Также рассказывается об управляющих действиях, позволяющих улучшить безопасность конкретной системы с помощью принудительного контроля доступа – стратегии защиты, определяющей безопасность Linux уже много лет. Большинство возможностей системы защиты рассматривается на реальных примерах. Книга предназначена для администраторов операционной системы Linux, в задачу которых входит управление ее защищенностью. УДК 004.451 ББК 32.972.1 Authorized Russian translation of the English edition of SELinux System Administration ISBN 978-1-78712-695-4 © Packt Publishing. This translation is published and sold by permission of Packt Publishing, which owns or controls all rights to publish and sell the same. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-78712-695-4 (анг.) © Packt Publishing © Дополнительный текст, Верещагин В. Л., 2020 ISBN 978-5-97060-557-8 (рус.) © Оформление, издание, перевод, ДМК Пресс, 2020
Содержание Об авторе ............................................................................................................13 О рецензентах ....................................................................................................15 Предисловие ......................................................................................................16 Глава 1. Фундаментальные концепции SELINUX ......................................21 1.1. Предоставление большей безопасности в Linux ..........................................21 1.1.1. Использование модулей безопасности Linux .......................................24 1.1.2. Расширение возможностей стандартного дискреционного разграничения доступа ....................................................................................25 1.1.3. Ограничение привилегий пользователя root ........................................27 1.1.4. Сокращение воздействия уязвимостей .................................................28 1.1.5. Включение возможностей SELi nux в операционной системе .............29 1.2. Маркировка всех ресурсов и объектов .........................................................31 1.2.1. Описание параметров безопасности .....................................................32 1.2.2. Принудительный доступ посредством типов функциональных ограничений .....................................................................................................35 1.2.3. Распределение по ролям наборов функциональных ограничений ....36 1.2.4. Разделение пользователей по ролям .....................................................38 1.2.5. Контроль информационных потоков посредством мандатного механизма .........................................................................................................39 1.3. Формирование и распределение политик ...................................................40 1.3.1. Создание политик SELi nux .....................................................................41 1.3.2. Распределение политик в виде модулей ...............................................43 1.3.3. Комплектация модулей в хранилище политик .....................................45 1.4. Различия между политиками ........................................................................45 1.4.1. Поддержка многоуровневой защиты (MLS) ..........................................46 1.4.2. Манера поведения с неизвестными разрешениями ............................46 1.4.3. Поддержка неограниченных доменов ...................................................47 1.4.4. Ограничение межпользовательского обмена .......................................48 1.4.5. Последовательные изменения версий политик ...................................49 1.4.6. Качественное изменение версий политик ............................................50 1.5. Заключение .....................................................................................................51 Глава 2. Режимы работы и регистрация событий ....................................53 2.1. Включение и выключение защиты SELi nux .................................................53 2.1.1. Установка глобального состояния защиты ............................................54
Содержание 2.1.2. Переключение в рекомендательный и принудительный режимы .....55 2.1.3. Использование параметров загрузки ядра ..........................................57 2.1.4. Отключение защиты SELi nux для отдельно взятого сервиса...............58 2.1.5. Определение приложений, активно взаимодействующих с SELi nux ............................................................................................................61 2.2. Регистрация событий и аудит в SELi nux.......................................................61 2.2.1. Последовательность контроля событий о нарушениях безопасности .....................................................................................................62 2.2.2. Исключение конкретных отказов в доступе из числа регистрируемых ................................................................................................64 2.2.3. Конфигурирование подсистемы контроля событий безопасности Linux ...........................................................................................65 2.2.4. Настройка локального системного регистратора событий ..................66 2.2.5. Разбор информации об отказах SELi nux ...............................................67 2.2.6. Другие типы событий, связанные с SELi nux .........................................72 2.2.7. Использование команды ausearch .........................................................76 2.3. Получение помощи при отказах ...................................................................77 2.3.1. Диагностика неисправности с помощью службы setroubleshoot ........77 2.3.2. Отправка электронной почты, когда случился отказ SELi nux .............80 2.3.3. Использование утилиты audit2why .......................................................81 2.3.4. Взаимодействие с журналом system ......................................................82 2.3.5. Использование здравого смысла ...........................................................83 2.4. Заключение .....................................................................................................85 Глава 3. Управление учетными записями пользователей ......................86 3.1. Параметры безопасности пользователей .....................................................86 3.1.1. Сложность допустимого набора функций .............................................87 3.1.2. Определение неограниченных доменов ...............................................89 3.2. Пользователи SELi nux и их роли ...................................................................90 3.2.1. Перечень сопоставлений пользователей с пользовательскими типами SELi nux .................................................................................................90 3.2.2. Сопоставление учетных записей с пользовательскими типами .........92 3.2.3. Настройка учетных записей относительно служб ................................93 3.2.4. Создание типов пользователей SELi nux ................................................94 3.2.5. Перечень типов допустимого набора функций у ролей .......................95 3.2.6. Управление категориями .......................................................................96 3.3. Управление ролями SELi nux ..........................................................................98 3.3.1. Настройки присвоения допустимых ролей пользователю ..................98 3.3.2. Проверка параметров безопасности при помощи утилиты getseuser ..........................................................................................................100 3.3.3. Подключение ролей с помощью команды newrole ............................100 3.3.4. Управление доступом к роли с помощью команды sudo ...................101 3.3.5. Переключение параметров безопасности посредством runcon ........................................................................................102
Содержание 7 3.3.6. Переключение на системную роль ......................................................102 3.4. SELi nux и PAM (подключаемые модули аутентификации) .......................104 3.4.1. Назначение параметров безопасности с помощью подключаемых модулей аутентификации ...................................................104 3.4.2. Запрещение доступа в рекомендательном режиме работы защиты ............................................................................................................105 3.4.3. Многоэкземплярность каталогов ........................................................106 3.5. Заключение ...................................................................................................107 Глава 4. Домены как допустимые наборы функций для процессов и контроль доступа на уровне файлов .........................109 4.1. О параметрах безопасности файлов ...........................................................109 4.1.1. Получение информации о параметрах безопасности ........................110 4.1.2. Интерпретация наименований типов SELi nux ...................................111 4.2. Закрепление параметров безопасности за объектом и их игнорирование............................................................................................112 4.2.1. Наследование параметров безопасности по умолчанию ...................113 4.2.2. Правила преобразования типов и их вывод .......................................113 4.2.3. Копирование и перемещение файлов .................................................115 4.2.4. Временное изменение параметров безопасности файла ..................117 4.2.5. Установка категорий для файлов и каталогов ....................................118 4.2.6. Использование многоуровневой защиты для файлов .......................118 4.2.7. Резервное копирование и восстановление расширенных атрибутов ........................................................................................................119 4.2.8. Использование опций монтирования для установки параметров SELi nux ........................................................................................119 4.3. Формулировка параметров безопасности для файлов .............................121 4.3.1. Использование выражений, описывающих параметры безопасности ...................................................................................................121 4.3.2. Регистрация изменений параметров безопасности файлов .............123 4.3.3. Использование заказных типов ...........................................................125 4.3.4. Различные виды файлов file_contexts и их компиляция ....................126 4.3.5. Обмен локальными изменениями .......................................................127 4.4. Изменение параметров безопасности у файлов........................................127 4.4.1. Использование команд setfiles, rlpkg и fixfiles ....................................128 4.4.2. Изменение параметров безопасности на всей файловой системе ...128 4.4.3. Автоматическое приведение к заданным значениям изменившихся параметров безопасности ...................................................129 4.5. Параметры безопасности процесса ............................................................130 4.5.1. Получение параметров безопасности процесса .................................130 4.5.2. Преобразование типа процесса ...........................................................131 4.5.3. Проверка соответствия параметров безопасности ............................133 4.5.4. Другие способы преобразования типов ..............................................134
Содержание 4.5.5. Изначально заданные параметры в структуре идентификатора безопасности ...................................................................................................134 4.6. Определение границ возможных преобразований ...................................135 4.6.1. Очистка переменных окружения во время преобразования к другому типу ................................................................................................135 4.6.2. Невыполнение преобразований, когда нет ограничивающего родительского типа ........................................................................................137 4.6.3. Использование флага, исключающего новые привилегии у процесса........................................................................................................138 4.7. Типы, разрешения и ограничения ..............................................................139 4.7.1. Объяснение атрибутов типа .................................................................139 4.7.2. Запрос разрешений, предоставленных типу процесса .......................140 4.7.3. Рассмотрение наложенных ограничений ............................................142 4.8. Заключение ...................................................................................................143 Глава 5. Контроль сетевого взаимодействия ...........................................144 5.1. От контроля межпроцессного взаимодействия (IPC) до сокетов базовых протоколов (TCP/UDP) транспортного уровня...................................144 5.1.1. Использование разделяемой памяти ..................................................145 5.1.2. Локальное взаимодействие, осуществляемое по каналам ................147 5.1.3. Обращение через сокеты домена UNIX ...............................................148 5.1.4. Рассмотрение сокетов netlink ..............................................................149 5.1.5. Действия с сокетами протоколов TCP и UDP ......................................150 5.1.6. Вывод списка сетевых соединений с параметрами безопасности ....152 5.2. Межсетевой экран и маркировка сетевых пакетов ...................................152 5.2.1. Вводные сведения о межсетевом экране netfilter ...............................153 5.2.2. Реализация маркировки сетевых пакетов и соединений ..................154 5.2.3. Назначение меток пакетам ..................................................................155 5.3. Промаркированные сети .............................................................................157 5.3.1. Резервная маркировка в NetLabel ........................................................158 5.3.2. Ограничение потоков данных на уровне сетевого интерфейса ........160 5.3.3. Ограничение потоков данных на уровне элементов сети .................160 5.3.4. Проверка однорангового потока..........................................................161 5.3.5. Применение управления в старом стиле ............................................162 5.4. Метки безопасности для IPsec ....................................................................163 5.4.1. Установка стандартного IPsec ..............................................................165 5.4.2. Подключение маркировки IPsec ..........................................................166 5.4.3. Использование Libreswan .....................................................................167 5.5. Технология маркировки сетей NetLabel с параметром CIPSO ..................168 5.5.1. Настройка сопоставлений потоков данных с доменами ...................169 5.5.2. Добавление сопоставлений для типов допустимого набора функций ..........................................................................................................170 5.5.3. Локальное использование параметра CIPSO ......................................171
Содержание 9 5.5.4. Поддержка опции безопасности для IPv6 ...........................................172 5.6. Заключение ...................................................................................................172 Глава 6. Поддержка sVirt и Docker .............................................................173 6.1. Виртуализация, защищенная SELi nux ........................................................173 6.1.1. Представление о виртуализации .........................................................173 6.1.2. Обзор рисков виртуализации ...............................................................175 6.1.3. Использование типов для объектов виртуальной инфраструктуры .............................................................................................176 6.1.4. Перенастраиваемое применение существующих типов виртуализации ................................................................................................177 6.1.5. Рассмотрение защиты различных категорий ....................................179 6.2. Поддержка библиотеки libvirt .....................................................................180 6.2.1. Различные случаи маркировки ресурсов ............................................181 6.2.2. Оценка архитектуры libvirt ..................................................................181 6.2.3. Настройка libvirt для работы с sVirt .....................................................182 6.2.4. Использование статических параметров безопасности ....................184 6.2.5. Гибкая настройка параметров безопасности ......................................184 6.2.6. Использование разных мест хранения ................................................185 6.2.7. Интерпретация информации в поле вывода данных о метке ...........185 6.2.8. Управление доступными категориями................................................186 6.2.9. Поддержка интерпретирующих доменов ...........................................186 6.2.10. Изменение параметров безопасности, установленных по умолчанию .................................................................................................187 6.3. Защищенные контейнеры Docker ...............................................................188 6.3.1. Представление о защите контейнера ..................................................188 6.3.2. Интеграция системы защиты с контейнерами без sVirt ....................189 6.3.3. Перестраховка безопасности Docker средствами защиты sVirt ........190 6.3.4. Ограничение привилегий контейнера ................................................191 6.3.5. Применение различных параметров безопасности для контейнеров .............................................................................................193 6.3.6. Перемаркировка подключенного тома данных ..................................194 6.3.7. Понижение контроля со стороны SELi nux для специальных контейнеров ....................................................................................................195 6.3.8. Изменение параметров безопасности, установленных по умолчанию .................................................................................................195 6.4. Заключение ...................................................................................................196 Глава 7. D-Bus и systemd ................................................................................197 7.1. Фоновый процесс системы (systemd) ..........................................................197 7.2. Способ поддержки в systemd служб ............................................................198 7.2.1. Введение понятия модульных файлов.................................................198
Содержание 7.2.2. Установка параметров безопасности SELi nux для какой-либо службы .............................................................................................................199 7.2.3. Использование переходных служб .......................................................200 7.2.4. Требование включения или отключения SELi nux для конкретной службы .................................................................................201 7.2.5. Перемаркировка файлов во время запуска службы ............................202 7.2.6. Использование активизации, основанной на сокетах ........................204 7.2.7. Управление доступом к операциям с модулями .................................205 7.3. Регистрация событий с помощью systemd .................................................206 7.3.1. Получение информации, относящейся к SELi nux ...............................206 7.3.2. Запрос событий, содержащих параметры безопасности SELi nux ......207 7.3.3. Интеграция диагностики неисправностей с журналом .....................207 7.4. Использование контейнеров systemd .........................................................209 7.4.1. Инициализация контейнеров systemd .................................................209 7.4.2. Использование специальных параметров безопасности SELi nux .....209 7.5. Управление файлами устройств ..................................................................210 7.5.1. Использование правил udev .................................................................210 7.5.2. Назначение метки SELi nux на узле устройства ...................................212 7.6. Взаимодействие с шиной сообщений D-Bus ..............................................212 7.6.1. Представление о взаимодействии между процессами D-Bus ............212 7.6.2. Контроль получения доступа к службам с помощью SELi nux ............215 7.6.3. Управление потоками сообщений .......................................................216 7.7. Заключение ...................................................................................................217 Работа с политиками SELi nux ......................................................................218 8.1. Логические параметры SELi nux ..................................................................218 8.1.1. Вывод списка логических параметров ................................................219 8.1.2. Изменение значений логических параметров ...................................220 8.1.3. Проверка влияния логического параметра .........................................221 8.2. Усиление политик SELi nux ..........................................................................222 8.2.1. Список модулей политики ...................................................................222 8.2.2. Загрузка и удаление модулей политики ..............................................223 8.2.3. Создание политик с использованием программы audit2allow ..........224 8.2.4. Использование говорящих за себя наименований для модулей политики .........................................................................................................226 8.2.5. Использование макрокоманд посреднической политики с программой audit2allow ..............................................................................227 8.2.6. Использование скрипта selocal ............................................................228 8.3. Создание модулей политик по специальным требованиям .....................229 8.3.1. Создание модулей SELi nux с помощью исходного языка описания политик ..........................................................................................230 8.3.2. Создание модулей SELi nux с помощью посреднического стиля описания политик ..........................................................................................231