Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovoy_MOJO.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
524.29 Кб
Скачать

3.3 Управління аудитом в ос Linux

В ОС Linux, починаючи з версії ядра 2.6, існує можливість реєструвати такі події безпеки, як доступ до файлів/каталогів і виконання системних викликів. Реєстрацією таких подій займається служба (демон) auditd.

Процес організації аудиту подій безпеки ОС Linux складається з наступних дій:

  1. Встановлення та налаштування auditd.

  2. Налаштування правил аудиту.

  3. Запуск auditd.

  4. Аналіз отриманих даних і створення звітів аудиту.

Примітка. Для роботи auditd, необхідно щоб ядро ​​було зібрано з опціями AUDIT і AUDITSYSCALL. Це можна перевірити за допомогою команди grep AUDIT/boot/config- `uname-r`.

Для того щоб використовувати аудит, в системі повинен бути встановлений пакет auditd. Демон auditd дозволяє системному адміністраторові налаштовувати процес аудиту, а саме:

  • Задавати окремий файл для журналювання подій.

  • Визначати ротацію журнального файлу подій.

  • Задавати оповіщення в разі переповнення журналу подій.

  • Визначати рівень деталізації подій.

  • Налаштовувати правила аудиту.

В процесі своєї роботи демон auditd використовує конфігураційний файл /etc/audit/auditd.conf. Нижче наведено приклад вмісту даного конфігураційного файлу.

log_file = /var/log/audit/audit.log

log_format = RAW

priority_boost = 3

flush = incremental

freq = 20

num_logs = 4

dispatcher = /sbin/audispd

disp_qos = lossy

max_log_fi1e = 5

max_log_file_action = rotate

space_left = 75

space_left_action = syslog

action_mail_acct = root

admin_space_left = 50

admin_space_left_action = suspend

disk_full_action = suspend

disk_error_action = suspend

У директиві log_file вказується файл, куди будуть записуватися події. За замовчуванням, таким файлом є файл /var/log/audit/audit.log. У директиві log_format вказується формат даних, які необхідно реєструвати. У разі зазначення значення RAW в даній директиві, події записуються в файл в тому вигляді, в якому вони поступають із ядра. У директиві flush визначається частота запису подій. Якщо для даної директиви зазначено значення INCREMENTAL, то очищення журналу визначається на основі директиви freq, в якій вказується кількість записів, які приймає демон auditd, перш ніж записати їх в журнал.

Якщо у файлі auditd.conf вказана директива max_log_file_action зі значенням ROTATE, то журнальні файли будуть обертатися, досягнувши розміру, заданого в директиві max_log_file (у Мб). У директиві num_logs визначається кількість журнальних файлів, які повинні бути збережені, перш ніж буде виконана ротація даних. У директиві dispatcher задається програма, яка обробляє всі події аудиту. Вона може використовуватися для формування звітів або конвертації журналу в формат, що розуміється іншими програмами аналізу журнальних файлів. Директива disp_qos визначає параметри взаємодії даної програми з демоном auditd. Якщо в даній директиві вказано значення lossy, то події, послані даній програмі, видаляються, якщо буфер обміну даними між демоном auditd і даною програмою повністю заповнений (за замовчуванням розмір даного буфера складає 128Кб). Запис подій як і раніше здійснюється, якщо в директиві log_format не вказано значення nolog.

У директивах space_left і space_left_action задається, відповідно, межа вільного дискового простору розділу, на якому розташовуються дані аудиту, і дія, яку потрібно виконати в разі перевищення вказаної межі. Якщо вказано значення SYSLOG, то в журнал сервісу syslog буде записано відповідне попередження. У директивах disk_full_action і disk_error_action вказуються, відповідно, дія виконується в разі заповнення дискового простору на розділі з журнальні файли аудиту, і дія виконується у разі виявлення помилки запису даних в журнальний файл або його ротації. За замовчуванням, для даних директив задано значення SUSPEND, при якому наступні події записуватися в журнальний файл аудиту не будуть, а дії, що виконуються в даний момент над журнальним фалом, завершаться.

Для налаштування правил аудиту системних викликів і стеження за файлами і каталогами використовується утиліта auditctl. Якщо сервіс auditd налаштований на автоматичне включення, то правила аудиту системних викликів і стеження за об'єктами файлової системи можна задати у файлі /etc/ udit/audit.rules. Кожне правило аудиту повинно здаватися в окремому рядку. Форма записів правил і засобів має вигляд аргументів командного рядка для команди auditctl. Демон auditd зчитує правила зверху вниз і якщо буде виявлено два конфліктуючі правила, то перевага буде віддана першого знайденого правилом.

В якості параметра auditctl вказується список подій, в який додається дане правило. На даний момент підтримуються наступні списки:

Task - використовується для ведення подій, пов'язаних зі створенням процесів;

User - використовується для ведення подій, в яких вказуються параметри користувацького простору, такі як uid, pid та gid;

Exclude - використовується для заборони аудиту зазначених в даному списку подій;

Entry - використовується для реєстрації подій системних викликів;

Exit - використовується для реєстрації подій системних викликів.

В якості параметра також вказується одне з дій, що вживаються по відношенню до вказаних в списках подіям. Доступно всього дві дії: never і always. При вказівці дії never, події не записуються в журнал аудиту. Вказівка ​​дії always має протилежний ефект.

В аргументах також задаються опції, які є фільтрами, за допомогою яких можна деталізувати події аудиту. Повний список опцій можна подивитися в керівництві man для команди auditdctl. В якості опції можна задавати унікальні ідентифікатори користувача або процесу, назва системного виклику і багато іншого. При цьому, можливо використовувати логічні вирази для формування комбінованих опцій.

Додавання правил аудиту відбувається за допомогою команди auditdctl з ключем-а. При цьому правила, додаються в кінець файлу auditd.conf. Для того, щоб додати правило в початок даного файлу, необхідно використовувати ключ-А.

Розглянемо приклади додавання правил аудиту:

auditdctl-a exit, always-s open-f uid = 502-f key = 502open

auditdctl-a entry, always-s chown

У першому випадку задається правило, яке фіксує всі події, пов'язані з системним викликом open, виконуваним від користувача з ідентифікатором 502. Записи, що задовольняють даній умові, позначаються в файлі audit.log міткою 502ореn. У другому випадку задається правило, яке фіксує всі системні виклики chown. Коли задане в правилі дію буде виконано, результат його виконання заноситься в журнал /var/log/audit/audit.log.

Крім стеження за системними викликами, система аудиту ОС Linux дозволяє стежити за доступом до файлів і каталогів. Для цього у файлі audit.rules необхідно створити правило має наступний синтаксис:

-W-k

У параметрі-w вказується повний шлях до файлу або каталогу, за яким необхідно стежити. Параметр-k використовується для помітки всіх подій, пов'язаних з доступом вказаного файлу. Це дозволяє швидко знаходити потрібну інформацію в журнальному файлі. У наступному прикладі наведено два правила, в яких здійснюється стеження за файлом /etc/passwd, а також стеження за доступом до команди iptables:

auditdctl-w/etc/passwd-k passwd

auditdctl-w/sbin/iptables-k iptables-p x

У ключах-k вказуються відповідні мітки подій. Ключ-р х у другому правилі зазначеного прикладу позначає, що необхідно розглядати тільки події, пов'язані з виконанням даного файлу.

Для перегляду активних правил аудиту необхідно виконати команду auditctl-l. Для визначення статусу системи аудиту необхідно виконати команду auditctl-s.

Зазвичай журнальний файл системи аудиту подій ОС Linux можна переглядати за допомогою будь-якого текстового редактора. Однак для виконання загального аналізу подій потрібно підсумовувати окремі записи в цьому файлі, що практично нереально виконати, використовуючи тільки можливості текстового редактора. Для виконання аналізу і відображення статистики аудиту подій до складу пакету audit входять утиліти ausearch і aureport. Утиліта ausearch може виконувати пошук записів аудиту на основі різних критеріїв пошуку, таких як ім'я файлу, ідентифікатор користувача, назву системного виклику та інше. Утиліта aureport використовується для формування звітів на основі журнального файлу аудиту audit.log.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]