Опубликовано

Встречайте: “Практическая безопасность Linux”

Практическая безопасность Linux

Рассмотрены практические аспекты обеспечения безопасности в Linux. Подробно описаны архитектура системы, уровни привилегий и механизмы управления доступом (DAC, MAC, SELinux, AppArmor). Даны рекомендации по настройке безопасной загрузки, аудиту, журналированию и контролю активности пользователей. Отдельное внимание уделено изоляции приложений, сетевой безопасности, защите данных и памяти, а также противодействию руткитам и вредоносному коду. Рассмотрены методы шифрования, усиления ядра и использования IDS/IPS-систем. Рассказано о защите памяти, настройке компилятора и усилении безопасности ядра. Завершающие главы посвящены расследованию инцидентов безопасности: сбору и анализу логов, использованию инструментов форензики, документированию, восстановлению и постинцидентному анализу.

Для системных администраторов и специалистов по информационной безопасности

Подробное руководство по защите операционной системы

Миф о том, что Linux по умолчанию безопасен, давно пора развеять. Эта книга — подробное практическое руководство по защите Linux-систем: от архитектуры ядра и модели прав доступа до расследования инцидентов безопасности. Она предоставляет все необходимые знания и инструменты для эффективной защиты операционной системы.

Издание ориентировано на системных администраторов, специалистов по информационной безопасности, ИТ-менеджеров и инженеров, которые стремятся глубже понять и укрепить защиту своих Linux-систем.

В книге рассматриваются:

  • Основы архитектуры Linux: как работает ядро, системные вызовы и управление памятью; механизмы безопасности ядра и пользовательского пространства
  • Безопасная загрузка: защита GRUB, Syslinux и UEFI Secure Boot от компрометации
  • Модели доступа и права: настройка многопользовательской безопасности, AppArmor и SELinux
  • Аутентификация и авторизация: SSH-ключи, двухфакторная аутентификация, управление правами с помощью chmod, chown и ACL
  • Песочницы для приложений: изоляция процессов с использованием Firejail и systemd-песочниц
  • Сетевые аспекты безопасности: настройка брандмауэров (iptables, nftables), VPN, SSH и предотвращение атак
  • Контроль целостности: использование Tripwire, AIDE и систем IDS для обнаружения вторжений
  • Антивирусы и руткиты: практические рекомендации по защите от вредоносных программ
  • Шифрование и защита памяти: LUKS, защита от переполнений буфера и атак холодной загрузки
  • Расследование инцидентов безопасности: методы сбора и анализа логов, сетевого трафика и снапшотов, использование инструментов форензики (Volatility, Autopsy, Sleuth Kit), документирование результатов и восстановление системы после инцидента

Книгу “Практическая безопасность Linux” можно купить в нашем интенет-магазине.

Предисловие…………………………………………………………………………………………… 15

Благодарности…………………………………………………………………………………………………………………………… 15

О чем эта книга…………………………………………………………………………………………………………………………… 15

Как устроена эта книга……………………………………………………………………………………………………………… 16

Кому она будет полезна……………………………………………………………………………………………………………. 16

Об авторе……………………………………………………………………………………………………………………………………. 17

Введение………………………………………………………………………………………………… 18

Основы информационной безопасности………………………………………………………………………………….. 18

Роль Linux в инфраструктуре……………………………………………………………………………………………………. 19

История и философия Linux………………………………………………………………………………………………………. 19

Мифы о безопасности Linux……………………………………………………………………………………………………… 19

Миф 1: «На Linux нет вирусов»………………………………………………………………………………………… 19

Миф 2: «Если не root — значит, безопасно»……………………………………………………………………. 20

Миф 3: «Открытый код — значит, безопасный»……………………………………………………………… 20

Миф 4: «Linux безопасен по умолчанию»……………………………………………………………………….. 20

Современные угрозы и векторы атак……………………………………………………………………………………….. 20

Уязвимости в ядре и базовых сервисах……………………………………………………………………………. 20

Злоупотребление доверенными механизмами………………………………………………………………… 20

LOTL (Living Off The Land)……………………………………………………………………………………………….. 21

Контейнеры и облачные среды………………………………………………………………………………………… 21

Supply Chain: атаки на цепочку поставки……………………………………………………………………….. 21

Edge и IoT……………………………………………………………………………………………………………………………. 21

Модели угроз и их применение в безопасности Linux……………………………………………………………. 22

STRIDE………………………………………………………………………………………………………………………………… 22

DREAD………………………………………………………………………………………………………………………………… 22

MITRE ATT&CK………………………………………………………………………………………………………………… 22

Практический подход к безопасности……………………………………………………………………………………… 23

Этика и ответственность…………………………………………………………………………………………………………… 23

Мотивация и призыв к действию………………………………………………………………………………………………. 23

Глава 1. Основы архитектуры Linux………………………………………………………. 25

Уровни привилегий……………………………………………………………………………………………………………………. 26

Пространства выполнения………………………………………………………………………………………………………… 26

Инициализация…………………………………………………………………………………………………………………………… 27

Механизмы перехода………………………………………………………………………………………………………………… 27

Архитектурные особенности……………………………………………………………………………………………………. 27

Ядро и его компоненты……………………………………………………………………………………………………………… 28

Аудит и безопасность………………………………………………………………………………………………………………… 28

Аудит системы с помощью Linux Audit Framework, Lynis и auditd……………………………….. 29

Встроенные механизмы аудита………………………………………………………………………………………… 30

Глава 2. Защита загрузчика и безопасная загрузка………………………………… 32

Этапы загрузки Linux………………………………………………………………………………………………………………… 32

Описание этапов………………………………………………………………………………………………………………… 33

Загрузчик GRUB. Настройка безопасности……………………………………………………………………………. 34

Методы защиты GRUB………………………………………………………………………………………………………. 34

Пароль на доступ к меню загрузки………………………………………………………………………….. 34

Защита параметров загрузки…………………………………………………………………………………… 35

Подпись ядра и модулей…………………………………………………………………………………………… 35

Шифрование конфигурации…………………………………………………………………………………….. 35

Загрузчик Syslinux. Методы обеспечения безопасности……………………………………………………….. 35

Методы защиты Syslinux…………………………………………………………………………………………………… 36

Пароль на доступ к меню загрузки………………………………………………………………………….. 36

Ограничение доступа к консоли……………………………………………………………………………… 36

Защита конфигурационных файлов………………………………………………………………………… 36

Загрузчик rEFInd. Безопасная настройка………………………………………………………………………………… 36

Загрузчик systemd-boot. Настройки, повышающие безопасность………………………………………… 37

Методы защиты systemd-boot…………………………………………………………………………………………… 37

Подпись ядра…………………………………………………………………………………………………………….. 37

Пароль UEFI………………………………………………………………………………………………………………. 38

Шифрование дисков………………………………………………………………………………………………….. 38

UEFI и Secure Boot. Принципы, настройка, обход………………………………………………………………….. 38

Методы защиты………………………………………………………………………………………………………………….. 39

Цифровая подпись кода……………………………………………………………………………………………. 39

Загрузка только проверенного ПО………………………………………………………………………….. 39

Защита от руткитов и буткит-атак………………………………………………………………………….. 39

Блокировка изменения загрузчика и ядра………………………………………………………………. 40

Совместимость с современными методами криптографической защиты……………. 40

Уровни доступа………………………………………………………………………………………………………………….. 40

Векторы атаки……………………………………………………………………………………………………………………. 40

Популярные атаки на UEFI……………………………………………………………………………………………….. 41

Защиты от записи в хранилище основной прошивки……………………………………………………… 41

Настройка Secure Boot………………………………………………………………………………………………………. 42

Пример. Полнодисковое шифрование с LUKS2 Argon2id на Debian 12………………………………… 42

Практика. Настройка Secure Boot на своем устройстве………………………………………………………… 43

Глава 3. Уровни безопасности и модели управления доступом………………. 44

Дискретная модель доступа DAC (Discretionary Access Control)…………………………………………… 44

Мандатная модель доступа MAC (Mandatory Access Control)……………………………………………… 44

SELinux: политика важнее root…………………………………………………………………………………………. 45

AppArmor: контроль по именам………………………………………………………………………………………… 46

Smack: безопасность для встраиваемых систем…………………………………………………………….. 47

Tomoyo: контроль поведения……………………………………………………………………………………………. 47

Классические модели: Biba, MLS, BSD Extended……………………………………………………………. 48

Сертифицированный уровень: Astra Linux SE…………………………………………………………………. 48

Выводы……………………………………………………………………………………………………………………………………….. 49

Глава 4. Аутентификация и авторизация……………………………………………….. 50

Права доступа. Углубленное руководство по chmod, chown, chgrp……………………………………… 50

Настройка пользовательских окружений для повышения безопасности…………………………….. 51

Методы аутентификации: от паролей до MFA……………………………………………………………………….. 52

Система контроля доступа (ACL): расширяя стандартные права……………………………………….. 53

Настройка PAM для повышения безопасности………………………………………………………………………. 53

Системы управления секретами. HashiCorp Vault………………………………………………………………….. 55

Глава 5. Мониторинг системы, сервисов и пользовательской активности в Linux            57

Исторический и событийный мониторинг……………………………………………………………………………….. 57

Метамониторинг………………………………………………………………………………………………………………………… 57

Время отклика и SLA…………………………………………………………………………………………………………………. 57

Контроль нагрузки от мониторинга…………………………………………………………………………………………. 58

Мониторинг системных ресурсов…………………………………………………………………………………………….. 58

Мониторинг сетевых сервисов…………………………………………………………………………………………………. 58

Отслеживание активности пользователей………………………………………………………………………………. 58

Централизованный сбор логов…………………………………………………………………………………………………. 59

Автоматизация оповещений……………………………………………………………………………………………………… 59

Пример. Базовая настройка Zabbix………………………………………………………………………………………….. 59

Интерпретация данных и поведенческий анализ……………………………………………………………………. 60

Риски ложных срабатываний……………………………………………………………………………………………………. 60

Рекомендации…………………………………………………………………………………………………………………………….. 60

Глава 6. Песочницы для приложений…………………………………………………….. 62

Что такое песочница. Какие принципы лежат в ее основе…………………………………………………….. 62

Зачем использовать песочницы. Преимущества и случаи применения……………………………….. 63

Flatpak и Snap как системы распространения приложений со встроенными механизмами песочницы            64

Популярные решения………………………………………………………………………………………………………………… 64

Firejail: легкая изоляция через пространства имен………………………………………………………….. 64

gVisor: контейнеры с собственной реализацией системных вызовов……………………………. 65

Как работает gVisor………………………………………………………………………………………………….. 65

bubblewrap: контейнеризация для десктопа и не только………………………………………………… 66

chroot: изоляция по старинке…………………………………………………………………………………………….. 66

systemd-nspawn: изоляция на уровне systemd…………………………………………………………………. 66

seccomp и seccomp-bpf: фильтрация системных вызовов………………………………………………. 67

Примеры настройки песочницы для приложений…………………………………………………………………… 67

Изоляция браузера Firefox с помощью Firejail…………………………………………………………………. 68

Усиление безопасности системного сервиса через systemd…………………………………………… 68

Побег из песочницы: примеры выхода и защиты от этого…………………………………………………….. 68

Практический выбор………………………………………………………………………………………………………………….. 69

Глава 7. Выбор ядра и дистрибутива……………………………………………………… 70

Виды ядра…………………………………………………………………………………………………………………………………… 70

Generic Stable Kernel…………………………………………………………………………………………………………… 71

Libre Kernel………………………………………………………………………………………………………………………….. 71

Hardened Kernel………………………………………………………………………………………………………………….. 71

Выводы……………………………………………………………………………………………………………………………….. 72

Выбор дистрибутива…………………………………………………………………………………………………………………. 72

Безопасные дистрибутивы: от изоляции к анонимности……………………………………………….. 72

Whonix: анонимность и защита от слежки……………………………………………………………… 72

Qubes OS: модульная безопасность с помощью виртуализации………………………….. 73

Сертифицированные решения и российские дистрибутивы………………………………………………….. 74

Astra Linux Special Edition (SE)………………………………………………………………………………………….. 75

Реализация MAC в Astra Linux SE…………………………………………………………………………… 75

Поддержка аппаратных токенов и доверенной загрузки……………………………………… 76

Администрирование и сопровождение…………………………………………………………………… 76

РЕД ОС………………………………………………………………………………………………………………………………… 76

ALT Linux и ROSA……………………………………………………………………………………………………………… 77

Подбор дистрибутива для специализированных задач…………………………………………………………. 77

Глава 8. Системы инициализации…………………………………………………………. 78

systemd: комплексная модель управления и безопасности……………………………………………………. 78

Архитектура……………………………………………………………………………………………………………………….. 79

Механизмы безопасности…………………………………………………………………………………………………. 79

Анализ жесткой настройки……………………………………………………………………………………………….. 80

Контейнеризация и переносимость………………………………………………………………………………….. 80

OpenRC: модульная простота и ручной контроль…………………………………………………………………. 81

Архитектура……………………………………………………………………………………………………………………….. 81

Безопасность и ограничения…………………………………………………………………………………………….. 81

Преимущества…………………………………………………………………………………………………………………….. 82

Недостатки…………………………………………………………………………………………………………………………. 82

Runit: скорость, надежность, минимум кода…………………………………………………………………………… 82

Архитектура……………………………………………………………………………………………………………………….. 82

Безопасность………………………………………………………………………………………………………………………. 83

Преимущества…………………………………………………………………………………………………………………….. 83

Недостатки…………………………………………………………………………………………………………………………. 83

s6: надежность, изоляция, контроль…………………………………………………………………………………………. 83

Архитектура……………………………………………………………………………………………………………………….. 83

Механизмы безопасности…………………………………………………………………………………………………. 84

Преимущества…………………………………………………………………………………………………………………….. 84

Недостатки…………………………………………………………………………………………………………………………. 85

Сравнение систем инициализации…………………………………………………………………………………………… 85

Что выбирать и когда………………………………………………………………………………………………………………… 85

Практика. Жесткая настройка инициализации для безопасности………………………………………… 86

systemd: контроль через unit-файлы…………………………………………………………………………………. 86

OpenRC: контроль через скрипты…………………………………………………………………………………….. 87

Runit: контроль через chpst……………………………………………………………………………………………….. 87

s6: минимализм с предсказуемостью……………………………………………………………………………….. 87

Общие рекомендации………………………………………………………………………………………………………………… 87

Глава 9. Безопасность виртуализации……………………………………………………. 89

Основные угрозы и уязвимости в системах виртуализации…………………………………………………… 89

Обеспечение безопасности гипервизора…………………………………………………………………………………. 90

Изоляция и безопасность виртуальных машин………………………………………………………………………. 90

Безопасность сети в виртуальных системах…………………………………………………………………………… 91

Мониторинг и аудит в виртуальных системах……………………………………………………………………….. 91

Особенности безопасности контейнерной виртуализации……………………………………………………. 92

Безопасность хоста……………………………………………………………………………………………………………. 93

Rootless Docker и Podman………………………………………………………………………………………………….. 93

Безопасная сборка и запуск контейнеров………………………………………………………………………… 93

Изоляция и контроль………………………………………………………………………………………………………….. 94

Сеть и доступ……………………………………………………………………………………………………………………… 94

Аудит и секреты…………………………………………………………………………………………………………………. 94

Глава 10. Безопасность сети и коммуникаций……………………………………….. 95

Настройка сетевого стека…………………………………………………………………………………………………………. 95

Диагностика соединений…………………………………………………………………………………………………………… 95

iptables и nftables………………………………………………………………………………………………………………………… 96

iptables…………………………………………………………………………………………………………………………………. 96

Основные действия, которые могут быть выполнены с помощью iptables………….. 96

nftables………………………………………………………………………………………………………………………………… 97

Сравнение iptables и nftables: производительность и безопасность……………………………………… 98

Основные отличия iptables и nftables……………………………………………………………………………….. 98

Архитектура………………………………………………………………………………………………………………. 98

Синтаксис………………………………………………………………………………………………………………….. 98

Производительность…………………………………………………………………………………………………. 98

Применение правил…………………………………………………………………………………………………… 98

Примеры безопасности……………………………………………………………………………………………………… 99

Настройка NAT и проброс портов…………………………………………………………………………………………… 99

Пример NAT через iptables (SNAT, MASQUERADE)……………………………………………………….. 99

Проброс порта на внутренний сервер (DNAT)………………………………………………………………. 100

NAT на nftables…………………………………………………………………………………………………………………. 100

Фингерпринтинг и сетевые отпечатки……………………………………………………………………………………. 100

Защита от фингерпринтинга…………………………………………………………………………………………………… 100

Zero Trust: недоверие ко всем по умолчанию………………………………………………………………………… 101

Глава 11. Обеспечение целостности системы……………………………………….. 102

Настройка Integrity Policy Enforcement (IPE)………………………………………………………………………… 102

Основные понятия IPE……………………………………………………………………………………………………… 102

Проверка поддержки IPE в ядре……………………………………………………………………………………… 103

Настройка и компиляция IPE (при необходимости)……………………………………………………… 103

Настройка политики IPE…………………………………………………………………………………………………. 103

Пример базовой политики IPE……………………………………………………………………………….. 104

Создание политики на основе хеша файлов………………………………………………………… 104

Настройка политик на основе подписей………………………………………………………………. 104

Пример политики с разными правилами………………………………………………………………. 104

Настройка GRUB……………………………………………………………………………………………………. 105

Режимы работы IPE…………………………………………………………………………………………………………. 105

Режим аудита (Audit Mode)……………………………………………………………………………………. 105

Режим принуждения (Enforce Mode)……………………………………………………………………… 106

Мониторинг и журналирование……………………………………………………………………………. 106

Тестирование…………………………………………………………………………………………………………… 106

Применение атрибута immutable для контроля целостности системы……………………………….. 106

Мониторинг изменений: инструменты Tripwire, OSSEC, AIDE……………………………………………. 107

Tripwire: настройка и использование для безопасности Linux…………………………………….. 107

Инициализация базы данных………………………………………………………………………………… 108

Конфигурация политики………………………………………………………………………………………… 108

Обработка отчетов…………………………………………………………………………………………………. 108

Советы по использованию……………………………………………………………………………………… 108

OSSEC……………………………………………………………………………………………………………………………….. 109

Установка OSSEC……………………………………………………………………………………………………. 109

Конфигурация OSSEC…………………………………………………………………………………………….. 109

Проверка целостности файлов………………………………………………………………………………. 110

Уведомления и оповещения……………………………………………………………………………………. 110

Практическое использование и примеры……………………………………………………………… 110

AIDE………………………………………………………………………………………………………………………………….. 110

Установка AIDE………………………………………………………………………………………………………. 111

Автоматизация и уведомления………………………………………………………………………………. 111

Примеры использования AIDE для безопасности……………………………………………….. 112

Системы обнаружения вторжений (IDS): различные IDS, их настройка и использование. 112

Snort…………………………………………………………………………………………………………………………………… 112

Установка Snort………………………………………………………………………………………………………. 112

Конфигурация Snort………………………………………………………………………………………………… 112

Запуск Snort…………………………………………………………………………………………………………….. 113

Мониторинг и управление……………………………………………………………………………………… 113

Примеры использования Snort……………………………………………………………………………….. 113

Suricata………………………………………………………………………………………………………………………………. 114

Установка Suricata………………………………………………………………………………………………….. 114

Основная настройка……………………………………………………………………………………………….. 114

Правила и политики……………………………………………………………………………………………….. 115

Мониторинг и анализ……………………………………………………………………………………………… 115

Примеры использования Suricata………………………………………………………………………….. 115

Защита от атак с помощью доверенных приложений (LOTL-атаки)………………………………….. 115

Мониторинг и логирование…………………………………………………………………………………………….. 116

Примеры использования LOTL-атак………………………………………………………………………………. 117

Настройка dm-verity для проверки контрольных сумм файлов и обеспечения целостности 117

Принцип работы dm-verity………………………………………………………………………………………………. 117

Установка и настройка dm-verity…………………………………………………………………………………… 117

Создание образа файловой системы только для чтения…………………………………….. 117

Создание хеш-дерева……………………………………………………………………………………………… 118

Монтирование с проверкой целостности……………………………………………………………… 118

Обеспечение безопасности и целостности…………………………………………………………… 118

Глава 12. Антивирусы и обнаружение руткитов…………………………………… 119

Зачем нужны антивирусы в Linux. Риски и случаи использования…………………………………….. 119

Инструменты для обнаружения скрытых процессов и модулей ядра в Linux…………………… 120

Шифровальщики………………………………………………………………………………………………………………………. 120

Майнеры…………………………………………………………………………………………………………………………………… 121

Руткиты и буткиты в Linux: что это такое и как они угрожают безопасности………………….. 121

Методы обнаружения руткитов: rkhunter, chkrootkit…………………………………………………………… 122

Примеры антивирусов для Linux……………………………………………………………………………………………. 122

Как защититься от вирусов, руткитов и буткитов………………………………………………………………… 124

Глава 13. Защита данных…………………………………………………………………….. 125

Инфраструктура публичных ключей (PKI) и безопасность в Linux……………………………………. 125

Доверие в PKI……………………………………………………………………………………………………………………. 125

Управление сертификатами в Linux……………………………………………………………………………….. 126

Выбор библиотеки SSL: OpenSSL и LibreSSL……………………………………………………………………….. 126

GNU Privacy Guard (GPG). Работа с ключами……………………………………………………………………….. 127

Типы ключей…………………………………………………………………………………………………………………….. 127

Генерация ключей……………………………………………………………………………………………………………. 127

Импорт и экспорт ключей……………………………………………………………………………………………….. 128

Шифрование файловой системы…………………………………………………………………………………………….. 129

dm-crypt…………………………………………………………………………………………………………………………….. 129

eCryptfs……………………………………………………………………………………………………………………………… 130

LUKS………………………………………………………………………………………………………………………………….. 131

VeraCrypt…………………………………………………………………………………………………………………………… 133

Опции разбиения на разделы и монтирования……………………………………………………………………… 134

Разбиение на разделы……………………………………………………………………………………………………… 134

Опции монтирования……………………………………………………………………………………………………….. 135

Файл /etc/fstab…………………………………………………………………………………………………………. 135

FUSE и его применение……………………………………………………………………………………………………………. 136

Применение FUSE-шифрования в контексте безопасности………………………………………….. 137

Рекомендации по использованию FUSE-шифрования………………………………………………….. 137

Безопасность хранения информации: LVM и RAID…………………………………………………………….. 137

Резервное копирование и восстановление данных. Лучшие практики и инструменты…….. 139

Инструменты для резервного копирования…………………………………………………………………… 140

Восстановление данных………………………………………………………………………………………………….. 140

План восстановления после аварий (DRP)…………………………………………………………………….. 141

Безопасное удаление данных: инструменты и методы……………………………………………………….. 142

Глава 14. Защита памяти в Linux…………………………………………………………. 144

Уязвимости памяти в Linux……………………………………………………………………………………………………… 144

Address Space Layout Randomization (ASLR)………………………………………………………………………… 145

Data Execution Prevention (DEP/NX)……………………………………………………………………………………….. 146

Stack Canaries в Linux……………………………………………………………………………………………………………… 146

Настройка компилятора………………………………………………………………………………………………….. 147

Control Flow Integrity (CFI) в Linux…………………………………………………………………………………………. 147

Примеры реализации CFI………………………………………………………………………………………………… 148

Сравнение SLUB с другими аллокаторами памяти в Linux с точки зрения безопасности.. 149

Выбор аллокатора…………………………………………………………………………………………………………… 150

hardened_malloc……………………………………………………………………………………………………………………….. 150

Настройка и использование……………………………………………………………………………………………. 151

Kernel Heap Hardening……………………………………………………………………………………………………………… 152

SELinux или AppArmor…………………………………………………………………………………………………….. 153

Безопасность файла подкачки……………………………………………………………………………………………….. 153

Основные меры по обеспечению безопасности файла подкачки………………………………… 153

Шифрование файла подкачки……………………………………………………………………………….. 153

Регулярная очистка файла подкачки……………………………………………………………………. 154

Мониторинг и ограничение использования файла подкачки…………………………….. 154

Что такое атака холодной загрузки……………………………………………………………………………………….. 154

Шифрование памяти………………………………………………………………………………………………………………… 155

Шифрование памяти и управление доступом в Intel SGX……………………………………………. 155

Шифрование памяти и управление доступом в AMD SEV…………………………………………… 155

Сравнение Intel SGX и AMD SEV……………………………………………………………………………………. 156

Защита от атак DMA……………………………………………………………………………………………………………….. 156

Отключение неиспользуемых портов…………………………………………………………………………….. 157

Использование безопасности сетевых устройств…………………………………………………………. 157

Мониторинг и обновления системы……………………………………………………………………………….. 157

Языки программирования, безопасные для памяти……………………………………………………………… 157

Rust……………………………………………………………………………………………………………………………………. 157

Python………………………………………………………………………………………………………………………………… 158

Java……………………………………………………………………………………………………………………………………. 158

Выводы……………………………………………………………………………………………………………………………………… 158

Глава 15. Усиление безопасности ядра Linux и компилятора……………….. 159

Kernel Self Protection Project (KSPP) и его роль в усилении безопасности ядра Linux……….. 160

Использование патчей Grsecurity/PaX и их возможности…………………………………………………….. 162

Утилита sysctl и ее роль в безопасности ядра Linux…………………………………………………………….. 163

Зачем использовать sysctl для безопасности…………………………………………………………………. 164

Основные параметры безопасности ядра, управляемые через sysctl………………………….. 164

Защита от подмены IP-адреса……………………………………………………………………………….. 164

Отключение перенаправления ICMP (пингов)……………………………………………………… 164

Отключение отправки ICMP-перенаправлений…………………………………………………… 164

Защита от атак SYN-флуд……………………………………………………………………………………… 164

Отключение ответа на широковещательные запросы………………………………………… 165

Отключение IP-перенаправления………………………………………………………………………….. 165

Ограничение доступа к памяти ядра…………………………………………………………………….. 165

Управление ASLR…………………………………………………………………………………………………… 165

Отключение дампов памяти для suid/sgid-файлов……………………………………………….. 165

Защита от форк-бомб……………………………………………………………………………………………… 166

Как применять настройки sysctl……………………………………………………………………………………… 166

Временное изменение параметров………………………………………………………………………… 166

Постоянное сохранение настроек…………………………………………………………………………. 166

Использование отдельного файла в директории /etc/sysctl.d/…………………………….. 166

Практические рекомендации по настройке sysctl для безопасности…………………………… 166

Уменьшение поверхности атаки на ядро Linux…………………………………………………………………….. 167

Способы уменьшения поверхности атаки на ядро……………………………………………………….. 167

Практические примеры уменьшения поверхности атаки…………………………………………….. 168

Отключение дампов ядра и его роль в обеспечении безопасности системы……………………… 169

Причины отключения дампов ядра………………………………………………………………………………… 169

Как отключить дампы ядра в Linux……………………………………………………………………………….. 169

Важные моменты при отключении дампов ядра…………………………………………………………… 170

Альтернативы отключению дампов……………………………………………………………………………….. 170

Дополнительные рекомендации……………………………………………………………………………………… 171

Внесение модулей ядра в черный список и обеспечение безопасности системы……………… 171

Почему важно блокировать определенные модули ядра…………………………………………….. 171

Внесение модулей в черный список……………………………………………………………………………….. 172

Способы блокировки модулей………………………………………………………………………………. 172

Особенности и предостережения…………………………………………………………………………… 173

Дополнительные меры безопасности…………………………………………………………………………….. 173

Практические примеры блокировки модулей……………………………………………………………….. 173

Самостоятельная компиляция ядра для усиления безопасности………………………………………… 174

Почему стоит самостоятельно компилировать ядро……………………………………………………. 174

Подготовка к компиляции ядра………………………………………………………………………………………. 175

Шаги по компиляции ядра………………………………………………………………………………………………. 175

Ключевые настройки для усиления безопасности……………………………………………………….. 176

Отключение ненужных модулей и функций…………………………………………………………. 176

Включение механизмов безопасности………………………………………………………………….. 176

Отключение неиспользуемых системных вызовов………………………………………………. 177

Включение Control Flow Integrity (CFI)…………………………………………………………………. 177

Включение Security Audit……………………………………………………………………………………….. 177

Компиляция и установка ядра………………………………………………………………………………………… 177

Проверка работы нового ядра………………………………………………………………………………………… 178

Дополнительные меры для обеспечения безопасности……………………………………………….. 178

Защита процессора при конфигурировании ядра Linux……………………………………………………… 178

Понимание уязвимостей процессора……………………………………………………………………………… 179

Настройка ядра Linux для защиты процессора……………………………………………………………. 179

Включение изоляции таблиц страниц ядра (Kernel Page Table Isolation, KPTI)… 179

Включение защиты от Spectre……………………………………………………………………………….. 179

Включение функции Microcode Update…………………………………………………………………. 180

Ограничение спекулятивного выполнения…………………………………………………………… 180

Включение Rogue Data Cache Load (RDCL) Mitigations……………………………………… 180

Использование Control-flow Enforcement Technology (CET)………………………………. 180

Обновление компилятора и использование защитных опций…………………………….. 181

Удаление устаревших и неиспользуемых функций…………………………………………….. 181

Ограничение доступа к отладочным интерфейсам……………………………………………… 181

Отслеживание состояния защиты………………………………………………………………………….. 181

Основы безопасности компиляции…………………………………………………………………………………………. 182

Использование опций безопасности компилятора……………………………………………………….. 182

Удаление отладочной информации из релизной версии……………………………………………… 183

Обзор ключевых опций безопасности компилятора GCC……………………………………………………. 184

Ключевые опции безопасности в GCC…………………………………………………………………………… 184

Защита стека (Stack Protector)……………………………………………………………………………….. 184

Усиление стандартных функций (Fortify Source)…………………………………………………. 185

Позиционно-независимый код (Position Independent Executable, PIE)……………….. 185

Защита разделов памяти (Relocation Read-Only, RELRO)………………………………….. 185

Address Sanitizer (ASan)…………………………………………………………………………………………… 186

Undefined Behavior Sanitizer (UBSan)……………………………………………………………………. 186

Контроль потока управления (Control Flow Integrity, CFI)………………………………….. 186

Предупреждения компилятора………………………………………………………………………………. 186

Ограничение размера исполняемых файлов………………………………………………………… 187

Лучшие практики при использовании опций безопасности GCC………………………. 187

Пример полной команды компиляции с опциями безопасности………………………… 187

Основные опции безопасности в Clang и их использование………………………………………………… 188

Основные опции безопасности в Clang………………………………………………………………………….. 188

Stack Canaries (Защита стека)……………………………………………………………………………….. 188

Address Sanitizer (ASan)…………………………………………………………………………………………… 189

Undefined Behavior Sanitizer (UBSan)……………………………………………………………………. 189

Memory Sanitizer (MSan)………………………………………………………………………………………… 189

Control Flow Integrity (CFI)……………………………………………………………………………………… 190

SafeStack………………………………………………………………………………………………………………….. 190

Fortify Source……………………………………………………………………………………………………………. 190

Position Independent Executables (PIE) и Position Independent Code (PIC)………….. 190

Relocation Read-Only (RELRO)………………………………………………………………………………. 191

Stack Clash Protection……………………………………………………………………………………………… 191

Рекомендации по использованию опций безопасности……………………………………………….. 191

Пример полного использования опций безопасности………………………………………………….. 192

Сравнение библиотек C с точки зрения безопасности: musl, glibc и др………………………………. 192

Сравнение библиотек C в контексте безопасности………………………………………………………. 192

Рекомендации по обеспечению безопасности при выборе библиотеки C………………….. 193

Глава 16. Безопасность приложений…………………………………………………….. 194

ModSecurity………………………………………………………………………………………………………………………………. 194

Fail2Ban…………………………………………………………………………………………………………………………………….. 195

Безопасные практики разработки. Принципы обеспечения безопасности на этапе разработки         196

Глава 17. Работа с уязвимостями………………………………………………………….. 198

Обновление системы……………………………………………………………………………………………………………….. 198

Общий стандарт уязвимостей (CWE). Классификация и понимание типов уязвимостей…. 199

Использование Security Advisories и CVE. Поиск и использование информации об уязвимостях         201

Инструменты для сканирования уязвимостей. Обзор и использование
популярных инструментов……………………………………………………………………………………………………… 202

Сравнение инструментов сканирования уязвимостей………………………………………………….. 202

Как использовать инструменты для сканирования уязвимостей………………………………… 203

Практика применения сканера OpenSCAP для поиска уязвимостей…………………………………… 204

Анализ результатов…………………………………………………………………………………………………………. 204

Использование разных профилей…………………………………………………………………………………… 204

Автоматизация и интеграция………………………………………………………………………………………….. 205

Глава 18. Расследование инцидентов безопасности……………………………… 206

Типы инцидентов. Классификация инцидентов и особенности каждого типа…………………… 207

Подготовка к расследованию инцидентов безопасности. Создание плана действий,
сбор команды, инструменты…………………………………………………………………………………………………… 208

Сбор команды…………………………………………………………………………………………………………………… 209

Необходимые инструменты……………………………………………………………………………………………. 209

Сбор и сохранение данных. Методы сбора логов, снапшотов системы,
сетевого трафика……………………………………………………………………………………………………………………… 210

Сбор логов………………………………………………………………………………………………………………………… 210

Создание снимков системы (снапшотов)……………………………………………………………………….. 210

Сбор сетевого трафика……………………………………………………………………………………………………. 211

Журналы системных служб…………………………………………………………………………………… 211

Журналы аутентификации…………………………………………………………………………………….. 212

Журналы приложений……………………………………………………………………………………………. 212

Инструменты для анализа логов…………………………………………………………………………………….. 212

Рекомендации по анализу логов…………………………………………………………………………………….. 212

Анализ сетевой активности. tcpdump и Wireshark — ваши защитники
от нежелательного трафика в Linux………………………………………………………………………………………. 213

tcpdump: быстрый и эффективный снифер командной строки…………………………………….. 213

Wireshark: мощный графический анализатор пакетов…………………………………………………. 214

Обнаружение подозрительного трафика……………………………………………………………………….. 214

Обнаружение вредоносных процессов в Linux. Утилиты lsof, netstat и другие методы……. 215

Идентификация подозрительных процессов…………………………………………………………………. 215

lsof: список открытых файлов…………………………………………………………………………………………. 215

netstat: информация о сетевых соединениях…………………………………………………………………. 216

Другие полезные утилиты……………………………………………………………………………………………….. 216

Форензика файловых систем Linux. Восстановление удаленных файлов
и анализ временных меток………………………………………………………………………………………………………. 216

Восстановление удаленных файлов………………………………………………………………………………. 217

Процесс восстановления………………………………………………………………………………………… 217

Анализ временнх меток…………………………………………………………………………………………………. 218

Использование инструментов форензики: Volatility, Autopsy, Sleuth Kit…………………………….. 218

Volatility…………………………………………………………………………………………………………………………….. 218

Получение дампа памяти……………………………………………………………………………………….. 219

Autopsy……………………………………………………………………………………………………………………………… 220

The Sleuth Kit…………………………………………………………………………………………………………………….. 221

Основные утилиты TSK………………………………………………………………………………………….. 221

Работа с образами дисков……………………………………………………………………………………… 222

Документирование и отчетность в расследовании инцидентов безопасности Linux: от анализа к действиям               222

Этапы документирования……………………………………………………………………………………………….. 222

Структура отчета…………………………………………………………………………………………………………….. 223

Рекомендации по дальнейшим действиям……………………………………………………………………… 224

Восстановление системы Linux после инцидента безопасности………………………………………… 224

Постинцидентный анализ: уроки из прошлого, безопасность будущего…………………………… 226

Правовые аспекты кибербезопасности Linux: взаимодействие
с правоохранительными органами и сохранение цепочки доказательств………………………… 227

Приказы, регулирующие взаимодействие с компетентными органами………………………. 227

Приказ № 524 ФСБ (для организаций, обрабатывающих ПД)…………………………… 227

Приказ № 17 ФСТЭК………………………………………………………………………………………………. 228

Приказ № 21 ФСТЭК………………………………………………………………………………………………. 228

Приказ № 31 (2024) ФСТЭК + приказ № 235………………………………………………………… 228

Взаимодействие с органами при расследовании………………………………………………………….. 228

Легализация данных для расследования……………………………………………………………… 229

Глава 19. Практические рекомендации………………………………………………… 231

Создание и поддержание безопасной среды Linux: ключевые аспекты…………………………….. 231

Лучшие практики безопасности Linux: свод рекомендаций……………………………………………….. 232

Заключение………………………………………………………………………………………….. 233

Будущее безопасности Linux: перспективы и новые технологии……………………………………….. 233

Ресурсы для дальнейшего изучения безопасности Linux: книги, курсы и сообщества…….. 234

Предметный указатель…………………………………………………………………………. 236

Добавить комментарий