Datenbank-Link Passwörter sind jetzt noch unsicherer

, ,

Die Passwörter von Oracle Datenbank Links waren Thema des diesjährigen Vortrags „Best of Oracle Security 2017“ von Alexander Kornbrust auf der diesjährigen DOAG Konferenz in Nürnberg.

Es ist dank der Arbeit von Mahmoud Hatem mittlerweile möglich, die verschlüsselt abgelegten Passwörter der Datenbank-Links relativ aufwandslos mit Hilfe eines kleinen PL/SQL-Skriptes zu entschlüsseln. Das Skript selbst lässt sich bei  GitHub herunterladen. Das ist ein bisschen schade, aber auch fast vorhersehbar, denn wie auch bei Wallets ist es sehr schwierig, ein symmetrisches Passwort geheim zu halten. Zumal, wenn es automatisch, also ohne Interaktion mit dem Benutzer, verwendet werden soll. In einer ausgelieferten Software finden sich selten sichere „Verstecke“ für ein hart-kodiertes Passwort.

Oracle hat offensichtlich versucht, das verwendete Passwort an zwei Stellen zu verbergen – in der Data Dictionary View SYS.PROP$ und im oracle-Binary selbst als Variable „ztcshpl_v6“. Diese ist dort natürlich immer gleich belegt. Vielleicht wäre es besser gewesen, saubere Hash-Werte der Passwörter zu verwenden, als einen solchen „Security through obscurity“-Weg zu gehen.

Jedenfalls ist es nun, Zugriff auf die Data Dictionary Views SYS.LINK$ und SYS.PROPS$ vorausgesetzt, möglich, die Klartext-Passwörter der Datenbank-Links einfach zu ermitteln.

Die Datenbank-Link-Passwörter und deren Geschichte in den Oracle Versionen waren auch hier im Blog bereits Thema, wenn auch fälschlicherweise von Hashes statt verschlüsselten Werten die Rede war. Dennoch hat unser Blog Post es als Quelle auf die Vortragsfolien geschafft, worüber ich mich sehr freue, denn dieser Vortrag von Alexander Kornbrust gehört traditionell zu den Highlights der DOAG Konferenz.

Oracle Security 2017 Slides

(c) Red-Database-Security GmbH

Die Oracle Partner Network Applikation

,

Partner: „Die OPN Webseite funktioniert nicht. Ich bekomme einen PL/SQL-Fehler: ORA-06502: PL/SQL: numeric or value error“.

Oracle: „Sie benutzen einen Mac“.

Partner: „Ja“.

Oracle (Hersteller von Java): „Es geht nicht mit einem Mac. Sie müssen einen PC nehmen“.

Partner: „Ich habe keinen PC“.

Oracle: „Die Anwendung funktioniert nur mit dem Internet Explorer“.

Partner: „Ich kann den Internet Explorer auf dem Mac probieren. […] Ich bekomme immer noch den PL/SQL-Fehler. Liegt das überhaupt am Browser?“

Oracle: „Dann kann ich Ihnen nur noch weiterhelfen, wenn Sie mir jetzt bitte Ihren Usernamen und Ihr Passwort geben“.

Partner: „Ich soll Ihnen mein Passwort geben? Im Klartext? Ist das Ihr Ernst?“

Oracle: „Ja, sonst kann ich Ihnen nicht helfen“.

Partner: „Und dazu muss ich Ihnen wirklich mein Passwort geben? Ist das denn sicher?“

Oracle: „Das ist schon in Ordnung, Sie können mir vertrauen“.

DB 12.2: Neue Security Features

,

Oracle hat die Dokumentation für die Datenbank Version 12.2 veröffentlicht. Es sind eine Reihe neuer Security Features enthalten, insbesondere im Bereich TDE (Transparent Data Encryption). Wir bereits vermutet wurde, wird der Krypto-Algorithmus GOST unterstützt. Auch in der Kerberos-Implementierung soll sich einiges verbessert haben: Kerberos kann nun auch für Direct NFS genutzt werden und die Client-Konfiguration wird einfacher.

Eine kurze Übersicht über die neuen (12.2) Security Features gibt der New Features Guide12c Release 2:

Encryption

  • TDE Tablespace Live Conversion
  • Fully Encrypted Database
  • Support for ARIA, SEED, and GOST Encryption Algorithms in TDE
  • TDE Tablespace Offline Conversion

Enforcing Application Security in the Database

  • RAS Session Privilege Scoping
  • RAS Column Privilege Enhancements
  • RAS Schema Level Policy Administration
  • RAS Integration with OLS

Improving Security Manageability, Administration, and Integration

  • Oracle Virtual Private Database Predicate Audit
  • Oracle Database Vault Policy
  • Oracle Database Vault Simulation Mode Protection
  • Oracle Database Vault Common Realms and Command Rules for Oracle Multitenant
  • Privilege Analysis Enhancements
  • Privilege Analysis Results Comparison
  • Redaction: Different Data Redaction Policy Expressions
  • Redaction: New Functions Allowed in Data Redaction Policy Expressions
  • Redaction: Additional Data Redaction Transformations
  • Automatic KDC Discovery When Configuring OCI Clients
  • Automatic Provisioning of Kerberos Keytab for Oracle Databases
  • Role-Based Conditional Auditing
  • Inherit Remote Privileges

Improving Security Posture of the Database

  • SYSRAC – Separation of Duty for Administering Real Application Clusters
  • Transparent Sensitive Data Protection Feature Integration
  • Requiring Strong Password Verifiers by Default

Improving User Authentication and Management

  • Automatic Locking of Inactive User Accounts

Modernizing Network Authentication and Encryption

  • Kerberos-Based Authentication for Direct NFS

Der New Features Guide schreibt hierzu: „This feature solves the problem of authentication, message integrity, and optional encryption over unsecured networks for data exchange between Oracle Database and NFS servers using Direct NFS protocols.“

Kerberos in der Standard Edition

,

Stefan Oehrli beschreibt in seinem Blog, wie man Kerberos in der Oracle Datenbank Standard Edition verwenden kann.

In der Datenbank 11g Standard Edition wird Kerberos nicht unterstützt. In MOS Note 2145731.1 ist beschrieben, wie der RADIUS Adapter in dieser Datenbank-Version eingeschaltet werden kann. Die gleiche Vorgehensweise kann auf benutzt werden, um Kerberos einzuschalten, auch wenn MOS Note 2028070.1 ausführt, das Kerberos in der SE nicht verfügbar ist.

 

Oracle CPU Advisory April: Kerberos Schwachstelle

,

CVE-2016-0677 ist eine Schwachstelle in der Kerberos-Implementation der Oracle Datenbank. Betroffen sind die Versionen 12.1.0.1 und 12.1.0.2, also die neue Kerberos-Implementation in Oracle 12.

„Die einfach auszunutzende Schwachstelle kann durch einen entfernten, nicht authentisierten Angreifer zum Herbeiführen eines kompletten Denial-of-Service-Zustands ausgenutzt werden“ (DFN-CERT-2016-0646). Das Oracle Critical Patch Upgrade April 2016 beseitigt noch 5 weitere sicherheitsrelevante Datenbank-Fehler. Zwei dieser Schwachstellen, darunter das Kerberos-Problem, können aus der Ferne ohne Authentifizierung eines Benutzers ausgenutzt werden.

DOAG SIG Security Mannheim 2016

,

Anbei die Folien vom DOAG Security Day 2016. Ich habe dort einen Vortrag zum Thema „Enterprise Security Reloaded – Oracle Wallets: Praktische PKI Authentifizierung für die ganze Datenbank“ gehalten.

Unterstützt Oracle russische Krypto-Algorithmen?

,

Gerüchten zufolge unterstützt Oracle in zukünftigen Versionen der Datenbank für Transparent Data Encryption (TDE), DBMS_CRYPTO und vor allem für die Database Cloud neben 3DES und AES auch nationale Krypto-Algorithmen aus Russland und Südkorea: GOST und ARIA.

Bei GOST handelt es sich um einen sowjetischen Algorithmus aus den 1970’er Jahren. Ursprünglich streng geheim, wurde er seit 1990 heruntergestuft und letztlich 2010 als ISO-Standard eingereicht und analysiert. Es handelt sich um um eine symmetrische Block-Chiffrierung mit einer Blockgröße von 64 und einer Schlüssellänge von normalerweise 256 Bit.

ARIA wurde 2003 von einer Gruppe südkoreanischer Forscher entworfen und 2004 als südkoreanischer Standard definiert. ARIA ist ein 128bit Blockchiffre mit Schlüssellängen von 128 bis 256 Bit. ARIA steht seit 2011 auch als TLS-Erweiterung zur Verfügung.

Interessant ist, das, falls die Gerüchte zutreffen, Aktoren außerhalb der USA es geschafft haben, Oracle dazu zu bewegen, ihre nationale Kryptographie einzubauen. Unter Umständen ist dies eine Voraussetzung für die Zulassung zu bestimmten Märkten, vielleicht ist Oracle auch nur der Meinung, das die Akzeptanz insbesondere für Cloud-Lösungen außerhalb der USA anders nicht zu schaffen ist. Unabhängig von Sicherheitsproblemen in der Implementation stellt sich hier die Frage, ob es nicht auch Aufgabe der Europäischen Union sein könnte, sich auf handelspolitischer Ebene für die Verfügbarkeit von alternativen Krypto-Verfahren einzusetzen.

Neuer Kerberos Stack: AD Authentifikation für Datenbank 12c

,

Wir haben in diesem Blog des öfteren die Empfehlung ausgesprochen, eine zentrale Benutzerverwaltung statt lokaler Benutzerkonten für den Zugang zu Oracle Datenbanken zu verwenden. Für Umgebungen mit bestehender Active Directory Infrastruktur bietet sich hierfür in erster Linie die AD-Anbindung über LDAP und Kerberos an.

Die Kerberos-Unterstützung ist bereits seit Version 7 der Oracle Datenbank vorhanden und gut dokumentiert. Für die Anbindung an Active Directory wird in der Regel ein Oracle LDAP-Server (OID oder OUD) verwendet, um die Oracle-spezifischen Einstellungen nicht im Active Directory Verzeichnis speichern zu müssen. Die Einrichtung dieser Komponenten mit der Datenbank 11gR2, dem Oracle Internet Directory als LDAP-Server und Microsoft Windows Server 2008 haben wir bereits in diesem Blog und in unserem Wiki beschrieben.

Für einen Kunden haben wir die zentrale Authentifikation mit Kerberos, AD, OUD und EUS gerade mit den aktuellen Software-Versionen (Datenbank 12.1, Windows Server 2012 und Java 8) aufgebaut und sind dabei auf eine Reihe von Besonderheiten gestossen, die bei der Einrichtung beachtet werden sollten. Ansonsten sieht man sich schnell mit einer Reihe von Inkompatibilitäten konfrontiert, die verhindern, das die Komponenten miteinander funktionieren. Die alten Anleitungen funktionieren nicht mehr. Das liegt vor allem daran, das Oracle den Kerberos Stack in der Datenbank 12c komplett überarbeitet oder sogar neu geschrieben hat.

Beachtet werden muß im Einzelnen:

Für Oracle Universal Directory (OUD):

  • Der Network Configuration Assistant funktioniert nicht mit Active Directory. Die LDAP-Konfiguration muss per Hand angelegt werden.
  • Das EUSM-Tool zum Einrichten der Zuordnung zwischen AD- und Datenbank-Benutzern (EUS Mappings) ist von mehreren Bugs betroffen und funktioniert nicht mehr. Abhilfe schafft:
    • Installation von Patch 20529805 im OUD (Hintergrund: Bug: 20529805 – SUPPORT FOR EUSM 12C AUTHENTICATION SCHEME IN OUD IS MISSING: Falsche DN-Syntax durch neue SASL-Implementation in  OUD)
    • Verwendung von AES-Hashes für OUD-Passwörter ist für EUS obligatorisch, um OUD aber nicht standardmässig aktiviert, daher muss das OUD „Default Passwort Storage Scheme“ verändert werden
  • Die Datenbank möchte unbedingt eine SSLv3-Verbindung zum LDAP-Server aufbauen, SSLv3 ist aber in Java 8 nach der Poodle Attacke abgeschaltet. Es gibt einen Oracle-Patch, der aber nicht öffentlich ist. Alternativ kann SSLv3 im Java des OUD-Servers wieder eingeschaltet werden

Für Kerberos:

  • Für die Datenbank 12c müssen Kerberos-Keytab-Dateien auf dem AD-Server Windows 2012 unter Umständen mit der Option „-crypto RC4-HMAC-NT“ erzeugt werden. In einigen Fällen erzeugt der AD Keytab-Dateien mit DES statt AES, wenn die RC4-HMAC-Option nicht explizit angefordert wurde. In diesen Fällen sollte die AD-Konfiguration überprüft werden. DES ist natürlich keine aktuelle Option mehr, aber RC4-HMAC eigentlich auch nicht.
  • In einigen Fällen ist es notwendig, Kerberos Pre-Authentication-Support in der SQL-Net Konfiguration einzuschalten, oder Pre-Authentication im AD auszuschalten.

Wir haben die gesamte Konfiguration in zwei Wiki-Artikeln zu jeweils EUS/OUD und Kerberos beispielhaft und mit allen Fehlerbehandlungen beschrieben.

Oracle Wallets hacken

, , ,

Oracle Wallets werden benutzt, um SSL Zertifikate, die dazugehörigen Schlüssel, aber auch Klartext-Passwörter (Secure Enterprise Password Store) abzulegen. Sie werden normalerweise durch ein Wallet-Passwort geschützt, das bei jedem Öffnen oder Auslesen eingegeben werden muß.

Um auch automatisiert mit Wallets arbeiten zu können, gibt es die Auto-Login-Funktion. Wird diese aktiviert, wird eine zusätzliche Datei im Wallet erzeugt, die sogenannte Single Sign On Datei (.sso). Diese ist ebenfalls verschlüsselt, aber nicht mit einem benutzerdefinierten Passwort, sondern mit einem Standard-Passwort. Auto-Login-Wallets werden in der Regel verwendet, um eine automatisierte Anmeldung an der Datenbank durchführen zu können, ohne dass ein Passwort im Klartext in Skripten, Konfigurationsdateien oder Umgebungsvariablen abgelegt werden muss.

Damit es nicht möglich ist, ein Wallet einfach zu kopieren und von einem anderen Rechner aus zu verwenden, gibt es die Auto-Login-Local-Funktion. Wird diese für ein Wallet eingestellt, so kann das Auto Login Wallet nur auf dem Rechner verwendet werden, auf dem es erzeugt wurde.

Weiterlesen

Enterprise Security mit LDAP und PKI – Varianten der zentralen Benutzerverwaltung für Oracle Datenbanken

, , ,

Einleitung

Direkte Benutzerkonten und Passwörter in der Datenbank sind eine Sicherheits-Schwachstelle, da in der Regel keine eindeutige Zuordnung von natürlichen Personen zu Benutzerkonten möglich ist, keine unternehmenseinheitliche Sicherheitsregel durchgesetzt werden kann und ausgeschiedene Mitarbeiter nicht sicher und sofort aus sämtlichen Systemen ausgeschlossen werden können.

In diesem Artikel werden die verschiedenen Möglichkeiten aufgezeigt, Enterprise Single Sign On und Public Key Infrastructure (PKI) zu nutzen, um Datenbankbenutzer zu authentifizieren. Anhand von Projekterfahrungen aus der Praxis wird die Integration der Oracle Datenbank mit LDAP-Verzeichnissen (OID, OUD) und Microsoft ActiveDirectory mit und ohne Oracle Virtual Directory (OVD) erklärt sowie die Einführung von SmartCard-basierter PKI als Alternative vorgestellt. Weiterlesen