当前位置: 首页 >> 技术文章 >> 警示:数据库比特币勒索病毒攻击警示-云和恩墨技术通讯六月刊精选
警示:数据库比特币勒索病毒攻击警示-云和恩墨技术通讯六月刊精选
发布时间:2019-08-06 发布人:云和恩墨 681


微信图片_20190701115113.jpg

各位亲爱的用户/读者朋友们:

为了及时共享行业案例,通告共性问题,达成知识共享和提前预防,我们整理和编辑了《云和恩墨技术通讯》(6月刊),通过对过去一段时间的知识回顾和故障归纳,以期提供有价值的信息供大家参考。

同时,我们也希望能够将热点事件、新的产品特性及其他有价值的信息聚集起来,为您提供具有前瞻性的支持信息,保持对于当前最新的数据库新闻和事件的了解,其中包括重要数据库产品发布、警报、更新、新版本、补丁等。

本期目录:

•  新闻:2019年6月份数据库流行度排行榜
•  警示:RMAN duplicate存在误覆盖其他数据库文件的风险
•  警示:数据库比特币勒索病毒攻击警示
•  警示:Oracle 12.2因bug出现异常L1 validation和enq:TX等待
•  频发:cursor mutex等待之异常分析
•  经验:如何应对Liberty部署应用无故重启
•  经验:与用户名同名的PLSQL对象引发的故障
•  问题:如何应对sqlobj$data占用过大
•  公告:墨天轮DBASK技术专家邀请函

抢先下载:https://cs.enmotech.com/docDownload/2879


部分精选-数据库比特币勒索病毒攻击警示(刘智龙)


Oracle比特币勒索病毒可以追溯到2016年,有人恶意散播携带比特币勒索病毒的PL SQL Developer软件程序,引诱用户下载从而发起勒索攻击,国内很多用户的 Oracle 数据库都遭到攻击。时隔3年,勒索病毒似乎卷土重来。近期,我们再次收到几个核心生产系统的故障案例,特此再次提醒大家,一定要进行针对性的安全检查,防范此问题。

故障特征

勒索代码被注入在Oracle PL/SQL Dev软件中的afterconnet.sql文件里,此文件在官方的PL/SQL软件中为空文件,该勒索病毒就是利用了这个文件注入病毒代码,在用户连接数据库后立即执行,并在告警日志出现自动任务执行错误,对象被锁,并出现“你的数据库已被SQL RUSH Team锁死  发送5个比特币到这个地址 166xk1FXMB2g8JxBVF5T4Aw1Z5aZ6vSE (大小写一致)  之后把你的Oracle SID邮寄地址 sqlrush@mail.com 我们将让你知道如何解锁你的数据库”的信息。报错代码如下:

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

故障原因

问题的根本原因是:如果用户从互联网上下载了盗版的 PL/SQL Developer 工具后(尤其是各种绿色版、破解版),就可能因为这个工具中招,所以这个问题和 Oracle 本身关系不大,也没有注入那么复杂。而是随着你使用这个工具,用户的权限就自然被附体的进行了入侵。

故障分析

PL/SQL Developer  在中国的流行程度和盗版程度毋庸置疑,这个软件的安装目录存在一个脚本文件 AfterConnect.sql,这个脚本就是真正的问题所在。正版软件安装,这个脚本文件是空文件,但是受感染的该文件包含了一系列的JOB定义、存储过程和触发器定义,就是祸患的源头。受感染文件 -  AfterConnect.sql 开头是这样的,伪装成一个 login.sql 的脚本内容,有清晰的注释代码:

注释代码

实质内容,以加密方式展示,用户看不到内容,但是可以通过 unwrap 进行解密(但是注意那些解密程序不要存在恶意代码):

代码

无疑,黑客是非常了解 Oracle 数据库的,其脚本代码的核心部分,解密后如下(部分删减)

代码

SELECT NVL(TO_CHAR(SYSDATE-CREATED ),0) INTO DATE1 FROM V$DATABASE;
   IF (DATE1>=1200) THEN

请注意黑客的专业性,在程序的开端有以下部分判断:
•  也就是,判断数据库创建时间大于1200天,才开始动作,如果你的数据库还没有爆发,那可能是因为时间还没有到。
•  我们强烈建议用户检查数据库工具的使用情况,避免使用来历不明的工具产品,采用正版软件,规避未知风险。

故障解决

这个攻击是通过 JOB、触发器、存储过程来协同工具的,所以如果数据库遭遇到这个问题,可以将 JOB 参数 job_queue_processes 设置为 0 ,屏蔽掉 JOB 的执行,然后重启数据库。可以清除注入对象,这些对象可能包括以下同名触发器和存储过程:  

PROCEDURE "DBMS_CORE_INTERNAL       
PROCEDURE "DBMS_SYSTEM_INTERNAL       
PROCEDURE "DBMS_SUPPORT_INTERNAL

而攻击的核心代码还包括:

STAT:='truncate table '||USER||'.'||I.TABLE_NAME;

后续建议

为了防止勒索病毒不再发生,提高数据安全性,建议如下:

1. 严格管理权限,回收所有业务用户的dba权限,在保障数据安全和应用可用的前提下,按照用户最小权限的原则进行权限管理。

2. 排查第三方工具,大范围排查是否有不明来源的第三方工具连接数据库,必须从官方渠道获取客户端连接工具。

以下列出了常见客户端工具的脚本位置,需要引起注意:

SQL*Plus: glogin.sql / login.sql
TOAD : toad.ini
PLSQLdeveloper: login.sql / afterconnect.sql

3. 通过官方渠道下载补丁包,补丁包中也可能包含病毒程序,下载官方补丁包是基本规范操作。

4. 设置白名单。限制IP登录,非白名单中的IP不允许登录数据库,提高数据的安全性。

5. 日常巡检。把病毒扫描脚本加入日常巡检中,早发现早处理。

6. 开启数据库审计,数据库审计在跟踪用户操作上更加全面,审计会捕获用户登录数据库及登录后的各项操作。

如果您的数据库已经遭受攻击和数据损失,可以紧急联系云和恩墨的服务团队,我们可以帮助您处理数据修复事宜,云和恩墨久经考验的ODU产品,可以在数据丢失后最大限度的恢复数据。


附赠《云和恩墨技术通讯》汇总链接:https://cs.enmotech.com/docDownload?tag=enmo_techrelease