Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторный практикум по НСД 2013

.pdf
Скачиваний:
65
Добавлен:
12.11.2022
Размер:
9.94 Mб
Скачать

351

BEGIN

NULL

END;

/

CREATE OR REPLACE TRIGGER tr2 BEFORE insert OR update ON item FOR EACH ROW

BEGIN

NULL;

END;

/

Alter system set nls_language=’RUSSIAN’; Alter system set nls_language= RUSSIAN;

Connect sys/sys@orcl as sysdba

SELECT userid,name name_for_audit,obj$name FROM aud$,audit_actions WHERE aud$.action#=audit_actions.action

ORDER BY userid;

USERID

NAME_FOR_AUDIT

OBJ$NAME

------------------------------

----------------------------

--------

CH_CERT

CREATE ROLE

R1

CH_CERT

ALTER SYSTEM

 

CH_CERT

ALTER SYSTEM

 

CH_CERT

CREATE PROCEDURE

PR1

CH_CERT

CREATE TRIGGER

TR2

CH_CERT

CREATE TRIGGER

TR1

CH_CERT

CREATE USER

USER1

CH_CERT

CREATE TRIGGER

TR2

SCOTT

CREATE USER

USER2

SCOTT

CREATE ROLE

R2

SCOTT

ALTER SYSTEM

 

SCOTT

CREATE TRIGGER

TR2

SCOTT

CREATE TRIGGER

TR2

SCOTT

CREATE TRIGGER

TR1

SCOTT

ALTER SYSTEM

 

SCOTT

CREATE PROCEDURE

PR1

Выше мы установили параметр «audit_sys_operations» в значение «TRUE». После этого мы не раз делали пользователем «SYS» запросы к словарю. Полезно при выполнении лабораторных работ использовать консоль «Oracle Enterprise Manager Console» пользоватетем «sys», так как в этой консоли удобно просматривать содержимое таблиц и представлений аудита без того, чтобы набирать соответствующие команды в окне SQL*Plus. Все действия ползователя «sys», в том числе и в консоли «Oracle Enterprise Manager Console», можно увидеть в окне просмотра событий ОС.

352

На рис.17.2. приведен снимок окна программы «Просмотр событий» со строками событий.

Рис. 17.2. Окно просмотра событий

На рис.17.3 представлен снимок окна, соответствующего одной из строк в окне просмотра событий на рис.17.2 запросу, который выполнял пользователь «sys». В окне представлен текст запроса, представлены дата и время запроса, указано с какого компьютера запрос выполнялся.

Рис. 17.3. Окно просмотра конкретного события (появляется при двойном клике мышки на строке в окне программы просмотра событий.

353

При включении аудита с опцией «OS»:

ALTER SYSTEM SET audit_trail= OS SCOPE=SPFILE;

Информация аудита будет писаться в журнал событий операционной системы вместо журнала базы данных (таблица «aud$»). Например, если пользователь

«ch_cert» выполнит команду «alter user user1 identified by user1;» в программе

«Просмотр событий» появится новая строка, которой соответствует окно на рис.17.4.

Рис. 17.4. Регистрация события в журнале событий ОС

Наконец, при использовании «XML» опции параметра аудита «audit_trail»: На рис.17.4 указан код «34» действия пользователя «ch_cert». Этому коду в

таблице «audit_actions» словаря соответствует значение «alter user».

ALTER SYSTEM SET audit_trail= XML SCOPE=SPFILE;

События аудита будут писаться в xml файлы в папке, указанной параметром «audit_file_dest». По умолчанию он имеет значение

«ORACLE_BASE/admin/orcl/adump» для базы данных «orcl». Есть один ньюанс при таком способе аудита. При входе в ОС пользователем ОС на кириллице xml файлы аудита не читаются. Просмотр xml файлов аудита браузером или редактором xml текстов мало эффективен, так как в файлах много дополнительных символов и строк. Представление Oracle «v_$xml_audit_trail» позволяет просматри-

354

вать информацию аудита запросами, подобными тем, которыми мы извлекали информацию из таблицы «aud$».

Сдача лабораторной работы

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

А) Владельцы предметных областей 1 (ПО1), 2 (ПО2) манипулируют данными с отдельной (любой по выбору студента) таблицей предметной области 3 (ПО3). Эти действия надо зарегистрировать с помощью триггера событий и специально создаваемой таблицы аудита.

Б) Пользователь «sys» выполняет настройки аудита встроенными средствами СУБД Oracle для регистрации действий любого другого пользователя по изменению системы, по созданию пользователей, процедур, триггеров, ролей, а также настройки аудита – для регистрации текстов создаваемых процедур, тиггеров, выполняемых отдельными пользователями команд.

В) Пользователь «sys» выполняет настройки аудита встроенными средствами СУБД Oracle для регистрации действий пользователя с привилегией «sysdba».

Тестовые задания к лабораторной работе № 15

Входной контроль

1.Укажите строки, относящиеся к аудиту стойкости паролей и парольной политики.

a)Выявление паролей по умолчанию;

b)Выявление простых паролей;

c)Определение парольных компонентов профилей пользователя;

d)Поиск паролей в таблицах словаря СУБД;

e)Правильных ответов нет.

2.Аудит базы данных проводится с использованием (укажите верные строки).

a)Утилиты Net Configuration Assistant;

b)Вручную исполняемыми командами администратора безопасности;

c)Специально созданными скриптами администратора безопасности;

d)Сканеров безопасности баз данных;

e)Правильных ответов нет.

3.Укажите строки, определяющие, что должно явиться результатом аудита?

355

a)Описание выявленных уязвимостей;

b)Обнаруженные недостатки конфигурации СУБД и прав доступа;

c)Перечень всех не привилегированных пользователей;

d)Рекомендации по повышению защищенности;

e)Правильных ответов нет.

4.Укажите, какая основная проблема возникает перед администраторами баз данных при использовании обычного аудита средствами Oracle?

a)Резкое снижение производительности в работе с пользователями базы данных;

b)Затруднение доступа пользователей к базе данных;

c)Учащение сбоев в работе СУБД;

d)Заметное увеличение затрат памяти на хранение данных аудита;

e)Правильных ответов нет.

5.Укажите, какие пользователи/учетные записи требуют специального аудита, отличного от обычного системного аудита Oracle?

a)Пользователи с ролью DBA;

b)Пользователи с привилегией sysdba;

c)Пользователи, обладающие ролями числом от двух до пяти;

d)Пользователи, имеющие ОС аутентификацию;

e)Правильных ответов нет.

6.Какое средство позволяет просмотреть зарегистрированные аудитом после соответствующей настройки СУБД действия пользователя с приви-

легией sysdba?

a)Enterprise Edition console;

b)Policy manager;

c)Database Configuration Assistant;

d)Утилитой «Просмотр событий» консоли управления компьютером;

e)Правильных ответов нет.

7.Укажите, с помощью каких объектов схемы пользователя создаются средства аудита разработчика?

a)Триггер;

b)Последовательность;

c)Дополнительная таблица аудита;

d)Представление;

e)Правильных ответов нет.

Выходной контроль

1.Укажите верную команду аудита любых (в том числе и повторяющихся) действий с журналом аудита.

a)AUDIT INSERT on sys.aud$;

b)AUDIT ALL on sys.aud$ by access;

c)AUDIT ALL on sys.aud$ by SESSION;

d)AUDIT ALL on sys.aud$;

e)AUDIT INSERT, UPDATE, DELETE, SELECT on sys.aud$;

356

f)Правильных ответов нет.

2.В чем отличие системного аудита средствами Oracle действий пользователя БД от аудита действий того же пользователя с использованием процедур и триггеров разработчика приложений?

a)Системный аудит не отлавливает команды SELECT;

b)Спрограммированный аудит разработчика приложений не отлавливает действий пользователя по соединению с БД;

c)Системный аудит не отлавливает команды UPDATE;

d)Системный аудит БД конфликтует с аудитом средствами ОС;

e)Системный аудит не отлавливает повторяющихся действий пользователя с таблицей (DML) в одной сессии с Oracle;

f)Правильных ответов нет.

3.Какими командами обеспечивается возможность регистрации событий аудита в журнале событий консоли управления компьютером?

a)ALTER SYSTEM SET audit_trail= OS SCOPE=SPFILE;

b)ALTER SESSION SET audit_trail= OS SCOPE=SPFILE;

c)shutdown immediate;

d)ALTER SESSION SET audit_trail= OS;

e)startup;

f)Правильных ответов нет.

4.Если события аудита пишутся в XML файлы, читать их удобно с помощью…

a)Редактора «Блокнот»;

b)Редактора «Текстовый редактор WordPad»;

c)Запросов к представлению словаря «v_$xml$»;

d)Интернет браузера;

e)Запросов к представлению словаря «v_$xml_audit_trail»;

f)Правильных ответов нет.

5.Для обеспечения аудита действий пользователя «sys» с объектами базы данных требуется выполнения, в частности, таких действий:

a)Запросов к таблице aud$;

b)Запросов к представлению dba_audit_trail;

c)Выполнения команд

ALTER SYSTEM SET audit_sys_operations=true SCOPE=SPFILE; Shutdown immediate

Startup

d)Запросов к таблице «onlyforsys»;

e)Выполнения команд

ALTER SESSION SET audit_sys_operations=true SCOPE=SPFILE; Shutdown immediate

Startup

f) Правильных ответов нет.

357

6.В какой столбец таблицы «aud$» записывается информация о кодах выполняемых пользователями команд при аудите с опцией «BY ACCESS»?

a)statement;

b)ses$actions;

c)action#;

d)comment$text;

e)sqlbind;

f)Правильных ответов нет.

7.Какие команды позволяют обеспечить возможность аудита действий пользователя с регистрацией выполняемых им SQL, PL/SQL кодов?

a)ALTER SYSTEM SET audit_trail= extendeddb SCOPE=SPFILE; shutdown immediate

startup

b)ALTER SYSTEM SET audit_trail= db,extended SCOPE=SPFILE;

shutdown immediate startup

c)ALTER SYSTEM SET audit_trail= extended SCOPE=SPFILE; shutdown immediate

startup

d)ALTER SYSTEM SET audit_trail= true,fulldb SCOPE=SPFILE; shutdown immediate

startup

e)ALTER SYSTEM SET audit_trail=fulldb SCOPE=SPFILE; shutdown immediate

startup

f)Правильных ответов нет.

358

4.7.2. ЛАБОРАТОРНАЯ РАБОТА № 16: КОНТРОЛЬ ДЕТАЛЬНОГО АУДИТА ДЕЙСТВИЙ ПОЛЬЗОВАТЕЛЕЙ В СУБД ORACLE

Сценарий проведения работы

1.Выбор предметной области и пользователей для проверки FGAudit. Определение политики (правила) аудита без обработки событий для выбранной предметной области. Проверка выполнения детального аудита в соответствии с определенной политикой.

2.Проверка выполнения запросов, включающих переменные привязки, ретроспективных запросов, с использованием FGAudit.

3.Определение политики (правила) аудита с обработкой событий для выбранной предметной области. Проверка выполнения детального аудита с обработкой событий в соответствии с определенной политикой.

Реализация сценария лабораторной работы

В качестве предметной области будем использовать предметную область пользователя «scott» (присутствует в поставке Oracle, т.е. скрипты для нее не требуются), так как в ней есть таблица «emp», в которой представлены личные сведения о сотрудниках фирмы. Защита личных сведений – понятная цель для задействования и демонстрации возможностей детального аудита. Лабораторная работа выполняется копированием и выполнением нижеприводимых команд в окно SQL*Plus. Посмотрим содержимое таблицы «emp»:

conn scott/scott@orcl SELECT * FROM emp;

EMPNO ENAME

JOB

MGR

HIREDATE

SAL

COMM

DEPTNO

-----

----------

---------

---------- --------

---------- ---------- ----------

7839

KING

PRESIDENT

 

17.11.81

5000

 

10

7698

BLAKE

MANAGER

7839

01.05.81

2850

 

30

7782

CLARK

MANAGER

7839

09.06.81

2450

 

10

7566

JONES

MANAGER

7839

02.04.81

2975

 

20

7902

FORD

ANALYST

7566

03.12.81

3000

 

20

7788

SCOTT

ANALYST

7566

19.04.87

3000

 

20

7369

SMITH

CLERK

7902

17.12.80

800

 

20

7499

ALLEN

SALESMAN 7698

20.02.81

1600

300

30

7521

WARD

SALESMAN 7698

22.02.81

1250

500

30

7654

MARTIN

SALESMAN 7698

28.09.81

1250

1400

30

7844

TURNER

SALESMAN 7698

08.09.81

1500

0

30

7876

ADAMS

CLERK

7788

23.05.87

1100

 

20

7900

JAMES

CLERK

7698

03.12.81

950

 

30

7934

MILLER

CLERK

7782

23.01.82

1300

 

10

359

Мы могли бы установить аудит на все действия с этой таблицей (с сохранением текста DML предложений) обычными средствами аудита, но при этом в таблице или в файле аудита будет накапливаться много лишней информации. Можно было бы, как мы делали это в предыдущей лабораторной работе, создать триггер регистрации действий с таблицей «emp» в специальной таблице аудита. Но триггер не работает на «SELECT».

Для создания политики аудита создадим пользователя «main» и наделим его соотвтетствующими привилегиями.

Conn sys/sys@orcl as sysdba

GRANT SELECT,INSERT,UPDATE,DELETE ON scott.emp TO PUBLIC; DROP USER main CASCADE;

CREATE USER main IDENTIFIED BY main DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp

QUOTA 1m ON users;

GRANT connect, resource TO main; GRANT execute ON dbms_fga TO main;

GRANT select ON dba_fga_audit_trail TO main; GRANT DELETE on dba_fga_audit_trail to main; GRANT select ON dba_audit_policies TO main; GRANT FLASHBACK ANY TABLE TO main; GRANT EXECUTE ON dbms_flashback TO main; Conn main/main@orcl

Удалим политику аудита, созданную предыдущим выполнением лабораторной работы:

DELETE FROM dba_fga_audit_trail; begin

DBMS_FGA.DROP_POLICY( OBJECT_SCHEMA => 'scott', OBJECT_NAME => 'emp', policy_name => 'CHK_EMPA'); end;

/

Создадим политику аудита таблицы «emp», предусматривающую регистра-

цию DML действий пользователей (команды «select», «insert», «update», «delete»)

с этой таблицей таких, которые затрагивают столбец «ename» и включают усло-

вие «'sal > 1500'».

BEGIN

DBMS_FGA.ADD_POLICY(

OBJECT_SCHEMA => 'SCOTT',

OBJECT_NAME => 'EMP',

360

POLICY_NAME => 'chk_empa', AUDIT_CONDITION => 'sal > 1500', AUDIT_COLUMN => 'ename', HANDLER_SCHEMA=>null, HANDLER_MODULE=>null, ENABLE=>true);

END;

/

Проверим, что зарегисторирует политика FGA 'chk_empa'.

conn king/king@orcl --команда 1

SELECT * FROM scott.emp; --команда 2

SELECT empno,ename FROM scott.emp; --команда 3

SELECT empno, deptno FROM scott.emp; --команда 4

UPDATE scott.emp SET deptno=40 WHERE deptno=20;

ROLLBACK;

Посмотрим, что зарегистрировал аудит. conn main/main@orcl

Alter session set nls_date_format = 'yyyy-mon-dd:HH:MI:SS'; select db_user, sql_text, timestamp from dba_fga_audit_trail;

DB_USER

SQL_TEXT

TIMESTAMP

-----------------

--------------------------------------------------

--------------------

KING

SELECT * FROM scott.emp

2010-май-29:02:32:10

KING

SELECT empno,ename FROM scott.emp

2010-май-29:02:32:10

Команда 3 не зарегистрирована, так как команда 3 не затрагивает запросом столбцы, указанные в политике «chk_empa». Команда 4 не зарегистрирована, так как параметр «statement_types» политики по умолчанию имеет значение «SELECT». Скорректируем политику для учета действий с таблицей «emp» командами «INSERT, UPDATE, DELETE». Добавим условие, по которому аудит выпоняется и для столбца «sal». Так как программы UPDATE_POLICY не существует, сначала:

conn main/main@orcl begin

DBMS_FGA.DROP_POLICY( OBJECT_SCHEMA => 'scott', OBJECT_NAME => 'emp', policy_name => 'CHK_EMPA'); end;

/

Затем:

BEGIN

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]