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