Поиск по сайту:

Изучите аудит системы Linux с помощью инструмента Auditd на CentOS/RHEL


Системный аудит просто относится к углубленному анализу конкретной целевой системы: аудит состоит из проверки различных частей, составляющих эту систему, с критической оценкой (и тестированием, если необходимо) в различных областях, представляющих интерес.

Читайте также: Lynis – инструмент аудита и сканирования безопасности для систем Linux

Одна из важнейших подсистем RHEL/CentOS, система аудита Linux, широко известная как auditd. Он реализует средства отслеживания информации, важной для безопасности в системе: он использует предварительно настроенные правила для сбора огромных объемов информации о событиях, происходящих в системе, и записывает их в файл журнала, создавая таким образом пробную версию аудита.

Он может записывать такую информацию, как дата и время, тип и результат события; пользователи, вызвавшие событие, любые изменения, внесенные в файлы/базы данных; использование системных механизмов аутентификации, таких как PAM, LDAP, SSH и других.

Auditd также регистрирует любые изменения, внесенные в файлы конфигурации аудита, любые попытки доступа к файлам журнала аудита, а также любые попытки импортировать или экспортировать информацию в систему или из нее, а также множество другой информации, связанной с безопасностью.

Почему важна система аудита Linux?

  1. Для запуска системы не требуется никаких внешних программ или процессов, что делает ее автономной.
  2. Он имеет широкие возможности настройки, поэтому позволяет вам просматривать любые системные операции, которые вы хотите.
  3. Это помогает обнаружить или проанализировать потенциальные угрозы системы.
  4. Он способен работать как независимая система обнаружения.
  5. Он может работать с системами обнаружения вторжений для обеспечения обнаружения вторжений.
  6. Это жизненно важный инструмент для проверки судебно-медицинских расследований.

Компоненты системы аудита Linux

Система аудита состоит из двух основных компонентов, а именно:

  • приложения и утилиты/инструменты пользовательского пространства, а также
  • обработка системных вызовов на стороне ядра — принимает системные вызовы из приложений пользовательского пространства и пропускает их через три типа фильтров, а именно: пользователь, задача, выход< или исключить.

Наиболее важной частью является демон аудита user-space (auditd), который собирает информацию из ядра на основе предварительно настроенных правил и создает записи в файле журнала: журнал по умолчанию — /var/log/audit/audit.log.

Кроме того, audispd (демон диспетчера аудита) представляет собой мультиплексор событий, который взаимодействует с audispd и отправляет события другим программам, которые хотят выполнять операции в режиме реального времени. обработка событий.

Существует ряд пользовательских инструментов для управления и получения информации из системы аудита:

  • auditctl – утилита для управления системой аудита ядра.
  • ausearch – утилита для поиска файлов журнала аудита по конкретным событиям.
  • aureport – утилита для создания отчетов о зафиксированных событиях.

Как установить и настроить инструмент аудита в RHEL/CentOS/Fedora

Сначала убедитесь, что инструмент аудита установлен в вашей системе с помощью команды rpm и утилиты grep следующим образом:

rpm -qa | grep audit

Если у вас не установлены вышеуказанные пакеты, запустите эту команду от имени пользователя root, чтобы установить их.

yum install audit

Затем проверьте, включен ли и запущен ли auditd, и выполните приведенные ниже команды systemctl на терминале.

--------------- On CentOS/RHEL 7 --------------- 
systemctl is-enabled auditd
systemctl status auditd
systemctl start auditd   [Start]
systemctl enable auditd  [Enable]

--------------- On CentOS/RHEL 6 --------------- 
service auditd status
service auditd start     [Start]
chkconfig auditd on      [Enable]

Теперь мы увидим, как настроить auditd, используя основной файл конфигурации /etc/audit/auditd.conf. Параметры здесь позволяют вам контролировать работу службы, например, определять расположение файла журнала, максимальное количество файлов журнала, формат журнала, порядок действий при переполнении дисков, ротацию журналов и многие другие параметры.

vi /etc/audit/auditd.conf

Из приведенного ниже примера вывода параметры говорят сами за себя.

Понимание правил аудита

Как мы упоминали ранее, auditd использует правила для сбора конкретной информации из ядра. По сути, эти правила представляют собой параметры auditctl (см. справочную страницу), правила которых можно предварительно настроить в файле /etc/audit/rules.d/audit.rules (в CentOS). 6, используйте файл /etc/audit/audit.rules), чтобы они загружались при запуске.

Вы можете определить три типа правил аудита:

  • Правила контроля – позволяют изменять поведение системы аудита и некоторые ее конфигурации.
  • Правила файловой системы (также называемые отслеживанием файлов) – позволяют контролировать доступ к определенному файлу или каталогу.
  • Правила системных вызовов – разрешает регистрацию системных вызовов, выполненных любой программой.

Теперь откройте основной файл конфигурации для редактирования:

vi /etc/audit/rules.d/audit.rules

Обратите внимание, что первый раздел этого файла должен содержать правила управления. Затем добавьте свои правила аудита (наблюдение за файлами и правила системных вызовов) в средний раздел, и, наконец, последний раздел содержит настройки неизменяемости, которые также являются правилами управления.

Примеры правил контроля Auditd

-D		#removes all previous rules
-b  3074	#define buffer size
-f 4		#panic on failure 
-r 120		#create at most 120 audit messages per second

Примеры правил файловой системы Auditd

Вы можете определить наблюдение за файлами, используя следующий синтаксис:

-w /path/to/file/or/directory -p permissions -k key_name

Где вариант:

  • w – используется для указания файла или каталога для наблюдения.
  • p – разрешения для ведения журнала, r – для доступа на чтение, w – для доступа на запись, x – для доступ на выполнение и a – для изменения атрибута файла или директора.
  • -k — позволяет установить необязательную строку для определения того, какое правило (или набор правил) создало определенную запись журнала.

Эти правила позволяют проводить аудит и отслеживать события, вносящие изменения в эти важные системные файлы.

-w /etc/passwd -p wa -k passwd_changes
-w /etc/group -p wa -k group_changes
-w /etc/shadow -p wa -k shadow_changes
-w /etc/sudoers -p wa -k sudoers_changes

Примеры правил системных вызовов Auditd

Вы можете установить правило системного вызова, используя форму ниже:

-a action,filter -S system_call -F field=value -k key_name

где :

  • действие – имеет два возможных значения: всегда или никогда.
  • фильтр – указывает, что к событию применяется фильтр соответствия правилам ядра (задача, выход, пользователь и исключение).
  • системный вызов – имя системного вызова.
  • поле – указывает дополнительные параметры, такие как архитектура, PID, GID и т. д. для изменения правила.

Вот несколько правил, которые вы можете определить.

-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time_change
-a always,exit -S sethostname -S setdomainname -k system_locale

Затем, наконец, добавьте настройки неизменяемости в конце файла, например:

-e 1	#enable auditing
-e 2	#make the configuration immutable -- reboot is required to change audit rules
Пример файла конфигурации правил Auditd

Как установить правила Auditd с помощью утилиты Auditctl

Альтернативно, отправьте параметры auditd во время его работы, используя auditctl, как показано в следующих примерах. Эти команды могут отменять правила в файле конфигурации.

Чтобы просмотреть все загруженные в данный момент правила аудита, передайте флаг -l:

auditctl -l

Далее попробуйте добавить несколько правил:

auditctl -w /etc/passwd -p wa -k passwd_changes
auditctl -w /etc/group -p wa -k group_changes
auditctl -w /etc/sudoers -p wa -k sudoers_changes
auditctl -l

Понимание файлов журнала Auditd

Все сообщения аудита по умолчанию записываются в файл /var/log/audit/audit.log. Чтобы понять формат записи журнала, мы загрузим правило и проверим запись журнала, созданную после события, соответствующего правилу.

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

auditctl -w /backups/secret_files/ -p rwa -k secret_backup

Теперь, используя другую системную учетную запись, попробуйте перейти в указанный выше каталог и выполните команду ls:

cd /backups/secret_files/
ls

Запись в журнале будет выглядеть так.

Вышеупомянутое событие состоит из трех типов аудиторских записей. Первый — type=SYSCALL:

type=SYSCALL msg=audit(1505784331.849:444): arch=c000003e syscall=257 success=yes exit=3 a0=ffffffffffffff9c a1=8ad5c0 a2=90800 a3=0 items=1 ppid=2191 pid=2680 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts1 ses=3 comm="ls" exe="/usr/bin/ls" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="secret_backup"

Второй — type=CWD.

type=CWD msg=audit(1505784331.849:444):  cwd="/backups/secret_files"

И последний — type=PATH:

type=PATH msg=audit(1505784331.849:444): item=0 name="." inode=261635 dev=08:01 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=unconfined_u:object_r:default_t:s0 objtype=NORMAL

Полный список всех полей событий (таких как msg, Arch, ses и т. д.) и их значения можно найти в Справочнике по системе аудита.

Это все на данный момент. В следующей статье мы рассмотрим, как использовать ausearch для запроса файлов журнала аудита: мы объясним, как искать конкретную информацию в журналах аудита. Если у вас есть какие-либо вопросы, пожалуйста, свяжитесь с нами через раздел комментариев ниже.