针对最近黑客攻击数据库的解决方案和预防建议

联系:QQ(5163721)

标题:针对最近黑客攻击数据库的解决方案和预防建议

作者:Lunar©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]

最近有部分黑客采用各种手段对数据库进行sql注入或者直接加密等损坏方式攻击客户的数据库。
需要说明的是这里并非黑客用多么高深的手段或者技能攻破Oracle数据库或者由于Oracle Bug引起的,Oracle被无辜躺枪
相反,这类攻击完全是使用盗版客户端工具或者客户网络(或者主机)安全有漏洞,入侵主机或者直接使用盗版客户端(部分网上下载的非官方工具已经是被黑客篡改过的)对数据库登录时进行SQL注入的方法。

.
常见的攻击手法和案例:
.
攻击手法 1 :黑客攻入客户网络,进入客户主机,在操作系统上直接对数据库文件进行“加密”
现象:


409150050134754533


.
攻击手法 2 :也有可能是使用非官方的网上下载的被污染的工具连接数据库,然后“被执行”了类似下面的在数据库中执行恶意代码而注入损坏数据sql语句
(例如,注入一些存储过程,trigger或者其他DDL,DML等等)
现象:
在数据库的日志中,可能获得的信息如下:

ORA-00604: error occurred at recursive SQL level 1
ORA-20315: 你的数据库已被SQL RUSH Team锁死 发送5个比特币到这个地址 166xk1FXMB2g8JxBVF5T4Aw1Z5aZ6vSE (大小写一致)
之后把你的Oracle SID邮寄地址 sqlrush@mail.com 我们将让你知道如何解锁你的数据库

.

Hi buddy, your database was hacked by SQL RUSH Team, send 5 bitcoin to address 166xk1FXMB2g8JxBVF5T4Aw1Z5aZ6vSE (case sensitive),
after that send your Oracle SID to mail address sqlrush@mail.com, we will let you know how to unlock your database.
ORA-06512: at “XXX.DBMS_CORE_INTERNAL “, line 27
ORA-06512: at line 2

.
此类攻击的效果有1200天的潜伏期:
黑客代码中有类似下面的判断条件:IF (DATE1>=1200) THEN
因此,建议客户检查数据库的异常对象,如果发现异常对象,建议直接删除相关对象

.
对于上述攻击,我们的客户遇到的解决方法大致如下:
第一 :被攻击的数据库用户中没有重要的业务对象时
1.这段代码的运行都是通过job来操作的,高版本默认的job_queue_processes已经是1000了,所以当时通过操作系统看到后台有700多个job进程在跑这段代码。
通过把job_queue_processes设置为0,重启实例它这段脚本就跑不起来了。只有没有跑这段代码,存储过程等对象才能删除。
2.从操作系统登录到数据库(sys用户),找出非法的存储过程,job定义,触发器,把它们都drop就可以,
当时由于这个客户在受攻击的数据库用户下面没有业务对象,把这个用户drop,重建就可以了。
上述的整个处理过程没有数据丢失,之所以耗时这么长是因为客户担心丢失先做一次备份。
.
第二 :当被攻击的数据库用户中有重要业务对象时:
1. 如果是对文件加密,根据具体客户情况,可以考虑比对正常文件(没有被攻击的数据库的文件)和有问题文件比对,找到端倪后,拼接等等思路
2. 根据实际情况,如果上面的“1.”不可行,那么考虑停止黑客的异常job,过程,触发器等等(可以采用倒推等方式或者直接查询DBA_OBJECTS 中的LAST_DDL时间),
根据实际情况,如果有必要的话,还可以根据报错时间点进行logminer来进行检查和确认损坏过程,
并找到黑客备份的系统表,进行还原(请在Oracle Support或者专业DBA指导下完成)。
3. 如果上述的“1.”和“2.”都不可行,那么可以考虑使用各种可以进行逻辑挖掘的工具挖出数据。
.
当然根据不同的黑客入侵方式,可能还有其他解决方法,这里要重点讨论的是我们如何防患于未然:
1,请使用正版工具或者使用Oracle官方推荐的免费SQL客户端工具:

http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html

上面地址是官网正版下载地址,功能非常强大,完美支持12c和以前的数据库版本,并且免费。
.
2,如果发现类似问题,尽量保护现场,并根据报错信息的时间点,追查原因
.
3,重要数据库一定要备份,如果配置了ADG,备库建议开闪回,如此,很多问题处理上就简单多了。
.
4,对于数据库用户的dba等高级权限应该有效管理
.
5.请注意,有些黑客会设置一个潜伏期,例如上面的例子,该攻击的效果存在1200天的潜伏期:
黑客代码中有类似下面的判断条件:IF (DATE1>=1200) THEN
因此,建议客户检查数据库的异常对象,如果发现异常对象,建议直接删除相关恶意注入的数据库对象(procedure,job,trigger等等)

.
有相关问题的朋友或者客户,请与我联系。

此条目发表在 数据库 分类目录。将固定链接加入收藏夹。

评论功能已关闭。