Auditing an Oracle database for security issues is very important. PeteFinnigan.com provides all of the information and tools that you will need Click here for details of PeteFinnigan.com Limited's detailed Oracle database security audit service Click here for details of PeteFinnigan.com Limited's Oracle Security Training Courses
Cookie Policy:We only use essential cookies on small sections of this website. For details see here.

Welcome, Guest. Please Login.
Nov 23rd, 2017, 7:14am
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)
   Overwriting Data or Wiping?
« Previous topic | Next topic »
Pages: 1  Reply | Notify of replies | Send Topic | Print
   Author  Topic: Overwriting Data or Wiping?  (Read 7786 times)
esotericargot
PeteFinnigan.com Newbie
*



I love YaBB 1G - SP1!

   
View Profile |

Posts: 1
Overwriting Data or Wiping?
« on: Nov 27th, 2008, 6:33am »
Quote | Modify

Hello,
 
When deleting rows or dropping columns, is there any way to ensure that the underlying data in the block actually gets overwritten?  Whether that translates into the same bits on disk being overwritten seems to be a hardware question that I can answer separately.
 
For example, suppose that there is an application using the database that implements its own authentication mechanism.  The core of the feature is the storage of password hashes as a column of a user table.
 
Suppose that the application migrates to an alternate authentication mechanism and no longer needs to provide its own.  How can we be sure that when dropping that column the hashes have been overwritten (say with ' ' or \0 or somesuch)?  Simply dropping the column does not result in that data being overwritten/wiped off disk.
 
Similarly, when updating a column, is there a way to ensure that the previous value gets overwritten?  The best advice I've gotten is to update the column with a value that is the same size as the previous value, but even then there's apparently no guarantee that Oracle will overwrite the previous value in the block.
 
Is it possible to wipe all unused space inside an extent, including the free space within a block?
 
I recognize that the old values appear in other places such as the redo logs and in RMAN backups.
 
I've only gotten two sure answers so far.  For both answers, the first step is to get rid of the unwanted data first: drop/disable unwanted columns, delete unwanted rows, update values in columns, etc.  Then, pick your poison:
 
1) export the database to new storage and then to wipe all blocks of the old storage using something like dd or a commercial tool.  That's not feasible for us.
 
2) use materialized views to get a clean copy on new storage and then wipe the old storage.  This option is feasible but still a massive amount of work.
 
Are there any reasonable solutions?
 
Utilizing encryption doesn't take care of existing data (except reasonably with RMAN and the destruction of tapes), but may be a solution we will implement in the future.
 
This pertains to Oracle 10g R2 on Linux.
 
Thanks,
Esoteric
IP Logged
Pete Finnigan
PeteFinnigan.com Administrator
*****




Oracle Security is easier if you design for it

   
View Profile | WWW | Email

Gender: male
Posts: 309
Re: Overwriting Data or Wiping?
« Reply #1 on: Nov 27th, 2008, 1:14pm »
Quote | Modify

Hi Esoteric,
 
This is a very good question but one I am afraid we probably do not have a quick easy answer for. If you could move the table to its own tablespace you would control the datafile and could then drop it, secure delete and then recreate BUT as you have already said the problem is the data in the existing datafile.  
 
I am sure that you have seen the many papers on Oracle forensics that discuss the issues of data recovery from Oracle data blocks. Oracle has a tendancy to not overwrite existing data for some time after its updated or deleted. This is great for forensics but not if you want rid of the data completely.
 
The second problem with Oracle is its tendancy to replicate data all over the place, shared memory, redo, archivelogs, flashback, actual data files, audit trails....
 
Maybe; maybe you are coming at the problem from the wrong end. You seem to want to update application authentication but remove old authentication details / data at the same time - presumably because they are either in clear text or very simply encoded/hashed/encrypted.  
 
Why not do your update to the new algorithm/storage but force all users to have new passwords that also must be expired to force change on use. This way any data that could be read from datafiles, memory, redo, archivelog etc is redundant; no longer valid; therefore no use to anyone who can read 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: Overwriting Data or Wiping?
« Reply #2 on: Nov 27th, 2008, 2:09pm »
Quote | Modify

Hi Esoteric,
 
You may also find this useful - http://www.petefinnigan.com/weblog/archives/00001223.htm - also if you go to the same page on David's site there are 6 other papers on Oracle forensics.
 
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
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