<Insert Picture Here> Datenbank Audit: Anforderungen und Umsetzung Norman Sibbing Oracle Deutschland GmbH
Notwendigkeit einer Protokollierung Nachvollziehbarkeit Die Einhaltung des 9 Abs. 1 des BDSG ohne eine geeignete Protokollierung der Zugangskontrolle, Zugriffskontrolle, Weitergabekontrolle und Eingabekontrolle ist praktisch unmöglich. Revisionsfähigkeit (z.b. administrativer Tätigkeiten) Rechtliche Entlastung der Administratoren Überprüfung ordnungsgemäßer und damit rechtskonformen und sicheren Datenverarbeitung Einhaltung behördlicher und außerbehördlicher Regularien
IT Sicherheit: Schutzziele Alle sensiblen Informationen, Daten, IT-Systeme und IT-Ressourcen sind gemäss ihrem definierten Schutzniveau so geschützt, dass nur erlaubte Zugriffe und erlaubte Veröffentlichungen (Schutzziel: Vertraulichkeit), erlaubte Änderungen (Schutzziel: Integrität) und erlaubte Löschungen bzw. Unterbrechungen (Schutzziel: Verfügbarkeit) möglich sind. Außerdem werden bei geschäftskritischen Verfahren alle sicherheitsrelevanten Vorgänge im erforderlichen Umfang protokolliert und ausgewertet (Schutzziel: Nachvollziehbarkeit). Quelle: BSI (IT Sicherheitrichtlinien)
Was muss wann nachvollziehbar sein? Datenbank Audit Anforderungen SOX PCI DSS HIPAA Basel II FISMA GLBA Accounts, Roles & Permissions Berichte über GRANT und REVOKE Aktivitäten? Failed Logins Berichte über misslungene Anmeldeversuche und andere Besonderheiten? Privileged User Activity Berichte über DBA Aktivitäten? Access to Sensitive Data Berichte über Leseoperationen auf sensitive Daten (SELECTs)? Schema Changes Informationen über CREATE, DROP und ALTER Befehle auf relevanten DB Objekten? Data Changes Berichte über Datenveränderungen (Insert, Update, Merge, Delete)?
Datenbankschutz Monitoring Konfiguration Management Oracle Audit Vault Total Recall Zugriffskontrolle Oracle Database Vault Label Security Verschl. & Maskierung Zugriffskontrolle Monitoring Verschl. & Maskierung Advanced Security Secure Backup Data Masking
Datenbankschutz Monitoring Konfiguration Management Oracle Audit Vault Total Recall Zugriffskontrolle Oracle Database Vault Label Security Verschl. & Maskierung Zugriffskontrolle Monitoring Verschl. & Maskierung Advanced Security Secure Backup Data Masking
Prävention und Nachweis Prävention Authentifikation, Zugriffskontrolle Nachweis Database Auditing Audit des Benutzers, des Objektes, des Privilegs Ermittlung von erfolgreichen bzw. nicht erfolgreichen Aktionen Protokollierung von SYSDBA Aktivitäten (syslog)
Auditing Deklarativ Oracle Database Auditing (Standard) FGA (Fine Grained Auditing) Total Recall (Flashback Data Archiver) Audit Vault (zentraler Auditserver) Prozedural System Trigger (Startup, Shutdown, Logon, Logoff, DDL) UTL_FILE / DBMS_APPLICATION_INFO Package (Applikationslog) REDO (LogMiner, Streams Capture)
Auditing Deklarativ Oracle Database Auditing (Standard) FGA (Fine Grained Auditing) Total Recall (Flashback Data Archiver) Audit Vault (zentraler Auditserver) Prozedural System Trigger (Startup, Shutdown, Logon, Logoff, DDL) UTL_FILE / DBMS_APPLICATION_INFO Package (Applikationslog) REDO (LogMiner, Streams Capture)
Kategorien des Auditing Default / Mandatory Auditing Instance Startup / Shutdown Connects als DBA SYS Auditing Statement Auditing Protokolliert bestimmte Statements Einschränkbar auf Benutzer Privilege Auditing Protokolliert Statements, die ein Systemprivileg erfordern Einschränkbar auf Benutzer Schema Object Auditing Protokolliert Statements auf bestimmte Objekte
SYS Auditing Alle Aktivitäten des Benutzers SYS und der Benutzer, die sich AS SYSDB / SYSOPER angemeldet haben, können auf der BS-Ebene protokolliert werden Auch Text von SELECTs Initialisierungsparameter AUDIT_SYS_OPERATIONS Mögliche Einstellungen: true false Unabhängig vom Parameter AUDIT_TRAIL (s.u.)
Auditing: Umfang & Vorgehensweise Statischer Initialisierungsparameter AUDIT_TRAIL Mögliche Einstellungen: none os db db,extended xml xml,extended Dynamischer Parameter AUDIT_FILE_DEST Default: $ORACLE_BASE/admin/$ORACLE_SID/adump / Event Log Aktionen ohne Berücksichtigung von Inhalten DML und DDL pro Session (deprecated mit 11g) oder pro Ereignis Bei DDL auch für einzelne oder alle Benutzer Erfolgreiche und / oder fehlgeschlagene Aktionen SQL-Befehle AUDIT und NOAUDIT Befehle können auch bei AUDIT_TRAIL = NONE abgesetzt werden
Auditing Standardmäßig gesetzt AUDIT_TRAIL=DB Auditieren sicherheitsrelevanter Befehle ALTER DATABASE / PROFILE / SYSTEM / USER ALTER ANY PROCEDURE / TABLE AUDIT SYSTEM AUDIT ROLE / SYSTEM BY ACCESS CREATE EXTERNAL JOB / PUBLIC DATABASE LINK / SESSION / USER CREATE ANY JOB / LIBRARY / PROCEDURE / TABLE DROP PROFILE / USER DROP ANY PROCEDURE / TABLE EXEMPT ACCESS POLICY GRANT ANY OBJECT PRIVILEGE / PRIVILEGE / ROLE Eventuell Performance-Auswirkungen beachten Alternativ ist bei der Installation mit dbca auch anzugeben, dass das 10g- Verhalten weiterhin gelten soll
Alternative Ablagen für Auditing-Daten Auf dem Betriebssystem Immer beim DBA-Auditing Formate BS-Audit-Trail UNIX $ORACLE_HOME/rdbms/audit SYSLOG Auch auf andere Maschine Parameter AUDIT_SYSLOG_LEVEL Windows: Event-Log XML-formatierte Datei Neues PLSQL Package (DBMS_AUDIT_MGMT) ermöglicht die Änderung des Tablespaces für Aud$ und FGA_LOG$ Tabelle
Auditing Deklarativ Oracle Database Auditing (Standard) FGA (Fine Grained Auditing) Total Recall (Flashback Data Archiver) Audit Vault (zentraler Auditserver) Prozedural System Trigger (Startup, Shutdown, Logon, Logoff, DDL) UTL_FILE / DBMS_APPLICATION_INFO Package (Applikationslog) REDO (LogMiner, Streams Capture)
Fine Grained Auditing: Umfang 'Standard-'Auditing für viele Fälle zu wenig aussagekräftig Fine Grained Auditing (FGA) erlaubt Auditing in Abhängigkeit von gelesenen oder veränderten Daten Auditing, das konkrete Befehle erfasst Verfügbar für INSERT, UPDATE, DELETE und SELECT Verfügbar nur in der Enterprise Edition Funktioniert nur mit dem CBO
Fine-grained Auditing AUDIT_CONDITION : Audit Policy NAME!= USER AUDIT_COLUMN = SALARY SCOTT Not audited SELECT name, job, deptno FROM emp SELECT name, salary FROM emp WHERE name= KING EMP Audit Records (FGA_LOG$) SELECT name, salary FROM emp WHERE name = KING, <timestamp>, <userid>, etc. Send Alert!
Fine Grained Auditing - Vorgehensweise Unabhängig vom Parameter AUDIT_TRAIL Paket DBMS_FGA mit den Prozeduren ADD_POLICY DISABLE_POLICY DROP_POLICY ENABLE_POLICY Maximal 256 Policies pro Tabelle oder View
Fine Grained Auditing: Beispiel DBMS_FGA.ADD_POLICY( object_schema => 'scott', object_name => 'emp', policy_name => 'policy_emp', audit_condition => null, audit_column => 'sal, comm', handler_schema => 'scott', handler_module => 'informieren', enable => true, statement_types => 'SELECT, INSERT, UPDATE, DELETE', audit_column_opts => DBMS_FGA.ANY_COLUMNS, audit_trail => DBMS_FGA.DB + DBMS_FGA.EXTENDED);
Auditing Deklarativ Oracle Database Auditing (Standard) FGA (Fine Grained Auditing) Total Recall (Flashback Data Archiver) Audit Vault (zentraler Auditserver) Prozedural System Trigger (Startup, Shutdown, Logon, Logoff, DDL) UTL_FILE / DBMS_APPLICATION_INFO Package (Applikationslog) REDO (LogMiner, Streams Capture)
Total Recall Protokollierung von Datenveränderungen Daten aufbewahren und ihre (Nicht-) Veränderung nachweisen können Z.B. gesetzliche Bestimmungen (SOX, Basel II,... ) Flashback Data Archive Für sicheres Tracking von Änderungen, ILM, Auditing, Compliance,... Daten auf einfache Weise mit Zeitdimension versehen Transparenter Durchgriff Read Only ORDERS Select * from orders AS OF Midnight 31-Dec- 2003 User Tablespaces Änderung Total Recall Archive Tables Flashback Data Archive
Hintergrund Total Recall Basis der Archive sind Buffer Cache und Undo-Informationen Datenbank muss automatisches Undo-Management nutzen Undo-Informationen werden nicht gelöscht, bis diese archiviert worden sind Daten werden asynchron von einem eigenen Hintergrundprozess (fbda) erfasst Default Capture Intervall 5 Minuten Capture Intervall wird abhängig von der Systemauslastung automatisch geändert Der Prozess versucht, die Undo-Informationen aus dem Buffer Cache zu lesen
Struktur SYSTEM erzeugt nach dem ersten UPDATE oder DELETE für jede zu archivierende Tabelle 1 partitionierte, komprimierte Tabelle mit anfänglich 1 Partition Enthält die Spalten der Tabelle plus weitere Spalten (s.u.) 1 Index INSERTs führen nicht zu Einträgen ins Archiv SCOTT.EMP! NAME TYPE Rid varchar2(4000) startscn number endscn number xid raw(0) operation varchar2(1) empno number(4) ename varchar2(10) job varchar2(9) mgr number(4) hiredate date...
Auditing Deklarativ Oracle Database Auditing (Standard) FGA (Fine Grained Auditing) Total Recall (Flashback Data Archiver) Audit Vault (zentraler Auditserver) Prozedural System Trigger (Startup, Shutdown, Logon, Logoff, DDL) UTL_FILE / DBMS_APPLICATION_INFO Package (Applikationslog) REDO (LogMiner, Streams Capture)
Protokollierung mit Audit Vault Trennung von Aufgaben durch spezielle Rollen Zugriff auf Daten ausschließlich über Rollen Geschützt vor dem Zugriff durch den DBA Verschlüsselung Optimiertes Datawarehouse Implementiertes ILM Alerting System Protokollierung aller IT relevanten Komponenten durch Bereitstellung eines SDKs
Oracle Audit Vault (Architektur)
Oracle Audit Vault Standardberichte Compliance Berichte Einfache Benutzeroberfläche Benutzerspezifisch anpassbar
Oracle Audit Vault Konsolidierung aller Audit Quellen
Realtime Alert Dashboard (Audit Vault Console)
Oracle Audit Vault Policies Zentrales Management der Audit Richtlinien Richtliniendefinition Oracle Audit Vault Richtlinenbereitstellung Richtlinienverwaltung Privilege User Audit Settings SOX Audit Settings Privacy Audit Settings Richtlinienhistorie HR Database Financial Database Customer Database
Zentrale Audit-Einstellungen
Oracle Audit Vault Data Warehouse Sicher, Skalierbar und Flexibel Audit Warehouse Offen für BI und Analysewerkzeuge Performanz and Skalierung Verwendet Oracle Partitioning Skalierung > Terabytes Zertifiziert mit Oracle RAC Geschützte Audit-Daten Verschlüsselte Datenübertragung Verwendet Oracle Database Vault Funktionstrennung / Separation of Duty Audit Vault Administrator Audit Vault Auditor
Oracle Database Auditing Welche Aktivitäten sollten immer überwacht werden? Privilegierte Benutzer Alle Operationen Datenbankweit DDL Operationen Create / drop / alter table Create / drop / alter user Create / drop database link Create / drop / alter view Missglückte Anmeldeversuche Zugriff auf sensible Daten
Oracle Audit Vault Collectors Oracle Database Audit Daten Quellen: Oracle Database 9iR2, 10g, 11g Audit Daten: Audit Tabelle, OS Files, syslog, XML Transaktions Logs (Redo) Oracle Database Vault Audit data Automatisierte Audit Trail Bereinigung after collection Microsoft SQL Server Audit Daten Quellen: Microsoft SQL Server 2000 & 2005 Audit Daten: Server side trace Windows event audit C2
Oracle Audit Vault Collectors IBM DB2 Quellen: UDB 8.2 und 9.5 Audit Daten: ASCII text files (DB2AUDIT) Sybase ASE Quellen: 12.5 und 15.2 Datenbank Audit Daten: System audit table logs
Integration Oracle BI BI
Integration - BAM
Oracle Audit Vault Audit Trail Clean-Up Integration Automatische Audit Trail Bereinigung auf den Quellsystemen Monitor Policies Database 1) Übertragung des Audit Trails Reports Security 3) Löschung des übertragenen Audit Trails 2) Quittieren das Empfangs Audit Vault Server Patch erforderlich für 10.2.0.3, 10.2.0.4, & 11.1.0.6 Enthalten in 10.2.0.5+ & 11.1.0.7
Überwachung der Audit Vault Services GC
Auditing Performanz Einfluss auf die CPU Original workload CPU 1.08% bei 10 audit/sek Original workload CPU 1.56% bei 100 audit/sek Audit Source Database auditing / No Audit Vault Audit Vault collection turned on Database auditing / No Audit Vault Audit Vault collection turned on Audit Load 10 records / second 10 records / second 100 records / second 100 records / second OS Log 0.08% 0.7% 0.15% 2.7% DB Audit 0.13% 0.5% 1.6% 3.4% Redo 0% 3.7% 0% 8.2% *Internal testing: Source: 4x32GB 3GHz Intel Xeons RHEL3.0, running 2 Oracle Database 10.2.0.3.0 AV Server: 2x6GB 3GHz Intel Xeons RHEL3.0, AV Server 10.2.2.0.0
Auditing Deklarativ Oracle Database Auditing (Standard) FGA (Fine Grained Auditing) Total Recall (Flashback Data Archiver) Audit Vault (zentraler Auditserver) Prozedural System Trigger (Startup, Shutdown, Logon, Logoff, DDL) UTL_FILE / DBMS_APPLICATION_INFO Package (Applikationslog) REDO (LogMiner, Streams Capture)
Was muss wann nachvollziehbar sein? Datenbank Audit Anforderungen SOX PCI DSS HIPAA Basel II FISMA GLBA Accounts, Roles & Permissions Berichte über GRANT und REVOKE Aktivitäten? Failed Logins Berichte über misslungene Anmeldeversuche und andere Besonderheiten? Privileged User Activity Berichte über DBA Aktivitäten? Access to Sensitive Data Berichte über Leseoperationen auf sensitive Daten (SELECTs)? Schema Changes Informationen über CREATE, DROP und ALTER Befehle auf relevanten DB Objekten? Data Changes Berichte über Datenveränderungen (Insert, Update, Merge, Delete)?
BASEL II: Laufende regelmäßige Überprüfung durch die Bankenaufsicht Die Bankenaufsicht (in Deutschland: BaFin gemeinsam mit der Deutschen Bundesbank) beurteilt und überwacht die Einhaltung der Anforderungen an Methodik und Offenlegung, die notwendig sind, damit die Bank interne Ratings verwenden darf. Quelle: Wikipedia
Forderungen der Revision Protokollierung aller administrativen Aktivitäten an BASEL II relevanten Datenbanken Personalisierung der DB Administratoren (Anmeldung als ORACLE OS Benutzer ist untersagt) 3 Jahre Aufbewahrung der Protokolldaten Flexible Auswertungsmöglichkeit Einführung eines internen Kontrollsystems Detaillierte Protokollinformationen bis hin zum SQL-TEXT / SQL-BIND Protokolldaten dürfen nicht verändert oder gelöscht werden
Forderungen des Betriebs Deaktivierung der Protokollierung bei Performanzproblemen (Produktion hat Vorrang) und beim einspielen umfangreicher Applikations- und DB Patchsets / Upgrades (Hierfür ist die Genehmigung der Revision notwendig) Deaktivierung bei Produktionsstillstand verursacht durch Protokollierung (Hierfür ist die Genehmigung der Revision vorerst nicht notwendig)
Forderungen des Datenschützers Daten dürfen nicht manipulierbar sein Daten dürfen nicht zur Leistungsüberprüfung ausgewertet werden bzw. Zweckentfremdet werden
Forderungen der Fachabteilungen Keine Beeinträchtigung im Tagesgeschäft
Umsetzung Personalisierung der DBAs SYSDBA Auditing (audit_sys_operations) Für DDL (Standard Auditing) Strukturänderungen an BASEL II relevanten Tabellen Benutzer und Rollenmanagement Für DML (Standard Auditing) Lese und Schreibzugriffe auf BASEL II relevanten Tabellen (!! Keine Einschränkung auf Benutzerebene!!) Verwendung des XML, EXTENDED Audit Trails (ab 10g) Audit Vault Agent (OS Collector) Verwendung des neuen DBMS_AUDIT_MGMT Packages (durch den Audit Vault Agent)
Dimensionierung Protokollierungssystems Hochverfügbar Failover & gutes Backup Recovery RAC & gutes Backup Recovery Datenvolumen Audit-Eintrag in Stage-Tabelle (abhängig vom SQL-TEXT) 500 1.000 Byte Audit-Eintrag in Star-Schema ca. 1,5-Fache von Stage + Indizes CPU-Last nur bei täglichem Verdichtungsjob
Von 0 auf 90 in 8 Wochen Anforderungen durch die Revision Analyse der Basel II relevanten Tabellen Beschaffung Hardware Tech. Workshops (Betrieb) Installation / Konfiguration (Produktion) Problembehebung (BUGS u.ä.) Erstellen & Einrichten der Audit-Richtlinien (mit Revision) Erstellung der Berichte (mit Revision) Schulung (Umgang mit dem System) Abnahme durch die Revision
... und die letzten 10 drastische Reduktion der Datenmenge Verfeinerung der Auditeinstellungen Schrittweise Einführung von Fine Grained Auditing (ermöglicht bei DML auch Einschränkung auf Benutzerebene) DBMS_FGA.ADD_POLICY ( object_schema => 'MYUSER', object_name => 'RATING_TAB', policy_name => 'FGA_RATING_TAB', audit_condition => 'USER=''ELLISON''', audit_column => NULL, handler_schema => NULL, handler_module => NULL, enable => TRUE, statement_types => 'UPDATE, DELETE, SELECT', audit_trail => DBMS_FGA.XML + DBMS_FGA.EXTENDED);
Oracle Audit Vault Roadmap Features by Release Oracle Database Support SQL Server, IBM DB2 LUW, Sybase ASE Out-of-the-Box Reports Open Schema Alerts Policy Manager for Oracle Audit Trail Clean-Up Compliance reports (PCI, HIPAA,..) Entitlement reports (users, privileges..) Reports (PDF, Customization) Reports (Scheduling, Attestation, Notification) Alerts Email and Remedy Integration ArcSight Integration Feature 10.2.2 10.2.3 Targeted Oct 2009 10.2.3.2
Fragen