Oracle DB Security

Werbung
<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
Herunterladen