Call: +44 (0)1904 557620 Call
Forum

Welcome, Guest. Please Login.
Apr 19th, 2024, 9:28pm
News: If you would like to register contact the forum admin
Home | Help | Search | Members | Login
   Pete Finnigan's Oracle Security Forum
   Oracle Security
   Oracle Security
(Moderator: Pete Finnigan)
   Checking EXECUTE IMMEDIATE in wrapped PLSQL
« Previous topic | Next topic »
Pages: 1  Reply | Notify of replies | Send Topic | Print
   Author  Topic: Checking EXECUTE IMMEDIATE in wrapped PLSQL  (Read 5459 times)
Pete Finnigan
PeteFinnigan.com Administrator
*****




Oracle Security is easier if you design for it

   
View Profile | WWW | Email

Gender: male
Posts: 309
Checking EXECUTE IMMEDIATE in wrapped PLSQL
« on: Apr 2nd, 2008, 12:44am »
Quote | Modify

A query on checking the content of wrapped PL/SQL code.
 
I'm considering the situation of an organisation with third party code in the form of wrapped PL/SQL packages.  It would be useful to know that each package "did what it says on the box". That is, we know what tables it accesses and other packages it uses.
 
DBA_DEPENDENCIES can reveal most of that, and could show DBMS_SQL if they use that mechanism of Dynamic SQL. However it won't show up an EXECUTE IMMEDIATE.
 
Is there any way for a DBA to check for this (eg can it be done with DBMS_ASSERT or a scan of the DIANA code) ? Failing that, can it be audited ?
 
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: Checking EXECUTE IMMEDIATE in wrapped PLSQL
« Reply #1 on: Apr 2nd, 2008, 8:32am »
Quote | Modify

Hi Gary,
 
Good question. A check for DBMS_ASSERT is only useful if the developers have actually used DBMS_ASSERT in their code. If its 10g then scanning the DIANA in the IDL%$ tables is not valid as the DIANA is not stored for package bodies, if you can compile the code then it is possible to get hold of the DIANA in RAM but then you need to understand the DIANA structure to make use of it, so this is a complete non-starter. There would seem to be two possible solutions, unwrap the code and review it, or run it and check v$SQL etc to find any dynamic SQL, PL/SQL or DDL run from in the code. This is also fraught with error as you have no idea if all code paths are executed.  
 
The third option (ok I said 2) is to ask the vendor to allow you (one trusted person with the right skill and under an NDA) to review the code in clear text. Unwrapping the code to review it yourselves could invalidate support, break license......
 
Proper source code review is the best option
 
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: Checking EXECUTE IMMEDIATE in wrapped PLSQL
« Reply #2 on: Apr 7th, 2008, 2:45am »
Quote | Modify

Thanks for the feedback.
I think it will come down to trusting the supplier (and keeping a good eye on the privileges of the account stuff runs under, and an extra eye on anything DEFINER rights).
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: Checking EXECUTE IMMEDIATE in wrapped PLSQL
« Reply #3 on: Apr 7th, 2008, 9:31am »
Quote | Modify

Hi Gary,
 
I would ask the supplier anyway if you or a trusted third party can review the code under NDA, if they refuse then ask them to at least have a meeting to pose the "questions" you would pose as part of a technical review, but do it verbally rather than as part of a code review. I.e. sit them down and ask about use of execute immediate, ask for some samples, annonymised if necessary and comment on them. There is always a way to satisfy yourselves.  
 
The situation is better, if you havent handed over the license fee yet and if there is another direct competitor to them that you can threaten them with.
 
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: Checking EXECUTE IMMEDIATE in wrapped PLSQL
« Reply #4 on: Apr 10th, 2008, 12:15am »
Quote | Modify

The specific situation under consideration involved an upgrade to an existing app (from running on 9i to 10g) where all the 10g code would all be wrapped.
It is complicated by the fact the the supplier is in a different country (and I believe the coding is actually done in a third country). And there's patches coming through regularly too.
While I believe they probably would accept some form of review, the effort/costs for this situation wouldn't get past the bean-counters. A quickie script or routine to flag up danger signs would have been a different matter.
 
But I agree that in other situations the third-party review under a NDA would be an appropriate measure.  
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