Audit DB Referát Vypracoval: Zdeněk Doležal zdenek.dolezal@gmail.com MFF UK Praha 11/5/06
Obsah 1.Audit databáze...3 Co to je audit db?...3 Kdy a jaký audit bychom měli použít?...3 Udržování informací z auditu...3 2.Jaké informace audit obsahuje?...3 Informace ukládané v databázi...3 Informace ukládané operačním systémem...4 3.Standardně auditované akce...4 4.Audit uživatelů s administrátorskými právy...4 5.Nastavení auditu...4 Zapnutí / vypnutí auditu...4 AUDIT_TRAIL...5 AUDIT_FILE_DEST...5 6.Příkaz AUDIT...5 Příklady použití příkazu AUDIT...5 Audit na příkazů a oprávnění...5 Audit objektů...6 7.Příkaz NOAUDIT...6 Příklady použití...6 8.Velikost audit trailu...6 9.Další informace, použité zdroje...7 Zdeněk Doležal 2 11/2/06
Audit databáze 1.Audit databáze Co to je audit db? Audit se používá v případě, že chceme mít naší databázi pod dohledem a chránit data před neoprávněným zásahem. Můžeme kontrolovat pokusy o neoprávněný přístup k databázi, sledovat a zaznamenávat práci jednotlivých uživatelů či kontrolovat jednotlivé objekty v databázi a akce na nich prováděné. Kdy a jaký audit bychom měli použít? V zásadě bychom aspon základní audit měli použít vždy. Ideální je zaznamenávat přístupy uživatelů, použití systémových oprávnění a změny ve struktuře databáze. Tento audit nám neukáže přístupy uživatelů k jednotlivým datům, ale alespoň nám dá přehled o (nesprávném) přístupu k databázi a použití práv. Pokud pak máme podezření na nějakého uživatele, můžeme zvýšit úroveň auditu popř. zaznamenávat přístupy ke konkrétní tabulce. Udržování informací z auditu Přestože auditování neklade na databázi velké nároky, zaznamenávat přístup ke všem datům není příliš praktické audit generuje mnoho věcí, v kterých se může být těžké vyznat, a také ovlivňuje výkonnost databáze. Proto je dobré udržovat počtet auditovaných událostí co nejmenší. 2.Jaké informace audit obsahuje? Informace získané z auditu můžeme ukládat buď přímo do databáze (AUDIT TRAIL) nebo využít k uložení prostředků operačního systému, popř. obojí. Informace ukládané v databázi V Oraclu se informace z auditu ukládájí do tabulky s názvem SYS.AUD$, která obsahuje množství odlišných informací lišících se podle auditované události. Následující informace jsou přístupné vždy: přihlašovací jméno uživatele v operačním systému uživatelské jméno session identifikátor terminál název schéma přistupovaného objektu prováděná operace Zdeněk Doležal 3 11/2/06
Jaké informace audit obsahuje? návratový kod operace datum a čas Informace ukládané operačním systémem záznamy generované OS záznamy generované databází záznamy o vždy auditovaných akcí záznamy o činnosti administrátorů 3.Standardně auditované akce Ikdyž je audit v Oraclu vypnutý, jsou vždy zaznamenávány určité události do systémového logu: přihlášení adminitrátorů Záznam auditu je vytvořen při přihlášení uživatele jako SYSOPER nebo SYSDBA. Může být zapnuté také plné auditování těchto uživatelů. start databáze Zaznamenává se uživatelské jméno, terminál, čas a jestli byla databáze nastartována se zapnutým auditem či nikoliv. vypnutí databáze Uživatel, který vyvoval shutdown databáze, terminál a čas. 4.Audit uživatelů s administrátorskými právy Uživatelé přihlašující se jako SYSOPER nebo SYSDBA mohou být plně (logují se všechny SQL příkazy) zapnutím následující direktivy v konfiguračním souboru 5.Nastavení auditu Zapnutí / vypnutí auditu AUDIT_SYS_OPERATIONS = TRUE Každý privilegovaný uživatel může nastavit sledování příkazů, privilegií a objektů. Audit je ukládán ale až poté, co je povolen v konfiguračním souboru adminstrátorem. Všechny nastavení auditu jsou statické, a tak se projeví až po restartu serveru. Zdeněk Doležal 4 11/2/06
Nastavení auditu AUDIT_TRAIL DB audit je zaznamenáván do databáze OS audit je zaznamenáván do logu OS NONE audit je vypnutý (default) AUDIT_FILE_DEST Specifikuje cestu, kam je audit zaznamenáván v případě nastavení AUDIT_TRAIL=OS. Standardně je nastaven na $ORACLE_HOME/rdms/audit. 6.Příkaz AUDIT Umožnuje nastavit audit na třech úrovních: příkazy Zaznamená použití určitého příkazu nebo skupiny příkazů. Např. AUDIT TABLE zaznamená použití příkazů: CREATE TABLE, TRUNCATE TABLE, COMMENT ON TABLE a DELETE [FROM] TABLE. privilegia Zaznamená použití příkazů povolené určitým oprávněním. Např. AUDIT CREATE ANY TRIGGER zaznamenává příkazy povolené systémovým oprávněním CREATE ANY TRIGGER. objekty Zaznamenávají se dotazy a přístup k těmto objektům. Pokud chcete nastavit audit na přikazy a privilegia, musíte mít AUDIT SYSTEM oprávnění. Pro nastavení auditu na objekty musíte buď objekt vlastnit a nebo mít AUDIT ANY oprávnění. Při auditu příkazů nebo privilegii můžeme audit upřesnit použitím slova BY a uvést uživatele. Příkaz AUDIT dále obsahuje tyto modifikátory: BY SESSION / BY ACCESS WHENEVER SUCCESSFUL / WHENEVER NOT SUCCESSFUL Příklady použití příkazu AUDIT Audit na příkazů a oprávnění Pokud chceme zaznamenávat přístupy do databáze (sessions) použijeme: Zdeněk Doležal 5 11/2/06
Příkaz AUDIT Můžeme také audit upřesnit na určité uživatele: AUDIT SESSION; AUDIT SESSION BY user, user2; Pro zaznamenání veškerého použití DELETE ANY TABLE privilegia použijeme: AUDIT DELETE ANY TABLE; Zaznamenání všech neúspěšných SELECT, INSERT a DELETE příkazů a neúspešného použití privilegia EXECUTE PROCEDURE všemi uživateli: AUDIT SELECT, INSERT, DELETE, EXECUTE PROCEDURE BY ACCESS WHENEVER NOT SUCCESSFUL; Audit objektů Zaznamenávání mazání dat z tabulky table uživatele user provedeme: AUDIT DELETE ON user.table; Úspěšně vložení a dotaz nad daty z tabulky user.table příkazem: AUDIT SELECT, INSERT ON user.table WHENEVER SUCCESSFUL; 7.Příkaz NOAUDIT Slouží naopak k vypnutí auditu určitých příkazů, privilegií či auditu objektů. Obsahuje stejnou WHENEVER klauzuli jako AUDIT. Klauzuli BY SESSION / BY ACCESS neobsahuje. Nezáleží na tom, jak byl audit zapnut. Příklady použití NOAUDIT SESSION; NOAUDIT SESSION by user; NOAUDIT SELECT TABLE, INSERT TABLE, DELETE TABLE, EXECUTE PROCEDURE; Můžete také vypnout auditování všech příkazů: NOAUDIT ALL; Popřípadě všech oprávnení: NOAUDIT ALL PRIVILEGES; 8.Velikost audit trailu Je potřeba si dávat pozor, protože pokud se audit trail neplní, nelze provádět auditováné příkazy popř. pracovat s auditovanými objekty. Zdeněk Doležal 6 11/2/06
Další informace, použité zdroje 9.Další informace, použité zdroje [1] Auditing Database Use http://download-uk.oracle.com/docs/cd/b10501_01/server.920/a96521/audit.htm#admin026 [2] Introduction to Simple Oracle Auditing http://www.securityfocus.com/infocus/1689 [3] Audit databáze http://tomm.matfyz.cz/semora/audit.pdf Zdeněk Doležal 7 11/2/06