- Изучите аудит системы Linux с помощью инструмента Auditd на CentOS/RHEL
- Почему важна система аудита Linux?
- Компоненты системы аудита Linux
- Как установить и настроить инструмент аудита в RHEL/CentOS/Fedora
- Понимание правил аудита
- Примеры правил аудита
- Примеры правил аудита файловой системы
- Примеры правил системных вызовов Auditd
- Как установить правила аудита с помощью утилиты auditctl
- Общие сведения о файлах журнала аудита
Изучите аудит системы Linux с помощью инструмента Auditd на CentOS/RHEL
Системный аудит просто относится к углубленному анализу конкретной целевой системы: аудит состоит из проверки различных частей, составляющих эту систему, с критической оценкой (и тестированием, если требуется) в различных областях, представляющих интерес.
Одна из важнейших подсистем в RHEL/CentOS системе аудита Linux, широко известной как auditd. Он реализует средство для отслеживания информации, относящейся к безопасности в системе: он использует предварительно настроенные правила для сбора большого количества информации о событиях, происходящих в системе, и записывает их в файл журнала, таким образом создавая контрольную пробную версию.
Он может записывать такую информацию, как дата и время, тип и результат события; пользователи, вызвавшие событие, любые изменения, внесенные в файлы/базы данных; использование системных механизмов аутентификации, таких как PAM, LDAP, SSH и других.
Auditd также регистрирует любые изменения, внесенные в файлы конфигурации аудита, или любые попытки доступа к файлам журналов аудита, а также любые попытки импорта или экспорта информации в систему или из нее, а также множество другой информации, связанной с безопасностью.
Почему важна система аудита Linux?
- Для работы в системе не требуются внешние программы или процессы, что делает ее самодостаточной.
- Он легко настраивается, поэтому позволяет просматривать любые системные операции, которые вы хотите.
- Он помогает обнаруживать или анализировать потенциальные угрозы безопасности системы.
- Он может работать как независимая система обнаружения.
- Он может работать с системами обнаружения вторжений, чтобы обеспечить обнаружение вторжений.
- Это жизненно важный инструмент для аудита судебных расследований.
Компоненты системы аудита Linux
Система аудита состоит из двух основных компонентов, а именно:
- приложения и утилиты/инструменты пользовательского пространства и
- обработка системных вызовов на стороне ядра — принимает системные вызовы от приложений пользовательского пространства и пропускает их через фильтры трех типов, а именно: пользователь, задача, >выйти или исключить.
Наиболее важной частью является демон аудита пользовательского пространства (auditd), который собирает информацию на основе предварительно настроенных правил из ядра и создает записи в файле журнала: журнал по умолчанию: /var/log/audit/audit.log.
Кроме того, audispd (демон диспетчера аудита) представляет собой мультиплексор событий, который взаимодействует с auditd и отправляет события другим программам, которые хотят выполнять их в режиме реального времени. обработка событий.
Существует ряд инструментов user-space для управления и извлечения информации из системы аудита:
- auditctl — утилита для управления системой аудита ядра.
- ausearch – утилита для поиска в файлах журналов аудита определенных событий.
- aureport — утилита для создания отчетов о записанных событиях.
Как установить и настроить инструмент аудита в RHEL/CentOS/Fedora
Сначала убедитесь, что инструмент аудита установлен в вашей системе, используя утилиту grep следующим образом:
Если у вас не установлены вышеуказанные пакеты, запустите эту команду от имени пользователя root, чтобы установить их.
Затем проверьте, включен ли и запущен ли 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. Параметры здесь позволяют вам управлять тем, как работает служба, например, определять расположение файла журнала, максимальное количество файлов журнала, формат журнала, как работать с полными дисками, ротацию журнала и многие другие параметры.
Из приведенного ниже примера вывода параметры говорят сами за себя.
Понимание правил аудита
Как мы упоминали ранее, auditd использует правила для сбора определенной информации от ядра. Эти правила в основном представляют собой параметры auditctl (см. справочную страницу), которые можно предварительно настроить в файле /etc/audit/rules.d/audit.rules (в CentOS 6 используйте файл /etc/audit/audit.rules), чтобы они загружались при запуске.
Вы можете определить три типа правил аудита:
- Правила управления — позволяют изменять поведение системы аудита и некоторые ее настройки.
- Правила файловой системы (также называемые отслеживанием файлов) – позволяют контролировать доступ к определенному файлу или каталогу.
- Правила системных вызовов – позволяет регистрировать системные вызовы, сделанные любой программой.
Теперь откройте основной файл конфигурации для редактирования:
# vi /etc/audit/rules.d/audit.rules
Обратите внимание, что первый раздел этого файла должен содержать правила управления. Затем добавьте свои правила аудита (файловые наблюдения и правила системных вызовов) в средний раздел, и, наконец, последний раздел содержит параметры неизменности, которые также являются правилами управления.
Примеры правил аудита
-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
Примеры правил аудита файловой системы
Вы можете определить файловые часы, используя этот синтаксис:
-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
- действие — имеет два возможных значения: всегда или никогда.
- filter – указывает, что к событию применяется фильтр соответствия правилам ядра (задача, выход, пользователь и исключение).
- системный вызов — название системного вызова.
- поле — указывает дополнительные параметры, такие как архитектура, 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
Пример файла конфигурации правил аудита
Как установить правила аудита с помощью утилиты auditctl
Либо отправьте параметры в auditd во время его работы, используя 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
Общие сведения о файлах журнала аудита
Все сообщения аудита по умолчанию записываются в файл /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 для запроса файлов журналов аудита: мы объясним, как искать конкретную информацию в журналах аудита. Если у вас есть какие-либо вопросы, пожалуйста, свяжитесь с нами через раздел комментариев ниже.