汉领支招解决近期爆发的Oracle勒索病毒威胁
发布时间: 2018.11.28 | 来源: 汉领信息

近日,汉领信息科技公司不断接到企业用户反馈,希望我们对于卷土重来的Oracle数据库勒索病毒能够提供全方位的Oracle数据库安全防护解决方案。对此,公司应急响应团队接到消息后立即引起重视,由汉武安全实验室复现病毒感染现象,分析病毒行为过程,探究病毒实现功能的本源。

分析发现,证实该病毒是RushQL数据库勒索病毒,是由于下载使用了破解版PL/SQL导致的。该病毒是一个PL/SQL自带的AfterConnect.sql自动运行脚本,此文件一般在官方PL/SQL软件中是一个空文件,而提取自破解版PL/SQL的样本是有实际内容的,其通过创建:DBMS_SUPPORT_INTERNAL、DBMS_STANDARD_FUN9、DBMS_SYSTEM_INTERNAL、DBMS_CORE_INTERNAL四个存储过程来实现用户正常访问数据库异常的功能。

 

Oracle数据库勒索病毒触发时,在连接时会出现以下窗口:


在Oracle Server端使用以下查询语句检查是否有以上几个存储过程:


请注意最后 % '之间的空格,执行上述语句后,若为空,表示你的Oracle数据库是安全的,未中勒索病毒。

解决办法(操作数据库请在专业人员协助下操作!)

从技术分析知道,病毒删除数据是由存储过程DBMS_SUPPORT_INTERNAL 和 DBMS_CORE_INTERNAL来执行的,他们的执行条件分别是:

1.当前日期 – 数据库创建日期 > 1200 天

2.当前日期 – 数据表(不含SYSTEM, SYSAUX, EXAMPLE)的最小分析日期 > 1200 天

当以上条件不满足时,病毒不会触发删除数据的操作,此时删除以上4个存储过程和3个触发器即可。

如果前面的2个条件中任何一个满足,就会出现数据删除操作,下面给出应对措施:

1.(当前日期 – 数据库创建日期 > 1200 天) 且 (当前日期 – 数据表(不含SYSTEM, SYSAUX, EXAMPLE)的最小分析日期 <= 1200 天)

A.删除4个存储过程和3个触发器

B.使用备份把表恢复到truncate之前

C.使用ORACHK开头的表恢复tab$

D.使用DUL恢复(不一定能恢复所有的表,如truncate的空间已被使用)


2.(当前日期 – 数据库创建日期 > 1200 天) 且 (当前日期 – 数据表(不含SYSTEM, SYSAUX, EXAMPLE)的最小分析日期 > 1200 天)

A.删除4个存储过程和3个触发器

B.使用备份把表恢复到truncate之前

C.使用DUL恢复(不一定能恢复所有的表,如truncate的空间已被使用)


汉领给出的方案,通过部署汉领数据库行为防火墙,限制创建勒索病毒相关存储过程,帮助用户避免勒索病毒的威胁,具体防护策略如下:

1

【策略管理】-【对象】添加4个存储过程


2

【行为防火墙】-创建一条关于勒索病毒防护的策略,将刚添加的4个存储过程加入到SQL命令字段里,安全响应动作为拒绝,应用对象为Oracle数据库

3

使用PL/SQL工具连接到目标数据库,执行上述存储过程,发现创建存储过程被拒绝


4

进入汉领数据库防火墙【日志审计】-【策略告警】,记录了相应的告警记录,此告警,也可通过邮件发送给DBA,可以快速发现做出响应


汉领数据库安全防护建议

1. 控制可信的计算机才能访问数据库,对于不具备数据库访问权限的用户,在网络层面予以拒绝;

2. 可信来源控制,在识别TCP五元组基础上,鉴别其数据库账号、数据库应用程序、客户端主机、客户端用户名称,防止肉鸡攻击数据库;

3. 严格执行最小权限原则,通过行为防火墙,限制可执行操作的权限;

4. 对于应用中间件访问数据库的行为,通过业务防火墙进行SQL语句白名单建模,彻底解决数据库安全问题。


详细安全加固方法建议参考Oracle官方博客《对数据库的“比特币攻击”及防护》,https://blogs.oracle.com/cnsupport_news/%E5%AF%B9%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84%E2%80%9C%E6%AF%94%E7%89%B9%E5%B8%81%E6%94%BB%E5%87%BB%E2%80%9D%E5%8F%8A%E9%98%B2%E6%8A%A4


Copyright © 2019 All Rights Reserved Designed
杭州汉领信息科技有限公司