Новости

АУДИТ БАЗЫ ДАННЫХ 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

Выключить аудит объектов можно с помощью команды NOAUDIT.

Пример

Выключить аудит выполнения процедуры CHANGE_PRICE.

SQL>NOAUDIT execute ON change_price;

Noaudit succeeded.

Пример

Выключить аудит удаления информации из таблицы ЕМР

SQL>NOAUDIT delete ON emp;

Noaudit succeeded.

Пример

Выключить аудит успешной выдачи привилегии на таблицу ЕМР

SQL>NOAUDIT grant ON emp

WHENEVER SUCCESSFUL;

Noaudit succeeded.

Команда NOAUDIT удаляет ссылки на выключаемые параметры аудита из словаря данных.

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

Журнал аудита содержит записи, сформированные в результате аудита команд, привилегии или объектов

Журнал аудита является таблицей словаря данныхSYS.AUDS

Каждая запись журнала аудита содержит:

Имя пользователя, выполнившего команду.

Код вида операции (число), который однозначно указывает тип выполненной команды или использованной привилегии.

Объект, на который ссылается команда'

Дату и время выдачи команды

Записи в -журнал аудита заносятся во время фазы выполнения команды

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

 Аудит не зависит от пользовательских транзакций. Следовательно, если транзакция откатывается, протокольная запись остается.

Аудит по обращениям (BY ACCESS) заносит записи в журнал каждый раз, когда выполняется указанное действие.

Аудит по сеансам (BY SESSION) (время между соединением и отсоединением) заносит записи в журнал только один раз на сеанс для указанного объекта.

Контроль журнала аудита

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

Рост журнала аудита зависит от:

Числа включенных параметров аудита

Частоты выполнения команд, для которых включен аудит.

Максимальный размер журнала определяется во время создания базы данных Командный файлsql.bsq для создания базы данных содержит команду CREATE для таблицы AUD$.

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

Убедитесь, что размеры журнала аудита не растут слишком быстро

Управление темпами роста журнала

Включайте аудиттолько при необходимости

Четко выбирайте параметры аудита

Строго контролируйте результаты аудита объектов.

Рекомендации по ограничению аудита объектов

Только администратор по защите имеет право включать аудит объектов

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

Все объекты содержаться в схемах, пользователи которых не являются реальными пользователями базы данных (т.е. не имеют системной привилегииCREATE SESSION)

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

1 Выдать системную привилегию AUDIT ANY только администратору по защитеданных

2. Не позволять реальным пользователям базы данных создавать объекты в своихсхемах.

Управление журналом аудита

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

Очистку журнала аудита можно производить путем:

Удаления всех протокольных записей

Выборочного удаления протокольных записей.

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

Переноса протокольных записей в файлы операционной системы.

Пример

Удалить все записи из журнала аудита

SQL>TRUNCATE TABLE sys.aud$;

Table truncated.

Пример

Удалить все протокольные записи, которые были созданы более трех месяцев назад

SQL>DELETE FROM sys.aud$

2 WHERE TIMESTAMP< SYSDATE-90;

n rows deleted.

Пример

Архивирование протокольных записей в файлы операционной системы. Используйте утилиту Export в режиме экспорта таблицы. Помните, что в этом случае будет выполнен экспорт всей таблицы Следующая команда выполнит экспорт таблицы AUD$ в файлexpdat.dmp

ЕХР USERID=sys/password TABLES=<AUD$) FILE=expdat.dmp

Утилита Export не изменит содержимое таблицы SYS.AUDS, поэтому вам все равно придется привести в порядок журнал аудита

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

Уменьшение размера журнала аудита

1. Скопируйте протокольные записи в другую таблицу базы данных или экспортируйте их в файл операционной системы

2. Соединитесь с базой данных как пользователь sys.

3. Используя команду TRUNCATE, удалите записи из таблицы SYS.AUD$

4. Загрузите в журнал протокольные записи, сохраненные на шаге 1.

Сохраните журнал аудита только при необходимости, в противном случае пропустите шаги 1 и 4.

SYS.AUD$ это один из немногих объектов пользователя .sys, которые можно непосредственно изменять

Протокольные записи из журнала может удалять пользовательsys или любой другой пользователь, имеющий привилегию DELETE ANY TABLE

Если включен аудит соединении и журнал заполнен, а пользователя ждут соединения, то администратор по защите данных, должен соединиться с БД как пользовательsys (соединения пользователяsys не протоколируются) и очистить пространство, занимаемое журналом

Если журнал аудита заполнен, то протоколируемые команды невозможно выполнять, так как невозможно создать соответствующую протокольную запись

Ограничения по параметрам хранения

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

Если размер журнала аудита достиг максимального количества экстентов, то администратору необходимо повторно создать таблицу, увеличив значения параметров для экстентов.

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

Пример

Аудит журнала аудита.

SQL>AUDIT insert, update, delete

2  ON sys.aud$

3  BY ACCESS;

Audit succeeded.

Для защиты журнала аудита от несанкционированного удаления только администратор по защите данных должен иметь привилегию DELETE ANY TABLE

Вывод информации аудита

Заранее определенные представления журнала аудита создаются с помощьюкомандного файлаcataudit..sql.

Удалить все эти представления можно с помощью командного файлаcatnoaud.sql

Для просмотра протокольной информации используются представления журнала аудита.

Пример

Аудит удаления данных из заданной таблицы

SQL> CONNECT system/password

SQL> AUDIT delete ON SCOtt.emp BY SESSION WHENEVER SUCCESSFUL;

SQL> CONNECT adams/wood

SQL> DELETE scott.emp WHERE enpno = 1111;

SQL> CONNECT scott/tiger

SQL> DELETE еmр WHERE empno = 1111;

SQL> CONNECT system/password

SQL> DELETE scott.emp WHERE enpno = 7788;

Так как пользовательxcoll является владельцем объекта, то ему для выполнения команды DELETE привилегий не требуется. Но для выполнения этой команды пользовательsystem использует привилегию DELETE ANY TABLE, а пользовательadams - привилегию DELETE.

Итоги

Используя аудит, можно собирать информацию о функционировании базы данных

Режимы аудита

" Контроль команд SQL

Контроль привилегии

Контроль объектов

Применение средств аудита

Расследование подозрительной деятельности Наблюдение за функционированием базы данных.

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

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

Пользуйтесь представлениями словаря данных Следите за размером журнала аудита

Периодически удаляйте записи и очищайте журнал аудита.

Лабораторная работа

Использование средств аудита базы данных.

1. Предположим, что пользовательsystem должен контролировать выполняемые в базе данных операции. Для выполнения этой обязанности разрешитеиспользование в базе данных средств аудита. Как это делается?

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

а. Как устанавливается такой контроля? Установите контроль

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

с. Попытайтесь подсоединиться к базе данных какscott leo. Что получилось?

d. Подсоединитесь к базе данных какscoti tiger Что получилось?

e. Подсоединитесь к базе данных какsystem для проверки результатов аудита

f. В каком представлении содержится информация о попытках проникновения в базу данных незарегистрированных пользователей? Найдите в этом представлении попытку "взлома" базы данных пользователемscott.

3. Допустим, что пользовательernie подозревается в несанкционированных изменениях квот и переназначении табличных пространств по умолчанию

а. Как установить контроль за пользователемernie?. Предоставьте привилегиюALTER USER пользователюernie и установите за ним контроль

b. Подсоединитесь к базе данных какernie ernie.

с. Установите пользователюscott квоту 1 Мб в табличном пространстве USER_DATA. а пользователюЬеrt- табличное пространство по умолчаниюUSER_DATA

d. Как проконтролировать изменения квот и переназначения табличных пространств по умолчанию пользователемernie? Можно ли в журнале аудита отличить изменения квот от переназначения табличных пространств?'

4.Каким образом можно контролировать успешные обновления таблицы EMPпользователя scott. Установите контроль

а. Убедитесь в том, что контроль обновлений таблицы EMP пользователя.scott установлен

5. Предположим, что пользовательеrnie подозревается в несанкционированном создании, изменении и удалении таблиц.

a. Установите контроль создания, изменения и удалении таблицпользователями базы данных. Убедитесь в том, что контроль установлен

6. Как отключить аудит базы данных? Отключите аудит.

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


Похожие рефераты, которые будут Вам интерестны.

1. Реферат Декларативные средства обеспечения целостности базы данных Oracle. Ключи

2. Реферат Табличные базы данных (БД): основные понятия (поле, запись, первичный ключ записи); типы данных. Системы управления базами данных и принципы работы с ними. Поиск, удаление и сортировка данных в БД

3. Реферат Работа с базами данных (списками) в Microsoft Excel. Выборка из базы данных

4. Реферат Создание реляционной базы данных и формы ввода данных

5. Реферат Изучение информационной технологии создания базы данных в системе управления базами данных (СУБД) MS Access

6. Реферат База данных Access Окно базы данных

7. Реферат Понятие базы данных

8. Реферат Создание базы данных

9. Реферат Разработка базы данных

10. Реферат Введение в базы данных