Call: +44 (0)7759 277220 Call
Forum

Welcome, Guest. Please Login.
Nov 22nd, 2024, 6:21am
News: Welcome to Pete Finnigan's Oracle security forum
Home | Help | Search | Members | Login
   Pete Finnigan's Oracle Security Forum
   Oracle Security
   Oracle Security
(Moderator: Pete Finnigan)
   Oracle Forensics and DBstatechecking
« Previous topic | Next topic »
Pages: 1  Reply | Notify of replies | Send Topic | Print
   Author  Topic: Oracle Forensics and DBstatechecking  (Read 8546 times)
Pete Finnigan
PeteFinnigan.com Administrator
*****




Oracle Security is easier if you design for it

   
View Profile | WWW | Email

Gender: male
Posts: 309
Oracle Forensics and DBstatechecking
« on: Mar 5th, 2007, 12:28pm »
Quote | Modify

Hi folks,
I hope this paper can be of use to you.
http://www.giac.org/certified_professionals/practicals/gsoc/0001.php
The code is available from  
http://www.oracleforensics.com/dbstatechecker.sql
 Paul
IP Logged

Pete Finnigan (email:pete@petefinnigan.com)
Oracle Security Web site: http://www.petefinnigan.com
Forum: http://www.petefinnigan.com/forum/yabb/YaBB.cgi
Oracle security blog: http://www.petefinnigan.com/weblog/entries/index.html
Pete Finnigan
PeteFinnigan.com Administrator
*****




Oracle Security is easier if you design for it

   
View Profile | WWW | Email

Gender: male
Posts: 309
Re: Oracle Forensics and DBstatechecking
« Reply #1 on: Mar 6th, 2007, 11:46pm »
Quote | Modify

I've read the paper with great interest.  
One nitpick though. The paper states uses the user SCOTT as an example of a user with (virtually) no privileges. However it has the CONNECT and RESOURCE role.  
 
Furtheron it shows an example of a PL/SQL block that runs an ALTER SESSION statement. It is told that SCOTT could not run this statement, because SCOTT does not have this system privilege. But as far as I know the CONNECT role contains that privilege (at least in 9i this is true).
IP Logged

Pete Finnigan (email:pete@petefinnigan.com)
Oracle Security Web site: http://www.petefinnigan.com
Forum: http://www.petefinnigan.com/forum/yabb/YaBB.cgi
Oracle security blog: http://www.petefinnigan.com/weblog/entries/index.html
Pete Finnigan
PeteFinnigan.com Administrator
*****




Oracle Security is easier if you design for it

   
View Profile | WWW | Email

Gender: male
Posts: 309
Re: Oracle Forensics and DBstatechecking
« Reply #2 on: Mar 7th, 2007, 1:05am »
Quote | Modify

Hello Marcel,
Thanks for taking the time to read the paper and asking this question. Here is the answer:
 
SQL> show user
USER is "SCOTT"
SQL> select * from v$version;
BANNER
----------------------
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Prod
PL/SQL Release 10.1.0.2.0 - Production
CORE    10.1.0.2.0 Production
TNS for 32-bit Windows: Version 10.1.0.2.0 - Production
NLSRTL Version 10.1.0.2.0 - Production
 
SQL> select * from user_role_privs;
no rows selected
 
SQL>  alter session set events 'immediate trace name library_cache level 10';
ERROR:
ORA-01031: insufficient privileges
 
SQL> exec wksys.wk_qry.setsessionlang('AMERICAN'' events ''immediate trace name
library_cache level 10''--');
PL/SQL procedure successfully completed.
 
Your question assumes that SCOTT has the same privileges on Page 11 as Page 4. Bear in mind that SCOTT has been elevated to DBA on Page 5 so the privilege assignment of SCOTT should not be taken out of context. SCOTT with CREATE SESSION cannot set this event but can do by injecting in wksys.wk_qry.setsessionlang as it is vulnerable to SQL injection. This is one example that I could show and there are many more as we know.
The main point of this paper is using DBState checking and comparison to find out the effects of CPU installation and check for malware/unauthorised modification so that the DB can be secured.
When you have had more time to progress through the paper then it would be interesting to hear feedback about these concepts and perhaps how they could be extended.
 
Cheers,
Paul
 
 
IP Logged

Pete Finnigan (email:pete@petefinnigan.com)
Oracle Security Web site: http://www.petefinnigan.com
Forum: http://www.petefinnigan.com/forum/yabb/YaBB.cgi
Oracle security blog: http://www.petefinnigan.com/weblog/entries/index.html
Pete Finnigan
PeteFinnigan.com Administrator
*****




Oracle Security is easier if you design for it

   
View Profile | WWW | Email

Gender: male
Posts: 309
Re: Oracle Forensics and DBstatechecking
« Reply #3 on: Mar 7th, 2007, 9:22am »
Quote | Modify

In that case it's a good example. Maybe I should do less speed-reading.  Smiley
IP Logged

Pete Finnigan (email:pete@petefinnigan.com)
Oracle Security Web site: http://www.petefinnigan.com
Forum: http://www.petefinnigan.com/forum/yabb/YaBB.cgi
Oracle security blog: http://www.petefinnigan.com/weblog/entries/index.html
Pete Finnigan
PeteFinnigan.com Administrator
*****




Oracle Security is easier if you design for it

   
View Profile | WWW | Email

Gender: male
Posts: 309
Re: Oracle Forensics and DBstatechecking
« Reply #4 on: Mar 8th, 2007, 8:54am »
Quote | Modify

Hi Paul and Marcel-Jan,
 
Not in direct conflict with your discussion but I wanted to point out that since 10gR2 the connect role is no longer dangerous as it now only has CREATE SESSION granted to it.
 
cheers
 
Pete
IP Logged

Pete Finnigan (email:pete@petefinnigan.com)
Oracle Security Web site: http://www.petefinnigan.com
Forum: http://www.petefinnigan.com/forum/yabb/YaBB.cgi
Oracle security blog: http://www.petefinnigan.com/weblog/entries/index.html
Pete Finnigan
PeteFinnigan.com Administrator
*****




Oracle Security is easier if you design for it

   
View Profile | WWW | Email

Gender: male
Posts: 309
Re: Oracle Forensics and DBstatechecking
« Reply #5 on: Mar 8th, 2007, 11:16pm »
Quote | Modify

I don't have anything to check, but I THINK the improvement to the CONNECT role privileges apply to fresh databases but not upgraded/migrated ones (eg if you upgrade an existing 9i database to 10gR2, it won't revoke the 'surplus' grant from CONNECT).
 
Of course, if the DBA has their security together, they'd have either already removed it (if not needed) or don't want to remove it (if they do need it).
IP Logged

Pete Finnigan (email:pete@petefinnigan.com)
Oracle Security Web site: http://www.petefinnigan.com
Forum: http://www.petefinnigan.com/forum/yabb/YaBB.cgi
Oracle security blog: http://www.petefinnigan.com/weblog/entries/index.html
Pete Finnigan
PeteFinnigan.com Administrator
*****




Oracle Security is easier if you design for it

   
View Profile | WWW | Email

Gender: male
Posts: 309
Re: Oracle Forensics and DBstatechecking
« Reply #6 on: Mar 9th, 2007, 9:01am »
Quote | Modify

Thanks for the update gary, I was aware of this fact but didnt think to mention it.  
 
cheers
 
Pete
IP Logged

Pete Finnigan (email:pete@petefinnigan.com)
Oracle Security Web site: http://www.petefinnigan.com
Forum: http://www.petefinnigan.com/forum/yabb/YaBB.cgi
Oracle security blog: http://www.petefinnigan.com/weblog/entries/index.html
Pete Finnigan
PeteFinnigan.com Administrator
*****




Oracle Security is easier if you design for it

   
View Profile | WWW | Email

Gender: male
Posts: 309
Re: Oracle Forensics and DBstatechecking
« Reply #7 on: Mar 12th, 2007, 11:21pm »
Quote | Modify

Hi
 
All the privileges except of the CREATE SESSION are removed from the CONNECT role during the upgrade. See the sql-script "c1001000.sql" from the rdbms/admin directory (tested with Oracle 10.2.0.3)
 
...
Rem      c1001000.sql - upgrade Oracle RDBMS from 10.1.0 to the new release
Rem    DESCRIPTION
Rem      Put any dictionary related changes here (ie-create, alter,
Rem      update,...).  If you must upgrade using PL/SQL packages,
Rem      put the PL/SQL block in a1001000.sql since catalog.sql and
Rem      catproc.sql will be run before a1001000.sql is invoked.
...
 
Rem===================================================================== ====
Rem Removal old privileges from CONNECT role
Rem===================================================================== ====
BEGIN
  EXECUTE IMMEDIATE 'REVOKE ALTER SESSION FROM CONNECT';
EXCEPTION
  WHEN OTHERS THEN
    IF SQLCODE = -1952 THEN NULL;
    ELSE RAISE;
    END IF;
END;
/
BEGIN
  EXECUTE IMMEDIATE 'REVOKE CREATE SYNONYM FROM CONNECT';
EXCEPTION
  WHEN OTHERS THEN
    IF SQLCODE = -1952 THEN NULL;
    ELSE RAISE;
    END IF;
END;
/
...
 
 
 
 
To restore the "old" configuration you can call the script  
 "rstrconn.sql" from $OH/rdbms/admin.
 
Cheers
 
 Alexander
 
--
IP Logged

Pete Finnigan (email:pete@petefinnigan.com)
Oracle Security Web site: http://www.petefinnigan.com
Forum: http://www.petefinnigan.com/forum/yabb/YaBB.cgi
Oracle security blog: http://www.petefinnigan.com/weblog/entries/index.html
Pages: 1  Reply | Notify of replies | Send Topic | Print

« Previous topic | Next topic »

Powered by YaBB 1 Gold - SP 1.4!
Forum software copyright © 2000-2004 Yet another Bulletin Board
  • PFCLScan PFCLScan

    Simply connect PFCLScan to your Oracle database and it will automatically discover the security issues that could make your Oracle database vulnerable to attack and to the potential loss of your data.

  • PFCL Obfuscate PFCLObfuscate

    PFCLObfuscate is the only tool available that can automatically add license controls to your PL/SQL code. PFCLObfuscate protects your Intellectual Property invested in your PL/SQL database code.

  • PFCLCode PFCLCode

    PFCLCode is a tool to allow you to analyse your PL/SQL code for many different types of security issues. PFCLCode gives you a detailed review and reports and includes a powerful colour syntax highlighting code editor

  • PFCLForensics PFCLForensics

    PFCLForensics is the only tool available to allow you to do a detailed live response of a breached Oracle database and to then go on and do a detailed forensic analysis of the data gathered.

  • Products We resell PFCLReselling

    PeteFinnigan.com Limited has partnered with a small number of relevant companies to resell their products where they enhance or compliment what we do

  • PFCLATK PFCLATK

    PFCLATK is a toolkit that allows detailed pre-defined policy driven audit trails for your Oracle database. The toolkit also provides for a centralised audit trail and centralised activity reporting

  • PFCLCookie PFCLCookie

    PFCLCookie is a useful tool to use to audit your websites for tracking cookies. Scan websites in a natural way using powerful browser driven scanner

  • PFCL Training PFCLTraining

    PFCLTraining is a set of expert training classes for you, aimed at teaching how to audit your own Oracle database, design audit trails, secure code in PL/SQL and secure and lock down your Oracle database.

  • PFCL Services PFCLServices

    Choose PFCLServices to add PeteFinnigan.com Ltd to your team for your Oracle Security needs. We are experts in performing detailed security audits, data security design work and policy creation

  • PFCLConsulting PFCLConsulting

    Choose PFCLConsulting to ask PeteFinnigan.com Limited to set up and use our products on your behalf

  • PFCLCustom PFCLCustom

    All of our software products can be customised at a number of levels. Choose this to see how our products can be part of your products and services

  • PFCLCloud PFCLCloud

    Private cloud, public cloud, hybrid cloud or no cloud. Learn how all of our services, trainings and products will work in the cloud

  • PFCLUserRights PFCLUserRights

    PFCLUserRights allows you to create a very detailed view of database users rights. The focus of the reports is to allow you to decide what privileges and accounts to keep and which to remove.

  • PFCLSTK PFCLSTK

    PFCLSTK is a toolkit application that allows you to provide database security easily to an existing database. PFCLSTK is a policy driven toolkit of PL/SQL that creates your security

  • PFCLSFTK PFCLSFTK

    PFCLSFTK is a toolkit that solves the problem of securing third party applications written in PL/SQL. It does this by creating a thin layer between the application and database and this traps SQL Injection attempts. This is a static firewall.

  • PFCLSEO PFCLSEO

    PFCLSEO is a web scanner based on the PFCLScan technology so that a user can easily scan a website for technical SEO issues