Аудит действий пользователей Linux | Аудит системных событий в Linux - SearchInform

Аудит действий пользователей Linux

Защита информации
с помощью DLP-системы

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

Аудит не обеспечит дополнительную защиту, но предоставит подробные данные об уязвимостях системы безопасности, которые необходимо устранить. В этой статье рассмотрим особенности использования Audit Daemon.

Подсистема аудита Audit Daemon: структура и принцип работы

Подсистема Audit Daemon интегрирована в ядро Linux, начиная с версии 2.6. Она проводит мониторинг критических системных событий безопасности в файлах и папках. 

Вот несколько примеров таких событий:

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

Создание файла, любые изменения в нем, подключение к сети, отображение информации на дисплее – все эти процессы выполняются при помощи вызовов функций ядра ОС, которые принято называть «системными вызовами».

Когда приложение не использует в своих действиях вызовы ядра, оно способно взаимодействовать с другими файлами системы и с пользователем. Поэтому для отслеживания любого системного события достаточно перехвата всех вызовов. Как раз этим и занимается Audit Daemon.

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

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

С помощью этой простой схемы, сисадмин может отслеживать все аспекты работы ОС (за исключением действий, вызванных компонентом ядра). Вот почему, при обнаружении системой какой-либо подозрительной активности, вызванной работой взломщика или вирусного ПО, обнаружить их и виновного при помощи Audit Daemon будет несложно. 

Установка Audit Daemon

Подсистема доступна всем версиям ОС, поэтому для установки требуется стандартный установочный пакет. 

Для установки в Debian/Ubuntu необходимо использовать такую команду:

Sudo apt-get install auditd audispd-plugins

Внимание! Если сервер относится к CentOS, Audit Daemon уже встроен в операционную систему.

В дополнение к Audit Daemon устанавливаются утилиты для управления системой наблюдения и поиска отчетов в файлах регистра:

  • auditctl – это софт, контролирующий работу Audit Daemon. Наблюдает за текущим состоянием системы, добавляет и удаляет правила; 
  • autrace – мониторинг событий, генерируемых указанным процессом;
  • ausearch – функция, позволяющая искать события в лог-файлах; 
  • aureport – утилита, формирующая сводные отчеты по системе аудита.

Изначально Audit Daemon неактивен и не реагирует на изменения файлов в системе. Чтобы система сообщала о любых действиях, нужно настроить программу. 

Конфигурация программы

Параметры системы содержатся в двух файлах. Первый файл называется auditd.conf и хранит инструменты службы мониторинга: отвечает за то, какие события фиксируются в определённый отрезок времени. Второй файл – audit.rules, включает правила и триггеры, которые используются программой при работе ОС. Сисадмин вносит в файлы коррективы, добавляет новые установки, а также редактирует действующие или удаляет устаревшие шаблоны.

Чтобы просмотреть инсталлированные шаблоны, нужно использовать команду auditctl –l. В случае невыполнения настроек, откроется пустая таблица. Чтобы активировать аудит конкретного файла, нужно прописать в строке команду:

auditctl -a command,action -S path=name_file -F perm=permission

Для создания, удаления и изменения правил аудита используется утилита auditctl. Существует три главных опции, которые принимает эта команда:

  • a – добавление правила в список;
  • d – удаление правила из списка;
  • D – удаление всех правил.

Можно использовать такие переменные для command, которые добавляются в список событий: 

  • task – события, отвечающие за создание любого процесса;
  • entry – событие на входе в системные вызовы;
  • exit – событие на выходе из системных вызовов;
  • user – событие с использованием области пользователя (uid, pid и gid);
  • exclude – требуется, чтобы исключить события.

Это набор фильтров, позволяющих уточнять правила. Фактически, основными будут ввод и вывод, что дает возможность зарегистрировать сам факт обращения к системному вызову либо его успешное выполнение.

Следующий параметр команды «-а» – это последующие событие, которое происходит в ответ на действие. Их бывает два: «никогда» и «всегда». Первое событие не фиксируется в реестре аудита, второе – фиксируется.  

Дальнейший параметр «-S», определяющий название системного вызова. Есть также необязательный параметр «-F», который предназначен для отметки дополнительных опций фильтрации событий. 

К примеру, если пользователь желает вести хронику событий, использующихся в системном вызове «открытие», но в то же время хочет записывать только вызовы файлов в каталоге / etc, он должен воспользоваться следующим правилом:

auditctl -a exit,always -S open -F path=/etc/

Чтобы ускорить поиск, можно сделать так, чтобы в реестр попадали только те события, при которых файл открывается только на запись и изменение атрибутов:

auditctl -a exit,always -S open -F path=/etc/ -F perm=aw

Чтобы все внесенные изменения в установочные файлы Audit Daemon вступили в силу, нужно его перезагрузить при помощи команды:

/etc/init.d/auditd restart

Журнал Audit Daemon

Правила установлены, мониторинг состоялся, но как узнать о его результатах? Для этого существует утилита aureport. Все собранные данные хранятся в журнальных файлах/ var / log / audit /, а у папок действительно расширение .log. Нюанс состоит в том, что для уточнения результатов аудита нужно прописывать определенные команды, иначе в отчете будет отражена общая статистика такого вида:

$ sudo aureport
Summary Report
======================
Range of time in logs: 07/31/2015 14:04:23.870 - 08/04/2015 09:37:13.200
Selected time for report: 07/31/2015 14:04:23 - 08/04/2015 09:37:13.200
Number of changes in configuration: 0
Number of changes to accounts, groups, or roles: 3
Number of logins: 0
Number of failed logins: 0
Number of authentications: 0
Number of failed authentications: 61205
Number of users: 2
Number of terminals: 5
Number of host names: 73
Number of executables: 6
Number of files: 0
Number of AVC's: 0
Number of MAC events: 0
Number of failed syscalls: 0
Number of anomaly events: 0
Number of responses to anomaly events: 0
Number of crypto events: 0
Number of keys: 0
Number of process IDs: 17858
Number of events: 61870

Поэтому большинство юзеров пользуется дополнительными опциями (командами). Так, с помощью опции -au (или −−auth), можно получить отчет о попытках входа в систему:

$ sudo aureport -au
Authentication Report
============================================
# date time acct host term exe success event
============================================
1. 08/31/2015 18:00:19 ubnt static-166-6-249-80.stalowa.pilicka.pl ssh /usr/sbin/sshd no 333
2. 08/31/2015 18:01:38 root 59.63.188.31 ssh /usr/sbin/sshd no 334
3. 08/31/2015 18:01:41 root 59.63.188.31 ssh /usr/sbin/sshd no 335
4. 08/31/2015 18:01:45 root 59.63.188.31 ssh /usr/sbin/sshd no 336
5. 08/31/2015 18:01:53 root 59.63.188.31 ssh /usr/sbin/sshd no 337
6. 08/31/2015 18:01:57 root 59.63.188.31 ssh /usr/sbin/sshd no 338
7. 08/31/2015 18:01:59 root 59.63.188.31 ssh /usr/sbin/sshd no 339

Самый популярный фильтр – дата. За нее отвечают параметры «начало» и «конец», за которыми указываются дата и точное время. Например:

aureport --start 07/15/2008 01:05:18 --end 07/19/2018 030:42:12

Также довольно популярный фильтр – обзор «неудовлетворительных» процессов. К таковым относятся, например, неудачные попытки входа в учетную запись. Юзер может их прочитать, используя команду:

aureport -u --failed --summary –i

***

Подсистема Daemon Audit требует обширных знаний об операционной системе для установки и обработки файлов реестров. Для опытных пользователей – это мощное средство, которое поможет выявить ошибки и уязвимости в файлах ОС и обнаружить их источник.

09.10.2020

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