Oracle数据库勒索病毒自检工具

栏目: 数据库 · Oracle · 发布时间: 5年前

内容简介:近日,Oracle数据库勒索病毒又活跃了,其实这并非新病毒,早在2年前,即2016年11月就发现了,深信服一直持续关注此病毒。我们提醒用户,无需过渡恐慌,只要不要乱下载PL/SQL破解版工具就不会中招!不确认是否中招的用户,我们这里率先提供简单!有效!的自检工具,一键运行,无需安装,即可快速判断是否感染了Oracle数据库勒索病毒。

一、事件背景

近日,Oracle数据库勒索病毒又活跃了,其实这并非新病毒,早在2年前,即2016年11月就发现了,深信服一直持续关注此病毒。

我们提醒用户,无需过渡恐慌,只要不要乱下载PL/SQL破解版 工具 就不会中招!

不确认是否中招的用户,我们这里率先提供简单!有效!的自检工具,一键运行,无需安装,即可快速判断是否感染了Oracle数据库勒索病毒。

话不多说,直接上Oracle勒索病毒自检工具: http://edr.sangfor.com.cn/tool/SfCheckPLSQL.zip

中毒截图证明如下:

Oracle数据库勒索病毒自检工具

深信服安全团队早在5月28号就接到多起Oracle数据库被勒索的案例,中毒之后数据库显示如下勒索信息:

Oracle数据库勒索病毒自检工具

提取到相应的样本之后,经过深入分析,EDR安全团队确认该病毒是RushQL数据库勒索病毒,是由于使用了破解版的PL/SQL导致的。

二、样本分析

1.样本是一个PL/SQL自带的AfterConnect.sql自动运行脚本,此文件在官司PL/SQL软件中为空文件,该勒索病毒就是利用了这个文件,相应的样本,如下所示:

Oracle数据库勒索病毒自检工具

脚本的关键代码,采用了Oracle数据库专用加密工具wrap进行了加密,如下所示:

Oracle数据库勒索病毒自检工具

2.对代码进行解密,得到相应的四个存储过程和三个触发器,四个存储过程,如下所示:

Oracle数据库勒索病毒自检工具

以上DBMS_SUPPORT_INTERNAL存储器的主要功能:

如果数据库创建日期 > 1200 天之后则:

(1)创建并备份sys.tab$表的数据到表 ORACHK || SUBSTR(SYS_GUID,10)

(2)删除sys.tab$中的数据,条件是所有表的创建者ID 在(0,38)范围

(3)通过SYS.DBMS_BACKUP_RESTORE.RESETCFILESECTION清理掉备份信息

(4)通过DBMS_SYSTEM.KSDWRT在你的alert日志中写上2046次勒索信息

(5)抛出一个警告提示勒索信息

Oracle数据库勒索病毒自检工具

以上DBMS_SYSTEM_INTERNAL存储器的主要功能:

如果当前日期 – 数据表(不含SYSTEM, SYSAUX, EXAMPLE)的最小分析日期 > 1200 天,且当前客户端程序进程名不是“C89239.EXE”,则触发警告提示勒索信息

Oracle数据库勒索病毒自检工具

以上DBMS_CORE_INTERNAL存储器的主要功能:

把表名不含$,不含ORACHK,不是cluster的表放到一个游标里面,然后取非SYSTEM,SYSAUX,EXAMPLE之外的表空间的表的最小统计信息收集时间和当前时间比较如果大于1200天就执行truncate table操作,操作完成之后判断如果登录程序不为C89239.EXE,则触发警告提示勒索信息

Oracle数据库勒索病毒自检工具

以上DBMS_STANDARD_FUN9存储器的主要功能:

动态执行PL/SQL脚本

3.三个触发器的相应内容,如下所示:

在数据库启动时执行存储过程DBMS_SUPPORT_INTERNAL

Oracle数据库勒索病毒自检工具

在登录数据库时执行存储过程DBMS_SYSTEM_INTERNAL

Oracle数据库勒索病毒自检工具

在登录数据库时执行存储过程DBMS_CORE_INTERNAL

Oracle数据库勒索病毒自检工具

三、解决方案

1.删除被恶意篡改的客户端软件

2.根据不同的情况进行不同处理:

情况一:

SYSDATE – MIN(LAST_ANALYZED) 小于1200天

数据库损坏情况:未损坏

处理办法:

a.删除三个触发器:

"DBMS_SUPPORT_INTERNAL "

"DBMS_SYSTEM_INTERNAL "

"DBMS_CORE_INTERNAL "

b.删除四个存储过错:

"DBMS_SUPPORT_INTERNAL "

"DBMS_SYSTEM_INTERNAL "

"DBMS_CORE_INTERNAL "

"DBMS_STANDARD_FUN9"

情况二:

SYSDATE – MIN(LAST_ANALYZED) 大于1200天,并且SYSDATE – CREATED大于1200天但未重启 或者 SYSDATE – CREATED 小于1200天

数据库损坏情况:某些表被truncate

处理方法:

a.删除三个触发器和四个存储过程

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

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

情况三:

SYSDATE – CREATED 大于1200天

数据库损坏情况:某些表被truncate以及tab$被删除

处理方法:

a.删除三个触发器和四个存储过程

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

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

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

3. 检查相关登录工具的自动化脚本,清理有风险的脚本:

SQL*PLUS 中的glogin.sql/login.sql

Toad 中的toad.ini

PL/SQL Developer中的ogin.sql/AfterConnect.sql

4.建议从官网下载工具,不要使用绿色版/破解版等

四、参考链接

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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Redis实战

Redis实战

Josiah L. Carlson / 黄健宏 / 人民邮电出版社 / 2015-10

【内容简介】 本书深入浅出地介绍了Redis的5种数据类型,并通过多个实用示例展示了Redis的用法。除此之外,书中还讲述了Redis的优化方法以及扩展方法,是一本对于学习和使用 Redis 来说不可多得的参考书籍。 本书一共由三个部分组成。第一部分对Redis进行了介 绍,说明了Redis的基本使用方法、它拥有的5种数据结构以及操作这5种数据结构的命令,并讲解了如何使用Redis去构......一起来看看 《Redis实战》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试