SunCrypt勒索软件:eCh0raix新型衍生变种
2021-04-01 11:43:00 Author: www.4hou.com(查看原文) 阅读量:134 收藏

导语:eCh0raix和SunCrypt两款勒索软件在代码上相似,但其幕后的操作者在暗网论坛上的宣传方式、攻击目标等的选取上却截然不同,很可能由两个不同的运营团队在操纵。

介绍

恶意软件作者在编写新的恶意软件时通常会重用自己写过的代码,因此在做恶意软件的关联分析时,常通过代码段的对比来作为判别标准,但需要注意的是,这类代码需要具有强烈的标识性,能将其归因到具体的组织或个人。随着新型攻击组织和恶意软件的不断涌现,“老酒装新瓶”现象也时常发生,例如GandCrab运营团队在2019年5月间宣布将停止勒索软件活动,但不久后又出现了一种名为REvil(也被称为Sodinokibi)的新型勒索软件,两者的代码具有很强的相似性,表明当GandCrab勒索软件关停期间,其作者用GandCrab的部分代码又开发出了一款新的勒索软件。

本文将分析勒索软件SunCrypt和QNAPCrypt之间的联系,QNAPCrypt在2019年被用于攻击群晖科技(Synology)、威联通(QNAP)等NAS品牌设备。这两款勒索软件在代码重用和技术方面存在很强的关联性,目前由不同的团体在操作。虽然这两款软件可能是同一人编写,但不同的操作者可能会使用不同的战术、技术和程序(TTPs),或是使用新的逃避技术,防御者必须保持警惕。

技术关联

SunCrypt是一种勒索软件即服务(RaaS),对其溯源可到2019年10月,此版本的SunCrypt由Go语言编写,针对Windows机器,此时检测到的攻击次数并不多,一直到2020年中期,出现了C / C ++编写的新版,攻击数量也开始增加。当其他威胁组织开始将恶意软件从C / C ++改为Go版本时,它却逆其道而行之。

SunCrypt与QNAPCrypt(也称为eCh0raix)勒索软件在代码上高度关联,可以肯定的是,两者的代码是从相同的源代码编译而来。

SunCrypt 2020和SunCrypt 2019

SunCrypt 2020年的新变种由C编写,与2019年的早期版本没有共同代码。除了功能相似外,有其他信息帮助我们将其归类:

SunCrypt窃取并加密了受感染机器上的文件后,会向用户显示勒索记录,如下图1所示。 

图1:SunCrypt的赎金页面。左侧显示2019年版本,右侧显示当前版本,两者具有相同的单词和语法错误。当前的勒索页面公布了指向展示私人信息的链接,而老版页面没有。

2020年变种的勒索页面,有英语、德语、法语、西班牙语和日语版本,并带有一个输入框,当用户输入唯一ID时,会向用户发送聊天界面。2019年款的赎金页面具有类似的文本,主要区别在于背景颜色以及未支付赎金情况下胁迫话语。

SunCrypt 与QNAPCrypt的关联

2021版本可能是beta版本,PDB路径中显示的版本名为“ 0.1”,如图2所示。该图显示了redress(一款分析Go二进制文件的工具)处理后的部分输出,可以看到一个名为“ aes.go”的文件,其中包含两个函数,其中一个函数的名称中有一个错字,应该是“ EncAES”而不是“ EncEAS”。

这个错误也曾出现在QNAPCrypt版本2的两个样本中(8dd59345cc034317630b2ac2ee19b362和516291d10b370c7be3863335cf5d57eb)。图3中显示了QNAPCrypt样本之一的redress输出。在搜索了我们的恶意软件数据集和VirusTotal后,只有这三个样本具有两个函数名。由此可以得出结论,错别字是唯一的,两个勒索软件之间可能共享代码。

 

图2:SunCrypt 2019变种的部分redress输出。

 

图3:QNAPCrypt版本的redress输出,具有相同拼写错误。 

对函数的进一步分析表明,它们来源相同。“ EncFile”的流程图如图4所示,“ EncEAS”的流程图如图5所示。 

图4:EncFile函数的流程图,两者一致。

上述样本是针对不同的操作系统和架构使用不同版本的Go编译器编译的,导致所生成的汇编代码略有不同。EncFile函数为要加密的文件启动文件处理程序,它使用Go的标准库提供的“stat”函数来确定文件大小,根据文件大小将其分为两类。

对于SunCrypt,文件大小的分类标准是100 MB,而QNAPCrypt使用10 MB的阈值。在大文件类中,SunCrypt使用标准库“io”包的“ReadAtLeast”函数读取前100 MB,QNAPCrypt执行的也是相同的操作,只是在前10 MB中执行。

对于较小的文件,两个软件都使用都使用来自“io”包的“ReadFile”函数,读取的数据被传递给加密数据的“EncEAS”函数。最后,在删除原始文件时,将EncEAS输出内容作为新文件写入磁盘,并附加相应扩展名。除了大小限制之外,两款软件的函数逻辑是相同的。 

图5:SunCrypt与QNAPCrypt的“EncEAS”函数流程图比较。

其他相似之处

两款勒索软件除了文件加密函数代码雷同外,还具有其他相似之处,QNAPCrypt中的函数与SunCrypt中的函数的相似之处。

图6:QNAPCrypt和SunCrypt之间具有相似功能的函数。文件加密逻辑相同,而密钥生成和密钥加密又非常相似,且均通过计算机的语言环境和GeoIP来确定计算机的位置。

两种勒索软件都设计为不能在某些独立国家联合体(CIS)上运行,如果QNAPCrypt认为文件在白俄罗斯语,俄语或乌克兰语的计算机上运行,则不会对其进行任何加密,SunCrypt也有类似处理,名单中包含吉尔吉斯斯坦和叙利亚。

在确定计算机用户国籍这一点上,两款勒索软件采用的方式非常相似——使用了两个信息源。一是计算机的语言环境,由于QNAPCrypt针对Linux机器,而SunCrypt针对Windows机器,因此获取此信息的方式也有所不同;第二个是根据机器的外部IP地址通过地理位置进行,两种勒索软件都与外部服务联系以获取此信息,SunCrypt使用“ ip-api.com”,QNAPCrypt使用“ ipapi.co”。

两款软件都在CFB模式下使用AES对文件进行加密,均生成唯一的32个字符的密码,生成的过程逻辑也非常相似。如图7所示,密码中的字符是从有效字符列表中随机选择的,包括所有英文字母的大小写以及数字0到9,由标准库中的math包中的rand实现,在随机性上是不加密的。以当前时间为随机种子,每次调用负责生成密码的函数时,SunCrypt都会重置种子,而QNAPCrypt会在初始化期间设置种子,SunCrypt还使用该函数生成受害者标识符。

图7:生成加密密码。该函数循环32次,并使用“ rand.Intn”从有效字符列表中选择一个随机字符,循环完成后,字符的字节片将转换为字符串。

加密密码是用二进制文件中的公钥RSA加密的。这段代码的逻辑于图8所示,代码使用“EncryptPKCS1v15”函数,属于“crypto/rsa”包。

图8:使用二进制文件中包含的公共密钥对密码进行加密。

两款勒索软件都有作为Tor隐藏服务托管的C2设施。QNAPCrypt的第一个版本通过C2获取赎金票据的信息和比特币钱包,SunCrypt发送活动信息并将窃取文件上传到C2服务器。为了访问隐藏的服务,两者都使用公共可用的SocksV5代理,QNAPCrypt直接连接到一个IP地址(192.99.206[.]61),而SunCrypt使用的代理通过域vie8hoos[.]xyz访问。

勒索软件加密的文件类型也相似,都有一个文件扩展名列表,用于确定是否加密文件。SunCrypt具有589个文件扩展名的列表,如果将SunCrypt列表与QNAPCrypt的第一个版本使用的列表进行比较,可以看到SunCrypt的列表添加了四个新条目,并删除了19个条目。列表未进行任何排序,因此提取列表的顺序与恶意软件中出现的顺序完全相同。下面的代码片段显示了两个列表的“diff”。

$ diff suncrypt_ext.lst qnap_ext_20190705.lst
460d459
< .mp4
562, 564d560
< .java
< .swift
< .go
589a586, 604
> .gcode
> .ngc
> .sldprt
> .sldasm
> .x_t
> .step
> .fits
> .cat
> .ctlg
> .fit
> .rsn
> .eml
> .vhdx
> .cfg
> .plist
> .bckup
> .far
> .tbz
> .abf

将SunCrypt的列表与同一年8月的QNAPCrypt第二版使用的列表进行比较,重叠部分会更多,不同的是SunCrypt增加了三个条目,删除了两个。整体上看,字符串相似度为0.991,这是一个很强的相似度。“diff”输出如下所示。

$ diff suncrypt-files.lst qnap_ext_20190801.lst
562, 564d561
< .java
< .swift
< .go
589a587, 588
> .gcode
> .ngc

总结

尽管两款勒索软件在代码上相似,但其幕后的操作者在暗网论坛上的宣传方式、攻击目标等的选取上却截然不同,eCh0raix和SunCrypt很可能由两个不同的运营团队在操纵。安全人员应考虑到这一点,不能因为一个恶意软件家族是另一个恶意软件家族的迭代,就把它们的运营团队划上等号,如果被其他攻击者接手,操作方式、功能和规避技术上可能都会有所改变。防御者必须保持警惕。

本文翻译自:https://www.intezer.com/blog/malware-analysis/when-viruses-mutate-did-suncrypt-ransomware-evolve-from-qnapcrypt/如若转载,请注明原文地址:


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