А.А. Чайка | Практическая безопасность Linux (2026) [PDF]
Автор: А.А. Чайка
Издательство: БХВ-Петербург
Серия: Системный администратор
ISBN: 978-5-9775-2119-2
Жанр: Компьютерная литература
Формат: PDF
Качество: Обработанный скан
Иллюстрации: Отсутствуют
Описание:Миф о том, что Linux по умолчанию безопасен, давно пора развеять. Эта книга — подробное практическое руководство по защите Linux-систем: от архитектуры ядра и модели прав доступа до расследования инцидентов безопасности. Она предоставляет все необходимые знания и инструменты для эффективной защиты операционной системы.
Издание ориентировано на системных администраторов, специалистов по информационной безопасности, ИТ-менеджеров и инженеров, которые стремятся глубже понять и укрепить защиту своих Linux-систем.
Рассмотрены практические аспекты обеспечения безопасности в Linux. Подробно описаны архитектура системы, уровни привилегий и механизмы управления доступом (DAC, MAC, SELinux, AppArmor). Даны рекомендации по настройке безопасной загрузки, аудиту, журналированию и контролю активности пользователей. Отдельное внимание уделено изоляции приложений, сетевой безопасности, защите данных и памяти, а также противодействию руткитам и вредоносному коду. Рассмотрены методы шифрования, усиления ядра и использования IDS/IPS-систем. Рассказано о защите памяти, настройке компилятора и усилении безопасности ядра. Завершающие главы посвящены расследованию инцидентов безопасности: сбору и анализу логов, использованию инструментов форензики, документированию, восстановлению и постинцидентному анализу.
Об авторе
Независимый исследователь. Консультант по информационной безопасности. Спикер DEF CON NN. Основатель проекта по созданию защищенной операционной системы на базе AOSP. Автор технических статей, преподаватель и владелец каналов с мемами.
Оглавление
Предисловие
Благодарности
О чем эта книга
Как устроена эта книга
Кому она будет полезна
Введение
Основы информационной безопасности
Роль Linux в инфраструктуре
История и философия Linux
Мифы о безопасности Linux
Миф 1: «На Linux нет вирусов»
Миф 2: «Если не root- значит, безопасно»
Миф 3: «Открытый код- значит, безопасный»
Миф 4: «Linux безопасен по умолчанию»
Современные угрозы и векторы атак
Уя звим ости в ядре и базовых сервисах
Злоупотребление доверенными механизмами
LOTL (Living Off The Land)
Контейнеры и облачные среды
Supply Chain: атаки на цепочку поставки
Edge и loT
Модели угроз и их применение в безопасности Linux
STRIDE
DREAD
MITRE АТ Т &СК
Практический подход к безопасности
Этика и ответственность
Мотивация и призыв к действию
Глава 1. Основы архитектуры Linux
Уровни привилегий
Пространства выполнения
Инициализация
Механизмы перехода
Архитектурные особенности
Ядро и его компоненты
Аудит и безопасность
Аудит системы с помощью Linux Audit Framework, Lynis и auditd
Встроенные механизмы аудита
Глава 2. Защита загрузчика и безопасная загрузка
Этапы загрузки Linux
Описание этапов
Загрузчик GRUB. Настройка безопасности
Методы защиты GRUB
Пароль на доступ к меню загрузки
Защита параметров загрузки
Подпись ядра и модулей
Шифрование конфигурации
Загрузчик Syslinux. Методы обеспечения безопасности
Методы защиты Syslinux
Пароль на доступ к меню загрузки
Ограничение доступа к консоли
Защита конфигурационных файлов
Загрузчик rEFind. Безопасная настройка
Загрузчик systemd-boot. Настройки, повышающие безопасность
Методы защиты systemd-boot
Подпись ядра
Пароль UEFI
Шифрование дисков
UEFI и Secure Boot. Принципы, настройка, обход
Методы защиты
Цифровая подпись кода
Загрузка только проверенного ПО
Защита от руткитов и буткит-атак
Блокировка изменения загрузчика и ядра
Совместимость с современными методами криптографической защиты
Уровни доступа
Векторы атаки
Популярные атаки на UEFI
Защиты от записи в хранилище основной прошивки
Настройка Secure Boot
Пример. Полнодисковое шифрование с LUKS2 Argon2id на DeЬian 12
Практика. Настройка Secure Boot на своем устройстве
Глава 3. Уровни безопасности и модели управления доступом
Дискретная модель доступа DAC (Discretionary Access Control)
Мандатная модель доступа МАС (Mandatory Access Control)
SELinux: политика важнее root
AppArmor: контроль по именам
Smack: безопасность для встраиваемых систем
Tomoyo: контроль поведения Классические модели: Biba, MLS, BSD Extended
Сертифицированный уровень: Astra Linux SE
Выводы
Глава 4. Аутентификация и авторизация
Права доступа. Углубленное руководство по chmod, chown, chgrp
Настройка пользовательских окружений для повышения безопасности
Методы аутентификации: от паролей до MF А
Система контроля доступа (ACL): расширяя стандартные права
Настройка РАМ для повышения безопасности
Системы управления секретами. HashiCorp Vault
Глава 5. Мониторинг системы, сервисов и пользовательской активности в Linux
Исторический и событийный мониторинг
Метамониторинг
Время отклика и SLA
Контроль нагрузки от мониторинга
Мониторинг системных ресурсов
Мониторинг сетевых сервисов
Отслеживание активности пользователей
Централизованный сбор логов
Автоматизация оповещений
Пример. Базовая настройка ZabЬix
Интерпретация данных и поведенческий анализ
Риски ложных срабатываний
Рекомендации
Глава 6. Песочницы для приложений
Что такое песочница. Какие принципы лежат в ее основе
Зачем использовать песочницы. Преимущества и случаи применения
Flatpak и Snap как системы распространения приложений со встроенными механизмами песочницы
Популярные решения
Firejail: легкая изоляция через пространства имен
gVisor: контейнеры с собственной реализацией системных вызовов
Как работает gVisor
bubЫewrap: контейнеризация для десктопа и не только
chroot: изоляция по старинке
systemd-nspawn: изоляция на уровне systemd
seccomp и seccomp-bpf: фильтрация системных вызовов
Примеры настройки песочницы для приложений
Изоляция браузера Firefox с помощью Firejail
Усиление безопасности системного сервиса через systemd
Побег из песочницы: примеры выхода и защиты от этого
Практический выбор
Глава 7. Выбор ядра и дистрибутива
Виды ядра
Generic StaЫe Kernel Libre Kemel
Hardened Kemel
Выводы
Выбор дистрибутива
Безопасные дистрибутивы: от изоляции к анонимности
Whonix: анонимность и защита от слежки
Qubes OS: модульная безопасность с помощью виртуализации
Сертифицированные решения и российские дистрибутивы
Astra Linux Special Edition (SE)
Реализация МАС в Astra Linux SE
Поддержка аппаратных токенов и доверенной загрузки
Администрирование и сопровождение
РЕДОС
AL Т Linux и ROSA
Подбор дистрибутива для специализированных задач
Глава 8. Системы инициализации
systemd: комплексная модель управления и безопасности
Архитектура
Механизмы безопасности
Анализ жесткой настройки
Контейнеризация и переносимость
OpenRC: модульная простота и ручной контроль
Архитектура
Безопасность и ограничения
Преимущества
Недостатки
Runit: скорость, надежность, минимум кода
Архитектура
Безопасность
Преимущества
Недостатки
sб: надежность, изоляция, контроль
Архитектура
Механизмы безопасности
Преимущества
Недостатки
Сравнение систем инициализации
Что выбирать и когда
Практика. Жесткая настройка инициализации для безопасности
systemd: контроль через unit-файлы
OpenRC: контроль через скрипты
Runit: контроль через chpst
s6: минимализм с предсказуемостью
Общие рекомендации
Глава 9. Безопасность виртуализации
Основные угрозы и уязвимости в системах виртуализации
Обеспечение безопасности гипервизора
Изоляция и безопасность виртуальных машин Безопасность сети в виртуальных системах
Мониторинг и аудит в виртуальных системах
Особенности безопасности контейнерной виртуализации
Безопасность хоста
Rootless Docker и Podman
Безопасная сборка и запуск контейнеров
Изоляция и контроль
Сеть и доступ
Аудит и секреты
Глава 1 О. Безопасность сети и коммуникаций
Настройка сетевого стека
Диагностика соединений
iptaЫes и nftaЫes
iptaЫes
Основные действия, которые могут быть выполнены с помощью iptaЫes
nftaЫes
Сравнение iptaЫes и nftaЫes: производительность и безопасность
Основные отличия iptaЫes и nftaЫes
Архитектура
Синтаксис
Производительность
Применение правил
Примеры безопасности
Настройка NAT и проброс портов
Пример NAT через iptaЫes (SNAT, МASQUERADE)
Проброс порта на внутренний сервер (DNA Т)
NAT на nftaЫes
Фингерпринтинг и сетевые отпечатки
Защита от фингерпринтинга
Zero Trust: недоверие ко всем по умолчанию
Глава 11. Обеспечение целостности системы
Настройка Integrity Policy Enforcement (IPE)
Основные понятия IPE
Проверка поддержки IPE в ядре
Настройка и компиляция IPE (при необходимости)
Настройка политики IPE
Пример базовой политики IPE
Создание политики на основе хеша файлов
Настройка политик на основе подписей
Пример политики с разными правилами
Настройка GRUB
Режимы работы IPE
Режим аудита (Audit Mode)
Режим принуждения (Enforce Mode )
Мониторинг и журналирование
Тестирование
Применение атрибута immutaЬ/e ДJ]Я контроля целостности системы
Мониторинг изменений: инструменты Tripwire, OSSEC, AIDE
Tripwire: настройка и использование ДJ]Я безопасности Linux
Инициализация базы данных
Конфигурация политики
Обработка отчетов
Советы по использованию
OSSEC
Установка OSSEC
Конфигурация OSSEC
Проверка целостности файлов
Уведомления и оповещения
Практическое использование и примеры
AIDE
Установка AIDE
Автоматизация и уведомления
Примеры использования AIDE ДJ]Я безопасности
Системы обнаружения вторжений (IDS): различные IDS, их настройка и использование
Snort
Установка Snort
Конфигурация Snort
Запуск Snort
Мониторинг и управление
Примеры использования Snort
Suricata
Ус танов ка Suricata
Основная настройка
Правила и политики
Мониторинг и анализ
Примеры использования Suricata
Защита от атак с помощью доверенных приложений (LОТL-атаки)
Мониторинг и логирование
Примеры использования LОТL-атак
Настройка dm-verity для проверки контрольных сумм файлов и обеспечения целостности
Принцип работы dm-verity
Установка и настройка dm-verity
Создание образа файловой системы только ДJ]Я чтения
Создание хеш-дерева
Монтирование с проверкой целостности
Обеспечение безопасности и целостности
Глава 12. Антивирусы и обнаружение руткитов
Зачем нужны антивирусы в Linux. Риски и случаи использования
Инструменты ДJ]Я обнаружения скрытых процессов и модулей ядра в Linux
Шифровальщики
Майнеры
Руткиты и буткиты в Linux: что это такое и как они угрожают безопасности
Методы обнаружения руткитов: rkhunter, chkrootkit Примеры антивирусов для Linux
Как защититься от вирусов, руткитов и буткитов
Глава 13. Защита данных
Инфраструктура публичных ключей (РКI) и безопасность в Linux
Доверие в PKl
Управление сертификатами в Linux
Выбор библиотеки SSL: OpenSSL и LibreSSL
GNU Privacy Guard (GPG). Работа с ключами
Типы ключей
Генерация ключей
Импорт и экспорт ключей
Шифрование файловой системы
dm-crypt
eCryptfs
LUKS
VeraCrypt
Опции разбиения на разделы и монтирования
Разбиение на разделы
Опции монтирования
Файл /etc/fstab
FUSE и его применение
Применение FUSЕ-шифрования в контексте безопасности
Рекомендации по использованию FUSЕ-шифрования
Безопасность хранения информации: LVM и RAID
Резервное копирование и восстановление данных. Лучшие практики и инструменты
Инструменты для резервного копирования
Восстановление данных
План восстановления после аварий (DRP)
Безопасное удаление данных: инструменты и методы
Глава 14. Защита памяти в Lin ux
Уя звим ости памяти в Linux
Address Space Layout Randomization (ASLR)
Data Execution Prevention (DEP/NX)
Stack Canaries в Linux
Настройка компилятора
Control Flow Integrity (CFI) в Linux
Примеры реализации CFI
Сравнение SLUB с другими аллокаторами памяти в Linux с точки зрения безопасности
Выбор аллокатора
hardened malloc
Настройка и использование
Kemel Неар Hardening
SELinux или AppArmor
Безопасность файла подкачки
Основные меры по обеспечению безопасности файла подкачки
Шифрование файла подкачки
Регулярная очистка файла подкачки
Мониторинг и ограничение использования файла подкачки
Что такое атака холодной загрузки
Шифрование памяти
Шифрование памяти и управление доступом в lntel SGX
Шифрование памяти и управление доступом в АМD SEV
Сравнение Intel SGX и AMD SEV
Защита от атак DМА
Отключение неиспользуемых портов
Использование безопасности сетевых устройств
Мониторинг и обновления системы
Языки программирования, безопасные для памяти
Rust
Python
Java
Выводы
Глава 15. Ус илен не безопасности ядра Linux и компилятора
Kemel Self Protection Project (KSPP) и его роль в усилении безопасности ядра Linux
Использование патчей Grsecurity/PaX и их возможности
Утилита sysctl и ее роль в безопасности ядра Linux
Зачем использовать sysctl для безопасности
Основные параметры безопасности ядра, управляемые через sysctl
Защита от подмены IР-адреса
Отключение перенаправления ICMP (пингов)
Отключение отправки IСМР-перенаправлений
Защита от атак SУN-флуд
Отключение ответа на широковещательные запросы
Отключение IР-перенаправления
Ограничение доступа к памяти ядра
Управление ASLR
Отключение дампов памяти для suid/sgid-фaйлoв
Защита от форк-бомб
Как применять настройки sysctl
Временное изменение параметров
Постоянное сохранение настроек
Использование отдельного файла в директории /etc/sysctl.d/
Практические рекомендации по настройке sysctl для безопасности
Уменьшение поверхности атаки на ядро Linux
Способы уменьшения поверхности атаки на ядро
Практические примеры уменьшения поверхности атаки
Отключение дампов ядра и его роль в обеспечении безопасности системы
Причинъr отключения дампов ядра
Как отключить дампы ядра в Linux
Важные моменты при отключении дампов ядра
Альтернативы отключенmо дампов
Дополнительные рекомендации
Внесение модулей ядра в черный список и обеспечение безопасности системы
Почему важно блокировать определеннъrе модули ядра
Внесение модулей в черный список
Способы блокировки модулей
Особенности и предостережения
Дополнительные меры безопасности
Практические примеры блокировки модулей
Самостоятельная компиляция ядра для усиления безопасности
Почему стоит самостоятельно компилировать ядро
Подготовка к компиляции ядра
Шаги по компиляции ядра
Ключевые настройки для усиления безопасности
Отключение ненужных модулей и функций
Включение механизмов безопасности
Отключение неиспользуемых системных вызовов
Включение Control Flow lntegrity (CFI)
Включение Security Audit
Компиляция и установка ядра
Проверка работы нового ядра
Дополнительные меры для обеспечения безопасности
Защита процессора при конфигурировании ядра Linux
Понимание уязвим остей процессора
Настройка ядра Linux для защиты процессора
Включение изоляции таблиц страниц ядра (Kemel Page ТаЫе lsolation, КРП)
Включение защиты от Spectre
Включение функции Microcode Update
Ограничение спекулятивного выполнения
Включение Rogue Data Cache Load (RDCL) Mitigations
Использование Control-flow Enforcement Technology (СЕТ)
Обновление компилятора и использование защитных опций
Удаление устаревших и неиспользуемых функций
Ограничение доступа к отладочным интерфейсам
Отслеживание состояния защиты
Основы безопасности компиляции
Использование опций безопасности компилятора
Удаление отладочной информации из релизной версии
Обзор ключевых опций безопасности компилятора GCC
Ключевые опции безопасности в GCC
Защита стека (Stack Protector)
Усиление стандартных функций (Fortify Source)
Позиционно-независимый код (Position Independent ExecutaЫe, PIE)
Защита разделов памяти (Relocation Read-Only, RELRO)
Address Sanitizer (ASan)
Undefmed Behavior Sanitizer (UBSan)
Контроль потока управления (Control Flow lntegrity, CFI)
Предупреждения компилятора
Ограничение размера исполняемых файлов
Лучшие практики при использовании опций безопасности GCC
Пример полной команды компиляции с опциями безопасности
Основные опции безопасности в Clang и их использование
Основные опции безопасности в Clang
Stack Canaries (Защита стека)
Address Sanitizer (ASan)
Undefmed Behavior Sanitizer (UBSan) Memory Sanitizer (MSan)
Control Flow Integrity (CFI)
SafeStack
Fortify Source
Position Independent ExecutaЬ\es (PIE) и Position Independent Code (PIC)
Relocation Read-Only (RELRO)
Stack Clash Protection
Рекомендации по использованию опций безопасности
Пример полного использования опций безопасности
Сравнение библиотек С с точки зрения безопасности: musl, glibc и др.
Сравнение библиотек С в контексте безопасности
Рекомендации по обеспечению безопасности при выборе библиотеки С
Глава 16. Безопасность приложений
ModSecurity
Fai\2Ban
Безопасные практики разработки. Принципы обеспечения безопасности на этапе разработки
Глава 17. Работа с уязвимостями
Обновление системы
Общий стандарт уязвимостей (CWE). Классификация и понимание типов уязвимостей
Использование Security Advisories и CVE. Поиск и использование информации об уязвимостях
Инструменты для сканирования уязвимостей. Обзор и использование популярных инструментов
Сравнение инструментов сканирования уязвимостей
Как использовать инструменты для сканирования уязвимостей
Практика применения сканера OpenSCAP для поиска уязвимостей
Анализ результатов
Использование разных профилей
Автоматизация и интеграция
Глава 18. Расследование инцидентов безопасности
Типы инцидентов. Классификация инцидентов и особенности каждого типа
Подготовка к расследованию инцидентов безопасности. Создание плана действий, сбор команды, инструменты
Сбор команды
Необходимые инструменты
Сбор и сохранение данных. Методы сбора логов, снапшотов системы, сетевого трафика
Сбор логов
Создание снимков системы ( снапшотов)
Сбор сетевого трафика
Журналы системных служб
Журналы аутентификации
Журналы приложений
Инструменты для анализа логов
Рекомендации по анализу логов Анализ сетевой активности. tcpdump и Wireshark - ваши защитники от нежелательного трафика в Linux
tcpdump: быстрый и эффективный снифер командной строки
Wireshark: мощный графический анализатор пакетов
Обнаружение подозрительного трафика
Обнаружение вредоносных процессов в Linux. Утилиты lsof, netstat и другие методы
Идентификация подозрительных процессо
lsof: список открытых файлов
netstat: информация о сетевых соединениях
Другие полезные утилиты
Форензика файловых систем Linux. Восстановление удаленных файлов и анализ временных меток
Восстановление удаленных файлов
Процесс восстановления
Анализ временнь1х меток
Использование инструментов форензики: Volatility, Autopsy, Sleuth Kit
Volatility
Получение дампа памяти
Autopsy
The Sleuth Kit
Основные утилиты TSK
Работа с образами дисков
Документирование и отчетность в расследовании инцидентов безопасности Linux: от анализа к действиям
Этапы документирования
Структура отчета
Рекомендации по дальнейшим действиям
Восстановление системы Linux после инцидента безопасности
Постинцндентный анализ: уроки из прошлого, безопасность будущего
Правовые аспекты кибербезопасности Linux: взаимодействие с правоохранительными органами и сохранение цепочки доказательств
Приказы, регулирующие взаимодействие с компетентными орrанами
Приказ № 524 ФСБ (для организаций, обрабатывающих ПД)
Приказ № 17 ФСТЭК
Приказ № 21 ФСТЭК
Приказ № 31 (2024) ФСТЭК + приказ № 235
Взаимодействие с органами при расследовании
Легализация данных для расследования
Глава 19. Практические рекомендации
Создание и поддержание безопасной среды Linux: ключевые аспекты
Лучшие практики безопасности Linux: свод рекомендаций
Заключение
Будущее безопасности Linux: перспективы и новые технолоrии
Ресурсы для дальнейшего изучения безопасности Linux: книги, курсы и сообщества
Предметный указатель
Скриншоты:
Время раздачи: с 10.00 до 21.00 (минимум до появления первых 3-5 скачавших)