CloudLite

8 (495) 784-61-39

Array
(
    [ELEMENT_CODE] => Kak_ispolzovat_demon_Auditd_dlya_nastrojki_i_proverki_sistemy
)

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Как использовать демон Auditd для настройки и проверки системы Linux

 Подробно расскажем о технологиях аудита в системе Linux при помощи специализированной среды Linux Audit Daemon

Linux Audit Daemon отлично подходит для мониторинга различных событий системы, в том числе:

доступа к файлам;

изменения прав на файлы;

выявления несанкционированных корректировок;

контроля системных вызовов и функций;

выявления аномалий, сбоев;

контроля набора команд.

Установка и настройка

Воспользуйтесь пакетным менеджером, например для Debian/Ubuntu:

apt-get install auditd audispd-plugins

На серверах CentOS демон auditd как правило предустановлен (пакеты audit and audit-libs).

Настройка реализуется двумя файлами: auditd.conf – для демона, audit.rules – для правил, управляемых auditctl.

Внимание: auditctl - клиентский инструмент для конфигурации auditd.

Файл auditd.conf предназначен для конфигурации демона аудита Linux (auditd) с упором на то, как и где он будет регистрировать текущие действия. Он определяет варианты работы с дисками, журналом повторов и количеством хранимых логов. Стандартная конфигурация, как правило, оптимальна для большинства систем.

Для настройки конкретных типов событий для проверки в структуре аудита применяется файл правил с именем audit.rules.

Действующие правила просматриваются с помощью опции -l:

auditctl -l

Сразу после установки этот набор правил будет пуст.

Удалить текущие правила позволяет опция -D:

auditctl -D

Для проведения мониторинга файлов следует выявить его полное имя и разрешения для поиска:

auditctl -a exit,always -F path=<имя_файла> -F perm=<разрешения>

Например:

auditctl -a exit,always -F path=/etc/passwd -F perm=wa

Опция-F настраивает фильтры. После определения переменной path можно задать каталог или файл для отслеживания. Переменная path предназначена для определения вида доступа, вызывающего событие. Есть 4 вида доступа, и они похожи на разрешения файлов, но учтите, что имеет место серьезная разница:

r = читать

w = писать

x = выполнить

a = изменить атрибут

Опция -a указывает список и действие. Допустимые списки: task, exit, user, exclude. Допустимые действия: never, always.

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

ausearch -f <имя_файла>

Например:

ausearch -f /etc/passwd

Вот пример вывода с подробным указанием: кто, когда и какими командами использовал файл:





----

time->Tue Jul 17 12:12:18 2019 type=PROCTITLE msg=audit(1531840928.084:4647): proctitle=7669002F6574632F706173737764

type=PATH msg=audit(1531840928.084:4647): item=3 name="/etc/passwd~" inode=8470805 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:passwd_file_t:s0 obj

type=CREATE type=PATH msg=audit(1531840928.084:4647): item=2 name="/etc/passwd" inode=8470805 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:passwd_file_t:s0 obj

type=DELETE type=PATH msg=audit(1531840928.084:4647): item=1 name="/etc/" inode=8388737 dev=fd:00 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0 obj

type=PARENT type=PATH msg=audit(1531840928.084:4647): item=0 name="/etc/" inode=8388737 dev=fd:00 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0 obj

type=PARENT type=CWD msg=audit(1531840928.084:4647): cwd="/root"




type=SYSCALL msg=audit(1531840928.084:4647): arch=c000003e syscall=82 success=yes exit=0 a0=f9d720 a1=facda0 a2=fffffffffffffe90 a3=7ffd396260e0 items=4 ppid=9580 pid=9620 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=33 comm="vi" exe="/usr/bin/vi" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)


----



time - время события

name - имя объекта

cwd - актуальный рабочий путь, по которому осуществлялся доступ к файлу

syscall - связанный системный вызов

auid - идентификатор пользователя аудита

exe - двоичный файл, выполняющий действие над файлом

При этом auid определяет исходного пользователя, который вошел в систему. В других полях могут быть указаны другие пользователи – зависимо от того, какой конкретно пользователь был задействован,

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

uname -m

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

ausyscall <архитектура> <номер>

Так, вызов 82 на архитектуре x86_64:
ausyscall x86_64 82

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

Вы можете применять Auditd для контроля системных вызовов, в том числе доступа к файлам. Узнать, к каким файлам обратился конкретный пользователь, можно при условии, что вы знаете его идентификатор.

auditctl -a exit,always -F arch=<архитектура> -S open -F auid=<идентификатор>

Например:

auditctl -a exit,always -F arch=x86_64 -S open -F auid=80

-S open - обращение к системному вызову open

-F auid=80 - идентификатор пользователя

Эти данные незаменимы при выявлении вторжений, а также при проведении расследований киберинцедентов.

Аудит журнальных файлов

Аудит журнальных файлов производится при помощи утилиты aureport, позволяющей создавать сводные отчеты о событиях, записанных в файлах журнала Audit. Все файлы audit.log по умолчанию расположены в каталоге /var/log/audit/ и запрашиваются для создания отчета. Но вы можете указать другой файл для запуска отчета – используйте опцию -if:

aureport <опции> -if <имя_файла>

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

aureport --start <месяц>/<день>/<год> <часы>:<минуты>:<секунды> --end <месяц>/<день>/<год> <часы>:<минуты>:<секунды>

Например:

aureport --start 07/15/2018 00:00:00 --end 07/10/2018 00:00:00

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

aureport -x

Для генерации сводки событий следует применять ключ --summary:

aureport -x --summary

Для создания сводного отчета о неудачных событиях для всех пользователей существует такая команда:

aureport -u --failed --summary -i

Создание сводного отчета обо всех неудачных попытках входа в систему для каждого пользователя осуществляется этой командой:

aureport --login --summary -i

Не нашли ответа на Ваш вопрос? Напишите нам!

techsupport@cloudlite.ru - служба техподдержки

sales@cloudlite.ru - вопросы по услугам, оплате, документам и партнерству

partner@cloudlite.ru - партнерская программа