Направления / Linux для безопасности: от прав до усиления

Процессы, службы, systemd и журналы

Linux для безопасности: от прав до усиления

Как устроен запуск служб, что можно увидеть в журналах и как настроить аудит под свои задачи.

начальный~40 минпроцессыsystemdжурналыаудит

Зачем это нужно

  • Большинство защитных детектов на Linux опираются на процессы, службы и журналы.
  • Понимание systemd объясняет автозапуск, изоляцию сервисов и типовые ошибки конфигурации.
  • Без журналов невозможно ни расследование, ни проверка гипотез.

Теория

Процессы имеют идентификаторы, приоритеты, ограничения ресурсов и связи родитель-потомок. Состояние процессов видно через виртуальную файловую систему: командную строку, окружение, дескрипторы файлов, сетевые соединения. Практически важны: кто слушает порт, какие файлы открыты, какие процессы запущены от администратора, какие имеют необычные аргументы.

systemd управляет службами, таймерами, точками монтирования и сокетами. Описания юнитов определяют, что запускать, от какого пользователя и с какими ограничениями: защита от записи в системные каталоги, ограничение возможностей, отдельные пространства имён. Для безопасности это ключ и к управляемому запуску, и к изоляции сервисов.

Журналирование: системный журнал собирает сообщения служб и ядра, отдельная служба может перенаправлять их дальше, подсистема аудита фиксирует события безопасности с высокой детализацией: запуск процессов, доступ к файлам, изменения конфигураций. Правила аудита пишут под конкретные задачи — мониторинг критичных файлов, отслеживание системных вызовов, фиксация административных действий.

Практическая гигиена журналов: централизованный сбор, достаточный срок хранения, защита от изменения на самом узле, синхронизация времени, разумный уровень детализации. Без централизации злоумышленник с высокими правами удалит локальные журналы.

Ключевые концепции

Описание юнита
Файл службы, таймера или сокета в systemd с параметрами запуска и ограничениями.
Системный журнал
Служба сбора журналов: хранит структурированные записи с метаданными.
Подсистема аудита
Аудит ядра Linux: правила, события, отчёты о событиях безопасности.
Возможности (capabilities)
Разделение привилегий администратора на отдельные возможности, например привязка к низкому порту.
Пространства имён и cgroups
Изоляция видимости ресурсов и ограничение потребления: основа контейнеров.
Открытые дескрипторы
Файлы и сокеты, с которыми работает процесс: источник данных для анализа.

Инструменты

  • ps, top, htop — обзор процессов и потребления ресурсов.
  • ss и lsof — соединения, слушающие порты, открытые файлы.
  • systemctl и journalctl — управление службами и чтение журналов.
  • auditctl, ausearch, aureport — правила и отчёты аудита.
  • sysdig и bpftrace — наблюдение за системными вызовами без остановки сервиса.

Практика в легальных лабораториях

  • Определите, какие службы слушают сеть на учебной машине, и обоснуйте необходимость каждой.
  • Напишите описание службы для простого скрипта и добавьте ограничения: отдельный пользователь, минимальные права.
  • Настройте правило аудита для контроля изменений в каталоге конфигурации и проверьте его работу.
  • Соберите журналы за сутки и составьте сводку: вход в систему, изменения служб, ошибки.
  • Настройте пересылку журналов на отдельный узел и проверьте, что записи доходят.

Защита, детект и защитные меры

  • Ограничивайте службы отдельными пользователями и минимальными возможностями.
  • Включите аудит критичных файлов и административных действий.
  • Централизуйте журналы и защищайте их от изменения на источнике.
  • Следите за аномалиями: новые слушающие порты, службы из временных каталогов, изменения описаний юнитов.

Правовая рамка и этика

  • Наблюдение за процессами и журналами допустимо на своих системах; на чужих — только по разрешению.
  • Журналы могут содержать персональные данные: ограничьте доступ и срок хранения.

Типичные ошибки

  • Запускать сервисы от администратора без необходимости.
  • Хранить журналы только локально и без защиты.
  • Отключать аудит ради производительности без анализа последствий.

Чек-лист «умею»

  • Знаю, как определить, что слушает порт и кто владелец процесса.
  • Умею написать описание службы с ограничениями.
  • Настраиваю правила аудита под задачу.
  • Умею собрать из журналов сводку событий за период.
  • Понимаю, почему журналы нужно централизовать.

Вопросы на интервью

  • Как вы определите, какой процесс слушает порт 8080?
  • Как настроить аудит изменений конфигурации службы?
  • Почему локальных журналов недостаточно при компрометации узла?

Источники и первоисточники

CyberPath — обучение пентесту, кибербезопасности и сетевой грамотности