Logging und Auditing unter 10gR2

Werbung
Logging und Auditing
unter 10g R2
Dr. Günter Unbescheid
Database Consult GmbH - Jachenau
Database Consult GmbH
Logging und Auditing unter 10g R2
•
•
•
Gegründet 1996
Kompetenzen im Umfeld von ORACLE-basierten Systemen
Tätigkeitsbereiche
–
–
–
–
–
–
–
–
Tuning, Installation, Konfiguration
Support, Troubleshooting, DBA-Aufgaben
Datenmodellierung und –design
Datenbankdesign, Systemanalysen
Programmierung: SQL,PL/SQL,Java, JSP, ADF UIX, BC4J
Schulungen
Expertise/Gutachten
www.database-consult.de
©Database Consult GmbH - Jachenau
11/2007
Folie 2 von 42
Featureprofil - Anforderungsprofil
Logging und Auditing unter 10g R2
40
35
30
25
FP
AP
20
15
10
5
0
R1
R2
R3
R4
R5
©Database Consult GmbH - Jachenau
11/2007
Folie 3 von 42
Spannungsfeld Auditing
Logging und Auditing unter 10g R2
Gesetze
Anforderungen
Features
©Database Consult GmbH - Jachenau
11/2007
Folie 4 von 42
Rahmenbedingungen
Logging und Auditing unter 10g R2
Planung
Auswertung
Konfiguration
©Database Consult GmbH - Jachenau
11/2007
Folie 5 von 42
Motto
Logging und Auditing unter 10g R2
Sicherheitist
istkein
keinautomatischer
automatischerProzess,
Prozess,
Sicherheit
sondern eine
einezielgemässe
zielgemässeund
undbewusste
bewusste
sondern
Planung,Umsetzung
Umsetzungund
undKontrolle.
Kontrolle.
Planung,
oder
oder
CooleFeatures
Featuresmachen
machennoch
nochkeinen
keinen
Coole
Sommer!
Sommer!
Nur wer sein Ziel kennt,findet den
Weg
Lao-Tse
©Database Consult GmbH - Jachenau
11/2007
Folie 6 von 42
Begriffe/Ziele
Logging und Auditing unter 10g R2
log(L)
(L)==aufzeichnen/protokollieren
aufzeichnen/protokollieren
log
(A)==prüfen/überprüfen
prüfen/überprüfen
audit(A)
audit
BedarfsgerechteKonfiguration
Konfigurationund
und
Ziel:Bedarfsgerechte
Ziel:
Auswertungvon
vonLA,
LA,
Auswertung
BeiAllem:
Allem:AUDIT
AUDITschützt
schütztnicht!
nicht!
Bei
©Database Consult GmbH - Jachenau
11/2007
Folie 7 von 42
Prinzip Audit
Logging und Auditing unter 10g R2
Erlaubte Aktionen
Kontrolle der Ressourcen
Identifizierte Benutzer
Kein Schutz vor Missbrauch wenn identifizierte Benutzer erlaubte Aktionen
regelwidrig verwenden!
©Database Consult GmbH - Jachenau
11/2007
Folie 8 von 42
Konzeption
Logging und Auditing unter 10g R2
• Geschäftsumfeld – gesetzliche Grundlagen
• IT-Landschaft – Server, Netze, Firewalls
• Applikationskontexte
– Typ: Client-Server, Web-Applikationen
– Authentifizierung und Autorisierung
– Individueller Schutzbedarf zur Sicherstellung von
Vertraulichkeit, Integrität und Verfügbarkeit
• Konzeptionelle Anforderungen an LA entwickeln
– was – wann – wo
• LA individuell konfigurieren/implementieren
• Regelmässige Auswertungen/Reports
– Routinen festlegen
©Database Consult GmbH - Jachenau
11/2007
Folie 9 von 42
Konzeption
Logging und Auditing unter 10g R2
• Erfassung der Applikationen und deren Architektur
• Schutzbedarf applikations-spezifisch ermitteln
– Authentifizierung und Authentifizierungspfade
– Authorisierungskonzepte (Gruppen und Rollen)
– Schützenswerte Kontexte (
• Planung
–
–
–
–
Grundkonfiguration der Datenbank
Audit-Optionen ermitteln
Reporting und Analyseverfahren zur Audit-Auswertung
Verfahren zur Archivierung/Löschung
• Graphiken helfen bei der Übersicht/Planung
• Audit ist keine Frage der Performance!
©Database Consult GmbH - Jachenau
11/2007
Folie 10 von 42
„Housekeeping“
Logging und Auditing unter 10g R2
• Auswertung
– „real time“ zur spontanen Reaktion
– mittlel- bzw. langfristige Analysen/Trends
• Löschen versus Archivieren
– Zeitraster/Eventraster festlegen
– Schutz von unauthorisiertem Löschen
– Zusammenführen von disjunkten Audit Stores?
©Database Consult GmbH - Jachenau
11/2007
Folie 11 von 42
Applikations-Diagramm
Logging und Auditing unter 10g R2
OID/LDAP
A
Application
A
DBa
DBb
A
A
ApplicationContext
©Database Consult GmbH - Jachenau
11/2007
Folie 12 von 42
Authentifizierungsdiagramm
A
A
B
B
Global(s)
A
Global(dn)
Client-ID
A
C
B
B
A
C
B
©Database Consult GmbH - Jachenau
11/2007
Folie 13 von 42
Logging und Auditing unter 10g R2
DB-User
Authentifizierungsdiagramm
Global(s)
Global(dn)
Client-ID
A
C
B
A
B
A
A
B
B
A
A
C
B
B
©Database Consult GmbH - Jachenau
11/2007
Folie 14 von 42
Logging und Auditing unter 10g R2
DB-User
Risiken Auditing
©Database Consult GmbH - Jachenau
11/2007
Folie 15 von 42
Logging und Auditing unter 10g R2
• Überlauf von Speicherbereichen bei ungenügendem
„Housekeeping“
• Ignoranz gegenüber Attacken bei ungenügender
Auswertung und Analyse
• Löschung relevanter Inhalte durch Hochprivilegierte
(DBA-Group / Root)
Übersicht: Logging
Logging und Auditing unter 10g R2
• Datenbank: Alert-Log
–
–
–
–
–
zwanghaft
startup- und shutdown-Informationen
administive Logging create/drop tablespace u.v.a.
interne Fehler, non-default init.ora
keine Benutzer-Informationen (!)
• Oracle Net: Listener und Client/Database
– zwanghaft
– Namen und Verzeichnisse der log-Dateien bestimmbar
– erfolgreiche und erfolglose Connect Requests, error stack
01-AUG-2006 13:04:57 *
(CONNECT_DATA=(SERVICE_NAME=mr.dbc.de)(SERVER=DEDICATED)(CID=(PROGRAM=C:\Pr
ogramme\KeepTool\KeepTool 7\Hora.exe)(HOST=DATTATREYA2)(USER=xxxx))) *
(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.45.98)(PORT=1635)) * establish *
mr.dbc.de * 0
©Database Consult GmbH - Jachenau
11/2007
Folie 16 von 42
Markierungen
Logging und Auditing unter 10g
R2
Werkzeuge
•
Individuelles Schreiben in Trace- und Alert-Dateien
– Markierung relevanter Code-Kontexte
•
Setzen von Zeitstempeln
BEGIN
-- schreibt Zeitstempel in TRACE-Datei
dbms_system.ksdddt;
-- Einzug mit Doppelpunkten ("::::")
dbms_system.ksdind(4);
dbms_system.ksdwrt (1, 'Output written to trace file');
dbms_system.ksdwrt (2, 'Output written to alert log');
dbms_system.ksdwrt
(3, 'Output written to both trace file and alert log');
END;
©Database Consult GmbH - Jachenau
11/2007
Folie 17 von 42
Übersicht Auditing
„Mandatory“ Auditing
– für sysdba und sysoper
– einzelne aud-Dateien
– Verzeichnis über
audit_file_dest
•
SYS-Auditing
– erweitertes Auditing für SYS,
SYSOPER und SYSDBA
– erfolgreiche und fehlerhafte
Aktionen
– audit_sys_operations=
true
– Neustart erforderlich
Sun Nov 12 18:00:24 2006
ACTION : 'CONNECT‚
DATABASE USER: '/‚
PRIVILEGE : SYSDBA
CLIENT USER: oracle
CLIENT TERMINAL: pts/4
STATUS: 0
Sun Nov 12 18:00:26 2006
ACTION : 'ALTER DATABASE OPEN‚
DATABASE USER: '/‚
PRIVILEGE : SYSDBA
CLIENT USER: oracle
CLIENT TERMINAL: pts/4
STATUS: 0
Sun Nov 12 18:01:08 2006
ACTION : 'select name, value
from v$parameter
where name like '%audit%'‚
©Database Consult GmbH - Jachenau
11/2007
Folie 18 von 42
Logging und Auditing unter 10g R2
•
Audit file
/u01/app/oracle/admin/xy/adump/
ora_7511.aud
Übersicht Auditing
Logging und Auditing unter 10g R2
• „Application Auditing“
– individuell programmiert, z.B. Journaling Tabellen, StatusTabellen, Nutzung von Triggern
– flexibel, vielseiting und DB-unabhängig
– ggf. umgehbar, wenn Applikation nicht genutzt wird.
– ggf. per autonomous transaction
• Version Query und Transaction Query
–
–
–
–
„Flashback“ Features
können für Auditing eingesetzt werden
„Polling“ Prinzip – explizite Abfragen nötig
gebunden an undo_management und undo_retention
©Database Consult GmbH - Jachenau
11/2007
Folie 19 von 42
Übersicht Auditing
Logging und Auditing unter 10g R2
• DB-Auditing (Standard-Auditing)
–
–
–
–
Objekt-bezogen
Privilegien-Auditing
Statement – Gruppen von Statements
Content-Auditing (fine-grain auditing)
• Zusätzliche Filter
– Benutzer
– Erfolgreich/erfolglos/beides
– Session/Statement
©Database Consult GmbH - Jachenau
11/2007
Folie 20 von 42
Alternative Nutzung
Logging und Auditing unter 10g R2
• Accounting durch
– session_cpu
– logoff_lread
– logoff_pread
• Statistiken durch
– timestamp Informationen
– Username
– Action
©Database Consult GmbH - Jachenau
11/2007
Folie 21 von 42
Grundkonfiguration audit_trail
Logging und Auditing unter 10g R2
• nicht für FGA und SYS-Auditing
• NONE – default = keine audit_trail
• DB – in der Datenbank unter sys.aud$
– Nutzung diverser Views
– einfache Generierung von Reports/Auswertungen
• OS – Betriebssystem
– einfacher zu schützen vor Manipulationen durch DBAs
– komplexere Auswertung/Filterung, nicht alle Daten geloggt!!
Sun Nov 12 19:39:54 2006
SESSIONID: "788" ENTRYID: "1" STATEMENT: "1" USERID: "MRX" USERHOST:
"Ganga" TERMINAL: "pts/5" ACTION: "100" RETURNCODE: "0" COMMENT$TEXT:
"Authenticated by: DATABASE" OS$USERID: "oracle" PRIV$USED: 5
Sun Nov 12 19:40:15 2006
SESSIONID: "788" ENTRYID: "1" ACTION: "101" RETURNCODE: "0" LOGOFF$PREAD:
"2" LOGOFF$LREAD: "1163" LOGOFF$LWRITE: "0" LOGOFF$DEAD: "0" SESSIONCPU:
"26"
©Database Consult GmbH - Jachenau
11/2007
Folie 22 von 42
Grundkonfiguration audit_trail
– darstellbar und filterbar/analysierbar über XML-Standard-Tools
– voluminös
– DB-interne Sicht über v$xml_audit_trail und
DBA_COMMON_AUDIT_TRAIL
– Integriert auch „mandatory auditing“ und SYS Audit Operationen
• Typen „SYS XML Audit“, „Mandatory XML Audit“,
„Standard XML Audit“
• DB und XML extended
– zusätzliches Protokoll von SQL, Bindevariablen SCN
©Database Consult GmbH - Jachenau
11/2007
Folie 23 von 42
Logging und Auditing unter 10g R2
• XML – wie OS nur in XML-Format
Grundkonfiguration audit_trail
Logging und Auditing unter 10g R2
• Nutzen des SystemLogs
– audit_trail = OS und
audit_syslog_level=facility.priority setzen
– guter Schutz von DBA-Manipulationen
– setzt Erfahrung mit SYSLOG voraus
• Generell beachten:
– Record wird auch geschrieben, wenn rollback erfolgt.
– modifiziertes SQL (VPN) wird in Originalform protokolliert.
– Löschen von DB-Einträgen per Rolle
DELETE_CATALOG_ROLE
©Database Consult GmbH - Jachenau
11/2007
Folie 24 von 42
Statement Audit
Logging und Auditing unter 10g R2
AUDIT DROP TABLEBY SESSION;
AUDIT TYPE -- Gruppierung
BY SESSION
7
AUDIT SYSTEM AUDIT;
AUDIT DELETE FROM table
BY
GU
BY ACCESS
WHENEVER SUCCESSFUL
/
NOAUDIT TRUNCATE TABLE
BY
SCOTT
WHENEVER NOT SUCCESSFUL
/
View DBA_STMT_AUDIT_OPTS
View DBA_AUDIT_STATEMENT
©Database Consult GmbH - Jachenau
11/2007
Folie 25 von 42
Privilege Audit
Logging und Auditing unter 10g R2
AUDIT CREATE ANY CLUSTER
BY BLA
BY ACCESS
WHENEVER SUCCESSFUL
/
AUDIT ALL PRIVILEGES
BY SESSION
/
View DBA_PRIV_AUDIT_OPTS
View DBA_AUDIT_SESSION, DBA_AUDIT_TRAIL
©Database Consult GmbH - Jachenau
11/2007
Folie 26 von 42
Object Audit
Logging und Auditing unter 10g R2
AUDIT COMMENT
ON SCOTT.T
BY SESSION
/
AUDIT INDEX
ON SCOTT.T
BY SESSION
WHENEVER SUCCESSFUL
/
View DBA_OBJ_AUDIT_OPTS
View DBA_AUDIT_OBJECT, DBA_AUDIT_TRAIL,
DBA_COMMON_AUDIT_TRAIL
©Database Consult GmbH - Jachenau
11/2007
Folie 27 von 42
Default Audit
Logging und Auditing unter 10g R2
AUDIT GRANT ON DEFAULT
/
-- wirkt für zukünftige Objekte
©Database Consult GmbH - Jachenau
11/2007
Folie 28 von 42
User Identifizierung per audit_trail
Logging und Auditing unter 10g R2
•
•
•
•
•
•
•
DB_USER – Datenbankuser
SESSIONID
GLOBAL_UID – Enterprise User
EXT_NAME – external Name (z.B. DN)
OS_USER
CLIENT_ID
COMMENT_TEXT – authentication
– database, network, proxy
©Database Consult GmbH - Jachenau
11/2007
Folie 29 von 42
Application Info
client_info, module, action über DBMS_APPLICATION_INFO
client_id über DBMS_SESSION – „auditierbar“
•
Filtern teilweise möglich über
Logging und Auditing unter 10g R2
•
•
– v$session,
– v$sqlarea, v$sql
– dbms_monitor
BEGIN
DBMS_APPLICATION_INFO.SET_CLIENT_INFO
( CLIENT_INFO => 'Test-Client');
DBMS_SESSION.SET_IDENTIFIER
(CLIENT_ID => 'Test-ID');
END;
©Database Consult GmbH - Jachenau
11/2007
Folie 30 von 42
Fine Grain Auditing
AUDITING abhängig von Inhalt (WHERE Bedingung)
ab 10g für alle DMLs
kein „not successful“ nur wenn Rows „getroffen“ werden
unabhängig von AUDIT_TRAIL – Einstellungen
Views DBA_FGA_AUDIT_TRAIL und
DBA_COMMON_AUDIT_TRAIL
• API per Package DBMS_FGA
• Typen:
– Bedingung: direkt oder per Function
– Spalten-Auswahl (zusätzlich oder separat)
– Event-Handler (Aktionen im Fall eines Falles)
©Database Consult GmbH - Jachenau
11/2007
Folie 31 von 42
Logging und Auditing unter 10g R2
•
•
•
•
•
Fine Grain Auditing
Logging und Auditing unter 10g R2
BEGIN
DBMS_FGA.ADD_POLICY (
object_schema => ‘SCOTT’,
object_name => ‘EMP‘,
policy_name => ‘testpol‘,
audit_condition => ‚schema.funct = 1‘,
audit_column => ‚SAL‘
-- handler_schema
-- handler_module
);
END;
/
©Database Consult GmbH - Jachenau
11/2007
Folie 32 von 42
Oracle Flashback
– FB query
– FB Version Query: Abfragen, die „alte“ Daten und Metadaten
liefern
– FB Transaction Query – Metadaten über Transaktionen einer
Zeitspanne
– (FB Database, FB Table, FB Drop)
• FB arbeitet auf Basis der Undo Tablespace:
– undo_management, undo_tablespace und
undo_retention (Ausnahme FB Database)
– retention garantee Klausel der UTS
– version query: grant flashback + select
– Transaction Query: select any transaction und
supplemental logging eingeschaltet
©Database Consult GmbH - Jachenau
11/2007
Folie 33 von 42
Logging und Auditing unter 10g R2
• Flashback Features
FB Query
©Database Consult GmbH - Jachenau
11/2007
Folie 34 von 42
Logging und Auditing unter 10g R2
SELECT * FROM employees AS OF TIMESTAMP
TO_TIMESTAMP('2004-04-04 09:30:00', 'YYYY-MM-DD
HH:MI:SS')
WHERE last_name = 'Unbescheid'
/
INSERT INTO employees
(SELECT * FROM employees
AS OF TIMESTAMP
TO_TIMESTAMP('2004-04-04 09:30:00', 'YYYY-MM-DD
HH:MI:SS')
WHERE last_name = 'Unbescheid');
-- Timestamp to SCN-Mapping mit 3 Sek. Granularität
INSERT INTO employees
(SELECT * FROM employees AS OF
TIMESTAMP (SYSTIMESTAMP - INTERVAL '60' MINUTE))
-- SYSTIMESTAMP refers to the time zone of the database
host environment
MINUS SELECT * FROM employees);
FB Query
Logging und Auditing unter 10g R2
SELECT ora_rowscn, last_name, salary
FROM employees
WHERE employee_id = 7788;
-- normal upper bound, exakter für ROWDEPENDENCIES
-- Package DBMS_FLASHBACK
-- DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER
-- DBMS_FLASHBACK.ENABLE_AT_TIME or
-- DBMS_FLASHBACK.ENABLE_AT_SYSTEM_CHANGE_NUMBER
-- DBMS_FLASHBACK.DISABLE
-- function SCN_TO_TIMESTAMP
UPDATE employees
SET salary = salary + 100
WHERE employee_id = 7788
AND ora_rowscn = 202553
/
©Database Consult GmbH - Jachenau
11/2007
Folie 35 von 42
Oracle Flashback Version Query
Versionen von Rows in einer gegebenen Zeitspanne
Ergebnis mit distinktiven Versionen von Rows
Pseudospalten verfügbar
SELECT versions_startscn, versions_starttime,
versions_endscn, versions_endtime,
versions_xid, versions_operation,
name, salary
FROM employees
VERSIONS BETWEEN TIMESTAMP
TO_TIMESTAMP('2003-07-18 14:00:00', 'YYYY-MM-DD HH24:MI:SS')
AND
TO_TIMESTAMP('2003-07-18 17:00:00', 'YYYY-MM-DD HH24:MI:SS')
WHERE name = 'JOE';
©Database Consult GmbH - Jachenau
11/2007
Folie 36 von 42
Logging und Auditing unter 10g R2
•
•
•
Flashback Transaction Query
View falshback_transaction_query
XIDs, SCNs, User und Undo SQL für zurückliegende Transaktionen
SELECT xid, operation, start_scn,commit_scn, logon_user,
undo_sql
FROM flashback_transaction_query
WHERE xid = HEXTORAW('000200030000002D')
/
SELECT xid, logon_user FROM flashback_transaction_query
WHERE xid IN (SELECT versions_xid FROM employees VERSIONS
BETWEEN TIMESTAMP
TO_TIMESTAMP('2003-07-18 14:00:00', 'YYYY-MM-DD HH24:MI:SS')
AND
TO_TIMESTAMP('2003-07-18 17:00:00', 'YYYY-MM-DD
HH24:MI:SS'));
©Database Consult GmbH - Jachenau
11/2007
Folie 37 von 42
Logging und Auditing unter 10g R2
•
•
Audit Vault
– Audit-Informationen liegen verteilt: in zugehörigen DBs bzw.
Filesystemen
– kein vollständiger Schutz vor Manipulationen (Oracle-User,
Root-User)
– unterschiedliche Formate: Tabellen, XML, Textdateien
• Audit Vault – DWH für Audit-Daten
– Produkt ist Beta seit Ende 05 – erwartet in Kürze (1.Q 2007)
– zentrales Audit Repository für Konsolidierung und Management
von Quellsystemen
– Entlastung von Produktivsystemen
– zentrales Management und Auswertung (Reports, Alerts)
– „gehärtete“ Konfiguration
©Database Consult GmbH - Jachenau
11/2007
Folie 38 von 42
Logging und Auditing unter 10g R2
• IST-Stand:
Audit Vault
Logging und Auditing unter 10g R2
Quelle: Oracle
©Database Consult GmbH - Jachenau
11/2007
Folie 39 von 42
Audit Vault
– Basisformat mit abgeleiteten Formaten je nach Audit-Kategorie
• Unterschiedliche Source-Typen
– Datenbank, Application Server ...
• Policies regeln Audit-Optionen
– Abgleich mit IST auf Quellsystemen („policy violation“)
– „Deployment“ auf Quellsysteme
• Prozesse
– Audit Loader, Data Processor, Alert Agent, Data Archiver
©Database Consult GmbH - Jachenau
11/2007
Folie 40 von 42
Logging und Auditing unter 10g R2
• Quellsysteme möglicherweise von 9iR2 bis 10g
• Aufzeichnungsformat basiert auf Distributed Audit
Service (XDAS)
Audit Vault
Logging und Auditing unter 10g R2
• Datensammlung aus DB
– Audit-Daten
– Redo Logs
• Software Developement Kit für Datensammlung
• Separation of Duties - Rollenmodell
– Auditor, Audit Admin, Audit Archiver, Audit Vault Super User –
exklusiv innerhalb einer Session
– DBA-Schutz des Schemas (Database Vault) – Schemazugriff
nur über Rollen – Rollenadministration durch AV Super User
– Zugriff nur per SSL möglich – sichere Datenübermittlung
• Integrierte Alerts
©Database Consult GmbH - Jachenau
11/2007
Folie 41 von 42
Audit Vault
Daten partitioniert nach Sourcen und Zeit
AV Warehouse für historische Partitionen
Workflow: von aktuell über Komprimierung ins DWH
Reporting
–
–
–
–
voreingestellte Analysen
Erstellung eigener Auswertung
Automatische Report-Generierung
BI-Integration
©Database Consult GmbH - Jachenau
11/2007
Folie 42 von 42
Logging und Auditing unter 10g R2
•
•
•
•
Logging und Auditing unter 10g R2
Danke für‘s Zuhören
©Database Consult GmbH - Jachenau
11/2007
Folie 43 von 42
Herunterladen