云安全威胁管理 | 解密新型 SQL Server 无文件持久化恶意程序

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
云安全基线管理CSPM免费试用,1000次1年
云安全中心漏洞修复资源包免费试用,100次1年
简介: 深度威胁检测应对新型持久化后门程序

截屏2021-02-03 下午1.53.49.png

近期,阿里云云安全中心基于全新的深度威胁检测功能,监测到云上部分用户的 SQL Server 数据库内部隐藏着一种新型的持久化后门程序。

攻击者利用弱口令不严谨配置,以非常简单的攻击方法进入数据库,即可植入该后门,更致命的是,该后门高度隐蔽和持久化控制的特性,让发现和清除变得困难。

威 胁 特 点

  • 植入简单

利用数据库弱密码或不严谨配置,攻击者只需简单的弱口令利用,即可轻松登录进用户的数据库植入该后门程序;

  • 高度隐蔽

该后门完全隐藏在SQL Server数据库进程内部,无文件落地、无额外进程,运维管理人员很难定位到后门真正所在;

  • 持久化控制

该恶意后门持续不断地向云主机内部植入挖矿病毒等其他恶意程序,使管理员陷入病毒杀不完、怀疑有漏洞的困境;

  • 查杀困难

简单的弱口令漏洞修复和已有恶意文件查杀根本无法实现对恶意程序来源的清除,即使重启数据库服务、甚至重启云主机,由于真正的隐藏后门没有完全清除,还是会有病毒源源不断的被植入主机。

攻 击 流 程

1.png

  • 攻击者利用某些应用程序供应商的数据库默认密码及不严谨配置入侵SQL Server数据库;
  • 在登入数据库后,创建SQL Server代理作业周期性执行SQL语句调用恶意的用户自定义函数;
  • 用一种特殊的方式将恶意代码以CLR程序集的形式加载进数据库,实现通过用户自定义函数调用恶意的CLR程序集;
  • 已创建的SQL Server代理作业自动周期性的调用恶意CLR程序集,实现恶意代码持久化。

威 胁 分 析

传统的持久化技术、恶意代码加载方式早已被所有主机安全产品列为重点监控范围,很容易被发现并清除掉:

· 利用操作系统内置的计划任务、系统服务、自启动项等方式进行持久化;

· 直接在磁盘上放置恶意程序文件;

· 利用系统内置的工具程序加载恶意代码到内存中执行。

不同的是,此次新型恶意程序将两种SQL Server内置功能巧妙结合用于恶意软件持久化,实现了在无文件落地、无额外进程的情况下保持对云主机的持久化控制,将恶意活动完全隐藏在用户正常业务所需要的SQL Server数据库进程内部。

那么,这一恶意程序是怎么做到的呢?

利用代理作业实现无异常周期性循环执行

SQL Server代理作业原本的用途是方便用户进行数据库运维,通过设置执行计划和执行步骤来实现周期性的执行脚本程序或SQL语句。以往会利用此功能的攻击者或恶意软件会直接用代理作业执行一段恶意命令或恶意脚本,极易被运维管理员发现。

但是该后门的实施者,在创建代理作业后,仅执行了一句很短的SQL语句,将后门隐藏在另一个用户自定义函数SqlManagement背后,隐蔽性很强。

代理作业

作业名称 :
syspolicy_sqlmanagement_history

执行计划名称 :
schedule_sqlmanagement

执行步骤名称 :
sqlmanagement

执行步骤内容 :
select dbo.SqlManagement(0)

2.png

3.png

利用CLR程序集实现高隐蔽性

代理作业中的SQL语句要执行的恶意的用户自定义函数SqlManagement,背后对应的是一个CLR程序集 Microsft.SqlServer.Management。该功能原本用途是方便高级数据库管理员扩展数据库功能,攻击者利用该技术可以实现在SQL中调用自定义的恶意C#程序。

以往植入新的CLR程序集需要先将恶意程序写入磁盘,很容易被杀毒软件发现,攻击者使用了一种特殊的写入方式,直接使用SQL写入C#程序的16进制流,将程序加载到数据库中。结合SQL Server 代理作业功能,即可实现在数据库进程内部持久化周期执行恶意的C#程序。

使用SQL将C#恶意程序直接载入数据库示例:

CREATE ASSEMBLY [Microsft.SqlServer.Management] AUTHORIZATION [dbo] FROM
0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C010300777C565F0000000000000000E00022200B013000001E00000006000000000000 (后续省略)

还原出的反编译的CLR程序集进行分析,发现核心功能是从用户自定义函数 SqlManagement 开始,最终调用至SendAndReceiveFromServerBuffer 函数从vihansoft.ir周期性下载恶意程序并执行,执行流程全部隐藏在SQL Server应用内,安全运维人员难以发现。

4.png
5.png

恶意后门检测与清理

阿里云安全中心用户,只需进行简单配置,即可实现对新型SQLServer无文件持久化恶意程序的深度检测、发现、溯源和清理。

1. 云环境深度威胁检测技术

针对云上主流应用进行深度检测,尤其是针对Microsoft SQL Server等常见应用,云安全中心可以深入应用内部,在不打扰应用运行的情况下,对潜在的风险项进行扫描,无感发现无文件、无额外进程的高度隐蔽恶意程序,识别该后门的恶意域名。

2. 自动化威胁溯源

云安全中心后台系统基于多种主机进程行为分析,通过异构数据关联、图引擎计算、恶意行为模式聚类等方式,层层推进还原出原始触发点或根据聚类分析结果进行推理还原,自动化追溯威胁源头。

3. 一点检测全网联动防御

威胁源头信息共享在全网的“检测模式”类威胁情报网络中,只要在一台主机上确认该后门特征,其他主机在扫描时也能快速识别该后门程序。同时发现该后门曾经植入的后续其他恶意文件。

4. 一键深度清理

针对此类特殊后门,云安全中心支持一键清理,可以深入到SQL Server应用内部,精准处理掉该后门程序。

拓展安全建议

此次发现的新型持久化恶意程序,攻击者主要针对云上SQL Server服务发动攻击,除了常规的弱口令爆破外,入侵者还会尝试某些应用服务供应商的数据库初始化口令。

用户不单单需要关注自身管理数据库服务是否存在弱口令,还需警惕应用服务供应商的默认口令被入侵,做好日常安全基线检查与安全加固,防患于未然。

相关文章
|
2月前
|
SQL 存储 API
Flink实践:通过Flink SQL进行SFTP文件的读写操作
虽然 Apache Flink 与 SFTP 之间的直接交互存在一定的限制,但通过一些创造性的方法和技术,我们仍然可以有效地实现对 SFTP 文件的读写操作。这既展现了 Flink 在处理复杂数据场景中的强大能力,也体现了软件工程中常见的问题解决思路——即通过现有工具和一定的间接方法来克服技术障碍。通过这种方式,Flink SQL 成为了处理各种数据源,包括 SFTP 文件,在内的强大工具。
173 15
|
1月前
|
SQL 关系型数据库 MySQL
数据库导入SQL文件:全面解析与操作指南
在数据库管理中,将SQL文件导入数据库是一个常见且重要的操作。无论是迁移数据、恢复备份,还是测试和开发环境搭建,掌握如何正确导入SQL文件都至关重要。本文将详细介绍数据库导入SQL文件的全过程,包括准备工作、操作步骤以及常见问题解决方案,旨在为数据库管理员和开发者提供全面的操作指南。一、准备工作在导
267 0
|
1月前
|
SQL 数据库
DBeaver执行sql文件
本文介绍了DBeaver这款支持多种数据库的通用数据库管理工具和SQL客户端,它具备查看数据库结构、执行SQL查询和脚本、浏览和导出数据等功能。
106 1
DBeaver执行sql文件
|
1月前
|
SQL 关系型数据库 MySQL
|
1月前
|
SQL 数据库
为什么 SQL 日志文件很大,我应该如何处理?
为什么 SQL 日志文件很大,我应该如何处理?
|
1月前
|
SQL 安全 网络安全
SQL安装程序规则错误解决方案
在安装SQL Server时,遇到安装程序规则错误是一个比较常见的问题
|
1月前
|
SQL 存储 关系型数据库
SQL文件导入MySQL数据库的详细指南
数据库中的数据转移是一项常规任务,无论是在数据迁移过程中,还是在数据备份、还原场景中,导入导出SQL文件显得尤为重要。特别是在使用MySQL数据库时,如何将SQL文件导入数据库是一项基本技能。本文将详细介绍如何将SQL文件导入MySQL数据库,并提供一个清晰、完整的步骤指南。这篇文章的内容字数大约在
192 1
|
1月前
|
SQL 安全 Windows
SQL安装程序规则错误解析与解决方案
在安装SQL Server时,用户可能会遇到安装程序规则错误的问题,这些错误通常与系统配置、权限设置、依赖项缺失或版本不兼容等因素有关
|
1月前
|
SQL 数据库
为什么SQL日志文件很大,该如何处理?
为什么SQL日志文件很大,该如何处理?
|
2月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
48 1

相关产品

  • 云安全中心
  • 下一篇
    无影云桌面