Новости

АУДИТ БАЗЫ ДАННЫХ ORACLE

Работа добавлена:






АУДИТ БАЗЫ ДАННЫХ ORACLE на http://mirrorref.ru

ЛАБОРАТОРНАЯ РАБОТА №8

АУДИТ БАЗЫ ДАННЫХORACLE

Рассматриваемые вопросы

Определение необходимости использования средств аудита

Отслеживание команд и доступа к объектам базы данных на системном уровне

Отслеживание режимов аудита по словарю данных.

Просмотр и контроль результатов аудита

Обзор

С помощью средств аудита базы данных можно отследить и зарегистрировать действия пользователей.

Назначение аудита баз данных

Расследование подозрительной деятельности

Наблюдение за функционированием базы данных

Сбор информации о функционировании базы данных

Операции аудита

Аудит команд

Аудит привилегий

Аудит объектов.

Журнал аудита

Вся собранная информация хранится в журнале аудита. Запись в журнал ведется только при включении средств аудита

Рекомендации по использованию средств аудита

При выборе стратегии аудита базы данных придерживайтесь следующих правил. Общий подход:

Уточните цели аудита

Старайтесь как можно реже изменять режимы аудита

При расследовании подозрительной деятельности:

Сначала определите конкретные контролируемые действия пользователей, а затем включите аудит для этих действий

Контролируйте доступ к журналу аудита.

При сборе информации о функционировании БД:

Отслеживайте только интересующие вас события

Архивируйте и очищайте журнал аудита

Создание триггеров базы данных для контроля значений изменяемых данных.

Пример

Аудит содержимого таблицы EMP

CREATETRIGGER audit_employee

AFTERINSERT OR DELETE OR UPDATEON emp

FOR EACH ROW

BEGIN

IF   auditpackage. reason IS NULL THEN

raise application_error(-20501,

'Must specify reason for update before performing update; use "auditpackage. set_reason()"') ;

END IF;

INSERT INTO audit_employee

VALUES (:OLD.ssn,    :OLD.name,

:OLD.class,  :OLD.sal,

:NEW.ssn,    :NEW.name,:NEW.class,  :NEW.sal,

auditpackage.reason,USER, SYSDATE) ;

END;

CREATE TRIGGER audit_emp_cleanup

AFTER INSERT OR DELETE OR UPDATE

ON emp

BEGIN auditpackage.reason := NULL;

END;

Разрешение использования средств аудита

Хотя команды AUDIT u NOAUDIT могут быть использованы в любое время, записи в журнале аудита могут быть созданы и сохранены, только если администратор базы данных установил значение параметра инициализации AUDIT_TRAIL

Синтаксис

AUDIT TRAIL= значение

где:значение может быть следующим:

DB     разрешает аудит базы данных и сохранение записей в журнале аудита(sys.aud$)

OS     включает аудит базы данных и сохраняет записи в файле операционной системы (если это возможно в данной ОС)

NONEзапрещает аудит базы данных (значение по умолчанию).

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

Если аудит не нужен, то выполните командный файлcatnoaud.sql, который удалит  все связанные с ним таблицы и представления При необходимости эти таблицы всегда можно создать, выполнив командный файлcataud.sqlРасположение командных файловзависит от операционной системы

События аудита, отслеживаемые всегда

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

Запуск экземпляра

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

Остановка экземпляра

В журнал записывается следующая информация: пользователь операционной системы, остановивший экземпляр, идентификатор терминала, дата и время остановки

Соединение с БД с привилегиями АБД

В журнал записывается следующая информация: пользователь операционной системы, который соединился с сервером Oracle как sysoper илиsysdba.

Избирательность аудита

Избирательность аудита уменьшает размер журнала. Если заданы обобщенные параметры аудита, то журнал может быстро заполняться несущественной информацией.

Рекомендуется ограничивать область действия аудита:

успешным и неудачным выполнением определенных команд SQL;

сеансами пользователя (BY SESSION) или обращениями к конкретным объектам (BY ACCESS).

Аудит команд и привилегии

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

Аудит объектов

Избирательное протоколирование действий, которые выполняются над конкретными объектами схемы

Аудит объектов всегда задается для всех пользователей базы данных Этот режим аудита нельзя задать для списка пользователей.

Аудит не ведется для пользователей базы данных INTERNAL иsys.

Аудит команд и привилегий включается в текущем сеансе с помощью командыAUDIT, но начинает реально работать для всех последующих сеансов

Для выполнения команд AUDIT и NOAUDIT требуется привилегия AUDIT SYSTEM.

Если вы пропустили фразу WHENEVER, сервер Oracle будет протоколировать успешные и неудачные попытки выполнения команд

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

Аудит команд

Возможен аудит команд SQL, относящихся к двум категориям

Категории команд

Аудит команд DDL задается для определенного типа объектов базы данных

Аудит команд SELECT и DML задается для определенного типа объектов базы данных

Рекомендации

Команды SQL внутри блоков PL/SQL протоколируются индивидуально по мере выполнения блока

Аудит команд выполняется только для локальных пользователей Нельзя запротоколировать действия, которые пользователь выполнял в удаленной базе данных

Используйте триггеры для контроля изменений таблиц

Неудачное выполнение команды будет зафиксировано только в случае, если сбой произошел из-за недостаточности привилегий или из-за обращения к несуществующему объекту

Неудачное выполнение команды не фиксируется, если выполнялась ошибочная по синтаксису команда

Включение аудита команд

Пример

Чтобы отслеживать все попытки изменения атрибутов пользователей, необходимо включить аудит команд CREATE/ALTER/DROP USER, независимо оттого, успешно или неудачно они завершились.

SQL>AUDIT user BY ACCESS;

Audit succeeded.

Пример

Чтобы фиксировать все соединения с базой данных, в команде включения аудита используется фраза CONNECT

SQL>AUDIT connect;

Audit succeeded.

Aудит привилегий

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

Аудит привилегий

Возможен аудит любой системной привилегии

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

Примеры

Чтобы следить за успешными и неудачными попытками создания таблиц или индексов пользователяscott в его схеме, необходимо выполюпъ следующую команду:

SQL>AUDIT create table BY scott BY ACCESS;

Audit succeeded.

Чтобы следить за успешными попытками изменения таблиц, процедур, функции или пакетов пользователемscott в любой схеме, необходимо выполнить следующую команду

SQL>AUDIT alter any table, alter any procedure

2  BY scott BY ACCESS

3  WHENEVER SUCCESSFUL;

Audit succeeded.

Пример

Выборка данных из представления DBA_PRIV_AUDIT_OPTS.

SQL>SELECT * FROM sys.dba_priv_audit_opts;

Аудит объектов это выборочное протоколирование команд, в которых есть обращение к указанным объектами базы данных Возможен аудит команд DML и команд SQL SELECT, GRANT и REVOKE, в которых есть обращение к указанным объектами базы данных.

Контролируемые объекты

Таблицы.

Представления.

Последовательности

Пакеты

Автономные хранимые процедуры

Автономные хранимые функции

Нельзя вести аудит отдельных процедур пакета

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

Аудит объектов всегда задается только для всех пользователей базы данных Этот режим аудита нельзя задать для конкретных пользователе"

Параметры аудита объектов

Параметр

Таблица

Представ лснпе

Поспелова тельность

Момент.

КОПИЯ

Хранимые процедуры

ALTER

X

X

AUDIT

X

X

X

Х

COMMENT

X

X

DELETE

X

X

••

EXECUTE

Х

GRANT

X

X

X

Х

INDEX

X

INSERT

X

X

LOCK

X

X

RENAME

X

X

Х

SELECT

X

X

X

X

UPDATE

X

X

Пример

Режим создания одной протокольной записи на сеанс при выполнении процедурыCHANGE PRICE EXECUTE.

SQL>AUDIT EXECUTE ON change_price BY SESSION;

Audit succeeded.

Пример

Аудит каждого удаления информации из таблицы ЕМР

SQL>AUDIT DELETE ON emp BY ACCESS;

Audit succeeded.

Пример

Аудит выполнения команды GRANT на таблицу ЕМР. Записывать успешные попытки выполнения этой команды один раз на сеанс

SQL>AUDIT GRANT ON emp BY SESSION WHENEVER SUCCESSFUL;

Audit succeeded.

Эти параметры в основном используются для расследования подозрительной деятельности

Пример

Протоколирование удачных попыток выполнения команды GRANT для процедурыCHANGE PRICE

SQL>AUDIT GRANT ON change_price WHENEVER SUCCESSFUL;

Audit succeeded.

Пример

Протоколирование всех неудачных попыток блокировать таблицу ЕМР

SQL>AUDIT LOCK ON emp BY ACCESS WHENEVER NOT SUCCESSFUL;

Audit succeeded.

Пример

Выборка информации об установленных параметрах аудита из представленияUSER_OBJ_AUDIT_OPTS

SQL>SELECT * FROM user_obj_audit_opts;

С помощью фразы ALL можно задать все параметры аудита для конкретного объекта

Пример

Протоколирование всех команд, которые используют таблицу DEPT

SQL>AUDIT ALL ON dept;

Audit succeeded.

Пример

Выборка информации о заданных параметрах аудита из представленияUSER_OBJ_AUDIT_OPTS

SQL>SELECT * FROM user_obj_audit_opts

WHERE object_name = 'DEPT';

Параметры аудита по умолчанию устанавливаются для объектов, которые будут созданы позднее

Параметры аудита объектов по умолчанию

Параметры по умолчанию устанавливаются с помощью фразы DEFAULT.

Параметры аудита по умолчанию присваиваются всем объектам, которые будут созданы позднее.

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

Любое последующее изменение параметров аудита по умолчанию не отражается на параметрах аудита для уже существующих объектов.

Для установки параметра аудита DEFAULT требуется системная привилегия AUDIT SYSTEM

Пример

Включение параметров аудита ALTER, SELECT и RENAME для всех объектов. которые будут созданы в дальнейшем.

SQL>AUDIT alter, select, rename ON default;

Audit succeeded.

В предыдущем примере

После создания таблицы будут протоколироваться команды ALTER, SELECT иRENAME, которые используют данную таблицу

После создания представления будут протоколироваться команды SELECT иRENAME, которые используют данное представление

' После создания последовательности будут протоколироваться команды ALTERи SELECT, которые используют данную последовательность

После создания моментальной копии будет протоколироваться командаSELECT, которая обращается к данной моментальной копии.

После создания пакета или автономных процедур и функций будет протоколироваться команда RENAME, которая переименовывает данные объекты.

Пример

Выборка информации о заданных параметрах аудита из представленияALL_DEF_AUDIT_OPTS