迅雷安全中心(手机迅雷解除敏感资源权限)
那些年那些逆天后门2020-08-12 13:41·郑昀
2020年8月14日昀哥采编
后门无处不在。有编译器的,有芯片的,有算法的,有开源管理工具的,有补丁的。有的是国家力量介入,有的是厂商远程管理OTA的途径,有的则是不怀好意暗中窥伺。
一,编译器的后门 1.1.Xcode的2015年后门Xcode 是苹果公司提供的开发 Mac OS X 和 iOS 应用程序的集成开发工具(IDE)。因为直接从苹果站点下载 Xcode 太慢等原因,大家会选择从各大论坛、网盘上下载第三方提供的 Xcode 安装包。
所以一位网名为“coderfun”(真实身份尚未查到)的有心人,在 Xcode 中加入了一段代码,收集用户设备上的诸多信息,包括设备型号及系统版本等,并采用加密手段,将信息回传到 init.icloud-analysis.com(该网站已经关闭),史称“XcodeGhost 事件”。
他的染毒 Xcode 压缩包文件先是被发布到了 SwiftMi、CocoaChina、OSChina 等几个论坛网站,然后又投放到了百度网盘。
当时还有人称迅雷也被投毒。但是迅雷看到后立刻安排迅雷安全中心工程师对XCode6.4的链接进行下载测试,并对迅雷索引服务器上的记录进行了交叉检查,发现迅雷从未将苹果链接的XCode6.4下错为染毒的版本,而且染毒的XCode6.4文件比版本大了6.97MB,因此文件特征值不存在重复的可能。
2015年9月12日,国内某厂商在调试自家APP时发现它在启动、退出时会向 init.icloud-analysis.com 发送异常的加密流量,9月14日 CNCERT 发布了这个事件的预警公告。考虑到 coderfun 需要在搜索引擎上做好 SEO,所以他至少在1年前就开始布局了。
这种直接把恶意代码嵌入了开发工具源头的另类传播方式让其在传播广度上获得了非常好的效果——据腾讯安全应急响应中心的文章,至少76款苹果应用被病毒入侵,受影响用户超过1亿。
图1 绿盟云绘制的xcodeGhost传播链条
国内一位白帽黑客接受采访时称,这次事件足以载入移动安全的史册,其对苹果开发工具感染的技巧堪与著名的伊朗铀浓缩设备被蠕虫损坏的震网事件相提并论。震网事件由于西门子工业开发集成工具WinCC中被入侵者感染了恶意代码,使与WinCC连接的工业控制系统被间接感染,最后导致了大量伊朗核工业设备物理损坏。
在编译器插入一段代码,使其在编译时自我复制,像新冠病毒传染一样感染所有编译打包出来的程序。XcodeGhost 本质上就是这么一个原理。但这个技巧的鼻祖是一位老先生,Ken Thompson(1943年生人),他因为发明了 Unix 操作系统和 C 语言,与 Dennis M. Riche 一起在1983年获得了图灵奖。
在 Thompson 发表获奖感言的时候,他抛出了一个问题:
看到了软件的源码,就意味着没有后门吗?编译器是否可能存在能自我复制的后门呢?
他讲了这么一个故事:
安装了 UNIX 的 PDP-11 电脑在贝尔实验室里供大家日常使用。
但很快大家就发现 Ken Thompson 总能进入他们的帐户,获得最高权限。
贝尔实验室里的科学家都心比天高,当然被搞得郁闷无比。
于是有高手怒了,跳出来分析了 UNIX 代码,找到后门,修改代码,然后重新编译了整个 UNIX。
就在大家都以为“这个世界清净了”的时候,他们发现 Ken Thompson 还是轻而易举地拿到他们的帐户权限,百思不解后,只好继续郁闷。
谁知道这一郁闷,就郁闷了14年,直到 Ken Thompson 这次道出个中缘由。
原来,代码里的确有后门,但后门不在 Unix 代码里,而在编译 Unix 代码的 C 编译器里。
每次 C 编译器编译 UNIX 的代码,就自动生成后门代码。
而整个贝尔实验室的人都用 Ken Thompson 的 C 编译器。
一位安全研究员曾发表报告,利用存在bug的 CLANG 编译器,在编译时间植入提权后门漏洞,创造一个人人能获得 root 权限的后门版 sudo。受此启发,Lets encrypt 项目的女工程师 Yan 在2015年公布了一个概念验证代码,可以利用 JS 压缩器的 bug 植入后门。她注意到,利用流行的 JS 压缩器(uglify-js@2.4.23)的 bug,为 jQuery 程序植入后门是可能的。
2020年8月7日,瑞士软件工程师 Till Kottmann 发布了英特尔内部文件被泄露的信息。据 Kottmann 的 Twitter 配图显示,一处源码的注释中有“backdoor”字样,再次引发了对Intel芯片是否存在后门问题的关注。
相关文件中的注释内容为“Save the RAS backdoor requeset pointer to IOH SR 17”,直译为“将RAS后门请求集指针保存到IOH SR 17”。RAS三个字母容易被联想到RSA算法,但安天的安全工程师从场景和经验判断,此处的RAS更可能是Reliability、Availability和Serviceability三个单词的首字母,意为“可靠性、可用性、可服务性”。
“backdoor”一词在网络安全领域被定义为“可被用于未经授权秘密访问数据的计算机功能或缺陷”,其来源包括主观恶意预设、调试接口在正式产品未关闭等情况。
但在硬件设计中,“backdoor”指的是直接对某个寄存器数值进行修改的方法,与通过总线修改的“frontdoor”方法对应,并不是安全后门。
据网友分析,本次泄露的内部文件中,原理图指的是pinout,固件指的是二进制bin,开发调试工具包指的是给硬件厂家调试自己固件用的,这些文件本来就会提供给各个使用Intel CPU的客户,根本不是所谓的英特尔家底。
本次后门事件大概率是乌龙。
图2 backdoor关键字
2.2.Intel的2016年后门历史上Intel被无数次指证有后门有漏洞,有些确实是,但2016年的这一次应该也不是。
2016年美国自由软件基金会(FSF)指出Intel的Management Engine(简称ME)程序可以完全控制用户的电脑,它可以控制开机、关机,读取所有开放文件、检查所有已运行的程序、追踪用户的键盘、鼠标动作,甚至还能截屏。此外,它还有个被证明不那么安全的网络接口,攻击者可以通过它植入Rootkit程序或者入侵电脑。
业内人士则认为,ME被妖魔化了,它就是一个正常的远程管理工具,问题远远没有爆出的那么严重,ME也没有那么神奇。
2013年有多名Linux服务器管理员爆出服务器被恶意攻击,导致系统root密码泄漏以及资料泄漏,经查可能是由于内置后门的 PuTTY 和 WinSCP 工具所致。
PuTTY是知名的Windows开源SSH管理工具,WinSCP是常用的开源SFTP工具。其中PuTTY从来没有中文版,而WinSCP已经拥有中文版。
很多站长对此作了风险提示:中文版 Putty、WinSCP、SSH Secure 可能有后门,有人在上述管理软件中加了后门,制作单独的网站,然后在百度进行推广。
3.2.XShell里的后门2017年一款主流的远程终端软件 XShell 的版本中被打包了恶意代码,运行此版本软件后,受害者电脑上会被植入后门,存在被不法分子远程控制,导致个人信息遭窃的风险。黑客似乎入侵了 XShell 开发人员的电脑,在源码中植入后门,导致版本受到影响,由于dll文件有签名,众多杀毒软件依据白名单机制没有报毒。
同时该软件制作方NetSarang发布安全公告,称其最近更新(2017年7月18日)的Xmanager Enterprise、Xmanager、XShell、Xftp、Xlpd五款软件存在安全漏洞,已于2017年8月5日紧急修复。它的升级提示很有意思:提示修复了 nssock2.dll 的一个远程漏洞。
图3 腾讯安全绘制的XShell后门作恶过程
整个作恶过程分为3部分,第一部分是被patch的XShell启动后,执行到恶意的shellcode1。shellcode1解密后续数据后,执行该段代码shellcode2。第二部分shellcode2运行后会判断注册表项,如果不存在Data键值,则会收集用户信息,通过DNS 协议传走,并获取云端配置数据写回到注册表。第三部分,如果注册表项中有该键值,则会开始执行后续的恶意行为,通过注册表中的key来解密出shellcode3,最终会创建svchost进程,并盗取主机信息。
2003年,有人试图在Linux内核的源代码中提交一个隐蔽的后门。这个人仅仅改动了两行代码,非常不起眼,但能够使得攻击者给一个特定进程root权限。幸运的是,这个代码改动被自动代码审计工具发现后被Linus Torvalds去除了。人们猜测,添加代码的人可能就是来自美国国家安全局(National Security Agency,简写为NSA),因为NSA曾经试图让Linus Torvalds在内核代码中加入后门。
那是2013年LinuxCon大会上,有人问Linus Torvalds这样一个问题:
NSA是否曾要求你植入后门?
他的父亲Nils Torvalds 后来这样形容他儿子的回答:
当时他口中回答“No”,但同时却在点头。我的儿子有某种程度上的法律自由,他已经给出了正确的回答。
1999年安全研究人员在Windows NT 4 Service Pack 5中发现一个名为_NSAKEY的变量,这是一个1024位的公钥。人们怀疑微软为NSA提供了一些形式的后门,使得NSA能够访问Windows的一些加密数据甚至操作Windows本身。从那时起,关于微软产品存在后门的怀疑就一直存在。
双椭圆曲线后门可能是最隐蔽的后门了:
通过一个在密码学中常用的随机数发生算法植入后门。
Dual_EC_DRBG(双椭圆确定性随机数生成器)是美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)制定的一个标准,这里面存在一个很隐蔽的缺陷使得攻击者能够解密数据。
在斯诺登揭密之后,人们才知道这个后门的存在,知道了NSA通过干预标准的制定来达到在算法中植入后门的方式。NIST随后撤销了这个标准。
图4 Dual_EC_DRBG后门时间线
5.2.Crypto让人吃惊的是,Crypto AG幕后老板竟是中央情报局(CIA)以及德国联邦情报局(BND),这两个机构对Crypto动了手脚。
《华盛顿邮报》表示,中情局内部有这个最高机密计划的档案,其中点名了监督此项行动的中情局高层,以及负责执行的Crypto主管。其实 Crypto 早就为人所怀疑,数十年前的文件即有影射,但从未获得证实。报道也指出,尽管使用 Crypto 产品的国家不少,但西方的最大敌人,包括俄罗斯和中国,却从来都不是 Crypto 的客户。
图5 报道可以追溯到1998年
六,补丁里的后门供应链攻击是APT(Advanced Persistent Threat,高级持续性威胁)攻击中常用的攻击方式,当网络钓鱼和渗透入侵无法攻破目标防御系统时,攻击者可能会倾向于使用供应链污染的方式去寻找其供应链环节中的薄弱点进行曲线攻击。
6.1.华硕的ShadowHammer事件2019年3月,Kaspersky实验室称,全球最大的计算机制造商之一华硕在去年遭到了入侵,攻击者劫持了华硕的实时软件更新服务器,在无人知晓的情况下在数千名客户的计算机上安装了恶意后门。主流安全厂商认为黑客筹备的攻击时间大约在2018年6月左右。
Kaspersky实验室表示,这些恶意文件经过了华硕数字证书的合法签名,所以看起来与该公司的软件更新并没有差别。
虽然这意味着使用受影响软件的每个用户都可能成为受害者,但ShadowHammer幕后的攻击者似乎只关注获得几百个他们之前已了解的用户的设备访问权。他们发现,每个后门程序的代码中都包含一个硬编码MAC地址表,而MAC地址则是网络适配器的唯一识别标识符,用户将计算机连接到网络。一旦后门程序在受害者设备上运行,后门程序会将设备的MAC地址与地址表中的Mac地址进行比较。如果受感染设备的MAC地址与地址表中的地址匹配,恶意软件会下载下一步骤的恶意代码。否则,包含恶意代码的更新程序不会有任何网络行为,这就是为什么这种恶意攻击行动能够维持这么长时间不被发现的原因。Kaspersky安全专家共发现了超过600个MAC地址。这些受感染设备遭到超过230个不同的后门程序样本的攻击。
图6 ShadowHammer的攻击流程(引用自Kaspersky报告)
6.2.华硕的Plead事件2019年5月,Eset的安全研究人员报告,黑客组织BlackTech(黑凤梨)在中国台湾通过中间人攻击(即“MITM攻击”)部署了Plead恶意软件。该组织被曝一直在利用华硕WebStorage软件的漏洞来上传绕过身份验证的恶意软件,该组织主要针对亚洲政府和公司。
Eset 的研究人员认为这是路由器级别的中间人攻击,攻击者利用了用户 PC 和华硕服务器之间的不安全 HTTP 连接,以及利用了不完整的代码签名去验证所接收文件的真实性。