Oracle Vulnerabilities and Security Assessment

Download Report

Transcript Oracle Vulnerabilities and Security Assessment

Information System Security
Outline
Oracle Vulnerabilities
 Oracle Security Assessment

Information System Security - Week 10
2
Outline
Oracle Vulnerabilities
 Oracle Security Assessment

Information System Security - Week 10
3
Ways to attack
Information System Security - Week 10
4
Outline

Oracle Vulnerabilities
 Users/Passwords
 PL/SQL injection
 Running System Commands
 Other Vulnerabilities
Information System Security - Week 10
5
Users/Passwords
TNS protocol
 How Oracle authenticates users?
 Vulnerabilities

Information System Security - Week 10
6
TNS protocol
Information System Security - Week 10
7
TNS protocol (cont)
TNS Listener is the hub of all
communications in Oracle.
 Information gathering can be done
through TNS.

Client
Connect
Listener
Accept or Redirect
Information System Security - Week 10
8
TNS protocol (cont)
Information System Security - Week 10
9
Authentication process
Client
Server
Send Username
Decrypts
AUTH_SESSKEY
Generates Secret
Number
Send AUTH_SESSKEY
Send AUTH_PASSWORD
Encrypts Password
Compares with the
password hash from
database.
Authenticated
Information System Security - Week 10
10
How about Oracle 11g
Client
Server
Send Username
Decrypts
AUTH_SESSKEY
Generates own
AUTH_SESSKEY
Combines 2
AUTH_SESSKEY 
Encrypt Password
Generates Secret
Number
Send AUTH_SESSKEY
and AUTH_VFR_DATA
Send AUTH_PASSWORD
Compares with the
password hash from
database.
Authenticated
Information System Security - Week 10
11
Vulnerabilities

Crypto Aspect
 If we have the password (hash)  get
clear text password
Information System Security - Week 10
12
Vulnerabilities (cont)

Default Usernames/Passwords.

Files for passwords.

Brute-force.
Information System Security - Week 10
13
PL/SQL Injection
Introduction
 Procedures, functions
 Triggers
 VPD

Information System Security - Week 10
14
Introduction

PL/SQL is the programming
language built into Oracle extends
SQL.

Can call external library (C or Java).

Used to create procedures,
functions, triggers…
Information System Security - Week 10
15
Introduction (cont)

Execution privileges.
 Definer privileges: “owner” rights.
 Invoker privileges:
Keyword: AUTHID CURRENT_USER

PL/SQL can be wrapped  working
without source: DESCribe feature.
Information System Security - Week 10
16
Procedures
Similar to SQL injection.
 PL/SQL injection can occur with a
statement like this:

Select * from table_name where
id=‘USER_INPUT’
Select * from table_name where
id=‘XXX’ UNION SELECT ….
Information System Security - Week 10
17
Procedures (cont)

Inject function to PL/SQL statement.
 Keyword: AUTONOMOUS_TRANSACTION

Take advantage of what right
functions/procedures are based on.
Information System Security - Week 10
18
Triggers
Similar to procedures/functions
injection.
 Note: Triggers run with definer right.
 Some real-world examples:

 MDSYS.SDO_DROP_USER_BEFORE
 MDSYS.SDO_GEOM_TRIG_INS1
Information System Security - Week 10
19
VPD
VPD is based on policy function.
 Can be exploited through PL/SQL
injection to drop policy.
 Or exploited to grant EXEMPT
ACCESS POLICY privilege
 Another way to defeat VPD is
reading raw file  HARD

Information System Security - Week 10
20
Running System Commands
Through PL/SQL
 Through Java
 Access File System
 Access Network

Information System Security - Week 10
21
Through PL/SQL
Use msvcrt.dll library to exec system
command.
 Must have create library privilege to
register library in oracle
 Newer versions of Oracle only accept
libraries in Oracle_home/bin

Information System Security - Week 10
22
Through PL/SQL (cont)







CREATE OR REPLACE LIBRARY exec_shell AS
'C:\winnt\system32\msvcrt.dll';
CREATE OR REPLACE PROCEDURE oraexec
(cmdstring IN CHAR)
IS EXTERNAL
NAME "system"
LIBRARY exec_shell
LANGUAGE C;
EXEC ORAEXEC('NET USER MYACCOUNT
PASSWORD /ADD');
Information System Security - Week 10
23
Through Java
Don’t need create library privilege.
 Require:

 Execute on all files.
 Write File Descriptor.
 Read File Descriptor.
Information System Security - Week 10
24
Through Java (cont)











CREATE OR REPLACE AND RESOLVE JAVA
SOURCE NAMED "JAVACMD" AS
import java.lang.*;
import java.io.*;
public class JAVACMD
{
public static void execCommand (String
command) throws IOException
{
Runtime.getRuntime().exec(command);
}
};
Information System Security - Week 10
25
Other ways
Using DBMS Scheduler.
 Using Job Scheduler.
 Using Alter System statement.

Information System Security - Week 10
26
Access File System
Use UTL_FILE library
 Need to have privilege to access
DIRECTORY object or create a new
one.
 Using Java: is similar to running OS
command.

 Need Read and Write permission
Information System Security - Week 10
27
Access Network
Use UTL_TCP or UTL_HTTP.
 Create connection to a remote host
 transfer data.

Information System Security - Week 10
28
Other Vulnerabilities

System Configurations
 O7_DICTIONARY_ACCESSIBILITY
 remote_os_authent
 dblink_encrypt_login
 ..
TNS protocol settings
 Application vulnerabilities

Information System Security - Week 10
29
Other Vulnerabilities

Session attack
 http://www.youtube.com/watch?v=jjRrL
JEbDQU

Access Control bypass in Login
 http://www.securityfocus.com/archive/
1/422253
Information System Security - Week 10
30
Outline
Oracle Vulnerabilities
 Oracle Security Assessment

Information System Security - Week 10
31
Oracle Assessment
Vulnerability scanning
 Penetration testing

Information System Security - Week 10
32
Vulnerability scanning
 Look
for evidence of
 Vulnerable software versions
 Presence or lack of patches
 Misconfiguration
Information System Security - Week 10
33
Vulnerability assessment tool

Secure Oracle Auditor™ (SOA)
Information System Security - Week 10
34
Penetration test

A penetration test (pentest) is a
method of evaluating the security of
a computer system or network by
simulating an attack from a
malicious source.
Information System Security - Week 10
35
Penetration test
o
Stages:
o Scope/Goal Definition
o Information Gathering
o Vulnerability Detection
o Information Analysis and Planning.
o Attack& Penetration/Privilege Escalation.
o Result Analysis & Reporting.
o Cleanup.
Information System Security - Week 10
36
Information gathering

Footprint
 The first and most convenient way that
hackers use to gather information.
 Includes: internet, remote
access,extranet…
 Example: whois hvaonline.net
Information System Security - Week 10
37
Information gathering

Example:
Information System Security - Week 10
38
Attack

SQL script
Information System Security - Week 10
39
Vulnerability assessment tool
AppDetectivePro for Oracle
 Metasploit

Information System Security - Week 10
40
DATABASE SERVICES
COUNTERMEASURES
Remove default accounts, assign
strong passwords to existing accounts,
and begin the audit facility for failed
logins.
 Keep the databases patched
 Reducing the privileges such as
PUBLIC, keeping the privileges to a
minimum, and auditing access to
critical tables and views.

Information System Security - Week 10
41
Summary

Vulnerabilities usually occur based
on granting inappropriate privileges.
 CREATE ANY PROCEDURE
 CREATE ANY TRIGGER
 CREATE ANY VIEW
 GRANT Something to PUBLIC
…
Information System Security - Week 10
42
References
Oracle Hacker’s HandBook
 Database Hacker’s HandBook
 http://www.petefinnigan.com/weblog/
 http://soonerorlater.hu/index.khtml?ar
ticle_id=512

Information System Security - Week 10
43
Information System Security - Week 10
44