使用代码相似性提前预判重大网络安全风险
2020-09-27 11:30:00 Author: www.4hou.com(查看原文) 阅读量:166 收藏

导语:本月9号,卡巴斯基实验室正式宣布发布卡巴斯基威胁归因引擎(KTAE),这种代码归因技术,最初是由卡巴斯基全球研究和分析团队为内部使用而开发的,你可以直接进入卡巴斯基企业网站的信息页面了解详细信息。

近期,卡巴斯基实验室正式宣布发布卡巴斯基威胁归因引擎(KTAE),这种代码归因技术,最初是由卡巴斯基全球研究和分析团队为内部使用而开发的,你可以直接进入卡巴斯基企业网站的信息页面了解详细信息。

2017年5月12日,全球开始爆发电脑勒索病毒WannaCry,瞬间波及150多个国家7.5万台电脑被感染,有99个国家遭受了攻击,其中包括英国、美国、中国、俄罗斯、西班牙和意大利等。

1.png

此后不久,西班牙计算机应急反应小组CCN-CERT在其网站上发布了一则警告,称一场大规模勒索软件攻击影响了西班牙数家组织。该警告建议安装微软2017年3月安全公告中的更新,作为阻止攻击扩散的手段。与此同时,英国国家卫生服务体系(NHS)也发布了警报,并在16家医疗机构确认了感染病例。

卡巴斯基系统监视程序组件对于阻止这些攻击非常重要,在恶意样本设法绕过其他防御措施的情况下,System Watcher组件可以回滚勒索软件所做的更改。如果勒索软件样本越过防御措施并尝试对磁盘上的数据进行加密,这将非常有用。

随着分析的深入,研究人员开始了解到更多的东西;例如,这次感染依赖于一个著名的漏洞(代号为“EternalBlue”),该漏洞通过Shadowbrokers在2017年4月14日的转储在互联网上发布,并在3月14日被微软修复。尽管这个补丁已经发布两个月了,但似乎很多公司都没有打补丁。研究人员整合了几个博客,更新了研究人员的技术支持页面,确保所有的样本都被检测到并阻止,即使是在易受“EternalBlue”攻击的系统上。

WannaCry勒索软件在世界各地广泛使用

WannaCry事情发生后,研究人员就在寻找与已知犯罪分子或APT团体的任何可能联系,,试图确定该恶意软件如何能够在短短几天内引起这种大流行。对于勒索软件来说,研究人员很少看到全新的,从头开始构建的大流行级别的样本。在大多数情况下,勒索软件攻击利用了一些流行的恶意软件,这些恶意软件由犯罪分子在地下论坛上出售。

然而,研究人员无法找到任何已知勒索软件变种的链接。幸亏Google研究人员Neel Mehta在Twitter上发布了一条带有#WannaCryptAttribution标签的神秘消息:

2.png

这条神秘的消息实际上是指具有共享代码的两个样本之间的相似性,Neel在文中提到的两个样本为:

· 2017年2月的WannaCry样本看起来像是非常早期的变体;

· 2015年2月的Lazarus APT小组样本。

下面的截图显示了两个样本之间的相似性,并突出显示了共享代码:

3.png

尽管有些人怀疑这种联系,但研究人员认为这是正确的。这个代码重叠的发现显然不是随机的。多年来,谷歌将他们从Zynamics获得的技术集成到他们的分析工具中,使得基于共享代码将恶意软件样本聚类成为可能。显然,这项技术似乎运行得相当不错。

考虑到WannaCry和Lazarus之间的联系,研究人员制定了一个计划,如果能建立一种技术,能够在恶意软件攻击之间快速识别代码重用,并在未来的案例中找出可能的罪魁祸首,会怎么样呢?研究人员的目标是使这项技术在更大的范围内可用,以帮助威胁搜寻者,SOC和CERT加快事件响应或恶意软件分类的速度。该新技术的首个原型于2017年6月在卡巴斯基内部发布,在接下来的几个月里,研究人员继续对其进行改进和微调。

原则上,代码相似性原理是很容易理解的。过去已经测试和讨论了几种方法,包括:

1. 计算子程序的校验和,并与数据库进行比较;

2. 重构代码流并从中创建一个图,比较相似结构的图;

3. 提取n-gram并将其与数据库进行比较;

4. 在整个文件或部分文件上使用模糊哈希;

5. 使用元数据,例如富头文件,导出文件或文件的其他部分,尽管这不是代码相似性,但它仍然可以产生一些非常好的对比结果。

例如,要找到两个恶意软件样本之间的通用代码,例如,可以提取所有8-16字节的字符串,然后检查是否存在重叠。不过,有两个主要问题:

1. 恶意软件收集量太大,如果研究人员想对所有的文件都这样做,研究人员需要一个大型计算集群和大量的存储空间;

2. 资本支出太小。

此外,以一种研究人员可以作为独立机箱、VM或设备提供的有效方式进行大量的代码提取、分析和存储(更不用说搜索了)是另一种复杂级别。

为了改进它,研究人员开始试验基于代码的Yara规则。这个想法也很简单:从样本中找到的唯一代码创建一个Yara规则,然后使用我们现有的系统使用该Yara规则扫描恶意软件集合。

这里有一个例子,灵感来自WannCry:

4.png

上面这个看似良性的Yara规则捕获了BlueNoroff(用于孟加拉国银行劫案的恶意软件),ManusCrypt(Lazarus APT使用的更复杂的恶意软件,也称为FALLCHILL)和Decafett,一个键盘记录程序,研究人员以前不能与任何已知的APT联系在一起。

2017年9月,研究人员在识别共享代码方面取得了突破,第一次能够将一个新的“未知”恶意软件与一个已知实体或一套工具关联起来。这是在#CCleaner事件期间发生的,最初由Morphisec和Cisco Talos发现。

5.png

特别是,研究人员使用该技术发现了一个代码片段,自定义的base64编码子程序的一部分,在Cbkrdr shellcode加载程序,这是相同的,在以前的恶意软件样本,名为Missl,据说被APT17使用:

6.png

深入挖掘,研究人员发现至少有三个恶意软件家族共享此代码:Missl, Zoxpng/Gresim和Hikit,如下Yara规则发现的内容所示:

7.png

特别是,上述命中是基于我们所谓的“基因型”运行自定义Yara规则的结果,从恶意软件样本中提取的唯一代码片段,不会出现在任何干净的样本中且特定于该恶意软件家族。很快,卡巴斯基威胁归因引擎(“KTAE”)在内部也被昵称为“Yana”,成为研究人员常用的分析工具。

实际测试

美国网络司令部(简称USCYBERCOM)于2018年11月开始向VirusTotal发送样本,研究人员认为这是一个非常好的举措。这些上传的唯一缺点是缺乏任何背景,比如恶意软件家族,它是APT还是其他组织,以及它们是在野外发现的,还是从某些地方挖来的。虽然第一次上传是一个重新使用的绝对Computrace加载器,识别起来并不是什么大问题,但是2019年5月的上传就有点难识别了。标记为Sofacy,特别是与XTunnel样本类似。

9.png

分析d51d485f98810ab1278df4e41b692761

2020年2月,USCYBERCOM发布了另一批样本,研究人员很快与KTAE进行了核实。结果显示了一组不同的恶意软件家族,被几个APT组织使用,包括Lazarus,Andariel, HollyCheng,共享的代码片段可以追溯到DarkSeoul攻击,Blockbuster操作和SPE Hack。

10.png

更有意义的是,USCYBERCOM在2020年5月公布了另一批样本,KTAE也发现了类似的模式。

11.png

当然,人们可能会想,除了帮助识别USCYBERCOM的VT转储外,KTAE还能做什么?

为了进行更实际的检查,研究人员查看了2018年SingHealth数据泄露事件的样本。维基百科称,该事件是由身份不明的国家行为者发起的。虽然这次攻击中使用的大多数样本都是比较常规的,与之前的攻击没有任何相似之处,但其中两个样本有非常有趣的链接:

12.png

针对SingHealth数据泄漏中使用的两个样本的KTAE分析

当研究人员分析包含在一个Shadowbrokers转储中的一组文件时,出现了另一个有趣的情况。

14.jpg

分析07 cc65907642abdc8972e62c1467e83b

在上面的例子中,“cnli-1.dll” (md5: 07cc65907642abdc8972e62c1467e83b)标记为与Regin相似度高达8%。查看文件,研究人员发现这是一个DLL,带有许多自定义外观的导出文件:

15.png

看看这些导出,例如fileWriteEx,就会发现这个库实际上是作为流行IO函数的包装而创建的,很可能是出于可移植性的目的,从而使代码可以针对不同的平台进行编译:

16.png

谈到多平台恶意软件,最近,来自Leonardo的同事发表了他们针对Linux系统的一组新Turla示例的分析。最初,我们在2014年发布了有关这些内容的文章,当时我们发现了Turla Penquin,这是该组织针对Linux的后门之一。这些样本之一(sha256:67d9556c695ef6c51abf6fbab17acb3466e3149cf4d20cb64d6d34dc969b6502)已于2020年4月上传到VirusTotal。在KTAE中对该样本进行的快速检查显示以下内容:

17.png

b4587870ecf51e8ef67d98bb83bc4be7 - Turla 64位Penquin样本分析

研究人员可以看到与其他两个样本(分别为99%和99%)的相似度很高,与其他已知的Turla Penquin样本的相似度较低。通过观察它们的共同之处,研究人员立即发现了一些很好的Yara规则候选者。

18.png

当代码相似性检测失败时

当看到一项令人兴奋的、全新的技术时,有时很容易忽略其缺陷和限制。然而,重要的是要理解代码相似技术只能满足某种检测,而分析人员仍然有责任验证和确认潜在客户。比如OlympicDestroyer的案例,这是一种非常有趣的攻击,最初由Cisco Talos描述和命名。

思科Talos研究人员在研究中指出,OlympicDestroyer使用了与Badrabbit和NotPetya类似的技术来重置事件日志并删除备份。尽管这两种技术的实现意图和目的相似,但是代码语义上有许多差异。绝对不是复制粘贴的代码,并且由于命令行已在安全性博客上公开讨论,因此任何想要使用它们的人都可以使用这些简单的技术。

19.png

此外,Talos的研究人员指出,evtchk.txt文件名与evtdiag非常相似,该文件名是恶意软件在运行过程中使用的虚假标志。2016年,BlueNoroff/Lazarus在孟加拉国斯威夫特网络盗窃案中使用了exe, evtsy .exe和evtchk.bat。

在Talos报告发表后不久,以色列公司IntezerLabs在twitter上发帖称,他们发现了中国APT集团的链接。作为辅助节点,IntezerLabs本身具有出色的代码相似性技术,你可以通过访问其网站analytics.intezer.com进行签出。

20.png

几天后,媒体开始发表文章,暗示俄罗斯APT集团的潜在动机和活动。Crowdstrike Intelligence表示,在2017年11月和12月,它观察到了在国际体育领域开展的证书收集活动。当时,该行动归咎于俄罗斯黑客组织Fancy Bear。

另一方面,Crowdstrike自己的情报副总裁亚当·梅耶斯(Adam Meyers)在接受媒体采访时表示:“没有证据表明Fancy Bear与奥运会袭击事件有关。”

另一家名为Recorded Future的公司决定不将此次攻击归咎于任何一方。但是,他们声称发现了与BlueNoroff / Lazarus LimaCharlie恶意软件加载程序的相似之处,而后者被普遍认为是朝鲜的黑客组织。

与此同时,研究人员还使用KTAE来检查样本是否与之前已知的活动有任何可能的联系。令人惊讶的是,KTAE发现了一种独特的模式,该模式也将OlympicDestroyer和Lazarus联系起来。存储在可执行文件中的特定代码开发环境特性的组合,称为富头文件,在某些情况下可以用作识别恶意软件开发者。

21.png

分析3 c0d740347b0362331c882c2dee96dbf

上面显示的4%相似度来自样本的Rich标头中的匹配项,最初,我们很惊讶地找到了这种联系,尽管它很有意义。其他公司也发现了相似之处,而Lazarus已经因多次破坏性攻击而闻名。但有些事情似乎很奇怪。朝鲜参与的可能性看起来不大,尤其是金正恩的妹妹参加了平昌的开幕式之后。根据研究人员的法医调查,袭击发生在2018年2月9日正式开幕式之前。随着研究人员对这个案件的深入调查,研究人员得出结论,这是一个精心设计的错误标记;进一步的研究让研究人员可以将这次攻击与Hades APT小组联系起来。

这证明,即使是最好的归因或代码相似性技术,也可能受到经验丰富的攻击者的干扰,并且不应盲目依赖这些工具。当然,在大多数情况下,提示非常有效。随着攻击者的技能越来越高,研究人员可能会遇到更多的虚假标志。

本文翻译自:https://securelist.com/big-threats-using-code-similarity-part-1/97239/如若转载,请注明原文地址:


文章来源: https://www.4hou.com/posts/XnYo
如有侵权请联系:admin#unsafe.sh