Pete Finnigan's Oracle Security Forum (http://www.petefinnigan.com/forum/yabb/YaBB.cgi)
Oracle Security >> Oracle Security >> Overwriting Data or Wiping?
(Message started by: Pete Finnigan on Nov 27th, 2008, 6:33am)

Title: Overwriting Data or Wiping?
Post by Pete Finnigan on Nov 27th, 2008, 6:33am
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

Title: Re: Overwriting Data or Wiping?
Post by Pete Finnigan on Nov 27th, 2008, 1:14pm
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

Title: Re: Overwriting Data or Wiping?
Post by Pete Finnigan on Nov 27th, 2008, 2:09pm
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



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