Oracle e' uno dei piu' diffusi e conosciuti database relazionale commerciali
in particolare per le aziende.
Essendo tipicamente utilizzato all'interno di reti private spesso si sottovalutano
le configurazioni relative alla sicurezza.
Per esempio lasciando le password delle utenze di base impostate con valori di default:
chi non conosce le famigerate SYSTEM/MANAGER SYS/CHANGE_ON_INSTALL e SCOTT/TIGER?
Questa pagina descrive come controllare in modo semplice e veloce le password
e lo stato di blocco degli utenti principali.
Per controllare le password si utilizza una query sulla tabella DBA_USER
verificando le password crittografate rispetto ad una lista di valori noti.
In questo modo la verifica e' immediata.
Per eseguire lo script e' necessario il privilegio DBA o comunque l'accesso alla tabella DBA_USERS.
Il codice SQL necessario e':
column password format a16 column account_status format a16 select username, account_status from dba_users where password in ('E066D214D5421CCC', '24ABAB8B06281B4C', '72979A94BAD2AF80', '9AAEB2214DCC9A31', 'C252E8FA117AF049', 'A7A32CD03D3CE8D5', '88A2B2C183431F00', '7EFA02EC7EA6B86F', '9B616F5489F90AD7', '4A3BA55E08595C81', 'F894844C34402B67', '3F9FBD883D787341', '79DF7A1BD138CF11', '7C9BA362F8314299', '88D8364765FCE6AF', 'F9DA8977092B7B81', '9300C0977D7DC75E', 'A97282CE3D94E29E', 'AC9700FD3F1410EB', 'E7B5D92911C831E1', 'AC98877DE1297365', '66F4EF5650C20355', '84B8CBCA4D477FA3', 'D4C5016086B2DC6A', '5638228DAF52805F', 'D4DF7931AB130E37', 'D728438E8A5925E0', '545E13456B7DDEA0', '2FFDCBB4FD11D9DC', '56DB3E89EAE5788E', '402B659C15EAF6CB', '71E687F036AD56E5', '24ABAB8B06281B4C', 'A13C035631643BA0', '72979A94BAD2AF80', '4A3BA55E08595C81', '355CBEC355C10FEF', '80294AE45A46E77B', 'E7B5D92911C831E1', 'E74B15A3F7A19CA8', 'BEAA1036A464F9F0', 'B1344DC1B5F3D903', '58872B4319A76363', 'F894844C34402B67', '8A8F025737A9097A', '4DE42795E66117AE', '639C32A115D2CA57', '447B729161192C24', '8BF0DA8E551DE1B9', '482B65ME0BEAF6BB', '2D594E86F93B17A1', '970BAA5B81930A40') order by account_status desc, username;Eseguendo lo script con SQL*Plus si ottiene l'elenco delle utenze le cui password sono quelle di default e l'indicazione se l'utente e' attivo o meno.
Nella versione 11g sono state modificate diverse impostazioni relative alla sicurezza (eg. encryption con SHA-1) e le password criptate non sono piu' visibili nella tabella dba_users [NdA ora si trovano nella tabella SYS.USER$]. E' pero' disponibile una vista che consente un semplice controllo delle password non modificate:
select d.username, u.account_status from dba_users_with_defpwd d, dba_users u where d.username=u.username;
Lo script riportato in questo documenti
verifica le principali utenze amministrative di Oracle ed di Oracle
Applications controllando che non abbiano la password di default.
Utenze con password di default ma in stato LOCK non sono un problema,
al contrario vanno modificate immediatamente
le password delle utenze in stato OPEN.
Questo script e' adatto ad un controllo di sicurezza e non per un exploit.
La sicurezza di un database Oracle correttamente configurato e' generalmente buona.
Un attacco diretto brute-force e' lento (Oracle rallenta la risposta dopo i primi
tentativi di accesso errati), le password sono memorizzate crittografate con
un algoritmo non reversibile,
gli utenti che superano il limite di tentativi di accesso vengono disabilitati.
Oracle e' sicuramente piu' soggetto ad attacchi DOS...
esiste comunque una possibilita' per un attacco Brute Force
sia rivolto ad Oracle sia ad altri Database.
Altri documenti di questo tipo su questa pagina
Titolo: Controllo password Oracle
Livello: Hack
Data:
31 Ottobre 2012 🎃 Halloween
Versione: 1.0.2 - 14 Febbraio 2014 ❤️ San Valentino
Autore: mail [AT] meo.bogliolo.name