Nun, wie kann man schnell prüfen, ob die eigene Datenbank betroffen ist. Hierfür habe ich einen kleinen SQL-Script vorbereitet, der überprüft, ob die Privilegien, die erforderlich sind diese Schwachstelle zu nutzen, in der Datenbank vergeben wurden.
DB-User, die folgende Privilegien besitzen, könnten die Schwachstelle ausnutzen und somit hochprivilegierte Rechte erlangen:
- CREATE TABLE
- CREATE PROCEDURE
- EXECUTE ON CTX_DDL
- EXECUTE ON DBMS_STAT
set heading off set scan off select '********** DB SECURITY CHECK USERRIGHTS'||sysdate|| ' FOR DATABASE: '||name||' **********' from v$database; set heading on; echo off; feedback off; verify off; underline on; timing off; set linesize 400 set pages 1000 spool output.log col owner format a30 col table_name format a30 col privilege format a30 col grantee format a30 SELECT * from ( select NULL OWNER, 'SYSTEM PRIV' TABLE_NAME, privilege, grantee from dba_sys_privs where privilege in ('CREATE TABLE', 'CREATE PROCEDURE', 'CREATE ANY TABLE', 'CREATE ANY PROCEDURE') UNION select owner, table_name, privilege, grantee from dba_tab_privs where privilege = 'EXECUTE' and table_name in ('DBMS_STATS', 'CTX_DDL') ) order by grantee, privilege; col owner clear col table_name clear col privilege clear col grantee clear spool off exit
In meiner Datenbank ist genau ein Benutzer betroffen und zwar SCOTT. Die output.log Datei zeigt das Ergebnis.
Der nächste Schritt: Überprüfen, ob die Privilegien notwendig sind, wenn nein entziehen. Danach Patch einspielen.
Oracle Details finden Ihr hier.
Keine Kommentare:
Kommentar veröffentlichen