ausearch(8)

AUSEARCH:(8) Системное администрирование AUSEARCH:(8)

ИМЯ

ausearch - инструмент поиска по журналу аудита

СИНТАКСИС

ausearch [опции]

ОПИСАНИЕ

Программа ausearch является инструментом поиска по журналу аудита. ausearch может также принимать данные со стандартного ввода (stdin) до тех пор, пока на входе будут необработанные данные логов. Все условия, указанные в параметрах, объединяются логическим И. К примеру, при указании -m и -ui в качестве параметров будут показаны события, соответствующие заданному типу и идентификатору пользователя. Исключением являются параметры -m и -n (в строке поиска допускается указание несколько типов записей и имен узлов, которые будут возвращать любой соответствующий узел и запись).

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

Различные части ядра могут добавлять дополнительные записи. Например, в событие аудита для системного вызова "open" добавляется запись PATH с именем файла. ausearch показывает все записи события вместе. Это означает, что при запросе определенных записей результат может содержать записи SYSCALL.

Также помните, что не все типы записей содержат указанную информацию. Например, запись PATH не содержит имя узла или loginuid.

ОПЦИИ

-a--event идентификатор_события
Искать события с заданным идентификатором события. В сообщении msg=audit(1116360555.329:2401771), идентификатор события - число после ':'. Все события аудита, связанные с одним системным вызовом имеют одинаковый идентификатор. Второй системный вызов, сделанный тем же приложением, будет иметь другой идентификатор события.
--arch CPU
Искать события на основе определенной архитектуры процессора. В случае если архитектура машины неизвестна, однако необходимо использовать таблицу 32-х битных системных вызовов, и машина поддерживает 32 бита, можно использовать b32. Аналогичным образом применяется таблица системных вызовов b64. Для определения архитектуры необходимо использовать команду 'uname -m'.
-c--comm comm-name
Искать события с заданным comm-name, именем исполняемого файла из структуры задачи.
--debug
Вывести сообщения, пропущенные stderr.
--checkpoint контрольная_точка
Контрольная точка это вывод между последовательными вызовами ausearch, ак что в последующих вызовах будут выводиться только события, не попавшие в предыдущий вывод.

Событие auditd состоит из одной или нескольких записей. При обработке события ausearch определяет события как завершенные и незавершенные. Завершенное событие - это одно событие записи или то, которое произошло раньше, чем за 2 секунды по сравнению с текущим обрабатываемым событием.

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

Если файл или последнее событие контрольной точки не будут найдены, произойдет ошибка, и команда ausearch прекратит работу. Подробнее см. EXIT STATUS.

-e, --exit exit-или-errno
Искать события на основе кода системного вызова exit или errno.
--escape option
Экранировать вывод. Возможные значения raw, tty, shell и shell_quote. Каждый режим включает в себя символы предыдущего режима и экранирует больше символов. То есть shell включает все символы экранируемые tty и добавляет новые. Значение по умолчанию - tty.
--extra-keys
Если параметр format имеет значение csv, вывести столбец с дополнительной информацией. Работает только с записями SYSCALL, которые были записаны в результате запуска правила аудита определенного ключом.
--extra-labels
Если параметр format имеет значение csv, добавить информацию о метках субъекта и объекта (если метки существуют).
--extra-obj2
Если параметр format имеет значение csv, добавить информацию о втором объекте (если он существует). Второй объект иногда является частью записи, например, при переименовании файла или монтировании устройства.
--extra-time
Если параметр format имеет значение csv, добавить информацию о времени простоя.
-f--file файл
Искать события с заданным именем файла. Аргумент будет соответствовать обычным файлам, а также сокетам af_unix.
--format опция
Отформатировать события, которые соответствуют критериям поиска. Поддерживаемые форматы: raw, default, interpret, csv и text. Значение raw описано в опции --raw. При значении default строки выводятся без форматирования, в выводе используется одна строка в качестве визуального разделителя, далее указывается метка времени, а затем следуют записи события. Значение interpret объясняется в описании опции -i. При значении csv результат поиска выводится в формате CSV (от англ. Comma-Separated Values - значения, разделённые запятыми). Значение text преобразует вывод к формату предложений, что упрощает понимание вывода, но происходит это за счет потери деталей. В большинстве случаев это очень удобно, так при этом сохраняется почти вся исходная информация.
-ga--gid-all идентификатор_группы
Искать события с заданным эффективным или обычным идентификатором группы.
-ge--gid-effective эффективный_идентификатор_группы
Искать события с заданным эффективным идентификатором группы или именем группы.
-gi--gid группа
Искать события с заданным идентификатором группы или именем группы.
-h--help
Справка
-hn--host имя_узла
Искать события с заданным именем узла. Имя узла может быть именем узла, полным доменным именем или цифровым сетевым адресом. Попытка разрешить числовые адреса в доменные имена или псевдонимы не производится. Поиск обычно соответствует полю addr или host событий аудита. Также см. команду --node, которая ищет поле узла.
-i--interpret
Транслировать числовые значения в текстовые. Например, идентификатор пользователя будет транслирован в имя пользователя. Трансляция выполняется с использованием данных с той машины, где запущен ausearch. То есть если вы переименовали учетные записи пользователей или не имеете таких же учетных записей на вашей машине, то вы можете получить результаты, вводящие в заблуждение. Если журналы расширены, для преобразования используются дополнительные данные. Это позволяет получать точные отчеты журнала, даже если поиск запускается на компьютере, отличном от исходного журнала.
-if--input файл | каталог
Использовать указанный файл или каталог вместо логов аудита. Это может быть полезно при анализе логов с другой машины или при анализе частично сохраненных логов.
--input-logs
Использовать местоположение файла журнала из auditd.conf как исходные данные для поиска. Применяется при использовании команды ausearch из задания cron.
--just-one
Остановиться после выдачи первого события, соответствующего критериям поиска.
-k--key ключевое_слово
Искать события с заданным ключевым словом.
-l--line-buffered
Сбрасывать вывод после каждой строки. Полезно если стратегия буферизации блоков по умолчанию нежелательна.
-m--message тип_сообщения | список_типов_сообщений
Искать события с заданным типом, при этом можно указать список значений, разделенных запятыми или несколько отдельных типов сообщений, каждый со своей опцией -m. Можно указать несуществующий в событиях тип ALL, который позволяет получить все сообщения системы аудита. Список допустимых типов будет выведен, если указать эту опцию без значения. Тип сообщения может быть строкой или числом. В списке значений этого параметра в качестве разделителя используются запятые и пробелы недопустимы.
-n--node
Искать события с определенного узла. Допускается указание нескольких узлов (для вывода достаточно совпадение любого узла). Поиск использует поле node в событиях аудита. Также см. описание опции --host, которая позволяет искать события, связанные с заданным именем узла.
-o--object контекст
Искать события с заданным контекстом (в контексте SELinux).
-p--pid идентификатор_процесса
Искать события с заданным идентификатором процесса.
-pp--ppid идентификатор_родительского_процесса
Искать события с заданным идентификатором родительского процесса.
-r--raw
Необработанный вывод. Используется для извлечения записей для дальнейшего анализа.
-sc--success системный_вызов
Искать события с заданным системным вызовом. Можно указать номер или имя системного вызова. При указании имени системного вызова, оно будет проверено по таблице системных вызовов на машине, где запущен ausearch.
-se--context контекст_SELinux
Искать события с заданным контекстом SELinux (scontext/субъект или tcontext/object).
--session идентификатор_сеанса
Искать события с заданным идентификатором сеанса. Этот атрибут устанавливается когда пользователь входит в систему, и может связать любой процесс с определенным именем пользователя.
-su--subject SE-Linux-context-string
Искать события с заданным контекстом SELinux - scontext (субъект).
-sv--success флаг
Искать события с заданным флагом успешного выполнения. Допустимые значения: yes (успешно) и no(неудачно).
-te--end [дата] [время]
Искать события, которые произошли раньше (или во время) указанной временной точки. Формат даты и времени зависит от региональных настроек. Просмотреть формат, можно выполнив команду date '+%x'. Если дата не указана, то подразумевается текущий день (today). Если не указано время, то подразумевается текущий момент (now). Используйте 24-часовую нотацию времени, а не AM/PM. Например, дата может быть задана как 09/03/2009, а время - как 18:00:00. На принятый формат даты влияет переменная среды LC_TIME.

Также допускается использовать следующие ключевые слова: now (сейчас), recent, boot, today, yesterday, this-week, week-ago, this-month, this-year. Now - сейчас. Recent - 10 минут назад. Boot - время за секунду до того, когда система загружалась в последний раз. Today - первая секунда после полуночи текущего дня. Yesterday - первая секунда после полуночи предыдущего дня. This-week - первая секунда после полуночи первого дня текущей недели, первый день недели определяется из ваших региональных настроек (см. localtime). Week-ago - первая секунда после полуночи ровно 7 дней назад. This-month - первая секунда после полуночи первого числа текущего месяца. This-year - первая секунда после полуночи первого числа первого месяца текущего года.

-ts--start [дата] [время]
Искать события, которые произошли после (или во время) указанной временной точки. Формат даты и времени зависит от региональных настроек. Просмотреть формат, можно выполнив команду date '+%x'. Если дата не указана, то подразумевается текущий день (today). Если не указано время, то подразумевается полночь (midnight). Используйте 24-часовую нотацию времени, а не AM/PM. Например, дата может быть задана как 09/03/2009, а время - как 18:00:00.

Также допускается использовать следующие ключевые слова: now (сейчас), recent, boot, today, yesterday, this-week, week-ago, this-month, this-year. Now - сейчас. Recent - 10 минут назад. Boot - время за секунду до того, когда система загружалась в последний раз. Today - первая секунда после полуночи текущего дня. Yesterday - первая секунда после полуночи предыдущего дня. This-week - первая секунда после полуночи первого дня текущей недели, первый день недели определяется из ваших региональных настроек (см. localtime). Week-ago - первая секунда после полуночи ровно 7 дней назад. This-month - первая секунда после полуночи первого числа текущего месяца. This-year - первая секунда после полуночи первого числа первого месяца текущего года.

Контрольная точка означает, что ausearch будет использовать метку времени, найденную в файле контрольных точек, игнорируя inode, device, serial, node и тип события, а также найденные в файле контрольные точки. По сути, это восстановление в случае сбоя вызова ausearch с опцией контрольной точки с кодом выхода 10, 11 или 12. Его можно использовать в скрипте примерно так:


ausearch --checkpoint /etc/audit/auditd_checkpoint.txt -i
_au_status=$?
if test ${_au_status} eq 10 -o ${_au_status} eq 11 -o ${_au_status} eq 12
then

ausearch --checkpoint /etc/audit/auditd_checkpoint.txt --start checkpoint -i fi

-tm--terminal терминал
Искать события с заданным терминалом. Некоторые демоны (такие, как cron и atd) используют имя демона как имя терминала.
-ua--uid-all идентификатор_пользователяfP
Искать события, у которых любой из идентификатора пользователя, эффективного идентификатора пользователя или loginuid (auid) совпадают с заданным идентификатором пользователя.
-ue--uid-effective Эффективный_идентификатор_пользователя
Искать события с заданным эффективным идентификатором пользователя.
-ui--uid идентификатор_пользователя
Искать события с заданным идентификатором пользователя.
-ul--loginuid идентификатор_пользователя
Искать события с заданным идентификатором пользователя. Все программы, которые его используют, должны использовать pam_loginuid.
-uu--uuid идентификатор_гостя
Искать события с заданным идентификатором гостя.
-v--verbose
Показать версию и выйти.
-vm--vm-name имя_гостя
Искать события с заданным именем гостя.
-w--word
Совпадение с полным словом. Поддерживается для имени файла, имени узла, терминала, ключевого слова и контекста SELinux.
-x--executable программа
Искать события с заданным именем исполняемой программы.

СТАТУС ВЫХОДА

0
все хорошо,
1
ничего не найдено, или ошибка в аргументе, или незначительные ошибки доступа/чтения файла,
10
в файле контрольной точки найдены неверные данные,
11
ошибка обработки контрольной точки,
12
событие контрольной точки не найдено в соответствующем файле журнала.

СМ. ТАКЖЕ

auditd(8), pam_loginuid(8).

ПЕРЕВОД

Перевод с английского Николай Шафоростов <shafff@ukr.net> 2007

Перевод с английского Елена Мишина <lepata@altlinux.org> 2019

Март 2017 Red Hat