当前位置: 首页 > 科技观察

解密新型SQLServer无文件持久化恶意程序

时间:2023-03-22 00:53:29 科技观察

近日,基于阿里云安全中心新增的深度威胁检测功能,检测到一种隐藏在云端部分用户SQLServer数据库中的新型持久化后门程序。攻击者使用弱口令和松散的配置,以非常简单的攻击方式进入数据库,然后植入后门。更致命的是,后门的高度隐蔽和持久控制功能使其难以发现和清除。使用弱数据库密码或不精确的配置容易植入威胁特征,攻击者只需使用简单的弱密码即可轻松登录用户数据库并植入后门程序;高度隐蔽。后门完全隐藏在SQLServer数据库进程中,无文件落地,无附加流程,运维管理人员难以定位后门的真实位置;持久控制恶意后门不断向云主机植入挖矿病毒等恶意程序,导致管理员陷入病毒查杀无止尽、疑似漏洞的陷阱;查杀困难简单的弱口令漏洞修复和存在的恶意文件查杀根本无法清除恶意程序的源头,即使重启数据库服务甚至重启云主机,由于真正隐藏的后门如果没有彻底清除,还是会有源源不断的病毒被植入宿主。攻击过程攻击者利用数据库默认密码和某些应用程序提供商的无良配置来入侵SQLServer数据库;登录数据库后,创建SQLServer代理作业,周期性执行SQL语句调用恶意自定义函数;使用一种特殊的方式将恶意代码以CLR程序集的形式加载到数据库中,通过用户自定义函数调用恶意CLR程序集;创建的SQLServer代理作业自动周期性调用恶意CLR程序集,实现恶意代码修改的持久化。威胁分析传统的持久化技术和恶意代码加载方式早已被列为所有主机安全产品的重点监控范围,很容易被发现和淘汰:利用内置的计划任务、系统服务、自启动项等操作系统进行持久化改造;将恶意程序文件直接放在磁盘上;利用系统自带的工具程序将恶意代码加载到内存中执行。不同的是,这个新的恶意程序巧妙的结合了SQLServer内置的恶意软件持久化的两大功能,实现了对云主机的持久控制,无需任何文件登陆和额外进程,恶意活动完全隐藏在SQLServer数据库进程内部用户正常业务所需。那么,这个恶意程序是如何做到的呢?使用代理作业实现SQLServer代理作业的周期性无异常执行。执行脚本程序或SQL语句。以往攻击者或恶意软件利用该功能会直接使用代理操作执行恶意命令或恶意脚本,很容易被运维管理员发现。但后门的实现者在创建代理作业后只执行了一条很短的SQL语句,将后门隐藏在另一个用户自定义函数SqlManagement的后面,隐蔽性很强。作业名称:syspolicy_sqlmanagement_history执行计划名称:schedule_sqlmanagement执行步骤名称:sqlmanagement执行步骤内容:selectdbo.SqlManagement(0)利用CLR程序集实现恶意自定义函数SqlManagement被代理作业中的SQL语句执行,其背后对应一个CLR程序集Microsft.SqlServer.Management。该功能的初衷是为了方便高级数据库管理员扩展数据库功能。攻击者可以利用该技术在SQL中调用自定义的恶意C#程序。以往植入新的CLR程序集需要先将恶意程序写入磁盘,很容易被杀毒软件发现。攻击者使用了一种特殊的写法,直接用SQL写C#程序的16进制流。该程序被加载到数据库中。结合SQLServer代理作业功能,恶意C#程序可以在数据库进程内部的持久化循环中执行。使用SQL将C#恶意程序直接载入数据库示例:CREATEASSEMBLY[Microsft.SqlServer.Management]AUTHORIZATION[dbo]FROMCREATEASSEMBLY[Microsft.SqlServer.Management]AUTHORIZATION[dbo]FROM0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C010300777C565F0000000000000000E00022200B013000001E00000006000000000000(后续省略)还原出的反编译的CLR程序通过收集分析,发现核心函数从用户自定义函数SqlManagement开始,最后调用SendAndReceiveFromServerBuffer函数,周期性从vihansoft.ir下载并执行恶意程序。执行过程全部隐藏在SQLServer应用中,安全运维人员很难发现。恶意后门检测与清理阿里云安全中心用户只需进行简单的配置,即可实现对新型SQLServer无文件持久化恶意程序的深度检测、发现、溯源和清理。1、云环境深度威胁检测技术针对云端主流应用,尤其是MicrosoftSQLServer等常见应用进行深度检测。云安全中心可深入应用,在不干扰应用扫描的情况下检测潜在风险项,检测高度隐蔽的无文件无附加进程的恶意程序,识别后门恶意域名。2、自动化威胁溯源云安全中心后台系统基于对主机各种进程行为的分析,通过异构数据关联、图引擎计算、恶意行为模式聚类等,逐层还原原始触发点或根据聚类分析结果进行推理和还原,自动追溯威胁源。3、单点检测全网联动防御威胁源信息共享在全网“检测模式”的威胁情报网络中,只要在一台主机上确认后门特征,其他主机就可以快速识别后门程序在扫描过程中。同时,还发现了该后门植入的其他后续恶意文件。4、一键深度清理针对此类特殊后门,云安全中心支持一键清理,可深入SQLServer应用,精准处理后门程序。扩展安全建议本次发现的新型持久化恶意软件,攻击者主要针对云端SQLServer服务发起攻击。除了常规的弱口令爆破外,入侵者还会尝试某些应用服务商的数据库初始化密码。用户不仅需要关注自己管理的数据库服务是否存在弱密码,还需要警惕应用服务商默认密码的入侵,做好日常安全基线检查和安全防范加强防患于未然。