IBCOURSES / СПРАВОЧНИК ИБ

Linux Audit EXECVE — аргументы запуска программы

К ответу ↓

Соберите SYSCALL, EXECVE и соседние записи одного события. Аргументы, контекст входа и результат exec — разные сведения; одной строки EXECVE недостаточно.

Например
Материалов с пояснениями: 94 · Записей реестров: 11 678

Уточнить поиск

События и журналы

Найдено: 84
Инструкция по проверке

Linux Audit EXECVE — аргументы запуска программы

Соберите SYSCALL, EXECVE и соседние записи одного события. Аргументы, контекст входа и результат exec — разные сведения; одной строки EXECVE недостаточно.

Условия и паспорт источника

Сначала установите хост, архитектуру, версию ядра и audit-userspace, фактический файл регистрации, время и границы копии. Правило аудита должно охватывать исследуемое исполнение; наличие auditd не обещает полного журнала запусков. Форма примера соответствует Linux 6.12 / x86-64. Для Альт и Astra Linux сначала сверяйте профиль установленной редакции, пакеты и политику. Не переносите настройки RHEL или другой редакции ОС только по общему названию Linux.

Чтение и отбор

Работайте с сохранённой raw-копией, команды приведены во вкладке «Примеры». Первый отбор ищет события с типом EXECVE; ausearch может вернуть также остальные записи этих событий. Затем уточните узел, период и timestamp/serial. Второй пример требует, чтобы node действительно присутствовал. Если его нет, подтвердите происхождение файла отдельно. Один serial без источника и временной области не является глобальным ключом. Не заменяйте групповую выборку поиском одной строки по слову команды.

Как прочитать группу примера

Все пять строк относятся к одному узлу и одинаковому msg=audit. EXECVE задаёт два аргумента: id и -u; путь /usr/bin/id берётся из SYSCALL.exe. PID 4200 и родитель 4100 относятся к этому временному контексту. auid=1000 отличается от uid/euid=0: сохранён контекст входа, а выполнение произошло с другой identity. Это иллюстрация различия ролей, не доказательство использования sudo конкретным человеком. В PATH показан один объект, и items согласован с этим фрагментом.

Аргументы, hex и результат

Сохраняйте исходные байты рядом с декодированным представлением. Во второй иллюстрации hex содержит пробел внутри одного аргумента; нельзя превращать его в два элемента argv. Длинные значения могут иметь несколько фрагментов, поэтому проверяйте argc и целостность набора. PROCTITLE первого примера декодируется в id, разделитель NUL и -u. Он не доказывает отсутствие других аргументов в иных событиях. success=yes/exit=0 означает успех execve в показанном контексте; завершение id и его вывод здесь не наблюдались.

Интерпретация и следующий шаг

Сопоставьте сессию и контекст входа с соседними USER_AUTH/USER_LOGIN, а изменение identity — с доступными журналами sudo или иной привилегированной системы. Сопоставление ведите на одном узле и в ограниченном временном окне. Текущее имя пользователя при разборе копии на другом компьютере может отличаться от исторического: храните числовые идентификаторы. Для вывода о действии программы нужны дальнейшие записи доступа к объектам либо журнал приложения. Успешный запуск сам по себе не доказывает изменение файла или компрометацию.

Если записи или части события нет

У ausearch код завершения 1 может означать отсутствие совпадений, ошибку аргументов или ошибку доступа или чтения. Сохраните stderr и сначала подтвердите, что нужный raw-файл прочитан. Проверьте, охватывали ли правила этот вызов и архитектуру, доступен ли нужный узел/namespace, не потеряны ли файлы ротации и записи доставки. Уточните фильтры коллектора и признаки потерь Audit. Отдельно отметьте отсутствие SYSCALL, PATH или части аргументов: недостающие поля нельзя достроить из похожего события. Пустая выдача означает ограничение доступных свидетельств, пока не проверены политика, период и сохранность; она не доказывает отсутствия исполнения.

Поля и область применения

Исходное полеСмысл и ограничения
node + msg=audit(timestamp:serial)Составной контекст записей. В копии одного хоста node может отсутствовать; узел тогда подтверждается паспортом источника.
EXECVE.argc / a0,a1,…Количество и значения argv. a0 задаётся вызывающей программой; длинные аргументы могут разбиваться, часть значений кодируется hex.
SYSCALL.arch / syscallАрхитектура и номер вызова. В примереc000003e/59 — x86-64 execve; для другой архитектуры нужна её таблица.
SYSCALL.exe / commПуть исполняемого файла и короткое имя процесса; это не то же самое, что argv[0].
SYSCALL.auid / uid / euidКонтекст исходного входа и учётные идентификаторы выполнения. Unset auid требует отдельной оценки, а не назначения произвольного пользователя.
SYSCALL.pid / ppid / sesПроцесс, родитель и сессия на этом узле и в этом интервале. PID переиспользуется.
SYSCALL.success / exitУспех и возвращаемое значение системного вызова. Не exit status завершившейся программы.
SYSCALL.items / PATH.item / nameКоличество и детали доступных PATH-записей; потерянные записи нужно фиксировать отдельно.
CWD.cwdРабочий каталог для понимания относительных путей; не автоматически место изменения данных.
PROCTITLE.proctitleКраткое представление командной строки с разделителямиNUL; оно не заменяет полный массив EXECVE и может иметь ограничения длины.
SYSCALL.keyМетка правила, если задана. Её смысл определяется конфигурацией правил на момент события.

Примеры записей

Данные в примерах условные. Состав полей зависит от версии и настроек источника.

Связанные записи события-примера: id -u

Фрагмент журнала. Сокращённая группа raw-записей Linux Audit. Часть полей SYSCALL/PATH опущена. node показан для иллюстрации известного узла; его наличие зависит от источника. Набор не является паспортом какой-либо российской ОС.

node=demo-linux-01 type=SYSCALL msg=audit(1793700000.123:9201): arch=c000003e syscall=59 success=yes exit=0 items=1 ppid=4100 pid=4200 auid=1000 uid=0 euid=0 ses=7 comm="id" exe="/usr/bin/id" key="demo_exec"
node=demo-linux-01 type=EXECVE msg=audit(1793700000.123:9201): argc=2 a0="id" a1="-u"
node=demo-linux-01 type=CWD msg=audit(1793700000.123:9201): cwd="/home/analyst.demo"
node=demo-linux-01 type=PATH msg=audit(1793700000.123:9201): item=0 name="/usr/bin/id" inode=123456 dev=08:01 mode=0100755 ouid=0 ogid=0 nametype=NORMAL
node=demo-linux-01 type=PROCTITLE msg=audit(1793700000.123:9201): proctitle=6964002d75

Аргумент с пробелом: отдельная иллюстрация hex

Фрагмент журнала. Только фрагмент EXECVE другого учебного события. Hex68656c6c6f20776f726c64 означает один аргумент hello world, а не два. Остальные записи здесь отсутствуют.

node=demo-linux-01 type=EXECVE msg=audit(1793700001.456:9202): argc=2 a0="printf" a1=68656c6c6f20776f726c64

Команды и способы проверки

Укажите свой узел, путь к журналу и временной интервал. Требуемая среда указана рядом с командой.

ausearch: чтение уже полученной raw-копии; версию пакета и источник сверить отдельно

ausearch -if audit-copy.log -m EXECVE --raw

ausearch: уточнение serial и node в заранее ограниченной raw-копии; node должен присутствовать. Сама команда время не фильтрует.

ausearch -if audit-copy.log -a 9201 -n demo-linux-01 --raw

Первоисточники

a0 не доказывает путь файла. success=yes относится к системному вызову, а не к завершению программы или авторству человека. Поддержка Альт/Astra требует отдельного паспорта.

Связанные материалы

Как пользоваться техническим справочником

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

Материалы по разделам

События и журналы

Два ответа рядом

Сравнение источников

Сравнение показывает различия. События и поля разных систем не считаются эквивалентными.

Выберите службу

В списке — службы, доступные с текущими условиями. Число рядом — количество записей портов, а не программ на вашем узле.

Как искать в справочнике

Введите число, код, фрагмент сообщения или вопрос. Известный идентификатор поможет найти карточку; это не анализ самого инцидента.

  1. Введите номер, код, имя или фрагмент записи. Для портов можно использовать список: 80, 443, 8000–8010.
  2. Уточните поиск фильтрами. Все условия действуют одновременно. Числа в списках показывают, сколько материалов останется при выборе варианта.
  3. Службу выбирайте из каталога: поиск внутри списка помогает найти название, а кнопка «Выбрать» применяет его.
  4. Убирайте отдельные условия кнопкой × рядом с фильтром. «Сбросить фильтры» сохраняет текст поиска и текущий раздел.
  5. В карточке сверьте источник, версию и условия регистрации, затем откройте поля, примеры и первоисточник.

/ — перейти к поиску. Прямые ссылки открывают выбранную карточку в этом же справочнике.

Назначения портов и коды приведены по официальным реестрам. Версии, условия регистрации и ссылки на документацию указаны в карточках.

Избранное и недавние материалы хранятся в этом браузере. Запрос и фильтры сохраняются при возврате к выдаче и обновлении вкладки. Поиск работает локально.

Что есть в справочнике

От вопроса к свидетельствам: кто вошёл, что запустил, к каким данным обратился, что изменил и где искать следы.

Выберите область, чтобы посмотреть доступные источники и перейти к материалам.

Уточнить или исправить ответ

Скопируйте сообщение и отправьте его на mail@ibcourses.ru.