ORACLE比特币加密恢复

说到病毒,80后的我们立马就会想到“新型冠状病毒”,会想到“武汉加油,中国加油”。作为一名Oracle Dba,提到病毒,我们还会想起最近今年来,在windows平台上大量爆发的“比特币勒索病毒”,他对身体无法,但是它曾导致某个国家的交通系统被感染,出现交通系统瘫痪,也曾导致某省的国土资源厅系统被感染,长达10天之久的不动产系统不能正常对外提供服务。

比特币勒索病毒它是什么呢?

它其实也就是一类软件,此类软件对指定文件进行加密的软件,按照它配置的规则进行加密。加密完成后,会在Windows桌面出现出现下面图面,提示文件已经加密,如需解密,就转***比特币,所以我们称谓“比特币勒索病毒”。

它加密的软件一定得需要转比特币才能解密吗?

答案:肯定不是的,否则就不会有今天的文章了。

比特币勒索病毒已经由原来刚出来的一款软件变化到今天的很多款软件,每款软件的加密规则都不一样,单是原理是类似的。对符合条件的文件,按照指定的格式加密,生成新的文件,新文件名为元文件后加上.xxxx(加密程序不同后缀也不同),如文件1.txt,经加密程序加密之后将变成1.txt.xxx,同时删除原来文件。

如果加密的文件是Oracle数据的数据文件,那么整个Oracle数据库就不能打开。

此时我们能向黑客低头吗?肯定不能撒。

如果你很不幸遇到这样的case,别慌张,可以找我们,让我们一起来帮你分析。

针对比特币勒索病毒加密Oracle数据库的不同的文件,对数据库的影响,我们做了如下的总结:

  • 数据库软件被加密 — 无所谓,重新安装一个oracle软件就好
  • oracle控制文件和redo被加密 — 此时控制文件和redo都没有那么重要了
  • oracle数据文件被加密 — 这是我们需要分析的重点,也是恢复的重点

目前我们遇到常见的比特币勒索病毒有很多种,并且还在不断的新增加,加密规则也在不断的发生变化,对加密规则做如下的总结

  • 文件前1M加密(本文将模拟该情况)
  • 文件前2M加密
  • 8k间隔加密
  • 文件首尾各加密1M
  • 全加密等等

通过我们以前恢复的经验,加密程序通常并不会对全文件进行加密,我们完全可以通过工具或者一些特殊手段将大部分未加密的数据抽取出来,以实现最大程度的恢复。如果数据文件全加密,那么大部分也不会对bak备份文件或者dmp文件做全加密,我们仍然能从备份中尽可能的恢复出数据。

恢复基本思路:

确认文件加密范围,用于评估恢复比例和恢复难度
使用工具来进行抽取,本文还是推荐使用odu,如果没有听说或者没有使用过的朋友可以访问www.oracleodu.com进行了解

故障模拟(破坏文件前1M,模拟前1M加密):

1.确认文件加密范围,每一个数据文件加密的算法和范围都是一样的,所以只需要分析oracle的system数据文件即可。

可以看出从文件头开始到第127个块全部被加密。

这里补充一个LMT的数据文件的基础常识:
文件开头存放的是数据文件头和文件位图块等元数据块,不同的blocksize文件位图块个数不同:

  • 8k:前128个块是元数据块(其中2-127是文件位图块)
  • 16k:前64个块是元数据块(其中2-63是文件位图块)
  • 32k:前32个块是元数据块(其中2-31是文件位图块)

共同点就是不管blocksize为多少,数据文件的前1M都是数据文件的元数据块,包括OS块,数据文件头,文件位图块。

恢复比例和难度评估:

从脚本error.log输出结果来看,只是文件前1M被加密,所以并不会丢失任何数据。甚至可以手工构造文件头强制open数据库然后exp导出。本文演示使用odu工具来抽取。

恢复过程:

前1M加密的恢复非常简单,如果加密的更多,则需要通过构造odu字典信息进行抽取,极端情况下需要提供表结构来手工构造(所以有一套和生产库表结构一模一样的开发库或者测试库还是有好处的),过程也非常麻烦,但恢复思路还是不变的。

此条目发表在Oracle, Oracle Recover分类目录,贴了标签。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注