Привилегии в Linux — от root до hardening

1. Модель пользователей и прав

  • root (UID 0) — абсолютные привилегии, может всё → главная цель атак.
  • Обычные пользователи — ограниченные права, изоляция процессов.
  • Принцип минимально необходимых привилегий (Least Privilege) — ключевой для безопасности.

2. Права на файлы (DAC)

  • Три уровня: владелец / группа / остальные.
  • Три права: read (r), write (w), execute (x).
  • Неправильные права (например, 777) → прямой риск эскалации привилегий.

3. SUID / SGID / Sticky bit

  • SUID — программа выполняется с правами владельца (часто root). Уязвимый SUID = эскалация привилегий.
  • SGID — выполнение с правами группы.
  • Sticky bit (/tmp) — пользователь может удалять только свои файлы.
  • Аудит SUID-бинарей — обязательная мера безопасности.

4. Capabilities (Linux Capabilities)

  • Разделение root-привилегий на мелкие права (CAP_NET_ADMIN, CAP_SYS_ADMIN и т.д.).
  • Позволяют запускать процессы не от root, но с нужными возможностями.
  • Снижают ущерб при компрометации процесса.

5. sudo

  • Делегирование привилегий без передачи root-пароля.
  • Логирование команд → повышает аудит и контроль.
  • Ошибки в sudoers = частый источник уязвимостей.

6. MAC: SELinux / AppArmor

  • Mandatory Access Control — ограничения поверх стандартных прав.
  • Даже root ограничен политикой.
  • Защита от lateral movement, эксплуатации уязвимых сервисов, выхода процесса за рамки роли.

7. Изоляция процессов

  • Namespaces — изоляция пользователей, сети, файловых систем.
  • cgroups — контроль ресурсов (CPU, RAM).
  • Основа контейнерной безопасности (Docker, Kubernetes).

8. Эскалация привилегий

Типовые векторы: SUID-бинари, ошибки в sudo, kernel exploits, misconfig файлов (/etc/passwd, cron).
Защита: обновления, аудит, минимизация привилегий.

9. Практики hardening

  • Удаление лишних SUID.
  • Использование capabilities вместо root.
  • Включение SELinux/AppArmor.
  • Разделение ролей пользователей и сервисов.
  • Регулярный аудит прав и логов.

Безопасность Linux строится не на «одном root», а на многоуровневой системе привилегий, где каждая ошибка в конфигурации может стать точкой атаки.