Stabsstelle Informationssicherheit der
Universität Stuttgart (RUS-CERT)
https://cert.uni-stuttgart.de
logo
Meldung Nr: RUS-CERT-697

[Generic/Oracle] Aufruf beliebiger Funktionen aus Systembibliotheken
(2002-02-14 18:29:11+00)

Quelle: http://cert.uni-stuttgart.de/archive/bugtraq/2002/02/msg00070.html

Durch einen Fehler in der EXTPROC Implementierung kann ein Angreifer beliebige Funktionen auf dem System installierter Bibliotheken mit den Rechten des Datenbanknutzers ausführen.

Betroffene Systeme

Einfallstor
Datenbankabfragen (TCP Port 1521)

Auswirkung
Ausführung beliebigen Programmcodes mit den Rechten des Oracle Datenbank Dienstes.

Typ der Verwundbarkeit
design-flaw

Gefahrenpotential
hoch bis sehr hoch
(Hinweise zur Einstufung des Gefahrenpotentials.)

Beschreibung
Oracle ist eine der am weitest verbreiteten Datenbanken. Bei der Standardinstallation ist die EXTPROC Funktionalität enthalten. Diese ermöglicht Bibliotheksfunktionen über das Pl/SQL Paket aufzurufen. Dabei wird die Autentifizierung vernachlässigt, so daß solche Aufrufe von einem beliebigen Angreifer getätigt werden können.
Dieser kann sie z.B. für den Aufruf von system() verwenden und somit das beherbergende Rechnersystem oder zumindest Teile davon kompromitieren.

Workaround
Sollte die Extproc funktionalität nicht benötigt werden, so sollte diese in den Dateien $ORACLE_HOME/NETWORK/ADMIN/TNSNAMES.ORA und $ORACLE_HOME/NETWORK/ADMINS/LISTNER.ORA abgeschaltet werden. Dies geschieht durch Entfernen der Einträge: icache_extproc oder PLSExtproc oder extproc. Auch sollte das extproc Binary gelöscht werden.

Falls die "EXTPROC" funktionalität notwendig ist, so empfiehlt Oracle folgende 5 Schritte:

  1. Zwei Dienste sind aufzusetzen. Einer für die Oracle Datenbank und einer für PL/SQL EXTPROC. Letzterer sollte unter unter einer UID ohne Systemprivilegien (z.B. nobody) laufen.
  2. Die Datei $ORACLE_HOME/NETWORK/ADMIN/TNSNAMES.ORA sollte dem neuen Dienst entsprechned angepasst werden.
  3. Desweiteren ist sicherzustellen, dass Verbindungen zum PL/SQL EXTPROC Dienst nur von den dafür vorgesehen Rechnern stammen können. Diese Einstellung geschieht über den Paketfilter oder über die Konfigurationsdatei $ORACLE_HOME/NETWORK/ADMIN/SQLNET.ORA (PROTOCOL.ORA in Oracle8i und früheren Versionen). Dort sollten Folgende Einstellungen gesetzt werden:

    tcp.validnode_checking=YES
    tcp.invited_nodes={liste der berechtigten IPs}
    tcp.excluded_nodes={liste der abzulehnenden IPs}
    

    Diese Einschränkung ist nur für den PL/SQL EXTPROC Dienst einzusetzen und dementsprechend separat zu konfigurieren (in separaten Dateien).
  4. Die Rechte dieser Dateien sollten auf 640 oder 644 gesetzt werden.
  5. Alle Benutzer, welche administrative Rechte bei einer Datenbank haben oder Aufrufe wie "CREATE ANY LIBRARY" tätigen dürfen sollten auf die Sicherheit ihrer Passwörter überprüft werden.
Oracle Entwickelt derzeit Patches für Oracle9i. Diese werden Besitzern eines Support Vertrages unter http://metalink.oracle.com verfügbar gemacht. Frühere Versionen können nur auf den vorgeschlagenen Workaround zurückgreifen.

Weitere Information zu diesem Thema

(ig)

Hinweis
Die in diesem Text enthaltene Information wurde für die Mitglieder der Universität Stuttgart recherchiert und zusammengestellt. Die Universität Stuttgart übernimmt keinerlei Haftung für die Inhalte. Dieser Artikel darf ausschließlich in unveränderter Form und nur zusammen mit diesem Hinweis sowie dem folgenden Copyrightverweis veröffentlicht werden. Eine Veröffentlichung unter diesen Bedingungen an anderer Stelle ist ausdrücklich gestattet.

Copyright © 2022 RUS-CERT, Universität Stuttgart, https://cert.uni-stuttgart.de/


https://cert.uni-stuttgart.de/ticker/article.php?mid=697