|
Ключевые слова: freebsd, monitoring, bsm, (найти похожие документы)
From: Alex Samorukov <samm@os2.kiev.ua.> Newsgroups: email Date: Mon, 11 Jun 2007 14:31:37 +0000 (UTC) Subject: Использование OpenBSM для аудита FreeBSD. Несколько слов о OpenBSM. Одна из заявленных новинок в FreeBSD 6.2 - подсистема аудита OpenBSM, пришедшая к нам из проекта TrustedBSD. OpenBSM - это открытая реализация стандарта BSM компании Sun, который описывает множество системных вызовов и интерфейсов, необходимых для управления аудитом системы, а также формат файлов аудита. OpenBSM была расширена по сравнению с Sun BSM для поддержки аудита специфических возможностей FreeBSD и MacOSX. Реализация OpenBSM была изначально выполнена компанией McAfee Research, по заказу Apple в 2004 году (для MacOSX), после чего исходники были переданы в проект TrustedBSD для адаптации в другие BSD системы. Включение OpenBSM Включённая в FreeBSD 6.2 поддержка OpenBSM имеет эксперементальный статус , и как показали тесты - не зря. Если вы хотите использовать OpenBSM я советую обновить вашу ОС до -STABLE, так как версия включённая в 6.2 у меня работала не совсем корректно. Для того, чтобы включить поддержку OpenBSM вам потребуется добавить "options AUDIT" в файл конфигурации ядра, пересобрать его и добавить в файл /etc/rc.conf команду auditd_enable='YES' и перезагрузить ОС с новым ядром. Насколько мне известно, в FreeBSD 7.0 опция AUDIT будет присутствовать в GENERIC ядре, так что компилировать ядро и перезагружаться не потребуется. Конфигурация BSM. В сети существует множество статей по использованию Solaris BSM, которые, вобщем-то, вполне подходят и для FreeBSD. Также достаточно информации содержат соответствующие man файлы и handbook, так что я постараюсь лишь кратко описать принципы конфигурации OpenBSM. Системные события, которые могут использоваться в системе аудита перечислены в файле /etc/security/audit_event. Каждое событие аудита (audit event) может принадлежать классу или нескольким классам аудита (audit class). Это сделано для того, чтобы администратор мог легко работать с большим количеством событий. Соответствие событий и классов также задаётся в файле audit_event. У каждого класса есть свой номер и флаг, которые задаются в файле audit_class. Также определён специальный класс "all", к которому относятся все события аудита и no, пустой класс. По умолчанию в FreeBSD заданы такие классы аудита: 0x00000000:no: invalid class 0x00000001:fr:чтение файлов 0x00000002:fw:запись файлов 0x00000004:fa:доступ к атрибутам файлов 0x00000008:fm:модификация атрибутов 0x00000010:fc:создание файлов 0x00000020:fd:удаление файлов 0x00000040:cl:закрытие файлов 0x00000080:pc:процессы 0x00000100:nt:сетевая активность 0x00000200:ip:взаимодействие процессов (IPC) 0x00000400:na:прочее 0x00000800:ad:административные события 0x00001000:lo:login и logout 0x00004000:ap:приложения (пустой класс) 0x20000000:io:вызовы ioctl 0x40000000:ex:exec, exit и т.п. 0x80000000:ot:разное 0xffffffff:all:все события Для просмотра событий, принадлежащих классу удобно использовать команду вида # egrep '[:,]fa' /etc/security/audit_event Флаги могут использоваться с префиксами +(успешное выполнение), -(сбой) и ^(кроме), а также ^+ (не записывать успешное выполнение) и ^-(кроме сбоев). Так +fr относится к успешным попыткам чтения файла, -lo - ошибка в событиях login/logout, а all,^ex обозначает все события, кроме выполнения программ. Настройки общесистемного аудита находятся в файле audit_control. Ниже приведён файл настроек по умолчанию: dir:/var/audit flags:lo minfree:20 naflags:lo policy:cnt filesz:0 dir:/var/audit задаёт каталог для хранения журналов аудита. flags:lo означает, что мы хотим записывать login/logout события для всех пользователей системы. naflags содержит классы событий, которые мы хотим записывать в случае если событие не может быть отнесено к какому либо пользователю. minfree 20 - в случае, если свободного места на разделе audit`а осталось менее 20%, будет запущен скрипт для уведомления администратора. policy - специальные флаги, определяющие работу системы аудита. Например, cnt определяет, что процесс продолжит выполнение в случае если его события не могут быть записаны. Без этого флага процесс будет остановлен. И, наконец, filesz определяет максимальный размер (в байтах) файла аудита, после достижения которого журнал будет закрыт и открыт с другим именем (rotate). Важный момент - система аудита читает данные файлы при старте, поэтому в случае их изменения необходимо запустить команду 'audit -s', для того, чтобы изменения вступили в силу. Также OpenBSM позволяет настраивать запись событий для выбранных пользователей. Для этого используется файл /etc/security/audit_user. Настройки хранятся в виде: имя_пользователя:классы_событий_для_аудита:классы_исключения Например, строка root:lo:no обозначает что для пользователя root мы используем audit событий logon/logout, и не отключаем никаких дополнительных событий аудита. samm:lo:+fr обозначает, что несмотря на системные политики, мы всегда будем записывать login/logout события для пользователя samm и никогда не будем записывать событие "успешное чтение файлов". Ещё несколько замечаний - в FreeBSD 6.2p5 данный файл обрабатывался некорректно, после обновления до 6-STABLE все заработало согласно документации. Кроме того, стоит учитывать, что файл audit_user используется системой во время входа пользователя, т.е. вы не можете изменять в audit_user политику для уже зарегистрированных в системе пользователей. Просмотр журналов OpenBSM OpenBSM сохраняет свои файлы в двоичном формате, в каталоге указанном в файле audit_control. По умолчанию это /var/audit. Имена файлов соответствуют маске YYYYMMDDHHmmss.YYYYMMDDHHmmss, которые указывают на время начала аудита и время окончания аудита. Активный (открытый auditd) файл аудита имеет окончание not_terminated, например 20070712092624.not_terminated. Запуск команды audit -n принудительно закрывает активный файл журнала и открывает новый. Для просмотра файлов журналов используется утилита praudit. Например: root# praudit /var/audit/20070712092922.not_terminated header,97,10,su(1),0,Thu Jul 12 12:30:58 2007, + 523 msec subject,-1,root,samm,samm,samm,90190,90190,0,0.0.0.0 text,successful authentication return,success,0 trailer,97 Также вы можете просматривать события аудита в реальном времени используя команду praudit /dev/auditpipe. Для того, чтобы предоставить возможность выбора событий для отображения по заданным вами критериям, используется утилита auditreduce. Она позволяет задавать временной диапазон для выводимых событий, задавать классы для вывода, фильтровать по uid/gid, пути файла и т.п. Также, читая статьи о Solaris BSM я наткнулся на утилиту bsmGUI. Для её корректной работы в FreeBSD вам потребуется пропатчить auditreduce, см. PR bin/114534. Тип лицензии утилиты - CDDL, что позволяет использовать её в FreeBSD без каких либо проблем. Замеченные проблемы и особенности работы
|
Обсуждение | [ Линейный режим | Показать все | RSS ] |
|
Добавить комментарий |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |