Copyright © 2014, Reidy Database Consulting, LLC
Oracle Database
Security and Audit
Beyond Checklists
Copyright © 2014, Reidy Database Consulting, LLC Reidy Database Consulting, LLC
Database Security and Risk Assessment
Learning objectives
•
Understand
•
Oracle architecture
•
Database
•
Listener
•
Oracle connection handshake
•
Client/server architecture
•
Authentication methods
•
Password protection
Reidy Database Consulting, LLC Database Security and Risk Assessment
Oracle architecture
•
Architecture of an Oracle database instance
•
Oracle Real Application Cluster (RAC)
•
Oracle Automatic Storage Management (ASM)
•
Oracle Enterprise Manager (OEM) 12c Cloud
Control
Copyright © 2014, Reidy Database Consulting, LLC Reidy Database Consulting, LLC
Database Security and Risk Assessment
•
Oracle database is not just a data store
•
Complex system - like an operating system
•
Networking services (FIFO pipes, etc.) and support for many protocols (TCP, etc.)
•
File subsystem (space allocation, deletion, reuse, recovery, corruption detection, etc.)
•
Job schedulers
•
Kernel interrupts and instrumentation
•
XML storage and processing
•
Shared memory and memory pools
•
Interprocess communication (IPC) and threading
•
Large object storage and processing
•
Encryption support at the data storage and network layers (strong algorithms, SSL
support)
•
Multiple authentication methods (database, Kerberos, LDAP, etc.)
Oracle RDBMS
Architecture
Copyright © 2014, Reidy Database Consulting, LLC Reidy Database Consulting, LLC
Database Security and Risk Assessment
What is an Oracle
instance?
•
Composed of many subsystems
•
This is same regardless if you are speaking of a
single instance database, RAC database, or ASM
database
•
Based on UNIX architecture
•
Software (executables, shared libraries, JAR files,
etc)
•
Disk files (database files, log files, control files)
•
Shared memory
Reidy Database Consulting, LLC Database Security and Risk Assessment
Copyright © 2014, Reidy Database Consulting, LLC
RAC Architecture
•
High availability solution
•
Multiple computers open and access
one database instance
•
Transparent application failover
(network layer)
Copyright © 2014, Reidy Database Consulting, LLC Reidy Database Consulting, LLC
Database Security and Risk Assessment
Reidy Database Consulting, LLC Database Security and Risk Assessment
ASM Architecture
•
Disk volume manager for Oracle database
•
Commonly used in Real Application Cluster (RAC)
configurations
•
But, it can be used in a stand-alone single instance
system
•
Implemented with a small Oracle companion
database
Copyright © 2014, Reidy Database Consulting, LLC Reidy Database Consulting, LLC
Database Security and Risk Assessment
Copyright © 2014, Reidy Database Consulting, LLC Reidy Database Consulting, LLC
Database Security and Risk Assessment
OEM 12c
•
Infrastructure to manage, monitor, provision, and baseline
enterprise computing platforms
•
Oracle database repository (OMR)
•
Web and application servers (OMS)
•
Management agent (OMA)
•
Console (OMC)
•
Operating system configuration
•
Database - single instance, RAC, and ASM services
•
non-Oracle databases via plugins
•
Sensitive data discovery and mapping (Real Application Testing -
RAT)
•
Really, anything you want to monitor and/or manage and/ or test
Reidy Database Consulting, LLC
Database Security and Risk Assessment
Deployed
to target
servers
Web servers
Copyright © 2014, Reidy Database Consulting, LLC Database Security and Risk Assessment
Oracle networking
•
Database and database application are
separated into a client/server architecture
•
Client runs the database application
•
SQL*Plus, Desktop programs, web
applications, etc.
•
Server runs the Oracle database software
•
Functions for concurrent, shared data
access
http://docs.oracle.com/cd/E11882_01/server.112/e16508/
dist_pro.htm#CNCPT006
Copyright © 2014, Reidy Database Consulting, LLC Reidy Database Consulting, LLC
Database Security and Risk Assessment
Client/server
architecture
Reidy Database Consulting, LLC Database Security and Risk Assessment
Oracle listener
•
Server side process
•
Traffic manager
•
Incoming client connection requests
•
Establishes a pathway to the database
instance
Copyright © 2014, Reidy Database Consulting, LLC Reidy Database Consulting, LLC
Database Security and Risk Assessment
Connection handshake
•
03Logon pre-11g
•
05Logon
!
Essentially the same process regardless of
database version.
Copyright © 2014, Reidy Database Consulting, LLC Reidy Database Consulting, LLC
Database Security and Risk Assessment
03Logon
User application
Logon as SYSTEM
Send username to server = SYSTEM
Database server
Client software such as SQL*Plus starts a connection with SQL>connect system/ manager
Reidy Database Consulting, LLC Database Security and Risk Assessment
03Logon
User application
Logon as SYSTEM
Send username to server = SYSTEM
Database server
The server retrieves the hash from sys.user$, generates a random number, and encrypts the random number with the hash used as a key.
The server receives the
request, gets the hash and
generates the session key
Copyright © 2014, Reidy Database Consulting, LLC
03Logon
User application
Logon as SYSTEM
Send username to server = SYSTEM
Database server
The server retrieves the hash from sys.user$, generates a random number, and encrypts the random number with the hash used as a key.
Send session key
The server send the session
key to the client
Copyright © 2014, Reidy Database Consulting, LLC Reidy Database Consulting, LLC
Database Security and Risk Assessment
03Logon
User application
Logon as SYSTEM
Send username to server = SYSTEM
Database server
The server retrieves the hash from sys.user$, generates a random number, and encrypts the random number with the hash used as a key.
Send session key
1) The client evaluatesthe Oracle password algorithm and generates the password hash 2) The password hash is
used to decrypt the session key
At this point it is possible to
enumerate users in the database
Reidy Database Consulting, LLC Database Security and Risk Assessment
03Logon
User application
Logon as SYSTEM
Send username to server = SYSTEM
Database server
The server retrieves the hash from sys.user$, generates a random number, and encrypts the random number with the hash used as a key.
Send session key
1) The client evaluatesthe Oracle password algorithm and generates the password hash 2) The password hash is
used to decrypt the session key
The client evaluates
the hash and decrypts
Copyright © 2014, Reidy Database Consulting, LLC Reidy Database Consulting, LLC
Database Security and Risk Assessment
03Logon
User application
Logon as SYSTEM
Send username to server = SYSTEM
Database server
The server retrieves the hash from sys.user$, generates a random number, and encrypts the random number with the hash used as a key.
Send session key
1) The client evaluatesthe Oracle password algorithm and generates the password hash 2) The password hash
is used to decrypt the session key
Send encrypted password = AUTH_PASSWORD
Client encrypts the clear text password using the session key as the new key
At this point, if we know
the hash and have access
to SQL*Net trace files we
can decrypt the password
Copyright © 2014, Reidy Database Consulting, LLC Reidy Database Consulting, LLC
Database Security and Risk Assessment
03Logon
User application
Logon as SYSTEM
Send username to server = SYSTEM
Database server
The server retrieves the hash from sys.user$, generates a random number, and encrypts the random number with the hash used as a key.
Send session key
1) The client evaluates the Oracle password algorithm and generates the password hash 2) The password hash is
used to decrypt the session key
Send encrypted password = AUTH_PASSWORD
Client encrypts the clear text password using the session key as the new key
The server decrypts the session key, evaluates the password algorithm, and compares the hash with
sys.user$.password or
sys.user$.spare4
The server gets the
password, creates the hash
and checks if login can
proceed
Reidy Database Consulting, LLC Database Security and Risk Assessment
03Logon
User application
Logon as SYSTEM
Send username to server = SYSTEM
Database server
The server retrieves the hash from sys.user$, generates a random number, and encrypts the random number with the hash used as a key.
Send session key
1) The client evaluatesthe Oracle password algorithm and generates the password hash 2) The password hash
is used to decrypt the session key
Client encrypts the clear text password using the
session key as the new key Send encrypted password = AUTH_PASSWORD
The server decrypts the session key, evaluates the password algorithm, and compares the hash with
sys.user$.password or
sys.user$.spare4
Begin Session
If the hashes match, session is startedSession can begin to send and receive data from the database
Copyright © 2014, Reidy Database Consulting, LLC
Client/server architectures
•
Dedicated server architecture
•
Server process created on behalf of each client
process
•
Shared server architecture
•
Dispatcher directs incoming requests to pool of
shared server processes
•
Database resident connection pooling
•
Connection pool of dedicated servers for typical
Web application scenarios
Copyright © 2014, Reidy Database Consulting, LLC Reidy Database Consulting, LLC
Database Security and Risk Assessment
Dedicated server process
Reidy Database Consulting, LLC Database Security and Risk Assessment
Copyright © 2014, Reidy Database Consulting, LLC Reidy Database Consulting, LLC
Database Security and Risk Assessment
Database resident connection pooling
Copyright © 2014, Reidy Database Consulting, LLC Reidy Database Consulting, LLC
Database Security and Risk Assessment
Oracle networking
•
Establish and maintain connection between client and
database
•
Based on the OSI architecture
•
Stack based architecture
•
3 basic type of connections
•
Client/Server Connections
•
Java Connections
•
Web client connections
http://docs.oracle.com/cd/B28359_01/network.111/b28316/
architecture.htm#i1048731
!
http://en.wikipedia.org/wiki/OSI_model
Reidy Database Consulting, LLC Database Security and Risk Assessment