2. http://www.azeroug.org
2/şənbə, 21 aprel 2018-cü il www.azeroug.org
• Audit, bazaya məxsus vəya qeyri baza(tətbiqetmə)
istifadəçilərinin hərəkətinin monitoring edilməsi və
nəticələrin qeydiyyatının aparılma prosesidir.
• Audit edə bilmək üçün audit tipinə uyğun prosesi
başlatmağa ehtiyac var.
• Oracle şirkəti bazanın audit olunmasını tövsiyə edir.
AUDİT NƏDİR
3. http://www.azeroug.org
3/
AUDİT TİPLƏRİ
şənbə, 21 aprel 2018-cü il
• Məcburi və susmaya görə audit
• Standart(ənənəvi) audit
• Fine-Grained audit
• Trigger(ddl və dml) ilə audit
• Unified audit(birləşdirilmiş) 12c versiyası ilə
4. http://www.azeroug.org
4/
MƏCBURI və SUSMAYA görə
AUDIT
şənbə, 21 aprel 2018-cü il
• Bazanın audit parameterindən asılı olmayaraq məcburi icra edilən audit
tipidir.
• Bazanın açılması-bağlanması(startup-shutdown),bazaya sysdba və
sysoper sələhiyyətli istifadəçilərin girişləri məcburi audit edilir.
• Məcburi audit əməliyyat sistemində
$ORACLE_BASE/admin/$DB_UNIQUE_NAME/adump direktoriyasına
<proses_adi_prosesid>.aud faylı şəklində yazılır.
• Oracle VBİS dbca ilə qurulduğu hallarda susmaya görə parol və audit
politikası tətbiq edilir.
• Susmaya görə parol və audit politikası
$ORACLE_HOME/rdbms/admin/secconf.sql ---tətbiq etmə
$ORACLE_HOME/rdbms/admin/undoaud.sql---ləğv etmə
5. http://www.azeroug.org
5/
MƏCBURI və SUSMAYA görə
AUDIT
şənbə, 21 aprel 2018-cü il
SUSMAYA GÖRƏ AUDIT OLUNAN SƏLAHIYYƏTLƏR
ALTER ANY PROCEDURE, CREATE ANY LIBRARY, DROP ANY TABLE,ALTER ANY
TABLE, CREATE ANY PROCEDURE, DROP PROFILE,ALTER DATABASE, CREATE
ANY TABLE, DROP USER,ALTER PROFILE,CREATE EXTERNAL JOB, EXEMPT
ACCESS POLICY,ALTER SYSTEM ,CREATE PUBLIC DATABASE LINK,GRANT ANY
OBJECT PRIVILEGE,ALTER USER ,CREATE SESSION ,GRANT ANY
PRIVILEGE,AUDIT SYSTEM ,CREATE USER, GRANT ANY ROLE,CREATE ANY
JOB,DROP ANY PROCEDURE,DROP DATABASE LINK, PUBLIC
SYNONYM,SYSTEM AUDIT,PROFILE ROLE ,SYSTEM GRANT
Select * from DBA_PRIV_AUDIT_OPTS
6. http://www.azeroug.org
6/
STANDART(ƏNƏNƏVİ) AUDIT
şənbə, 21 aprel 2018-cü il
• Standart audit tipi ilə SQL ifadəsini,səlahiyyəti,sxema
obyektlərini,şəbəkə aktivliyini audit etmək mümkündür.
• AUDIT_TRAIL parameterinin seçilməsinə uyğun audit qeytdiyyatının
hara yazılacağı təyin edilir o cümlədən auditin ləğv edilməsi.
• AUDIT_TRAIL parameterinin ala biləcəyi dəyərlər:
DB Məcburi audit xaricindəki bütün audit qeydiyyatı
SYS.AUD$ cədvəlinə yazılır.Baza read-only açıldığı hallarda
audit_trail parameteri avtomativ OS parameterinə çevrilir
alter system set audit_trail=DB scope=spfile;
DB,EXTENDED DB parameterin genişləndirilmiş versiyasıdır.SQL
ifadəsi və bind dəyərləri SYS.AUD$ cədvəlinə yazılır.
alter system set audit_trail=DB,EXTENDED scope=spfile;
7. http://www.azeroug.org
7/
STANDART(ƏNƏNƏVİ) AUDIT
şənbə, 21 aprel 2018-cü il
OS Audit qeydləri əməliyyat sistemində susmaya görə
$ORACLE_BASE/admin/$ORACLE_SID/adump
direktoriyasına yazılır.AUDIT_FILE_DEST parameteri ilə
yerini deyişmək olar. Windows sistemlərdə OS parameteri
audit qeydiyyatı Windows Event Viewer da aparılır.
Oracle in tövsüyə etdiyin trail parameterdir.
AUDIT_SYS_OPERATIONS parameteri ‘true’ dəyərini aldığı
zaman SYSDBA,SYSOPER səlahiyyətli istifadəçilərin bütün
ddl hərəkətləri əməliyyat sisteminə yazılır.
AUDIT_SYSLOG_LEVEL parameteri ilə Unix/Linux
sistemlərə məxsus olan SYSLOG (RSYSLOG)servisi ilə
loglama edilə bilər.
alter system set audit_trail=OS scope=spfile;
8. http://www.azeroug.org
8/
STANDART(ƏNƏNƏVİ) AUDIT
şənbə, 21 aprel 2018-cü il
XML OS parameterində olduğu kimi əməliyyat sisteminə
$ORACLE_BASE/admin/$ORACLE_SID/adump
direktoriyasına XML formatında audit qeydiyyatı yazılır.
Audit_trail parameterinin xml olması SYSLOG audit faylına
təsir etmir.
alter system set audit_trail=XML scope=spfile;
XML,EXTENDED Audit_trail parameterinin xml versiyanın genişləndirilmiş
versiyasıdır.Əlavə olaraq sql ifadəsi və bind dəyərləri audit
faylında qeyd olunur.
alter system set audit_trail=XML,EXTENDED scope=spfile;
NONE Standart auditi ləğv edir.
alter system set audit_trail=NONE scope=spfile;
9. http://www.azeroug.org
9/
STANDART(ƏNƏNƏVİ) AUDIT
şənbə, 21 aprel 2018-cü il
• Standart auditi istifadəçilər , yalnız AUDIT SYSTEM(sistem səviyyəsində)
və AUDIT ANY(sxema səviyyəsində) səlahiyyətləri olduğu təqdirdə aduit
edə bilər.
• Standart audit hər müraciətə(access) və sessiya görə(session) audit edə
bilər.Susmaya görə və tövsiyə olunan dəyər müraciətə(by access) görədir.
• SQL İfadəsinə görə SA:SQL ifadəsinə görə audit sql icrasının başarılı və ya
başarısız olma halına görə tətbiq edilə bilər.DML
və DDL sql ifadələrinə tətbiq etmək olar.
WHENEVER SUCCESSFUL – yalnız başarılı
WHENEVER NOT SUCCESSFUL –başarısız olsa da
10. http://www.azeroug.org
10/
STANDART(ƏNƏNƏVİ) AUDIT
şənbə, 21 aprel 2018-cü il
AUDIT SELECT TABLE BY ACCESS;
AUDIT SELECT TABLE, INSERT TABLE, DELETE TABLE BY ACCESS WHENEVER NOT
SUCCESSFUL;
AUDIT ALL STATEMENTS BY JWARD, JSMITH BY ACCESS WHENEVER SUCCESSFUL;
AUDIT ALL BY JWARD BY ACCESS;
AUDIT ALL STATEMENTS IN SESSION CURRENT BY ACCESS WHENEVER NOT
SUCCESSFUL;
AUDIT SESSION BY ACCESS;
AUDIT NOT EXISTS;
NOAUDIT SESSION;
NOAUDIT SESSION BY PRESTON, SEBASTIAN;
NOAUDIT SELECT TABLE, INSERT TABLE, DELETE TABLE, EXECUTE PROCEDURE;
NOAUDIT ALL STATEMENTS; (SQL ifadədəsinə görə olan bütün auditiləri dayandırma)
11. http://www.azeroug.org
11/
STANDART(ƏNƏNƏVİ) AUDIT
şənbə, 21 aprel 2018-cü il
• Səlahiyyətə görə SA: Bu metod ilə sistem səlahiyyətlərinə audit etmək
mümkündür.
AUDİT DELETE ANY TABLE BY ACCESS;
NOAUDİT DELETE ANY TABLE;
NOAUDİT ALL PRİVİLAGES;(Səlahiyyətə görə SA auditi dayandırma)
DBA_PRİV_AUDİT_OPTS
• Sxema obyektləri SA: Bu metod ilə sxema obyektləri olan table(cədvəl),
view(təsvir), sequence,procedure(prosedur),
function(funksiya) və package(paket) tiplərinə
audit etmək mümkündür. Paket içərisindəki
invidual obyektləri ayrılıqda audit olunması
mümkün deyil.
12. http://www.azeroug.org
12/
STANDART(ƏNƏNƏVİ) AUDIT
şənbə, 21 aprel 2018-cü il
AUDİT DELETE ON HR.EMP BY ACCESS;
AUDİT EXECUTE PROCEDURE BY ACCESS;(Procedure,function,package,trigger)
AUDİT EXECUTE PROCEDURE BY razim BY ACCESS;
AUDİT EXECUTE ON DOM.İNİT_USER by ACCESS WHENEVER SUCCESSFUL;
NOAUDİT EXECUTE PROCEDURE;
DBA_OBJ_AUDİT_OPTS
• Şəbəkə aktivliyinə SA:Şəbəkə komunikasiyasında aldığı xətaları audit edə
biləcəyimiz metoddur.
AUDİT NETWORK BY ACCESS;
NOAUDIT NETWORK;
13. http://www.azeroug.org
13/
STANDART(ƏNƏNƏVİ) AUDIT
şənbə, 21 aprel 2018-cü il
• Standart audit qeydiyyatına DBA_AUDİT_TRAİL(Trail parameteri DB və ya
DB,EXTENDED seçildiyi halda),v$XML_AUDIT_TRAIL (XML və XML
EXTENDED trail parameteri seçildiyi halda) təsvirlərindən baxmaq olar.
• Standart auditin perfomansa təsiri:
Oracle soft və
audit_file_dest
eyni disk
üzərində
olduğu halda
14. http://www.azeroug.org
14/
FİNE GRAİNED AUDIT
şənbə, 21 aprel 2018-cü il
• Fine grained audit table(cədvəl) və view(təsvirlər) üzərində DML
əməliyyatlarını şərtli olaraq audit edilməsinə imkan yaradan audit tipidir.
Email xəbərdarlığı göndərmək mümkündür.
• FGA edə bilmək üçün SYS.DBMS_FGA paketinə execute səlahiyyəti
yetərlidir
• Audit qeydiyyatı : Trail parameterindən asılı olaraq
DB- SYS.FGA_LOG$ cədvəlinə
DB Extended – SYS.FGA_LOG$ cədvəlin sql və bind dəyəri ilə
XML-Əməliyyat sisteminə xml formatında
XML,Extended-Əməliyyat sisteminə xml sql və bind dəyərlə
audit qeydiyyatı aparılır.
17. http://www.azeroug.org
17/
FİNE GRAİNED AUDIT
şənbə, 21 aprel 2018-cü il
• Bu tip auditdə yaradılan policy(politika) modifikasiya edilə bilməz.Yalnız
drop edilib yeniden yaradılmaqla şərt dəyişdirilə bilər.Bu halda audit
qeydiyyatı silinmir
• DBA_FGA_AUDİT(DB və DB Extended) ,V$XML_AUDIT_TRAIL və
DBA_COMMON_AUDİT_TRAİL(XML və XML Extended) təsvirlərindən
FGA audit qeydiyyatına baxmaq olar.
• FGA tipinin performansa təsiri:
18. http://www.azeroug.org
18/
TRİGGER ilə AUDİT
şənbə, 21 aprel 2018-cü il
• Oracle triggerləri ilə DML və DDL dəyişmələrini audit etmək mümkündür
CREATE TABLE emp_tab
(
empno NUMBER (4),
ename VARCHAR2 (10),
job VARCHAR2 (9),
mgr NUMBER (4),
hiredate DATE,
sal NUMBER (8, 2),
deptno NUMBER (2)
);
CREATE TABLE emp_audit_tab
(
oldname VARCHAR2 (10),
oldjob VARCHAR2 (9),
oldsal NUMBER (8, 2),
newname VARCHAR2 (10),
newjob VARCHAR2 (9),
newsal NUMBER (8, 2),
user1 VARCHAR2 (10),
systemdate TIMESTAMP
);
CREATE OR REPLACE TRIGGER emp_audit_trig
AFTER INSERT OR DELETE OR UPDATE
ON emp_tab
FOR EACH ROW
BEGIN
INSERT INTO emp_audit_tab (oldname,
oldjob,
oldsal,
newname,
newjob,
newsal,
user1,
systemdate)
VALUES (:OLD.ename,
:OLD.job,
:OLD.sal,
:NEW.ename,
:NEW.job,
:NEW.sal,
USER,
SYSDATE);
END;
/
19. http://www.azeroug.org
19/
TRİGGER ilə AUDİT
şənbə, 21 aprel 2018-cü il
CREATE OR REPLACE TRIGGER SYS.DDL_AUD_ON_DB
AFTER DDL ON DATABASE
BEGIN
DECLARE
sql_stmt VARCHAR2(100);
BEGIN
IF ora_dict_obj_type IN ('TABLE','INDEX', 'FUNCTION', 'PACKAGE', 'PACKAGE BODY', 'PROCEDURE', 'TRIGGER', 'TYPE', 'VIEW', 'SEQUENCE',
'SYNONYM', 'USER') /*AND ora_dict_obj_owner <> 'SYS'*/ THEN
INSERT INTO DDL_AUDIT_LOGS
(ACTION, ORASYS_EVENT, ORALOGIN_USER, ORADATABASE_NAME,
ORADICT_OBJ_TYPE, ORADICT_OBJ_NAME, ORADICT_OBJ_OWNER, SESSIONUSER,
HOSTNAME, IPADDRESS, NETWORKPROTOCOL, OSUSER, DDL_TEXT, DDL_DATE)
VALUES
('AFTER', ora_sysevent, ora_login_user, ora_database_name,
ora_dict_obj_type, ora_dict_obj_name, ora_dict_obj_owner,
sys_context('userenv', 'SESSION_USER'),
sys_context('userenv', 'HOST'),
sys_context('userenv', 'IP_ADDRESS'),
sys_context('userenv', 'NETWORK_PROTOCOL'),
sys_context('userenv', 'OS_USER'),
--Dbms_Metadata.GET_DDL(ora_dict_obj_type,ora_dict_obj_name,ora_dict_obj_owner),
'N/A', SYSDATE);
END IF;
END;
END;
/
21. http://www.azeroug.org
21/
UNİFİED AUDİT 12C
şənbə, 21 aprel 2018-cü il
• Oracle 12c versiyası ilə gələn yeni birləşdirilmiş audit metodudur.FGA
audit metodu kimi şərtli(policy base) auditdir.Audit qeydiyyatı AUDSYS
sxemasında AUD$UNIFIED(12.2) qorunan cədvəldə saxlanılır.Cədvəlin
üzərində DML əməliyyatları o cümlədən truncate etməyə icazə verilmir.
UNIFIED_AUDIT_TRAIL təsvirindən tam məlumatı görmək olar.
• Performansa təsirini azaltmaq üçün SGA da sırada(queue) gözləyib
asinxron yazmanı mümkün edən unified_audit_sga_queue_size
parameteri təyin edilib.
• Birləşdirilmiş audit metodunda məcburi(mandatory) auditə əlavə edilib.
CREATE AUDIT POLICY , ALTER AUDIT POLICY , DROP AUDIT POLICY ,AUDIT , NOAUDIT
,EXECUTE on DBMS_FGA PL/SQL package ,EXECUTE on DBMS_AUDIT_MGMT PL/SQL
package , Oracle Database Vault tərəfindən edilən bütün dəyişikliklər, ALTER TABLE
AUDSYS audit trail table, Top level statements by administrative users SYS, SYSDBA,
SYSOPER, SYSASM, SYSBACKUP, SYSDG, and SYSKM
22. http://www.azeroug.org
22/
UNİFİED AUDİT 12C
şənbə, 21 aprel 2018-cü il
• Birləşdirilmiş audit imkanları: -Standard database audit
-SYS əməliyyatlarına audit
-Fine Grained Audit (FGA)
- Data Pump
- Oracle RMAN
- Oracle Label Security (OLS)
- Database Vault (DV)
- Real Application Security (RAS)
- SQL*Loader Direct Load
• Birləşdirilmiş auditin iki fərqli modda işləyə bilər.Mixed və Pure mod.
SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing';
cd $ORACLE_HOME/rdbms/lib
make –f ins_rdbms.mk uniaud_on ioracle – PURE MOD
make –f ins_rdbms.mk uniaud_off ioracle—MIXED MOD
23. http://www.azeroug.org
23/
UNİFİED AUDİT 12C
şənbə, 21 aprel 2018-cü il
• AUDIT_ADMIN və AUDIT_VIWER rollarını sahib istifadə birləşdirilmiş
auditdən istifafə edə bilər.
• Audit qeydiyyatının sinxron vəya asinxron yazılması mümkündür
BEGIN
DBMS_AUDIT_MGMT.set_audit_trail_property (
audit_trail_type => DBMS_AUDIT_MGMT.audit_trail_unified,
audit_trail_property => DBMS_AUDIT_MGMT.audit_trail_write_mode,
audit_trail_property_value => DBMS_AUDIT_MGMT.audit_trail_immediate_write);
END;
/
BEGIN
DBMS_AUDIT_MGMT.set_audit_trail_property (
audit_trail_type => DBMS_AUDIT_MGMT.audit_trail_unified,
audit_trail_property => DBMS_AUDIT_MGMT.audit_trail_write_mode,
audit_trail_property_value => DBMS_AUDIT_MGMT.audit_trail_queued_write);
END;
/
25. http://www.azeroug.org
25/
UNİFİED AUDİT 12C
şənbə, 21 aprel 2018-cü il
• Susmaya görə ORA_SECURECONFIG və ORA_LOGON_FAILURES
politikaları aktiv haldadır.
SELECT * FROM SYS.AUDIT_UNIFIED_ENABLED_POLICIES
SELECT * FROM SYS.AUDIT_UNIFIED_POLICIES
• Sintaksis:
CREATE AUDIT POLICY policy_name
{ {privilege_audit_clause [action_audit_clause ] [role_audit_clause ]}
| { action_audit_clause [role_audit_clause ] }
| { role_audit_clause }
}
[WHEN audit_condition EVALUATE PER {STATEMENT|SESSION|INSTANCE}]
[CONTAINER = {CURRENT | ALL}];
26. http://www.azeroug.org
26/
UNİFİED AUDİT 12C
şənbə, 21 aprel 2018-cü il
CREATE AUDIT POLICY test_audit_policy
ACTIONS DELETE ON test.tab1,
INSERT ON test.tab1,
UPDATE ON test.tab1,
SELECT ON test.tab1_seq,
ALL ON test.tab2,
SELECT ON test.tab2_seq WHEN
'SYS_CONTEXT(''USERENV'', ''SESSION_USER'') = ''TEST2'''
EVALUATE PER SESSION
CONTAINER = CURRENT;
AUDIT POLICY test_audit_policy WHENEVER SUCCESSFUL;
NOAUDIT POLICY test_audit_policy;