betacode

Стандартный аудит базы данных в Oracle

  1. Введение аудита системы Oracle
  2. Активировать режим стандартного аудита (standard audit  mode)
  3. Настроить Audit с параметром DB
  4. Настроить Audit с параметром DB,EXTENDED
  5. Set up Audit with XML parameter
  6. Set up Audit with XML,EXTENDED parameter
  7. Просмотр связанных параметров
-

1. Введение аудита системы Oracle

Аудит (Auditing) означает мониторинг и запись (monitoring and recording) действий конфигурированных в базе данных. Включая действия от обоих пользователей (user) database user и nondatabase user.
Nonedatabase Users:
Nondatabase Users: Это пользователь определенного приложения. Данное приложение использует базу данных Oracle, и поэтому они могут выполнить действия с базой данных. Данные пользователи должны быть идентифицированы в базе данных используя атрибут CLIENT_IDENTIFIER. Аудит данных пользователей сложнее по сравнению с аудитом пользователей базы данных (Database users).
Аудит (Auditing) является нужной и важной работой для администратора базы данных. Это эффективный инструмент, который предотврещает неверные действия. И всегда выполняется первым в любых инновациях безопасности в Oracle.
Помимо этого существуют некоторые другие причины, которые должны быть аудитированы:
  • Аудитор проверяет пользователей, у которые имеют привелегию доступа к чувствительным объектам.
  • Аудит трейла (Audit Trail) эффективно предотвращает пользователя от неверных действий.
  • Audit Trail это обязательно, если вы расследовать и хотите узнать, что выполняется неправильно.
  • Audit Trail предупреждает вас о подозрительных действиях, вы можете выполнить анализ того, что вам кажется неясным.
  • Audit Trail очень важен при определении контроля доступа, особенно в существующих приложениях.
  • Очень сложно определить, что "правило аудита доступа" не разрушит бизнес процесс, только если вы знаете текущее состояние и что они делают.
Audit Trail (Аудит трейла)
  • Действия аудита создают Audit Trail, включая записи, позволяющие найти, что было выполнено в базе данных.
  • Основываясь на это, чтобы знать что сделали пользователи, и какие привилегии были использованы …
  • Для каждой записи иеется важная информация как:
    • Кто выполнил
    • Где выполнено (какая Schema или какой Object)
    • Когда выполнено.
    • Как выполнено (Какие команды SQL были выполнены).
    • Так же другие полезные информации в расследовании и мониторинге.

2. Активировать режим стандартного аудита (standard audit  mode)

Standard Audit (Стандартный аудит) это самая обширная и полная база аудита в базе данных Oracle. Позволяет аудитировать действия (Action), вид действий, объект, привилегию (Privilege), доступ пользователя..
Есть 2 стадии связанные с использованием Standard Audit.
  • Активировать режим аудита (Audit).
  • Определить категории (category) нужные для аудита, то есть определить какие действия будут создавать трейл (Создать Audit Trail).
Чтобы активировать режим аудита базы данных, вам нужно получить доступ к Oracle с пользователем имеющим привилегию sysdba.
sys/<password> as sysdba
Аудит трейлы (Audit trail) могут быть таблицей данных или файл на операционной системе. Если аудитор не имеет привилегию (privilege) DBA, лучше всего сохранять информацию аудита на файлах. Есть 4 способа для настройки хранения "аудит трейла".
Параметр
Описание
DB
Трейл сохраненный в таблице AUD$, содержит только команду (statement) не полный текст.
DB,EXTENDED
Трейл сохраненный в таблице AUD$, полный текст (Значения переменных (variable) для каждой записи..)
XML
Трейл сохраненный в файле операционной системы, формата XML, содержание похожее на параметр DB.
XML,EXTENDED
Трейл сохраненный в файле операционной системы, формата XML, содержание похожее на параметр DB,EXTENDED.

3. Настроить Audit с параметром DB

Для начала, вам нужно активировать режим аудита с параметром DB (audit_trail = DB), выполнить команды ниже:
* SQLPLUS *
alter system set audit_trail=db scope=spfile;

shutdown immediate;

startup
В данном примере мы выполним аудит (audit) таблицы для Scott.EMP, с параметром DB, это значит "аудит трейлы" (audit trail) будут сохранены в базе данных (Точнее будут сохранены в таблице AUD$).
Audit all on scott.emp by access;
Использовать другой user чтобы выполнить некоторые действия на таблице Scott.EMP, например update. Данные действия будут сохранены в таблице AUD$.
-- Test

update scott.EMP set sal=sal*0.95 where job='MANAGER';
Запрос (query):
column username format a9
column owner format a5
column obj_name format a10
column action_name format a11
column sql_text format a40

-- Query view DBA_AUDIT_TRAIL:
select username, owner, obj_name,
       action_name, sql_text from dba_audit_trail;

4. Настроить Audit с параметром DB,EXTENDED

Настроить режим аудита с параметром audit_trail = DB,EXTENDED.
alter system set audit_trail=db,extended scope=spfile;

shutdown immediate;

startup
Выполнить действие update на таблице Scott.EMP:
Audit all on scott.emp by access;
Использовать другой user, чтобы выполнить определенное действие на таблице Scott.EMP:
-- Update

update scott.EMP set sal=sal + 10 where job='MANAGER';
column username format a9
column owner format a5
column obj_name format a10
column action_name format a11
column sql_text format a40

-- Query view DBA_AUDIT_TRAIL:
select username, owner, obj_name,
       action_name, sql_text from dba_audit_trail;

5. Set up Audit with XML parameter

Используя параметр audit_trail = xml, "аудит трейлы (audit trail)" будут сохранены в файле с форматом XML.
alter system set audit_trail=xml scope = spfile;

shutdown immediate;

startup
Файлы Audit обычно расположены в папке adump. Но чтобы знать точно, вы можете использовать следующую команду для проверки папки, содержащей файлы Audit.
show parameter audit_file_dest;
db12c_ora_2328_20171107022919280000831625.xml
<?xml version="1.0" encoding="UTF-8"?>
  <Audit xmlns="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd">
   <Version>11.2</Version>
<AuditRecord><Audit_Type>8</Audit_Type><EntryId>1</EntryId><Extended_Timestamp>2017-11-06T19:29:19.280000Z</Extended_Timestamp><DB_User>/</DB_User><OS_User>tran-pc\tran</OS_User><Userhost>WORKGROUP\TRAN-PC</Userhost><OS_Process>1848:2328</OS_Process><Terminal>TRAN-PC</Terminal><Instance_Number>0</Instance_Number><Returncode>0</Returncode><OSPrivilege>SYSDBA</OSPrivilege><DBID>1409002769</DBID>
<Sql_Text>CONNECT</Sql_Text>
</AuditRecord>
<AuditRecord><Audit_Type>4</Audit_Type><Session_Id>4294967295</Session_Id><StatementId>1</StatementId><EntryId>2</EntryId><Extended_Timestamp>2017-11-06T19:29:34.903000Z</Extended_Timestamp><DB_User>/</DB_User><Ext_Name>tran-pc\tran</Ext_Name><OS_User>tran-pc\tran</OS_User><Userhost>WORKGROUP\TRAN-PC</Userhost><OS_Process>1848:2328</OS_Process><Terminal>TRAN-PC</Terminal><Instance_Number>0</Instance_Number><Returncode>0</Returncode><OSPrivilege>SYSDBA</OSPrivilege><DBID>1409002769</DBID>
<Sql_Text>ALTER DATABASE OPEN</Sql_Text>
</AuditRecord>

6. Set up Audit with XML,EXTENDED parameter

Когда вы настраиваете аудит с параметром Audit_trail = xml,extended, полученный результат похож на использование параметра Audit_trail = xml, но в файлах XML добавит информацию про команды (statement), которые были выполнены.
alter system set audit_trail=os scope=spfile;

shutdown immediate;

startup
db12c_ora_3956_20171108021424022000979538.xml
<?xml version="1.0" encoding="UTF-8"?>
  <Audit xmlns="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd">
   <Version>11.2</Version>
<AuditRecord><Audit_Type>1</Audit_Type><Session_Id>1350961</Session_Id><StatementId>13</StatementId><EntryId>1</EntryId><Extended_Timestamp>2017-11-07T19:14:24.025000Z</Extended_Timestamp><DB_User>SCOTT</DB_User><OS_User>tran-pc\tran</OS_User><Userhost>WORKGROUP\TRAN-PC</Userhost><OS_Process>1856:3956</OS_Process><Terminal>TRAN-PC</Terminal><Instance_Number>0</Instance_Number><Object_Schema>SCOTT</Object_Schema><Object_Name>EMP</Object_Name><Action>6</Action><TransactionId>030017001E0E0000</TransactionId><Returncode>0</Returncode><Scn>17925302</Scn><DBID>1409002769</DBID>
<Sql_Text>Update Emp set Sal = Sal + 10 where job = &apos;MANAGER&apos;
</Sql_Text>
</AuditRecord>

7. Просмотр связанных параметров

Когда режим аудита уже настроен для базы данных, вы можете проверить использованный параметр.
-- Show all parameter in database.

show parameter
show parameter audit_trail;
Проверить название папки, содержащей файлы Audit, которые будут созданы.
show parameter audit_file_dest;
Название папки содержащей файлы Audit сохранено в файле spfile<SID>.ora.
Изменить папку содержащую файлы Audit:
alter system set audit_file_dest='C:\newdir' SCOPE=SPFILE;