Linux Labs

Безопасность сервера / Ступень 9 из 10

Кто изменил файл: auditd

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 3 из 6 · теория · 6 мин

Кто и чем

Одно событие ausearch собирает из нескольких строк. Главная — SYSCALL: в ней и процесс, и пользователь (все поля).

type=SYSCALL ... syscall=rename success=yes
comm="sed" exe="/usr/bin/sed" auid=unset uid=root key=hosts
  • comm и exe — короткое имя и полный путь программы, которая обратилась к файлу (здесь — sed);
  • uid — от кого шёл процесс (действующий пользователь);
  • auid — кто вошёл в систему и запустил цепочку (login uid). У службы, стартовавшей с загрузки, auid=unset: её запустила система, без входа человека. У действия вошедшего пользователя (через вход на консоль, ssh или cron) auid — его имя.

ppid в событии — процесс-родитель. По нему видно, кто запустил программу: ps -o unit= -p <ppid> назовёт службу. Так от записи в файле доходят до службы или задания, которое её делает.

Проверь себя 1 вопрос

В событии аудита о правке /etc/hosts стоит auid=unset, uid=root, comm="sed". Что это говорит о том, кто изменил файл?

  • У действия вошедшего человека auid был бы его именем, а не unset. unset значит, что запустила служба, а не вход.

  • В событии есть comm, exe, uid и ppid — этого хватает, чтобы назвать программу и дойти по ppid до службы.

  • auid=unset — это не имя, а отсутствие login uid: цепочку начал не вошедший человек. Имя было бы, войди кто-то через консоль, ssh или cron.

auid=unset значит, что цепочку начала служба с загрузки, а не вошедший человек; comm/uid называют программу sed от root. Кто её запустил, покажет ppid.

Главное в шаге

  • Событие ausearch собирает из строк; главная — SYSCALL с процессом и пользователем.
  • comm/exe — программа, uid — действующий пользователь, auid — кто вошёл (unset у службы с загрузки).
  • ppid ведёт к родителю: ps -o unit= -p <ppid> называет службу, которая обратилась к файлу.
Ubuntu 24.04
Загрузка…