数字签名攻击报告:正在摧毁软件身份“信用体系”的安全危机

congtou 2017-9-3 黑客入侵 0 0

背景

近期,360公司核心安全事业部发现全球范围内的利用软件数字签名的恶意攻击呈活跃趋势,黑客的攻击目标涉及软件开发商、个人用户和重要的政府、企事业单位;攻击形式多样,包括盗用、冒用软件开发商的合法数字签名和流行软件投毒的大规模定向攻击等。在这些攻击中,黑客的首要攻击目标是软件开发商,围绕软件的数字签名进行各种形式的攻击,如在企业发布的合法数字签名软件安装包中植入恶意代码,用户从正规渠道下载官方正规软件主动中招;盗用和冒用企业数字签名批量制作“合法”的木马病毒,逃避杀毒软件的查杀等。利用软件数字签名的恶意攻击日趋严峻,这类攻击比常规的木马病毒更具威胁,广大用户极难分辨,也容易被检测机制不严格的安全软件放行,严重危害网络安全。

 

软件签名安全简介

“数字签名”是指可以添加到文件的电子安全标记。使用它可以验证文件的发布者以及帮助验证文件自被数字签名后是否发生更改。如果文件没有有效的数字签名,则无法确保该文件确实来自它所声称的源,或者无法确保它在发布后未被篡改。比如windows系统中内置的UAC(User Account Control用户账户控制)功能,就会在要求用户在执行可能会影响计算机运行的操作或执行更改影响其他用户的设置的操作之前,需要用户提供权限进行交互确认,在打开文件时的安全提示中显示程序的发布者供用户参考。

如没有软件数字签名的程序,UAC会显示发布者未知,交互提示框是黄色,提示用户该程序无法验证发布者,运行下去是有安全风险的。

1

而包含正常数字签名的交互提示框是蓝色的,会标注已验证的的发布者,提示用户如果信任发布者可以放心运行下去。

1

一个正规的已经打上数字签名的程序,可以在程序文件的属性中查看到,便于用户识别确认。

QQ截图20170903143739

流行数字签名攻击形式分析

由于数字签名安全的校验文件的身份和完整性,所以数字签名天生成为了各种正规软件的“身份证”,基于正规厂商和用户之间的信任关系,以及厂商和厂商间的信任关系,大部分安全厂商对有数字签名和正规身份的程序默认是信任的。而黑客则针对这一信任关系进行攻击,他们会攻击合法软件的发布流程,利用各种疏忽或漏洞在合法的签名软件包中植入恶意代码 ,甚至直接盗取和冒用合法软件开发商的数字签名,从而绕过安全产品的检查进行非法攻击,攻击破坏了厂商和用户之间的信任关系,也损坏了软件开发商的信誉,同时也对安全软件的查杀带来了一定的阻碍。目前这类攻击开始越演愈烈,主要分为以下三个形式。

软件供应链攻击形式

这类攻击的主要形式是在厂商的正规签名软件包中植入恶意代码,比如近日的NetSarang系列软件关键网络通信组件nssock2.dll被植入了恶意代码,厂商在发布软件时并未发现恶意代码,并给被感染组件打上了合法的数字签名随新版软件包一起发布,由于该软件被程序员和网络运维管理人员广泛使用,由此引发了该软件用户“主动”中招的大规模定向攻击事件。

1

被植入恶意代码的nssock2.dll文件,拥有2017年7月13日的NetSarang公司数字签名,如图:

图片1

盗用签名攻击形式

黑客会盗用厂商数字签名直接签发木马病毒,或者利用已签名程序的安全漏洞发起攻击。如近期出现的恶性病毒"Kuzzle",该病毒采用多种技术手段躲避安全软件的查杀,直接盗用了某公司的数字签名用于签发病毒,同时还利用了某安全厂商的已签发数字签名驱动加载执行代码,该病毒会感染用户计算机的主引导记录(MBR)和卷引导记录(VBR),劫持浏览器首页牟利,同时接受病毒作者的远程指令进行其他破坏活动。

被恶意利用的正规签名驱动如图:

图片2

图片3

冒用签名攻击形式

黑客冒用知名公司的身份资料,在境外申请知名公司的数字签名签发恶意程序,这种攻击方式让软件厂商无辜躺枪。近期360集团核心安全白名单分析团队发现黑客通过伪造知名公司的资料,在境外证书颁发机构申请相应公司数字证书,用于大量签发恶意私服和木马程序,多家知名公司躺枪。被冒用签名所签发的恶意程序如图:

图片4

数字签名攻击影响面分析

黑客针对软件数字签名进行攻击,不仅成功对用户发动了攻击,还对厂商的信誉造成了损害。基于对软件厂商的信任,用户主动下载更新软件中招,攻击得到广泛传播;同时签发的有“身份证”的木马病毒,因为信任关系短时间内不易被安全软件查杀。

以下为抽样统计Xshell后门的用户活跃量,实际数据预计会比抽样数据扩大5倍,每天Xshell后门的主动使用受害者数以万计。

1

根据360大数据监测统计,今年新增冒用样本数量约400个,感染量约35万。下图所示是2017年8月份之前的受害者地域分布图,其中沿海一带以浙江、辽宁和广东传播最多,内陆则以四川和湖南居多 。

1

数字签名攻击典型案例技术分析

 

Xshellghost技术分析

 

近日,NetSarang旗下的Xmanager、Xshell、Xftp和Xlpd等在全球流行使用的服务器远程管理软件曝出被多家杀毒软件报毒查杀的情况,经过360集团追日团队调查分析确认,NetSarang旗下多款软件的关键模块被植入了高级后门,这是一起入侵感染供应链软件的大规模攻击事件,我们将其命名为“XshellGhost”(xshell幽灵)。该程序是一个精密的定向攻击平台,所有的功能模块实现均为shellcode形式,客户端攻击通过感染供应链软件和各个shellcode模块,实现了无自启动项、无落地文件和多种通信协议的远程控制,后门潜伏于受害者电脑等待黑客在云控制平台下发shellcode数据执行,黑客在云端甚至可能通过上传的用户信息进行选择性的定向攻击。

远程控制步骤分析

 

XshellGhost的远程控制主要分为5个步骤:

  1. Xshell等软件启动加载被感染组件dll,解密shellcode1执行。
  2. Shellcode1解密Shellcode2执行如下功能:
  3. a) 创建注册表项,上报数据到每月对应的DGA域名当中;
  4. b) 通过发往知名的域名解析器当中上传用户信息给攻击者;
  5. c) 将接收的数据写入到创建的注册表项当中;
  6. d) 通过获取的key1和key2解密Shellcode 3并执行;
  7.  Shellcode3会创建日志文件并写入信息,启动系统进程Svchost.exe,修改其oep处的代码,并注入shellcode形式的Root模块执行。
  8.  Root模块的初始化过程中,会加载并初始化Plugins、Config、Install、Online和DNS等功能模块,然后调用函数Install->InstallByCfg以获取配置信息,监控注册表并创建全局互斥体,调用Online-> InitNet;
  9. 函数Online-> InitNet会根据其配置初始化网络相关资源,向指定服务地址发送信息,并等待云端动态下发代码进行下一步攻击。

1

后门功能模块分析

此次攻击的所有模块调度加载实现方式都是通过shellcode形式,采用了模块化的方法进行统一管理。后门主要分为基础管理模块 (ROOT)、插件功能模块(Plugins)、C&C配置模块(Config)、代码安装模块(Install)和网络通信模块(Online)这5个模块。

1

1

1

1

图片5

1

1

1

1

1

1

1

1

图片6

1

1

1

1

1

1

1

1

1

1

1

1

yy的程序被利用来加载的恶意dll是“VideoSdk.dll”,“VideoSdk.dll”和伪造的ShuameManager.dll采用相同的解密key和loader框架,并且同样带有盗用的“北京财联融讯信息技术有限公司”数字签名,最终都是加载coonfig.dat导出的InitMyEntry函数来进行恶意活动。另一类Elantech.exe程序是一款韩国杀毒软件“安博士”的升级程序,该程序被利用来加载名为“AhnUpCtl.dll”的dll,功能和手法都和上述类似,这里就不再赘述。

 

2017年签名冒用攻击大追踪

 

冒用方式

签名冒用的利用方式360已经分析披露过多次,这里简单再说明一下。下图是官方正常数字签名与冒用数字签名的样本对比,两者都显示数字签名正常且签名主体均为“上海**软件有限公司”。左图是该公司官方的程序签名,而右图则是冒用的数字签名,其是冒用签名的作者伪造该公司资料在国外签发机构“Go Daddy”申请的数字证书。

1

目前为止,发现的冒用签名主要都是通过“Go Daddy”和“Startfield”两家国外签发机构申请的,今年新增的8种冒用签名如下所示,其中每种签名对应若干张数字证书,且部分证书目前已被颁发者直接吊销:

1

样本分析

下面主要分析带冒用签名的劫持类私服程序,由于其他恶意程序传播受限这里暂不分析。

(一)流程框架

360截获的带冒用签名的劫持类私服程序种类较多且更新频繁,其劫持组件也是经常变化,不过总体的功能框架相对不变。样本的整个运行过程如下所示,部分程序模块在玩家电脑上采用随机文件名,图中的备注名(如[msvcs.dll])是其对应在私服服务器上的模块名称。

1

从前文的流程图看,本模块主要进行两条劫持流程,首先进行的是流程图的上半部分,母体是dnetsup.dll,最终通过安装文件过滤驱动进行劫持,紧接着进行流程图的下半部分,母体是drvsup.dll,最终通过安装tdi过滤驱动进行劫持。

(二)文件过滤流程劫持DNS

首先是文件过滤流程,过程基于dotnet(.Net)的运行环境,所以dnetsup.dll先判断并安装dotnet环境,然后通过注册通用类库的方式来得到程序运行机会。一旦注册成功,之后每次用户启动浏览器,浏览器进程都会被“注入”该劫持模块(donetset2/4),从而执行其中的程序代码,通过我们的行为监控工具查看,可以看到IE浏览器的进程树下多出了两个子进程,这两个子进程其实是注入其中的劫持模块donetset2.dll创建的(见下文):

1

1

1

1

1

QQ截图20170903151819

图片8

(三)TDI过滤流程劫持网络流量

接下来分析tdi过滤流程,最终实现通过驱动劫持用户的网络流量。母体drvsup.dll通过IsWow64Process判断系统环境,选择下载x64或者x86版本的tdi驱动到本地保存为mstd32.sys:

1

1

1

1

1

1

1

1

1

1

总结和安全建议

2017年初始至今,黑客从盗用正规公司的数字签名制造有“身份证”的木马病毒,以及有组织有预谋地入侵厂商污染软件发布流程,最后甚至使用社会工程学伪装厂商身份冒用数字签名,针对软件数字签名的攻击,无所不用其极,拥有良好信誉的软件厂商和众多软件用户已经成为黑客的主要攻击目标。

软件开发商的数字签名属于软件自身的“身份证”,软件身份被恶意利用,会对公司的商业信誉带来恶劣影响,同时也破坏了该厂商的在软件安全体系的可信身份,使安全厂商和用户都不再信任其软件身份,软件厂商将损失大量的用户。因此,软件厂商有义务保护好自己的数字签名,如果发现数字签名被攻击应及时公告用户处置,并采取有效措施减少用户的损失。

此外,网民也应该认识到,数字签名只是识别软件身份的一种方式,软件拥有数字签名并不能代表绝对安全,针对有“身份”的软件仍然需要提高警惕,使用检测机制严格、可靠的安全软件防御恶意攻击。

转载请注明来自华盟网,本文标题:《数字签名攻击报告:正在摧毁软件身份“信用体系”的安全危机》

喜欢 (0) 发布评论