ADMINISTRACE ORACLE:
AUDIT D ATABÁZE Michal Vajbar
Seznám enís databázovým auditem U kládánízískaných inform ací Audit Traila ukládánído O S Vždy zaznam enávané akce Sledováníadm inistrátorů Řízeníauditu – zapnutí,nastavení... Audit v prostředíklient-server Vypnutíauditu – NOAUDIT Velikost dat Audit Trailu Fine-Grained Auditing Pohledy na Audit Trail Zdroje
OBSAH: 2
Seznám enís D B auditem • D B audit = sledováníuživatelských aktivit v D B • Lze sledovat operace,uživatele,tabulky ... • Sam otné sledovánínenínáročné,ale m ůže produkovat m noho inform ací
3
U kládánízískaných inform ací • Audit Trail – Je v datovém slovníku každé D B – Výhody: • Lze používat předdefinované pohledy z D B • Lze využít nástroje O racle pro tvorbu zpráv (O racle Reports)
• O peračním systém em k dalším záznam ům – Podpora v O S různá – ve W indow s do aplikačního logu – Výhody: • Kom plexnějšíanalýza činnosti
• O racle um ízaznam enávat současně do obou 4
Audit Trail • • • •
U ložen v tabulce SYS.AUD$ O bsah závisína konkrétním nastaveníauditu N ezaznam enává vstupníanivýstupnídata Vždy obsahuje: – – – – – – – –
U živatelův login z operačního systém u Jm éno uživatele Identifikátor session Identifikátor term inálu Jm éno objektu,ke kterém u se přistupuje O perace vykonané ineúspěšné pokusy o vykonání N ávratový kód operací D atum a čas
5
U kládánído O S • U kládá se cokoliv z: – – – –
Stejné inform ace jako do Audit Trail Záznam y generované operačním systém em ČinnostiD B,které se zaznam enávajívždy Činnost adm inistrátorů
• Záznam y se ukládajíve form ě kódů: – Kódy akcí– popis kódů v tabulce AUDIT_ACTIONS – Použitá příst.práva – popis v SYSTEM_PRIVILEGE_MAP – Výsledek akce – úspěch=0,neúspěch=O racle error code 6
Vždy zaznam enávané akce • Ikdyž je Audit vypnutý • U kládajíse do O S • Připojeník instancis adm inistrátorským iprávy – SYSOPER nebo SYSDBA
• Spuštěnídatabáze – Zaznam ená se login,term inál,čas,datum a inform ace, zda je zapnuto auditování
• Vypnutídatabáze – Login,term inál,datum ,čas 7
Sledováníadm inistrátorů • = U živatelé připojujícíse s oprávněním SYS (zahrnuje SYSDBA i SYSOPER) • Zapnutí:AUDIT_SYS_OPERATIONS = TRUE – defaultně FALSE
• Záznam y zapisovány do O S (ne do SYS.AUD$) – Zaznam enávajíse všechny příkazy nezávisle na nastaveníparam etru AU D IT_TRAIL (viz dále) 8
CONNECT / AS SYSDBA; ALTER SYSTEM FLUSH SHARED_POOL; UPDATE salary SET base=1000 WHERE name='myname';
Pokud je povoleno sledováníadm inistrátorů: Thu Jan 24 12:58:00 2002 ACTION: 'CONNECT' DATABASE USER: '/' OSPRIV: SYSDBA CLIENT USER: scott CLIENT TERMINAL: pts/2 STATUS: 0
Thu Jan 24 12:58:00 2002 ACTION: 'alter system flush shared_pool' DATABASE USER: '' OSPRIV: SYSDBA CLIENT USER: scott CLIENT TERMINAL: pts/2 STATUS: 0
Thu Jan 24 12:58:00 2002 ACTION: 'update salary set base=1000 where name='myname‚‘ DATABASE USER: '' OSPRIV: SYSDBA CLIENT USER: scott CLIENT TERMINAL: pts/2 STATUS: 0 9
Zapnutíauditu • Každý přihlášený uživatelm ůže kdykoliv nastavit sledovánípříkazů,práv a objektů • Sledovánízačne,až po povoleníauditu – Zpravidla zapíná bezpečnostníadm inistrátor
• Všechny inicializačníparam etry jsou statické – Po zm ěně nastaveníje nutné restartovat D B
• Inicializačníparam etry: – AUDIT_TRAIL – AUDIT_SYS_OPERATIONS – AUDIT_FILE_DEST 10
AUDIT_TRAIL • Zapíná a vypíná sledování • M ožné hodnoty: – DB • Zapne auditing,všechny záznam y ukládány do Audit Traildatabáze (až na záznam y vždy ukládané do O S)
– OS • Zapne auditing,všechny záznam y ukládány do O S
– NONE • Vypíná auditing,výchozínastavení 11
AUDIT_FILE_DEST • N astavuje adresář v operačním systém u,kam se ukládajízáznam y – M usíbýt nastaveno AUDIT_TRAIL=OS
• U kládajíse sem také vždy sledované inform ace • Je-li nastaven AUDIT_SYS_OPERATIONS, pak se sem ukládajíizáznam y o adm inistrátorech • N ení-linastaven,je defaultním adresářem $ORACLE_HOME/rdbms/audit • N a různých O S různě podporováno 12
N astaveníauditu – AUDIT • D ruhy param etrů příkazu AUDIT: – SledováníSQ L příkazů (případně na určitých objektech) Př.:AUDIT TABLE sleduje CREATE TABLE, TRUNCATE TABLE, COMMENT ON TABLE a DELETE [FROM] TABLE
• SledováníSQ L příkazů v závislostina přístupových právech Př.:AUDIT CREATE ANY TRIGGER zaznam enává používání práva CREATE ANY TRIGGER
• Sledovánípříkazů na určitých objektech Př.:ALTER TABLE na tabulce emp
• Pro sledováníSQ L příkazů nutno m ít AUDIT SYSTEM právo,u objektů vlastnit nebo m ít AUDIT ANY právo 13
N astaveníauditu – AUDIT • U přesňujícíparam etry: – BY SESSION (default) • V session zapíše pro všechny příkazy jeden záznam
– BY ACCESS • V session zapíše pro každý příkaz sam ostatný záznam
– WHENEVER SUCCESSFUL • Zaznam enává operace,které uspěly
– WHENEVER NOT SUCCESSFUL • Zaznam enává operace,které se neprovedly nebo skončily chybou
– NOT EXISTS • Zaznam enává operace,které selhaly,protože jejich cílový objekt neexistuje 14
Příklady nastavení(1)
Zaznam enává úspěšná ineúspěšná připojenía odpojení všech uživatelů k D B AUDIT SESSION;
Zaznam enává úspěšná ineúspěšná připojenía odpojeník D B uživatelů scott a lori AUDIT SESSION BY scott, lori; 15
Příklady nastavení(2)
Zaznam enává úspěšné ineúspěšné pokusy použít pravo m azat tabulky AUDIT DELETE ANY TABLE;
Vytvořípro každé neúspěšné použitípráva m azat tabulky jeden záznam AUDIT DELETE ANY TABLE BY ACCESS WHENEVER NOT SUCCESSFUL;
Vytvořípro každé neúspěšné použitípříkazů SELECT,IN SERT, D ELETE a nevykonáníprocedury jeden záznam AUDIT SELECT TABLE, INSERT TABLE, DELETE TABLE, EXECUTE PROCEDURE BY ACCESS WHENEVER NOT SUCCESSFUL; 16
Příklady nastavení(3)
Vytvoříspolečný záznam pro všechny úspěšné ineúspěšné pokusy mazat v tabulce emp vlastněné uživatelem scott AUDIT DELETE ON scott.emp;
Vytvořípro každý úspěšný SELECT, INSERT a DELETE v tabulce dept vlastníka jward sam ostatný záznam AUDIT SELECT, INSERT, DELETE ON jward.dept BY ACCESS WHENEVER SUCCESSFUL;
Vytvoříspolečný záznam pro všechny neúspěšné příkazy SELECT na defaultních objektech AUDIT SELECT ON DEFAULT WHENEVER NOT SUCCESSFUL;
17
Audit v prostředíklient-server • O racle ochraňuje identitu uživatelů na všech uzlech • Pom ocíparam etru BY proxy u příkazu AUDIT • Lze sledovat: – SQ L příkazy z určitého uzlu zastupujícího určitého uživatele – Příkazy zastupujícíurčitého uživatele – Všechny příkazy zastupujícílibovolné uživatele
Př.AUDIT :
SELECT TABLE BY appserve ON BEHALF OF jackson;
18
Vypnutíauditu - NOAUDIT • Lze vypínat různá sledovacípravidla • BY user – Vypne sledováníurčitých uživatelů
• BY proxy – Vypne sledováníurčitých uzlů
• WHENEVER ... – Vypne sledováníúspěšných čineúspěšných příkazů – N ení-liuveden,pak vypne sledováníobou
• N elze m ěnit nastaveníBY ACCESS a BY SESSION 19
NOAUDIT - příklady NOAUDIT session; NOAUDIT session BY scott, lori; NOAUDIT DELETE ANY TABLE; NOAUDIT SELECT TABLE, INSERT TABLE, DELETE TABLE, EXECUTE PROCEDURE; NOAUDIT ALL; • Vypne sledovánívšech příkazů
NOAUDIT ALL PRIVILEGES; • Vypne sledovánívšech práv (nutno m ít právo AUDIT SYSTEM)
NOAUDIT NOAUDIT NOAUDIT NOAUDIT
DELETE ON emp; SELECT, INSERT, DELETE ON jward.dept; ALL ON emp; ALL ON DEFAULT;
20
Velikost dat Audit Trailu • Pokud se Audit Trailzaplní,nelze ukládat další záznam y a sledované operace nezle vykonávat • Rychlost růstu a velikost dat závisína: – Počtu sledovaných příkazů a objektů – Frekvenciprováděnísledovaných příkazů
• D oporučuje se: – N ezapínat audit zbytečně – Pečlivě zvážit,co se bude sledovat – N epovolovat všem auditovat objekty • Řešení:security adm in buď vlastnívšechny objekty nebo m á právo AUDIT ANY 21
Čištěnía redukce velikostidat • SYS.AUD$ je tabulka, lze tedy: – M azat jako z norm álnítabulky (nutno m ít příslušná práva) – Vyexportovat a uložit jinde
• Po sm azánízáznam ů m á SYS.AUD$ stále alokované m ísto • Pro zm enšenísloužípříkaz TRU N CATE 22
Ochrana Audit Trailu • Pokud sledujem e zakázané aktivity,m usím e si chránit integritu získaných záznam ů • Právo DELETE ANY TABLE by m ělm ít jen security adm inistrátor • Sledovat zm ěny na Audit Trailu: AUDIT INSERT, UPDATE, DELETE ON sys.aud$ BY ACCESS; 23
Fine-Grained Auditing • Aktivity lze sledovat také podle obsahu dat,se kterým ise pracuje N apř.:M ějm e tabulky s platy zam ěstnanců. N evadínám dotazy na prům ěrný plat.D otazy na plat konkrétních zam ěstnanců nám vadí.
• Lze jejim plem entovat prostřednictvím balíčku D BM S_FG A nebo pom ocítriggerů
24
Pohledy na Audit Trail • STMT_AUDIT_OPTION_MA P • AUDIT_ACTIONS • ALL_DEF_AUDIT_OPTS • DBA_STMT_AUDIT_OPTS • DBA_PRIV_AUDIT_OPTS • DBA_OBJ_AUDIT_OPTS • USER_OBJ_AUDIT_OPTS • DBA_AUDIT_TRAIL • USER_AUDIT_TRAIL
• • • • • • • • •
DBA_AUDIT_OBJECT USER_AUDIT_OBJECT DBA_AUDIT_SESSION USER_AUDIT_SESSION DBA_AUDIT_STATEMENT USER_AUDIT_STATEMENT DBA_AUDIT_EXISTS DBA_AUDIT_POLICIES DBA_FGA_AUDIT_TRAIL
25
Oracle9i Database Administrator's Guide Release 2 (9.2) Oracle9i SQL Reference Release 2 (9.2)
ZDROJE
26