3.4.3.6 Утилита ausearch
Синтаксис
Опции
Примеры использования
Окружение
- Версия ОС: 8
- Конфигурация ОС: Рабочая станция
- Редакция ОС: Все
- Версия ПО: audit-3.1.3-1
ausearch — инструмент для получения данных из журналов аудита на основе запросов по различным критериям.
Утилита может принимать данные со стандартного входа до тех пор, пока они являются необработанными данными журналов аудита. Все переданные команде опции объединяются по принципу логического "и". Например, поиск с одновременным указанием параметров -m и -ui возвратит только те события, которые имеют указанные тип сообщения и UID. Исключение составляют опции -m и -n, которые допускается указывать несколько раз в одной команде.
Следует также отметить, что каждый системный вызов, следующий из пространства пользователя в ядро и обратно в пространство пользователя, имеет один уникальный идентификатор события. Каждое событие аудита, которое было порождено прохождением данного системного вызова по пути его следования, получит данный идентификатор для возможности определения их связанности.
Ядро может добавлять дополнительные записи аудита. Например, событие аудита при системном вызове open также приведет к тому, что ядро сгенерирует запись типа PATH с именем файла. Утилита ausearch объединит все эти записи для представления их в виде единого события. Это означает, что при запросе определенных типов записей результат может содержать так же записи с типом SYSCALL.
Также помните, что не все типы записей содержат искомую информацию. Например, запись типа PATH не содержит полей hostname и loginuid.
Синтаксис
Утилита доступна для запуска через терминал при помощи команды следующего вида:
ausearch [опции]
Опции
|
Опция |
Описание опции |
|
|
Искать события на основе заданного идентификатора (ID_события). Сообщение всегда начинается с подобной строки: |
|
|
Искать события на основе указанной архитектуры (архитектура_ЦП). Если архитектура вашего компьютера неизвестна, то при необходимости использования 32-разрядной таблицы системных вызовов допустимо указывать значение |
|
|
Искать события на основе указанного имени команды. Значение имя_команды будет сопоставлено с именем исполняемого файла из структуры задачи (поле |
|
|
Выводить искажённые сообщения, интерпретация которых невозможна, в стандартный поток для вывода ошибок (stderr). |
|
|
Записывать в файл_контрольной_точки данные контрольной точки между последовательными вызовами ausearch таким образом, чтобы при последующих вызовах печатались только те события, которые ранее не выводились. Событие аудита состоит из одной и более записей. При их обработке ausearch определяет, является ли событие завершённым или нет. Завершённым считается событие, состоящее из одной записи, либо возникшее двумя секундами ранее текущего обрабатываемого события. Запись контрольной точки состоит из:
При следующем вызове ausearch загрузит данные контрольной точки из файл_контрольной_точки и в процессе чтения журналов аудита будет отбрасывать (игнорировать) все завершённые события до тех пор, пока не будет найдено событие соответствующее контрольной точке. С этого момента начнётся вывод завершённых событий. Если файл или событие последней контрольной точки не будут найдены, процесс ausearch будет завершён с возвратом одной из нескольких ошибок (описание кодов завершения представлено в конце статьи). |
|
|
Таймаут для определения завершённости события (смотрите описание ключа |
|
|
Искать события, с соответствующим кодом завершения или кодом ошибки в системном вызове. |
|
|
Задать способ экранирования вывода для обеспечения более безопасной его обработки в определённых условиях. Допустимые значения:
Каждый последующий способ включает все символы предыдущего режима и добавляет дополнительное экранирование. То есть, |
|
|
Добавить столбец с информацией о ключе фильтрации (если она присутствует) при формировании вывода в формате csv. Данные будут доступны только для записей типа SYSCALL, которые стали результатом срабатывания правил аудита с указанием ключа фильтрации. |
|
|
Добавить столбец с информацией о метках субъекта и объекта (если она присутствует) при формировании вывода в формате csv. |
|
|
Добавить столбец с информацией о втором объекте аудита (если она присутствует) при формировании вывода в формате csv. Присутствие второго объекта в записи аудита — это редкость. Такое может наблюдаться при переименовании файла или монтировании устройства в каталог. |
|
|
Добавить дополнительные поля с разбивкой даты по составляющим при формировании вывода в формате csv. |
|
|
Искать события, в которых имя файла содержит строку, указанную в имя_файла. Поиск возможен для обычных файлов и сокетов af_unix. |
|
|
Применить указанный формат к найденным сообщениям. Поддерживаемые форматы:
|
|
|
Искать события, в которых ID группы или эффективный ID группы (egid) совпадают с указанным значением ID_группы. |
|
|
Искать события, в которых эффективный ID группы (или имя эффективной группы) совпадает с указанным значением эффективный_ID_группы. |
|
|
Искать события, в которых ID группы (или имя группы) совпадает с указанным значением ID_группы. |
|
|
Вывести справку по команде. |
|
|
Искать события с указанным именем хоста. Имя_хоста может быть именем хоста, полным именем хоста (FQDN) или сетевым адресом. Указанный сетевой адрес не будет разрешаться в имя или псевдоним. Данный поиск, обычно, производится по полям |
|
|
Интерпретировать числовые значения в текст. Например, выводить имя пользователя вместо UID. Если журнал не в формате ENRICHED (log_format), то трансляция в текст будет производиться на базе текущих ресурсов системы, на которой запущен поиск. Это может ввести в заблуждение, например, если пользователи были переименованы или вообще отсутствуют на данной машине (но существовали на машине, с которой получены журналы). Если журналы в формате ENRICHED, то для преобразования будут использованы дополнительные данные из них. Это позволяет получать правильные значения в отчетах, даже если команда выполняется на компьютере, отличном от того, с которого были получены исходные журналы. |
|
|
Использовать вместо текущих логов указанный файл или каталог. Это может быть полезно для анализа журналов, перемещённых на другую машину, или же только части журналов. Длина пути ограничена 4064 байтами. |
|
|
Использовать для анализа расположение журналов, которое указано в auditd.conf. Опция необходима при запуске aureport посредством cron. |
|
|
Остановиться после выдачи первого события, соответствующего критериям поиска. |
|
|
Искать события с указанным в опции ключом фильтрации. |
|
|
Сбрасывать выходной буфер при выводе каждой строки. Наиболее полезно, когда стандартный вывод (stdout) подключен к конвейеру (pipe) и стандартная стратегия блочной буферизации нежелательна. Может привести к снижению производительности. |
|
|
Искать события, имеющие указанный тип_сообщения (вместо "тип сообщения" иногда употребляют термин "тип записи"). Допустимо указать сразу несколько типов сообщений, разделив их запятой (нельзя использовать пробелы), или указать данную опцию несколько раз, перечислив каждый тип отдельно. Есть специальный тип сообщения ALL, который фактически не существует в журналах, а используется в опции для вывода всех сообщений в системе. Список допустимых типов можно получить, не указав никакого значения в данной опции. Тип сообщения можно указать в числовом или буквенном формате. |
|
|
Искать события, направленные с узла имя_узла. Опцию можно использовать несколько раз, чтобы найти события от любого из перечисленных узлов. Этот вид поиска производится по полю |
|
|
Искать события, в поле |
|
|
Искать события, значение поля |
|
|
Искать события, значение поля |
|
|
Выводить в необработанном формате. Полезно при необходимости направления в файл для дальнейшей интерпретации утилитами аудита или при перенаправлении непосредственно на вход утилитам аудита. |
|
|
Искать события, соответствующие указанному значению имя_или_номер_системного_вызова. Может быть указан номер системного вызова или его имя. При указании имени оно будет разрешено в номер согласно таблице системных вызовов той машины, на которой запущена команда. |
|
|
Искать события, в полях |
|
|
Искать события, поле |
|
|
Искать события, в поле |
|
|
Искать события, которые соответствуют значению успешность_события. Допустимые значения:
|
|
|
Искать события с отметками времени равными или меньшими, чем указанное в параметре значение. Формат указания зависит от региональных настроек. Для указания времени используйте 24-часовой формат (например, "18:30:00"). Формат даты зависит от значения переменной окружения LC_TIME (например, "22.04.2029"). Допустимо использовать специальные слова вместо значений даты и времени:
Если значение конечная-дата не указано, то вместо него предполагается значение |
|
|
Искать события с отметками времени равными или большими, чем указанное в параметре значение. Формат указания зависит от региональных настроек. Для указания времени используйте 24-часовой формат (например, "18:30:00"). Формат даты зависит от значения переменной окружения LC_TIME (например, "22.04.2029"). Допустимо использовать специальные слова вместо значений даты и времени:
Если значение начальная-дата не указано, то вместо него предполагается значение |
|
|
Искать события, в поле |
|
|
Искать события, в которых значение любого из полей |
|
|
Искать события, в которых значение поля euid (эффективный/действующий идентификатор пользователя) соответствует заданному значению идентификатор_пользователя.
|
|
-ui, |
Искать события, в которых значение поля |
|
|
Искать события, в которых значение поля |
|
|
Искать события, в которых в значении поля |
|
|
Вывести версию утилиты. |
|
|
Искать события, в которых в значении поля |
|
|
Производить текстовый поиск по полному совпадению со значением поля аудита. К такому типу относится, например, поиск по: имени файла, имени хоста, терминалу, ключу, имени виртуальной машины и контексту SELinux. |
|
|
Искать события, в которых в значении поля |
Типы поиска, основанные на строковых значениях, чувствительны к регистру.
Коды завершения:
-
0— команда выполнена успешно; -
1— событий не найдено, ошибка обработки аргументов команды, ошибки доступа к файлам; -
10— обнаружены некорректные данные в файле контрольной точки; -
11— возникла ошибка при обработке данных контрольной точки; -
12— в целевом файле журнала не обнаружено событие, соответствующее контрольной точке.
Примеры использования
Утилита ausearch позволяет анализировать события из логов аудита, фильтруя их по типу, дате, пользователю и другим параметрам. Ниже приведены основные примеры использования:
1. Для поиска всех событий за сегодня с помощью ausearch выполните:
ausearch -m AVC -ts today
Данный запрос выводит все события типа AVC (Access Vector Cache) — попытки доступа, заблокированные SELinux, за текущий день.
2. Для поиска записей за произвольный период времени используйте параметры -ts (начальная дата) и -te (конечная дата поиска):
ausearch -ts 2025-01-03 00:00:00 -te 2025-19-03 00:00:00
3. Утилита ausearch позволяет искать события по UID/GID. Для этого существуют параметры -ua и ga соответственно:
ausearch -ua 1000 ausearch -ga 1000
4. Также поиск можно выполнять по типу события (например, SYSCALL, USER_AUTH). Для этого используйте параметр -m:
ausearch -m USER_AUTH
5. Для ознакомления со всеми возможностями утилиты воспользуйтесь командой:
man ausearch
Функция определения времени начала загрузки создана для удобства, но имеет ограничения. Время, которое она рассчитывает, определяется как текущее время минус значение из файла /proc/uptime. Если после загрузки системы системные часы были скорректированы, например, с помощью NTP, то расчёт может оказаться некорректным. В таком случае необходимо будет явно указать время вручную. Получить результат определения времени аналогичный автоматическому можно командой:
date -d "`cut -f1 -d. /proc/uptime` seconds ago"
Дата последнего изменения: 17.12.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.