数据库是信息系统中不可或缺的部分。随着大数据时代的到来,数据库已经成为犯罪分子的目标,大量数据库被用于存放网络盗窃和网络诈骗中产生的数据。将涉案数据库的数据提取出来,成为了打击犯罪的重要手段之一。
在众多数据库中,Oracle (全称OracleDatabase),一直是一款处于领先地位的关系数据库管理系统。因为其系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境,它是一种高效率、可靠性好的、适应高吞吐量的数据库解决方案。
也因为稳定性好、安全系数高等优势,Oracle数据库是众多大型企事业单位首选的数据库,如公安局的身份证数据信息存储、中国银行的数据信息存储、淘宝数据存储等。这些单位有一个共同特点:数据量大,要求数据准确,要求系统性能高。
现阶段,在众多案件的电子取证过程中我们也常常看到Oracle数据库的身影,今天,源妹儿就跟大家分享一种通过附加Oracle数据库提取数据库数据的方法。
数据提取思路
1、将Oracle数据库文件提取恢复出来;
2、在取证电脑上安装Oracle数据库,Oracle版本号需要与案例检材中Oracle版本号一样,然后将检材中的Oracle数据库文件拷贝到取证电脑,附加数据库文件(PS:附加数据库是整个数据提取过程中的核心所在,本文档将详细讲解附加数据库的过程);
3、附加完成后即可打开Oracle数据,提取记录数据。
操作步骤
1、使用专业的电子取证工具:DRS6800数据恢复系统(以下简称DRS),加载案例服务服务器镜像,提取镜像中的Oracle数据库文件,提取出来的Oracle数据库文件如下图:
2、在取证电脑中安装与检材中Oracle数据库版本相同的Oracle软件,并且创建与检材中相同实例名的数据库(Oracle安装过程本文档不详细介绍,网上很多Oracle的安装教程)。
3、Oracle安装成功并且创建了实例后,将数据库服务关闭,建议在cmd命令行使用如下语句完成:
- sqlplus /nolog
- conn /as sysdba
- shutdown immediate
4、关闭数据库后,将从检材中提取出来的Oracle数据文件替换到当前电脑的Oracle数据文件所在路径
5、Oracle数据文件替换完毕后,在cmd命令行以无挂载的方式重新启动数据库,使用如下命令完成 :startup nomount;
6、因为控制文件的记录了数据库的创建时间,数据文件的位置,日志文件的位置等,其作用是指导数据库找到数据文件,日志文件并将数据库启动到open状态,因为迁移的原因改变这些参数,因此需要重构控制文件,使用如下语句重构控制文件:
CREATE CONTROLFILE REUSE DATABASE "qsdb" NORESETLOGS ARCHIVELOG
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 226
LOGFILE
GROUP 1
'F:\app\xly\oradata\qsdb\redo01.log' SIZE 800M,
GROUP 2
'F:\app\xly\oradata\qsdb\redo02.log' SIZE 800M,
GROUP 3
'F:\app\xly\oradata\qsdb\redo03.log' SIZE 800M,
DATAFILE
'F:\app\xly\oradata\qsdb\system01.dbf',
'F:\app\xly\oradata\qsdb\system02.dbf',
'F:\app\xly\oradata\qsdb\undotbs01.dbf',
'F:\app\xly\oradata\qsdb\sysaux01.dbf',
'F:\app\xly\oradata\qsdb\users01.dbf',
'F:\app\xly\oradata\qsdb\hfsj_qs1.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs2.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs3.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs4.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs5.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs6.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs7.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs8.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs9.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs10.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs11.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs12.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs13.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs14.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs15.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs16.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs17.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs18.dbf',
'F:\app\xly\oradata\qsdb\qsweihu.dbf'
'F:\app\xly\oradata\qsdb\goldengate.dbf'
'F:\app\xly\oradata\qsdb\hfqsquery.dbf'
'F:\app\xly\oradata\qsdb\hfqsmon.dbf '
CHARACTER SET US7ASCII;
7、在重构完毕控制文件后,重新打开数据库,会报错,提示SYSTEM01数据文件需要执行介质修复,如图所示:
a.修复数据文件,执行如下语句完成修复:
- recover datafile 'F:\app\xly\oradata\qsdb\SYSTEM01.DBF';
b.在执行介质修复过程中若提示数据文件因为有坏块,无法进行介质恢复,可以执行如下语句,跳过坏块继续修复:
- recover database ‘F:\app\xly\oradata\qsdb\system01.dbf’ allow 1 corruption;
重复以上a,b步骤,将数据文件修复完毕,其中只有当出现a步骤中因为有坏块无法正常进行介质修复时,才采用b步骤中的跳过坏块修复,如图所示:
8、若无法忽略坏块进行修复,且恰好是sysaux数据文件出现错误,如图所示:
可选择使sysaux数据文件offline,即可打开数据库,执行如下语句:
- alter database datafile ‘F:\app\xly\oradata\SYSAUX01.DBF’ offline;
9、完成如上操作,即可正常启动数据,如图所示:
10、使用Navicat软件链接并打开Oracle,即可访问Oracle记录,根据公安局要求需要指定代理商及其会员的所有刷卡套现的记录,分析Oracle数据库表结构后,编写SQL语句查询某代理商的数据如下:
注意事项
在采用上述方法对Oracle数据库数据进行提取时要注意以下几点:
1、上述方法能确保Oracle数据库的数据完整性,并且不会对原始数据产生破坏,但是该方法较为复杂,需要专业的技术人员辅助完成;
2、确保从服务器中获取到的数据库的完整性,不然会导致附加失败;
3、确保搭建环境附加数据库的电脑具有足够的空间,不然会因为空间不足导致附加失败;
4、确保搭建环境中Oracle数据库版本与服务器中的Oracle数据库版本完全一致;
5、以上操作涉及到很多专业技能,如有必要可找寻专业的公司或技术人员协助完成。