ADMINISTRACE ORACLE: AUDIT DATABÁ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 DB 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í Datum 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 DB AUDIT SESSION; Zaznam enává úspěšná ineúspěšná připojenía odpojeník DB 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: Př.: 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 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 DELETE ON emp; NOAUDIT SELECT, INSERT, DELETE ON jward.dept; NOAUDIT ALL ON emp; NOAUDIT 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ů Doporuč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. Dotazy 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