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

View more categories:

-

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

Аудит (Auditing) означает мониторинг и запись (monitoring and recording) действий конфигурированных в базе данных. Включая действия от обоих пользователей (user) database user и  nondatabase user.

Nonedatabase Users:

Nondatabase Users: Это пользователь определенного приложения. Данное приложение использует базу данных  Oracle, и поэтому они могут выполнить действия с базой данных. Данные пользователи должны быть идентифицированы в базе данных используя атрибут  CLIENT_IDENTIFIER. Аудит данных пользователей сложнее по сравнению с аудитом пользователей базы данных (Database users).
Аудит (Auditing) является нужной и важной работой для администратора базы данных. Это эффективный инструмент, который предотврещает неверные действия. И всегда выполняется первым в любых инновациях безопасности в Oracle.
Помимо этого существуют некоторые другие причины, которые должны быть аудитированы:
  1. Аудитор проверяет пользователей, у которые имеют привелегию доступа к чувствительным объектам.
  2. Аудит трейла (Audit Trail) эффективно предотвращает пользователя от неверных действий.
  3. Audit Trail это обязательно, если вы расследовать и хотите узнать, что выполняется неправильно.
  4. Audit Trail предупреждает вас о подозрительных действиях, вы можете выполнить анализ того, что вам кажется неясным.
  5. Audit Trail очень важен при определении контроля доступа, особенно в существующих приложениях.
  6. Очень сложно определить, что "правило аудита доступа" не разрушит бизнес процесс, только если вы знаете текущее состояние и что они делают.

Audit Trail (Аудит трейла)

  1. Действия аудита создают Audit Trail, включая записи, позволяющие найти, что было выполнено в базе данных.
  2. Основываясь на это, чтобы знать что сделали пользователи, и какие привилегии были использованы …
  3. Для каждой записи иеется важная информация как:
    • Кто выполнил
    • Где выполнено (какая 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;

View more categories: