<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 Verschl. & Maskierung • Advanced Security Zugriffskontrolle Monitoring • Secure Backup • Data Masking Datenbankschutz Monitoring • Konfiguration Management • Oracle Audit Vault • Total Recall Zugriffskontrolle • Oracle Database Vault • Label Security Verschl. & Maskierung Verschl. & Maskierung • Advanced Security Zugriffskontrolle Monitoring • 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 10gVerhalten 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 Policy AUDIT_CONDITION AUDIT_CONDITION :: NAME NAME != != USER USER AUDIT_COLUMN AUDIT_COLUMN == SALARY SALARY Audit Records (FGA_LOG$) Not audited SELECT name, job, deptno FROM emp SCOTT SELECT name, salary FROM emp WHERE name=‘KING’ EMP SELECT SELECT name, name, salary salary FROM FROM emp emp WHERE WHERE name name == ‘KING’, ‘KING’, <timestamp>, <timestamp>, <userid>, <userid>, etc. etc. Send Send Alert! 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 Select * from orders AS OF ‘Midnight 31-Dec2003’ ORDERS Änderung User Tablespaces Archive Tables Flashback Data Archive Total Recall 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 • SCOTT.EMP ! • SYSTEM erzeugt nach dem ersten UPDATE oder DELETE NAME TYPE Rid varchar2(4000) für jede zu archivierende Tabelle startscn number • 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 endscn xid operation empno ename job mgr hiredate ...... number raw(0) varchar2(1) number(4) varchar2(10) varchar2(9) number(4) 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 Oracle Audit Vault • Richtliniendefinition • 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 Database Monitor Reports Policies Security 1) Übertragung des Audit Trails 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 / 10 records / second second 100 records / 100 records second / 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 Feature 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 Targeted Oct 2009 10.2.2 10.2.3 10.2.3.2 Fragen