2017年度安全报告——供应链攻击

阅读量362933

发布时间 : 2018-01-31 11:50:02

XshellGhost事件
Ccleaner恶意代码攻击事件
OSX/Proton后门(Elmedia Player软件)攻击事件
Chrome插件User-Agent Switcher供应链攻击事件
全国多省爆发大规模软件升级劫持攻击
Wordpress Keylogger事件

 

供应链攻击年终报告

传统的供应链概念是指商品到达消费者手中之前各相关者的连接或业务的衔接,从采购原材料开始,制成中间产品以及最终产品,最后由销售网络把产品送到消费者手中的一个整体的供应链结构。

近年来我们观察到了大量基于软硬件供应链的攻击案例,比如针对Xshell源代码污染的攻击机理是攻击者直接修改了产品源代码并植入特洛伊木马;针对苹果公司的集成开发工具Xcode的攻击,则是通过影响编译环境间接攻击了产出的软件产品。这些攻击案例最终影响了数十万甚至上亿的软件产品用户,并可以造成比如盗取用户隐私、植入木马、盗取数字资产等危害。接下来我们将从划分出来各环节的角度,举例分析这些针对供应链攻击的重大安全事件。

下面是小编收集到的今年部分供应链攻击事件(排名不分先后):

开发工具污染

XshellGhost事件

2017年8月,非常流行的远程终端管理软件 Xshell 被发现植入了后门代码,导致大量使用此款工具的用户泄露主机相关的敏感信息。同时,近期大量的使用软件捆绑进行传播的黑产活动也被揭露出来,从影响面来看这些恶意活动的力度颇为惊人,这类来源于供应链并最终造成巨大危害的安全事件其实并不少见,而我们所感知的可能只是冰山一角而已。

针对开发工具进行攻击,影响最为广泛的莫过于XcodeGhost(Xcode非官方版本恶意代码污染事件),值得一提的是早在30多年前的1984年,UNIX创造者之一Ken Thompson在其ACM图灵奖的获奖演讲中发表了叫做Reflections on Trusting Trust(反思对信任的信任)的演讲。他分三步描述了如何构造一个非常难以被发现的编译器后门,后来被称为 the Ken Thompson Hack(KTH),这或许是已知最早的针对软件开发工具的攻击设想。而最近的XcodeGhost最多只能算是KTH的一个简化版本,没有试图隐藏自己,修改的不是编译器本身,而是Xcode附带的框架库。

随后,经安全研究人员分析证实NetSarang公司在7月18日发布的nssock2.dll模块中被植入了恶意代码,直接影响到使用该系列软件的用户。

技术分析
受害者在安装,启动了带有后门的客户端后,nssock2.dll模块中的攻击代码会以Shellcode形式在后台被调用解密执行。

该Shellcode分为多加密块,基于插件模型架构,各模块之间负责不同功能且协调工作、相互调用,实际分析后发现中间存在大量对抗设计,隐秘性较强,该后门还包含了如下几个特点:

  • 无自启动项,无独立落地文件
  • 存在花指令和部分加密函数设计
  • 多种通信协议的远程控制
  • 主动发送受害主机基本信息
  • 通过特定的DGA(域名生成算法)产生的DNS域名传送至远程命令控制服务器
  • C&C服务器可动态下发任意代码至用户机器执行

 

后门的整体流程大致分为以下9个步骤:
1.Xshell启动后会加载动态链接库nssock2.dll。
2.在DllMain执行前由全局对象构造启动引子代码。
3.引子代码主要功能就是解密shellcode1并跳转到入口处执行。
4.shellcode1(loader)加载shellcode2。
5.shellcode2中将搜集用户信息构造DNS TXT包传送至根据年份和月份生成的DGA域名,同时接收解密shellcode3的key并写入注册表,一旦注册表中查询到对应的值随即解密shellcode3并执行。
6.Shellcode3(loader)主要负责加载Root模块并跳转到入口处执行。
7.Root被加载后接着分别加载Plugin,Config,Install,Online和DNS模块。
8.Install模块会创建svchost.exe并把Root模块注入,实现持久化运行。
9.Online模块会根据其配置初始化网络相关资源,向指定服务地址发送信息,并等待云端动态下发代码进行下一步攻击。

Shellcode1(Loader)
该后门是基于插件模式开发的,Root模块提供了插件的基本框架,各插件之间会相互调用,而在各个插件加载时都会多次用到同一个loader,loader中的代码中加入了化指令进行干扰,具体实现细节为如下8个步骤:

Shellcode2
主要作用就是将搜集的数据传出,并接收服务端传来的key解密shellcode3,执行后门的核心部分,Shellcode2实现细节如下:
1.Shellcode2首先创建工作线程。
2.工作线程首先获取VolumeSerialNumber值并且异或0xD592FC92 这个值用来创建注册表项。
3.创建注册表项,位置为HKEY_CURRENT_USER\SOFTWARE\-[0-9](步骤2生成的数值)。
4.通过RegQueryValueExA查询步骤3创建注册表中Data键的值。
5.如果注册表Data已经存放key会直接用key解密shellcode3并执行。
6.不存在key则继续执行下面的循环,当不满足时间条件时循环每隔10秒获取一次时间, 满足时间条件时进入主流程执行步骤7。

7.主流程首先根据当前时间生成DGA域名 ,当前8月时间为nylalobghyhirgh.com
部分年份-月份生成的域名对应关系如下:

此外,通过对12个域名分析NS解析情况后发现, 7月开始被注册解析到qhoster.net的NS Server上,所以猜测这个恶意代码事件至少是从7月开始的。
8.接着根据获取的当前网络、hostName 、DomainName 、UserNmae用特定算法生成字符串构造DNS_TXT数据包并向8.8.8.8 | 8.8.4.4 | 4.2.2.1 | 4.2.2.2 | 当前时间DGA域名 发送,然后等待服务器返回数据(解密Shellcode3的key)。
Key1   0xC9BED351
key2   0xA85DA1C9

9.当接收到服务器的数据包后设置注册表Data数据,然后解密Shellcode3,Shellcode3依然是一个loader,该loader加载Root模块,其loader功能同上述的细节相同。

(1)、Module_Root
Root模块是后门的关键部分,为其它模块提供了基本框架和互相调用的API,其中会加载五个模块分别为:Plugin、Online、Config、Install、DNS。
将自身函数表地址共享给其他模块使用,主要这些API主要涉及到一些模块加载、加解密等功能。

(2)、Module_Install
Install负责把RootModule的Code注入到傀儡进程中和Online模块的初始化。

(3)、Module_Config
Config模块主要负责配置信息的存储和读取功能,当模块初始化函数传入的参数为100时,会保存一些默认配置信息到磁盘中,同时Config模块也提供了将配置信息发送到CC服务器的接口。

(4)、Module_Plugin
Plugin模块为后门提供插件管理功能,包括插件的加载、卸载、添加、删除操作,管理功能完成后会通过调用Online的0x24项函数完成回调,向服务器返回操作结果。模块的辅助功能为其它插件提供注册表操作。
(5)、Module_DNS
DNS模块的主要功能是使用DNS协议处理CC通信过程。DNS数据包有三种类型,分别代表上线,数据和结束。

(6)、Module_Online
Online模块是本次攻击的网络通信管理模块。该模块会读取配置文件,收集系统信息,并且能够调用DNS,HTTP,SSL等模块通信,不过在代码中暂时只有前面所述的DNS模块。

2017年9月18日,Piriform 官方发布安全公告,公告称旗下的CCleaner version 5.33.6162和CCleaner Cloud version 1.07.3191中的32位应用程序被篡改并植入了恶意代码。
这是继Xshell被植入后门代码事件后,又一起严重的软件供应链攻击活动,此次事件极有可能是攻击者入侵开发人员机器后污染开发环境中的CRT静态库函数造成的,导致的后果为在该开发环境中开发的程序都有可能被自动植入恶意代码。

Ccleaner恶意代码攻击事件

技术分析

基本框架图:

DNS请求态势:

PayLoad流程图:

恶意代码加载部分
在编译器增加的初始化代码中的__scrt_get_dyn_tls_init_callback函数中增加了解密shellcode的调用。

解密出来的shellcode是一个loader,会加载一个被抹去了DOS头的dll创建线程执行恶意行为。

信息上传及Payload下载部分
获取C&C服务器地址216.126.225.148。
伪造host:speccy.piriform.com发送编码后的信息。
如果没有接收到响应,还会尝试连接DGA域名,并将IP地址存储在SOFTWARE\Piriform\Agomo\NID中。DGA算法经过还原后如下:

DGA域名列表如下:

捆绑下载

OSX/Proton后门(Elmedia Player软件)攻击事件

Elmedia Player是一款专门为Mac OS X 打造的免费媒体播放器,通过它可播放和管理Mac上的Flash影片、电影视频等等。2017年10月19日ESET注意到Elmedia Player软件的制造商Eltima正在其官方网站上发布一个被植入OSX/Proton恶意软件的应用程序。ESET联系Eltima之后2017年10月20日Eltima官方发布安全公告,公告称旗下macOS平台下的Folx 和 Elmedia Player两款软件的DMG因为官网被入侵而被篡改并被植入了恶意代码,具体影响到了2017年10月19日在官网下载该两款软件的用户。该软件用户数大约在100万左右。这是今年既XshellGhost和CCleaner之后又一起严重的针对供应链攻击的事件。

技术分析

C&C域名DNS请求态势

注: 时间因为标准问题,允许存在1天的误差。该图来自于360网络安全研究院

据悉,植入Eltima软件的后门代码是已知的OSX/Proton后门。攻击者通过解压Eltima软件包,并通过有效的macOS开发者签名来重新打包来保护自身,目前苹果公司已经吊销了该签名。

  • 信息窃取方面,OSX/Proton是通过持久化控制来窃取一系列用户信息的后门,主要包括如下:
    操作系统信息: 主机名,硬件序列号 ,用户名,csrutil status,网关信息,时间/时区;
  •  浏览器信息:历史记录,cookies,标签,登录信息等(包括Firefox,Chrome,Safari,Opera平台)
  •  数字钱包

Electrum: ~/.electrum/wallets
Bitcoin Core: ~/Library/Application Support/Bitcoin/wallet.dat
Armory: ~/Library/Application Support/Armory
• SSH信息
• macOS keychain信息
• Tunnelblick VPN 配置 (~/Library/Application Support/Tunnelblick/Configurations)
• GnuPG 数据 (~/.gnupg)
• 1Password 数据 (~/Library/Application Support/1Password 4 and ~/Library/Application Support/1Password 3.9)

Indicators of Compromise (IOCs)
•URL列表
hxxps://mac[.]eltima[.]com/download/elmediaplayer.dmg
hxxp://www.elmedia-video-player.[.]com/download/elmediaplayer.dmg
hxxps://mac.eltima[.]com/download/downloader_mac.dmg
•文件哈希
e9dcdae1406ab1132dc9d507fd63503e5c4d41d9
8cfa551d15320f0157ece3bdf30b1c62765a93a5
0400b35d703d872adc64aa7ef914a260903998ca
•IP地址
eltima[.]in / 5.196.42.123

Chrome插件User–Agent Switcher供应链攻击事件

在信息化高速发展的今天,在BS模式的推动下,web已经成为全球第一大客户端,早已是用户生活中不可分割的一部分,在此处事件中User-Agent Switcher为广大的攻击者提供了一种新型的供应链攻击模式—从大分发机构出发,对交付这一过程进行攻击,作者通过混淆自己的恶意代码进入图片接着在插件运行的时候再从图片中解密出恶意代码进行运行,从而绕过了Chrome商店的严格审查机制,成功的堂而皇之的登录到了Chrome应用商店,然而对用户而言,官方的应用商店无疑是代表着官方的认证,以及质量和安全,时至今日已经Chrome商店的统计数据显示:累计有458,450的用户已经安装了该插件,可以看到Chrome商店在这之中扮演着重要的角色,交付这一环节上,就让chrome成功收录了自己的应用,然后利用chrome应用商店这个更为广大的品台吸引到更多的用户进行下载使用,从而造成更大的危害。

技术细节

运作流程

DNS请求态势


uaswitcher.org&the-extension.com & api.data-monitor.info

canvas图片js代码隐藏
那么现在直接从background.js看起 在background.js的70行处有一行经过js压缩的代码,进行beautify后。这里大部分代码的功能都是对promo.jpg这个图片文件的读取处理

值的内容都小于10,所以这就是为什么要放在A分量上,A分量的值255是完全不透明,而这部分值附加在245上.所以对图片的观感完全无影响

下载恶意payload

用户信息上传

 

升级劫持

全国多省爆发大规模软件升级劫持攻击

软件产品在整个生命周期中几乎都要对自身进行更新,常见的有功能更新升级、修复软件产品BUG等等。攻击者可以通过劫持软件更新的“渠道”,比如通过预先植入用户机器的病毒木马重定向更新下载链接、运营商劫持重定向更新下载链接、软件产品更新模块在下载过程中被劫持替换(未校验)等等方式对软件升级过程进行劫持进而植入恶意代码。

360安全卫士在2017年7月5日披露,有多款软件用户密集反映360“误报了软件的升级程序”,但事实上,这些软件的升级程序已经被不法分子恶意替换。

这次事件其实是基于域名bjftzt.cdn.powercdn.com的一组大规模软件升级劫持事件。用户尝试升级若干知名软件客户端时,运营商将HTTP请求重定向至恶意软件并执行。恶意软件会在表面上正常安装知名软件客户端的同时,另外在后台偷偷下载安装推广其他软件。山东、山西、福建、浙江等多省的软件升级劫持达到空前规模,360安全卫士对此类攻击的单日拦截量突破40万次。

技术分析
近期有多款软件用户密集反映360“误报了软件的升级程序”,但事实上,这些软件的升级程序已经被不法分子恶意替换。
下图就是一例爱奇艺客户端升级程序被劫持的下载过程:可以看到服务器返回了302跳转,把下载地址指向了一个并不属于爱奇艺的CDN服务器地址,导致下载回来的安装包变为被不法分子篡改过的推广程序。

此次被劫持升级程序的流行软件远不止爱奇艺一家,下图就是一些由于网络劫持而出现的“假软件”。

被网络劫持替换的“假软件”

以下,我们以伪造的百度网盘安装程序“BaiduNetdisk_5.5.4.exe”为例分析一下恶意程序的行为。与正常的安装程序相比,该程序不具备合法的数字签名,并且体积较大。

通过对比可以发现,两者在内容上还是有较大差别。两者只有8.7%的函数内容相同。

伪装安装程序和正常安装程序函数对比

根据360安全卫士的持续监控和拦截,该劫持行为从今年3月底就已经开始出现,360一直在持续跟进查杀,近日来则突然出现了爆发趋势,为此360安全卫士官方微博公开发布了警报。
7月4日,也就是在360发布软件升级劫持攻击警报后,此类攻击行为出现了一定程度下降。

注:网络劫持量走势

根据已有数据统计显示,受到此次劫持事件影响的用户已经超过百万。而这些被劫持的用户绝大多数来自于山东地区。另外,山西、福建、浙江、新疆、河南等地也有一定规模爆发。

注:被劫持用户地域分布

在此提醒各大软件厂商,软件更新尽量采用https加密传输的方式进行升级,以防被网络劫持恶意利用。对于普通互联网用户,360安全卫士“主动防御”能够拦截并查杀利用软件升级投放到用户电脑里的恶意程序,建议用户更新软件时开启安全防护。

360安全卫士拦截软件升级劫持“投毒”

 

12月初,Catalin Cimpanu发现几起针对WordPress站点的攻击,主要通过加载恶意脚本进行键盘记录,挖矿或者挂载广告。恶意脚本从“cloudflare.solutions”域加载,该域与Cloudflare无关,只要用户从输入字段切换,就会记录用户在表单字段中输入的内容。
攻击者攻击了WordPress站点,从主题的function.php文件植入一个混淆的js脚本,这类供应链攻击的明显区别是,他在产品交付后,用户使用前进行植入恶意程序,这样在用户使用过程中受到攻击。
此次检测到的WordPress Keylogger事件,最早可以追溯到今年4月,期间小型攻击不断,在12月的时候攻击突然加剧。使用WordPress产品的用户,有必要进行自检,排查是否有恶意文件,及时清除。

WordPress Keylogger事件

技术分析
我们注意到WordPress被注入了一个混淆的js脚本,从主题的function.php文件进行植入,其中reconnecting-websocket.js用作websocket通信,cors.js中包含后门。Cors.js更改前端页面,释放javascript脚本进行输入监听,之后将数据发送给工具者(wss://cloudflare[.]solutions:8085/)。

用户WordPress首页底部有两个JS,第一个用来做websocket通信。Cors.js有混淆:

解密出:

逻辑很好理解,监听blur 事件(输入框失去焦点) 通过websocket发送用户input内容。

最后,窗口加载后执行addyandexmetrix()。该函数是一个类似cnzz,做访问统计的js。

 

总结

在未来,安全人员担心的种种安全风险会不可避免的慢慢出现,但同时我们也在慢慢的看到,一方面基础软件厂商正在以积极的态度通过联合安全厂商等途径来加强和解决自身的产品安全,另一方面安全厂商之间也已经在威胁情报和安全数据等方面方面进行更为明确化,纵深化的整合。

360CERT在实际分析跟踪中,除了看到XShellGhost中所使用的一系列精巧攻击技术外,更重要是看到了背后攻击组织在实施攻击道路上的决心。

而就Ccleaner后门事件是Xshellghost之后公开的第二起黑客入侵供应链软件商后进行的有组织有预谋的大规模定向攻击。供应链攻击是将恶意软件分发到目标组织中的一种非常有效的方法。在供应链的攻击中,攻击者主要凭借并滥用制造商或供应商和客户之间的信任关系攻击组织和个人。2017年上半年爆发的NotPetya蠕虫就显示出了供应链攻击的强大影响力。

User-Agent Switcher在此处供应链攻击的优势就在于其通过了Chrome官方商店的认证,而对于用户来说,能够在官方商店安装和下载到的插件就一定是安全可靠的,这一个信任链对于用户来说是十分牢固的,首先针对Chrome官方商店来说,对于应用的审查应该更为严格,对于插件能够访问到浏览器的权限应该受到一些限制,User-Agent Switcher利用图片代码隐藏技术对于chrome应用商店的审查进行逃脱.这些技术在安全领域更该受到重视,安全性才是对于用户保障的根本.对今年一年的回顾来开,浏览器中的安全受到了各界广泛的关注,尤其是对于攻击者,JS Miner, Blue Loutus, wordpress Keylogger 这一例例的事件都将web安全这一问题再一次推向世人的面前,web作为第一大客户端,安全性更是需要更多的保障,随意web技术日新月异的发展,攻击技术的迭代更是远远超过了防御技术的迭代,所以我们对于其安全应该作出更多,更严谨的思考,指定出更为有效的规范以及守则,才能减少这些危害的影响以及发生。

Eltima被植入后门则表明MAC平台的安全问题同样不容忽视。从某些方面来说,OSX确实要比windows安全的多。但是对于供应链攻击来说OSX的安全措施同样显得无能为力。前两年的XcodeGhost掀起的轩然大波仍然历历在目,2012年年初的时候putty等SSH管理软件的汉化版带有后门程序的事件在当时影响也很大,在实际应用场景中盗版、汉化、破解等问题给信息系统制造了大量隐患。

本文由360CERT安全通告原创发布

转载,请参考转载声明,注明出处: https://www.anquanke.com/post/id/96721

安全客 - 有思想的安全新媒体

分享到:微信
+14赞
收藏
360CERT安全通告
分享到:微信

发表评论

内容需知
  • 投稿须知
  • 转载须知
  • 官网QQ群8:819797106
  • 官网QQ群3:830462644(已满)
  • 官网QQ群2:814450983(已满)
  • 官网QQ群1:702511263(已满)
合作单位
  • 安全客
  • 安全客
Copyright © 北京奇虎科技有限公司 360网络攻防实验室 安全客 All Rights Reserved 京ICP备08010314号-66