博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle RushQL勒索病毒恢复方法
阅读量:2447 次
发布时间:2019-05-10

本文共 1591 字,大约阅读时间需要 5 分钟。

在上期 中,我们介绍了Globelmposter勒索病毒,以SMB、RDP协议漏洞为突破口,加密篡改用户文件,从而达到勒索的目的,其感染目标并不局限特定的应用。

本次我们再来介绍另一种专门针对数据库的勒索病毒 -- RushQL。相比Globelmposter,RushQL专门针对数据库设计、并且具备一定潜伏期和隐蔽性,危害极大。

该病毒最早被发现是捆绑在被感染的绿色版/破解版PS/SQL安装程序上,一旦用户使用此类破解版软件连接到数据库,会立即执行“Afterconnet.sql”中的代码(此文件一般在官方PL/SQL软件中是一个空文件),在数据库中创建多个存储过程和触发器。

RushQL感染后并不会立即造成数据损坏,具备一定时间的潜伏期,它会首先判断数据库创建时间是否大于1200天(比较狠,专挑运行较长时间的数据库下手)。如果大于1200天,则重启数据库后触发病毒触发器,加密并删除 sys.tab$ ,导致用户无法访问数据库中所有的数据库对象集合(schema),提示“你的数据库已经被SQL RUSH Team锁死,请发送5个比特币到这个地址……”的勒索信息(也有变种会要求以太币等),并设置定时任务,如果在期限内不交赎金,就删除所有的表

RushQL包含多个存储过程和触发器,选取其中一个PROCEDURE DBMS_SUPPORT_INTERNAL来看主要的操作为:

1. 创建并备份`sys.tab$`表的数据到表 `ORACHK || SUBSTR(SYS_GUID,10)`;2. 删除`sys.tab$`中的数据,条件是所有表的创建者ID 在(0,38)范围(针对核心表);3. 在你的alert日志中写上2046次勒索信息,并触发异常告警

从存储过程的内容可知,相比Globelmposter,RushQL更难防范。其行为从数据库角度看来都是再正常不过的操作(update、truncate等),因此现有所有备份手段几乎都会失效,例如Dataguard可以防护文件类感染,但遇到RushQL仍会将错误的数据进行同步;定时备份能起到一定恢复作用,但无法保证数据没有丢失等。

若是被感染且尚未满足条件发作,则处理方式很简单,只要删除4个存储过程及3个触发器、不再使用带病毒的破解/绿色软件即可:

存储过程 DBMS_SUPPORT_INTERNAL存储过程 DBMS_STANDARD_FUN9存储过程 DBMS_SYSTEM_INTERNA存储过程 DBMS_CORE_INTERNAL触发器 DBMS_SUPPORT_INTERNAL触发器 DBMS_SYSTEM_INTERNAL触发器 DBMS_CORE_INTERNAL

如果病毒已经生效,数据库处于被锁定状态,则需:

1. 删除4个存储过程和3个触发器2. 检查相关登录工具的自动化脚本,清理有风险的脚本3. 使用备份将表恢复到truncate之前,视严重程度可能要用到DUL工具(不一定能恢复所有的表,例如truncate的空间已被使用)

由于truncate的空间有可能被再次使用,大概率会有部分数据无法恢复。但是,如果之前已经部署过QPlus-DP 数据库备份云一体机,则恢复过程十分简单,可以使用“秒级恢复”功能创建病毒发作前1秒(或指定SCN号)的历史数据库,实现无数据丢失找回被truncate的表,如图:

经过几分钟的等待,使用新创建的数据库环境、确认需要恢复的表之后再导回至生产库即可。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28218939/viewspace-2640793/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28218939/viewspace-2640793/

你可能感兴趣的文章
选择偏好_网站如何记住您的偏好(以及关于Cookie的选择)?
查看>>
将隐藏的车库门开启器添加到您的车辆中
查看>>
如何在Ubuntu 14.04中轻松隐藏Unity Launcher
查看>>
snapchat_如何配置Bitmoji和Snapchat
查看>>
在Redhat Linux机器上更改主机名
查看>>
如何在Windows Server 2003的IIS 6上安装Perl
查看>>
如何删除Trovi /管道/搜索保护浏览器劫持恶意软件
查看>>
normal forms_使用Google Forms轻松创建基于Web的调查
查看>>
word文档插入复选框_如何将复选框添加到Word文档
查看>>
sql truncate_如何在SQL Delete和SQL Truncate语句后使用数据库备份恢复数据
查看>>
为SQL Server Always On可用性组配置域控制器和Active Directory
查看>>
SQL Server连接面试SQL Server数据库管理员问答
查看>>
ssisdb_SSISDB入门
查看>>
如何在SQL Server Management Studio中创建和配置链接服务器以连接到MySQL
查看>>
使用PowerShell和T-SQL在多服务器环境中规划SQL Server备份和还原策略
查看>>
ansi_nulls_影响查询结果SQL Server SET选项-SET ANSI_NULLS,SET ANSI_PADDING,SET ANSI_WARNINGS和SET ARITHABORT
查看>>
使用Microsoft数据迁移助手在Oracle数据库和SQL Server之间迁移的具体示例
查看>>
大数据数据科学家常用面试题_面试有关数据科学,数据理解和准备的问答
查看>>
sql2012 ssrs_如何在SQL Server并行数据仓库中处理SSRS多值参数过滤
查看>>
使用Azure Data Studio在Docker容器上使用SQL Server 2017进行备份和还原操作
查看>>