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

Файловая система, пользователи, права и sudo

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

Модель прав, специальные биты, учётные записи и риск избыточных привилегий.

начальный~35 минправаsudoпользователи

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

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

Теория

Права в Linux описываются тройками: владелец, группа, остальные — чтение, запись, выполнение. Существуют специальные биты: setuid и setgid (выполнение от имени владельца или группы файла) и sticky (ограничение удаления в общем каталоге). Файлы с setuid-битом заслуживают отдельного внимания: они заведомо работают с повышенными правами, и ошибка в них становится уязвимостью.

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

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

Для защитника важны: инвентаризация setuid-файлов, неочевидные задачи планировщика, права на конфигурации, доступ к журналам, наличие неиспользуемых учётных записей и ключей SSH.

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

setuid, setgid, sticky
Специальные биты прав: повышение прав при запуске и ограничение удаления в общих каталогах.
umask
Маска, определяющая права по умолчанию для новых файлов и каталогов.
PAM
Модульная система аутентификации: политики паролей, блокировки, многофакторная аутентификация.
Правила sudo
Делегирование привилегий; избыточные правила равны полным правам администратора.
ACL
Расширенные списки доступа: выдача прав отдельным пользователям и группам.
Ключи SSH
Аутентификация по ключам; приватный ключ без парольной фразы — серьёзный риск при потере.

Инструменты

  • find — поиск файлов по правам и владельцу: аудит setuid и мировых прав на запись.
  • ls -l и stat — детальный разбор прав и атрибутов.
  • id, getent, last, who — сведения о пользователях и сессиях.
  • visudo — правка правил sudo с проверкой синтаксиса.
  • lynis и CIS-CAT — проверка конфигурации по эталонам.

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

  • Найдите в лабораторной системе все файлы с setuid-битом и объясните, зачем нужен каждый.
  • Составьте перечень учётных записей с оболочкой и обоснуйте, кому она действительно необходима.
  • Настройте узкое правило sudo для одной безобидной команды и проверьте результат.
  • Проверьте ключи SSH: длину, наличие парольной фразы, дату создания, количество.
  • Проверьте политику паролей и блокировку после неудачных попыток входа.

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

  • Удаляйте ненужные учётные записи и ключи, ограничивайте интерактивный вход служебных пользователей.
  • Держите правила sudo узкими и ревьюйте их изменения как код.
  • Включите аудит доступа к критичным файлам и журналам.
  • Используйте централизованную аутентификацию и многофакторную аутентификацию для административного доступа.

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

  • Работа с правами и учётными записями в чужих системах возможна только в рамках согласованного теста.
  • Не переносите реальные файлы с хешами паролей из чужих систем даже как «доказательство».

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

  • Давать широкие права sudo «чтобы удобнее».
  • Оставлять неиспользуемые учётные записи с высокой привилегией.
  • Хранить приватные ключи без парольной фразы на рабочей станции.

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

  • Умею читать и изменять права, включая специальные биты.
  • Провожу аудит setuid и мировых прав на запись.
  • Умею настраивать узкие правила sudo.
  • Знаю, как проверить политику паролей и блокировок.
  • Веду инвентарь учётных записей и ключей.

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

  • Почему файл с setuid — потенциальная проблема?
  • Как вы построите аудит учётных записей на сервере?
  • Что не так с правилом sudo, разрешающим запуск произвольного редактора?

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

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