Auditing - revisited - doag.org file©Database Consult GmbH - Jachenau d Auditing in Kürze...
Transcript of Auditing - revisited - doag.org file©Database Consult GmbH - Jachenau d Auditing in Kürze...
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Database Consult GmbH
Gegründet 1996
Kompetenzen im Umfeld von ORACLE-basierten Systemen
Tätigkeitsbereiche
– Security, Identity Management
– Tuning, Installation, Konfiguration, Systemanalysen
– Support, Troubleshooting, DBA-Aufgaben
– Datenbankdesign, Datenmodellierung und –design
– Maßgeschneiderte Workshops
– www.database-consult.de
Seit 2012 – Kooperation mit
2 V1.0 - 06/2014
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Agenda
Begriffe, Bestimmungen und Strategien
Umfeld Betriebssystem-Aktionen
Umfeld Datenbank-Aktionen
Housekeeping: Archvieren, Löschen, Anonymisieren
Auditing und Performance
Ergänzende Werkzeuge (Kurzer Überblick)
Technische Grundlagen:
Linux/Unix OS (OEL 6.4, Kernel 2.6.39)
RDBMS 11gR2 [11.2.0.4.2 (PSU Apr2014)] und
12c [12.1.0.1.3 (PSU Apr2014)]
V1.0 - 06/2014 3
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Sicherheit in der Informationsverarbeitung
IT-Grundschutz ist notwendiger denn je
– Identifizieren und Umsetzen von Sicherheitsmaßnahmen
Sicherheit ist ein permanenter und iterativer Prozess
– Konfiguration und Monitoring der Konzepte
– Erkennen neuer Bedrohungen
– Integration alter und Beschaffung neuer Applikationen
Sicherheit muss die Beschaffung und/oder das Design von
Applikationen begleiten, ebenbürtig mit Funktionsumfang!
Sicherheit erfordert Prozesse, Technologien sind die Basis (nicht
mehr)
Sicherheit ist Teamarbeit
– Erhebliche Herausforderungen durch die Interaktion zwischen
Abteilungen/Gruppen sowie Technologien V1.0 - 06/2014 4
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Begriffe
Bei Auditing geht es um das Protokollieren von Datensätzen, die
angeben, welcher Nutzer bzw. welche Person in IT-Systemen zu
welchem Zeitpunkt was getan hat. … Die Steuerung dieser
Protokollierung erfolgt von außen, sprich wird nicht im jeweiligen IT-
System einprogrammiert. (Wikipedia)
Unter Logging versteht man in der Informatik generell das
(automatische) Speichern von Prozessen oder Datenänderungen.
(Wikipedia)
Übergänge fließend, keine klare Trennung der Begriffe ….
Auditing (und Logging) gewährleistet die Nachvollziehbarkeit von Aktionen
V1.0 - 06/2014 5
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Auditing in Kürze
Protokollierung (sicherheitsrelevanter) Aktionen
Nachvollziehbarkeit von Aktionen (personifizierte Benutzer!)
– Relevanten SW-Stack beachten (OS, Netz, Applikation, DB)
– Zusammenführen der Daten muss möglich sein (Zeitstempel)
– Personenbezug: direkt oder indirekt, aber immer eindeutig
Audit Konfiguration muss sich an Funktionsumfeld des Benutzers
orientieren
– Administratoren – OS-Umfeld, DB-Umfeld
– Applikationen (Funktions- und Endbenutzer) – DB-Umfeld
Klassifizierung von Systemen zur Aufwandsreduzierung
– Festlegen von Audit-Profilen abhängig von der Schutzklasse
– auf Basis der Applikationen (Thema der Programmierung) und Daten
(DB-Thema
V1.0 - 06/2014 6
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Auditing in Kürze
Kein Sicherheitsgewinn ohne forensische Auswertungen!
– Bestimmung „verdächtiger“ Aktionen muss vorausgehen
– Zugriffsprofile müssen bekannt sein (was ist rechtens)
Rahmenbedingungen: Gesetze und Betriebsrat beachten!
Revisionssichere Ablage der Daten, aktuelle Auswertungen
– Segregation of Duties – auch hier
Abgestimmtes Housekeeping (Fristen, Anonymisierung)
Zentralisierung der Daten kann sinnvoll sein
Effizienz durch genaue Privilegierung (need to know)
– Ggf. Minimierung der forensischen Analysen
V1.0 - 06/2014 7
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Exkurs: Der gesetzliche Rahmen
Datenschutzrisiko durch (umfassenden) Zugriff auf Basisdaten,
Infrastruktur und Sicherungen – für Administratoren
Der Begriff „Datenschutz“ hat sich entwickelt (Wiki):
– Anfangs Schutz der Daten selbst vor Verlust, Beschädigung etc.
– Schutz der Persönlichkeitsrechte bei der elektronischen Speicherung
privater Daten (informationelle Selbstbest. / Schutz der Privatsphäre)
Begriffliche Unterschiede EU und USA
– USA: Daten gehören dem „Sammler“
– EU: Daten gehören der beschriebenen Person
– „Safe Harbour“ Abkommen/Verpflichtung – derzeit ausgesetzt (PRISM)
Gesetztlicher Schutz personenbezogener Daten
– Bundesdatenschutzgesetzt, Landesdatenschutzgesetze, Rechtsnormen
(TKG etc.)
V1.0 - 06/2014 8
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Der gesetzliche Rahmen (2)
Personenbezogen =
– Beschreibung persönlicher oder sachlicher Verhältnisse einer
natürlichen Person
Kontrollorgane: DSB – Leiter der verantw. Stelle – Geschäftsleitung
Schutzbeauftragte
Verpflichtung auf das Datengeheimnis betrifft nicht die Wahrung /
den Schutz von Firmengeheimnissen
V1.0 - 06/2014 9
Den bei der Datenverarbeitung beschäftigten Personen ist untersagt,
personenbezogene Daten unbefugt zu erheben, zu verarbeiten oder zu
nutzen (Datengeheimnis). Diese Personen sind, soweit sie bei nicht-
öffentlichen Stellen beschäftigt werden, bei der Aufnahme ihrer Tätigkeit auf
das Datengeheimnis zu verpflichten. Das Datengeheimnis besteht auch nach
Beendigung ihrer Tätigkeit fort. (§5 BDSG)
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Die 7 Grundprinzipien des DS bei PB Daten
Verbot mit Erlaubnisvorbehalt
– Ausnahmen nach Regelung
Direkterhebung
– Erhebung beim Betroffenen
Datensparsamkeit
– sparsamer Umgang, Aufbewahrungsfristen
Datenvermeidbarkeit – so wenig wie möglich gemäß Ziel
Transparenz – Kenntnis des Betroffenen
Zweckbindung – Zweck vor der Erhebung festzulegen
Erforderlichkeit (kontrovers diskutiert)
V1.0 - 06/2014 10
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Datenbank-Umfeld
Server/Netzwerk
Betriebssystem
Datenbank
Schema
Objekt
Schnittstellen Authentication
Auditing von
Administratoren
und
Endbenutzern
V1.0 - 06/2014 11
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Auditing von OS-Aktionen für DBAs
DBAs haben viele Aufgaben im OS-Umfeld (unabhängig von DB)
– Lesen und Analysieren von Log- und Trace-Dateien
– Erstellen und Ausführen von Skripten, anpassen von Config-Dateien
– Starten/Stoppen von Komponenten
– Installation und Patching von Oracle Software uvm.
Auditing im Umfeld von DBAs ist daher auch OS-basiert!
Grundlagen für OS-Auditing
– Personifizierte OS-Benutzer – lokal, LDAP-angebunden (Tools)
– Maßgeschneiderte Privilegien – Gruppen und ACLs, SUDO etc.
– Eindeutige und lückenlose Nachvollziehbarkeit – Logging/Auditing
– Schutz vor illegalen Dateimanipulationen
Technologien – Grundhärtung, Log-Files, Keylogger, AIDE, etc.
V1.0 - 06/2014 12
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
OS-Umfeld
Personifizierte OS-Benutzer
– Identität auch in DB-Audit Trail sichtbar, wenn SYS über SYSDBA
– Einwahl auf Targets nur über Jumpserver per SSH Keys
– Skripte: Owner oracle, Ausführung/Änderung über Gruppe od. ACL
– Privilegierte Aktionen über sudo <cmd> ermöglichen, nicht su nutzen
Auditing – Audit Daemon sammelt auf Kernel-Ebene
– Detaillierter als System-Logging, auch für Dateioperationen (z.B. chmod)
– Konfiguration über /etc/audit/auditd.conf,
• Vorhaltezeit, Maximalgröße, Verzeichnisse des Audit Trails etc.
• Verhalten bei Überlauf – z.B. halt des Systems
– Inhalte/Regeln über /etc/audit/audit.rules
• Editiert über auditctl – Details über manpages
– Achtung: wohl dosiert in separate Filesysteme, ggf. rotierend wg. Archive
– Tools, z.B. ausearch und aureport
V1.0 - 06/2014 13
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
OS-Umfeld
System Logging – rsyslog Daemon
– Meldungen von Kernel, Services, Applikationen
– Konfiguration über /etc/rsyslog.conf
• Enthält global directives, module directives und Regeln
• Input Module (Sourcen), Output Module (Speicherung/Verschlüsselung),
Filter Module, Message Modification M.
– Auch hier: vorausschauende Ressourcenplanung (Filesystem)
Process Accounting
– Aufzeichnung von logon/log off, Benutzerkommandos
– Package psacct – muss ggf. nachinstalliert werden
Keylogger – Vorsicht, alle Keystrokes werden aufgezeichnet
– Diverse Pakete im Umlauf, z.B. LogKeys
V1.0 - 06/2014 14
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
DB-Umfeld
Auditing und Logging von Aktionen im Umfeld der Datenbank
– „interne“ Aktionen – bsw. Zugriff auf Tabelle X
– „externe Aktionen – bsw. Starten der DB/Listener, Connect SYSDBA etc.
Diverse Kontexte existieren
– Log- und Trace-Dateien
• Alert-Log – Fehler und manche DBA-Aktionen (z.B. Tablespace/Redo), keine
User-Infos(!)
• Listener.log – Verbindungsinformationen, xml-Format im ADR mit Rotation
– Auditing Klassisch – diverse Audit Trail Konfigurationen möglich
– Unified Auditing (>= 12c) – viele Neuerungen
• Mischbetrieb (klassisch <> unified möglich)
<msg time='2014-05-29T17:07:22.715+02:00' org_id='oracle' comp_id='tnslsnr'
type='UNKNOWN' level='16' host_id='oratest.dbc.de‚ host_addr='192.168.45.230'>
<txt>29-MAY-2014 17:07:22 *
(CONNECT_DATA=(SID=DOAG02)(CID=(PROGRAM=Hora.exe)(HOST=DATTATREYA4)(USER=Günter))) *
(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.45.215)(PORT=53452)) * establish * DOAG02 * 0 </txt>
V1.0 - 06/2014 15
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
DB-Auditing – klassisch und erweitert
Quelle Trivadis Mandatory
Auditing
V1.0 - 06/2014 16
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
DB-Auditing - klassisch
Mandatory Auditing
– Zwangsweise für Aktionen bei denen der Audit Trial immer verfügbar
sein muss (auch bei heruntergefahrener Datenbank)
– Verzeichnis über init.ora AUDIT_FILE_DEST, .aud-Dateien
– Einzelne Datei pro Instanz und Unix PID(!), klein, ggf. Inode Count
– Connect von SYSDBA und SYSOPER, Startup und Shutdown Aktionen
AUDIT_SYS_OPERATIONS – Standard FALSE
– Auditing aller top-level SQL-Aktionen von SYSDBA und SYSOPER
– Unabhängig von AUDIT_TRAIL Einstellungen
– Ein Muss, wenn DBA-Auditing gefordert ist
– Schreibt in AUDIT_FILE_DEST oder SYSLOG (bei AUDIT_SYSLOG_LEVEL)
– Einzelne Datei pro Instanz und Unix PID(!), ggf. Inode Count
– Textfile, XML bei AUDIT_TRAIL = XML oder XML,EXTENDED
– Standard Protection: -rw-r----- 1 oracle oinstall
V1.0 - 06/2014 17
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
DB-Auditing - klassisch
AUDIT_SYSLOG_LEVEL – Nutzung des Syslog-Daemon (Unix)
– Manuell (!) setzen z.B.: AUDIT_SYSLOG_LEVEL=local6.warning
– Eigenes Verzeichnis/Datei/Filesystem über /etc/syslog.conf
einrichten
– Verbesserte Revisionssicherheit, Schutz vor oracle-dba
• Protection: -rw------- 1 root root
– Housekeeping wichtig!
Application Auditing
– individuell programmiert, z.B. Journaling Tabellen, Status-Tabellen,
Nutzung von Triggern (DML, DDL, System Events)
• AFTER STARTUP, BEFORE SHUTDOWN, AFTER LOGON, BEFORE LOGOFF,
INSTEAD OF CREATE etc.
– Flashback Data Archive
V1.0 - 06/2014 18
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
DB-Auditing
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
AUDIT_TRAIL – klassisch (init.ora, Neustart erforderlich, oradbug(!))
– NONE
– DB (, EXTENDED) – schreibt in SYS.AUD$ (Ausnahmen) – ab 11g Default
• Erschwert Revisionssicherheit, gute Auswertungsmöglichkeiten
– OS – schreibt OS-Files (Audit Dest oder Syslog Dest)
• Erschwert Auswertungen, verbesserte Revisionssicherheit (bes. syslog)
– XML (, EXTENDED) – schreibt XML-Dateien
• Verbesserte Auswertung durch Programme
– EXTENDED schreibt zusätzlich SQL-Text und Bindevariablen
V1.0 - 06/2014 19
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
DB-Auditing - klassisch
Audit Optionen
– Objekt-bezogen – nach Statement-Typ
– Privilegien-Auditing – Nutzung von Systemprivilegien
– Statement – Objektunabhängige Nutzung von Statements
– Network – Netzwerk-Fehler, z.B. im Kontext der Netzverschlüsselung
– Content-Auditing (fine-grain auditing s.n.F.)
Zusätzliche Filter
– Benutzer, Erfolgreich/erfolglos/beides
– 1x pro Session/ 1x pro Statement
AUDIT DELETE ANY TABLE BY ACCESS;
AUDIT SELECT TABLE BY guenter;
AUDIT SELECT ON HR.EMPLOYEES BY ACCESS;
AUDIT SELECT, INSERT, DELETE ON jward.dept BY ACCESS WHENEVER SUCCESSFUL;
AUDIT SELECT ON DEFAULT BY ACCESS WHENEVER NOT SUCCESSFUL;
AUDIT INDEX ON SCOTT.T BY SESSION;
AUDIT NETWORK BY ACCESS;
V1.0 - 06/2014 20
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Fine Grain Auditing
AUDITING abhängig von Inhalt (WHERE Bedingung)
– Für DML und select, basiert auf Policies
– 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 im Kontext von Tabelle/View
Typen:
– Bedingung: direkt oder per Function
– Spalten-Auswahl (zusätzlich oder separat)
– Event-Handler (Aktionen im Fall eines Falles, z.B. Mail-Versand)
V1.0 - 06/2014 21
DBMS_FGA.ADD_POLICY(
object_schema => 'HR', object_name => 'EMPLOYEES', policy_name => 'chk_hr_employees‚
, audit_column => 'SALARY', enable => TRUE
, statement_types => 'INSERT, UPDATE, SELECT, DELETE');
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Wichtige Audit-Attribute
Strategie beim Setzen von Audit-Optionen
– Orientiert an DB-Klassifizierung (wenn vorhanden)
– Allgemeine Klassen-Standards für Systemprivilegien und Audit-Objekte
– App-spezifische Optionen für Objekte und Inhalte von App-Verantw.
Relevante Auditattribute zur Bestimmung des Konextes (Ausschnitt)
– Verteilt auf DBA_AUDIT_TRAIL, DBA_COMMON_AUDIT_TRAIL und
DBA_FGA_AUDIT_TRAIL
OS_USERNAME Operating System logon user name whose actions were audited
USERNAME Name (not ID number) of the user whose actions were audited
USERHOST Client host machine name
ACTION_NAME Name of the action type corresponding to the numeric code i ACTION
PRIV_USED System privilege used to execute the action
CLIENT_ID Client identifier in each Oracle session
PROXY_SESSIONID Proxy session sernum, if EUS has logged through proxy mechanism
GLOBAL_UID Global UID for the user, if the user had logged in as EUS
EXT_NAME User external Name
POLICY_NAME Name of Fine Grained Auditing Policy
V1.0 - 06/2014 22
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Auditing unter 12c
Zahlreiche und wichtige Verbesserungen / Erweiterungen
„Unified Audit Trail“ – verbindet unterschiedliche, bisher getrennte
Audit Sourcen
– SYS, Standard, Data Pump, RMAN, DV, Direct Load, LS, RAS
– Aktiviert über relink des Kernels und nicht per AUDIT_TRAIL
– Daten im Schema AUDSYS, SYSAUX Tbs. – BLOB-basiert – read only
• Laden von OS-Records (DB gestoppt) möglich
– View UNIFIED_AUDIT_TRAIL (SYS, Basis gv$unified_audit_trail)
– Optionen werden über Audit-Policies gesetzt - Gruppierung
– Mixed Mode im Übergang/als Standard möglich
„Privilege Capture“ gibt das Inventar genutzter Privilegien/Rollen
– Ideal zur Reduzierung nicht genutzter Privilegien
– Package DBMS_PRIVILEGE_CAPTURE
V1.0 - 06/2014 23
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Mixed Mode Auditing
Standard für neu erstellte und migrierte 12c Datenbanken
Erkennbar an folgenden Merkmalen:
– Unified Auditing – FALSE (v$option) – Option nich gelinkt
– Policy ORA_SECURECONFIG existent und aktiviert (View
AUDIT_UNIFIED_ENABLED_POLICIES)
– Init.ora Audit-Parameter stehen auf 11g Standard (AUDIT_TRAIL=DB etc.)
– unified_audit_sga_queue_size ist gesetzt
Verhalten – gewöhnungsbedürftig
– Init.ora Audit-Parameter sind nutzbar
– Mandatory Auditing wird in traditionelle Pfade geschrieben
– Audit Options von Policies landen in Unified Audit Trail
– Alle anderen per Audit gesetzten im AUDIT_TRAIL
V1.0 - 06/2014 24
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Unified Auditing
System stoppen und Relink durchführen (s.u.)
– Banner ändert sich
Queue oder direct write, Flush explizit möglich
Neue Rolle AUDIT_ADMIN
– Select auf Audit Views, Execute auf DBMS_FGA, DBMS_AUDMGMT
– System Privilegien: AUDIT SYSTEM, AUDIT ANY
– Per default an SYS
Neue Rolle AUDIT_VIEWER - Select-Rechte auf Audit-Views
Keine Wirksamkeit der AUDIT-Parameter und Optionen(!)
– Audit-Optionen weiterhin setzbar aber unwirksam!
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk uniaud_on ioracle
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics, Real Application Testing
and Unified Auditing options
V1.0 - 06/2014 25
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Unified Auditing
Package DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_PROPERTY
– Queued-Write versus Immediate-Write
Quelle Oracle V1.0 - 06/2014 26
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
AUDIT Policies
Policies bündeln AUDIT-Optionen – basiert auf
– Privilegien, Aktionen, Rollen
– Komponenten: Datapump Export
– Per Default: RMAN
– Filter möglich
Aktivierung notwendig
create audit policy aud_syspriv_pol
PRIVILEGES select any table, create library
WHEN 'SYS_CONTEXT(''USERENV'',''SESSION_USER'')=''OE'''
EVALUATE PER STATEMENT;
create audit policy aud_role_pol ROLES mgr_role;
audit policy aud_syspriv_pol ;
V1.0 - 06/2014 27
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Performance – Oracle Zahlen
http://www.dsvolk.ru/oracle/papers/twp-security_auditperformance.pdf
V1.0 - 06/2014 28
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Performance – Trivadis Zahlen
http://www.trivadis.com/uploads/tx_cabagdownloadarea/TTC_Oracle_Auditing_Report_AMI_June2011-final.pdf
V1.0 - 06/2014 29
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Ergänzende Tools
Database Activity Monitoring (DAM)
– Ehemals Sentrigo Hedgehoc, Übernahme 4/2011 durch McAfee
– Agenten/Sensoren auf den DB Servern „monitoren“ SGA
– Regeln protokollieren Aktionen – kill session möglich
Oracle Audit Vault und Database Filerwall – Konsolidierung
– AV Server und Agent zunächst als eigenständiges Paket
– Secerno wird als Anbieter von DBFW übernommen (2010)
– 2012 AVDFW als Software Appliance
• Ausschließlich für Linux
• Audit Konsolidierung und Aktionsabwehr
• Wegen Appliance leidet Flexibilität der Installation/Konfiguration
• Aber: einfache Installation und Inbetriebnahme
• Unterschiedliche Zielsysteme (Oracle. Sybase, Microsoft, IBM …)
V1.0 - 06/2014 30
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Fazit
Auditing ist Bestandteil eines Gesamtkonzeptes „Security“
Interne Abstimmung der Konzepte ist unabdingbar
Rollengemäße Erfassung der Daten ist wichtig
– Pauschale Einstellungen abhängig von Schutzklassen
– Spezifische Einstellungen für einzelne Applikationen
Profilgerechte forensische Analysen sind notwendig
Voraussetzung sind personifizierte Benutzer
Technik spielt eine untergeordnete Rolle
V1.0 - 06/2014 31
©Database Consult GmbH - Jachenau
Au
dit
ing
r
ev
isit
ed
Danke für‘s Zuhören
www.database-consult.de
V1.0 - 06/2014 48