ProCloud Yandex
04.07.2023
читать 7 минут

Аудит системных событий в Linux

/upload/iblock/309/zxhx2wcjc6c5akf0pcgkb0k1f14z6ed1/scale_2400.jpg

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

Архитектура и принцип работы

Данная система находится в ядре ОС Linux, начиная с версии 2.6, поэтому нет необходимости использовать стороннее программное обеспечение. С ее помощью можно оперативно отследить все события, которые происходили в системе за интересующий период времени. Вот часть той информации, которая находится в логах:

  • время включения и выключения устройства;
  • получение доступа к файлам, их чтение, внесение изменений;
  • осуществление подключений к сети;
  • внесение изменений в конфигурацию;
  • запуск и выключение программ;
  • осуществление системных вызовов.

Все это, а также многие другие операции происходят с применением системных вызовов ядра. Администратор может отслеживать логи путем перехвата системных вызовов. Linux audit log позволяет проверять все это в режиме реального времени.

Когда пользователь выполняет какое-то действие, то софт пропускает его через фильтры. Далее информация проходит через фильтр exclude, который передает его уже в auditd для последующей обработки.

Сама схема выглядит просто, но она весьма эффективная. С ее помощью можно досконально изучить работу операционной системы в любой момент. Изучая журналы аудита Linux, пользователь сможет обнаружить подозрительную активность, понять ее причину и выполнить необходимые действия для повышения уровня защиты.

Установка

Перед началом использования софта требуется установить пакет auditd. Стоит рассмотреть подробнее, как это сделать на примере Ubuntu 14.04.

Требуется через командную строку применить команду

$ sudo apt-get install auditd

Пользователь получает несколько полезных утилит дополнительно:

  • для возможности добавлять или удалять правила и получать подробные сведения о состоянии системы;
  • для просмотра событий, принцип работы построен на утилите strace;
  • поисковая система для того, чтобы быстро найти нужное событие в журнале логов;
  • создание отчетов о работе системы аудита.

Все эти дополнительные утилиты позволяют сэкономить время при изучении журнала, чтобы оперативно обнаружить уязвимые места и/или подозрительную активность. Еще с их помощью получится понять, как именно пользователь использовал компьютер в конкретно взятый момент времени.

Конфигурирование

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

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

Это базовые параметры, которые можно менять с помощью использования той или иной команды. Полный список возможностей можно уточнить в описании к софту или в документации. Информация находится в открытом доступе.

Создание правил

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

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

  • task – запуск новых задач и приложений;
  • entry – вход в системный вызов;
  • exit – выход из него;
  • user – все, что делает именно пользователь не от имени администратора;
  • exclude – фильтр для исключения событий.

Далее в коде указывается, что именно нужно сделать при наступлении определенного события. Здесь можно указать, что соответствующая запись будет заноситься в лог или не будет.

После --S указывается вызов, который требуется перехватить. В конце идет дополнительная конфигурация. К примеру, когда требуется проводить аудит в отношении только определенного вида файлов.

Файлы правил

Не всегда приходится пользоваться командной строкой для получения результата, который указан выше. Также их можно задать в файле audit.rules. В его начале находятся, так называемые, метаправила, которые задают общие настройки сохранения логов.

Далее идут правила, которые задает пользователь самостоятельно. Причем, их синтаксис очень прост, поэтому в нем может разобраться практически любой системный администратор или программист. Все внесенные изменения вступают в силу после перезапуска демона auditd.

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

Анализ файлов с aureport

Если не менять конфигурацию, то файлы находятся в папке audit в формате, который понятен устройствам. Однако с использованием утилиты aureport удастся сделать эти файлы читаемыми для человека тоже.

При запуске софта с настройками по умолчанию видна общая статистика. Обычно она не несет в себе никакой пользы, гораздо более интересны специализированные отчеты, которые можно увидеть с помощью aureport. Так, удастся получить доступ ко всем системным вызовам, попыткам входа в систему и не только. В настройках можно задать фильтр по дате и по времени.

Список отчетов очень большой, поэтому администратор может все детально изучить. Зная id пользователя, он сможет понять, что делал конкретно взятый человек за компьютером в определенное время.

Ausearch: поиск и анализ событий

Ausearch – утилита, которая открывает доступ к детальным отчетам. Стоит рассмотреть особенности структуры событий, которые выдает система.

  1. Поле type показывает тип записи.
  2. MSG показывает, когда именно была сделана запись. Используется формат Unix Timestamp.
  3. Arch содержит в себе сведения об архитектуре системы. Она зашифрована в шестнадцатиричном формате.
  4. Syscall показывает тип системного вызова. Success показывает, был ли он обработан успешно (это можно узнать благодаря ответам = yes/= no).

Для каждого вызова есть уникальный параметр. Подробнее об этом можно прочитать в официальном мануале. Пользователь может любую информацию сделать читаемой с помощью команды --interpret.

Если использовать --sc, то будут выводиться только события, которые актуальны для определенного типа вызова.

Благодаря --ui удается сделать выборку по ID пользователя.

Поиск по именам демонов происходит при применении команды --tm.

Также допускается применить ключи для поиска интересующих событий с помощью --k.

Анализ процессов с использованием autrace

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

$ sudo autrace /bin/date.

Важно. В последней строке вывода прописывается команда, которая нужна для получения более детальной информации. Ее требуется выполнить и передать вывод утилите aureport, чтобы сведения были понятными человеку.

Централизованное хранение логов

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

Для переноса файлов в хранилище требуется использовать плагин audisp-remote. Его нужно устанавливать с использованием команды

$ sudo apt-get install audisp-plugins

Он не предустановлен на ОС Linux и является частью пакета audisp-plugins.

Чтобы логи начали отправляться в хранилище в настройках, нужно указать active = yes. Далее в файле audisp-remote.conf нужно указать IP адрес сервера, куда будет поступать информация в автоматическом режиме.

Заключение

Linux Auditd считается полезным инструментом, который позволяет периодически выполнять проверку работоспособности системы. С его помощью можно узнать, что и когда происходило, какие ошибки возникали, и что им предшествовало, определить уязвимые места и предпринять соответствующие действия для устранения этой уязвимости.

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

Новости
27 декабря 202327.12.2023
Продуктовый дайджест 2023
20 декабря 202320.12.2023
читать 2 минутычитать 2 мин
Новые тарифы и возможности