针对Linux操作体系的勒索软件在曩昔并不常见,不过如今 *** 犯罪分子们好像有开端往这方向开展的趋势,且企图经过各种办法在这一领域中牟取赢利。
近来,Intezer检测到了一同针对根据Linux文件存储体系(NAS服务器)的勒索软件举动,其方针是感染并加密文件以勒索赎金。Intezer将此勒索软件命名为QNAPCrypt(作者符号歹意软件的称号),QNAP是一家闻名的NAS服务器品牌供货商。NAS服务器一般存储许多重要数据和文件,这也使得它们成为了进犯者眼中的一块肥肉。
现在,QNAPCrypt在一切首要的安全解决方案中的检测率都十分低。
本文的前两部分将简略解说下QNAPCrypt的作业机制,以及咱们是怎么经过歹意软件基础设施中的两个规划缺点来暂时中止这场歹意举动的(不过也迫使进犯者布置了新的歹意软件样本)。最终,咱们将对歹意软件进行具体的技能剖析。
以下是Intezer对QNAPCrypt样本的遗传剖析,仅供参考:
· ARM变种
· x86 变种
QNAPCrypt的作业机制
QNAPCrypt勒索软件的作业原理与其他勒索软件相似,不过也有几个显着差异:
1. 赎金收据仅作为文本文件包括在内,受害者屏幕上不会显现任何音讯——这是理所应当的,由于受进犯的是服务器而不是终端。
2. 进犯者会为每个方针分配一个仅有的比特币钱包——这能够协助进犯者防止被追寻。
3. 受害者遭到进犯后,歹意软件会在文件加密之前从指令和操控服务器(C&C)恳求钱包地址和公共RSA密钥。
咱们是怎么运用这场举动的?
为了进一步研讨歹意软件及其行为,咱们编写了一个脚原本假造了一场大规模的感染。在对数百名“受害者”进行进犯后,咱们发现了勒索软件架构中的两个首要的规划缺点:
1. 比特币钱包列表是事前创立的,并且是静态的。也就是说,它不会为每个新受害者实时创立新钱包,而是从固定的预订列表中提取钱包地址。
2. 一旦分配完一切钱包,勒索软件将无法持续在受害者的机器中进行歹意操作。
在假造了15批合计超越1,091次感染后,咱们发现进犯者用完了钱包的比例,照理说接下来的感染进程也会随之完毕,但之后几天,却呈现了一个新变种,进犯者在其间更新了植入程序,绕过了基础设施中的规划缺点,从而能持续他们的歹意举动。
新样本与前QNAPCrypt样本和Linux.Rex(一种Linux木马)之间都有许多代码重合,且这次运用了嵌入式静态钱包和RSA公钥。
技能剖析
新样本中,首要新增的是一个静态链接的Golang二进制文件,它是用ARM架构的Go链接器构建的。在咱们的整个研讨进程中还承认有根据其他构架的变体,如x86 / x64。
Go二进制文件在被剥离时往往很难剖析,由于剥离的静态链接二进制文件一般比动态链接二进制文件更难剖析。
上图所示的这个二进制文件是一个Go可执行文件,可经过它的节头表中的节名检查。
假如能知道上图中红框杰出显现的区域的方位(尤其是.gopclntab部分),就能够重建它们的符号称号和偏移量。办法如下图所示:
想要进一步了解怎么在Go二进制文件中填充函数名,咱们强烈建议检查Tim Strazzere在GitHub中的演示和脚本。
在检索Go函数名之后,剖析二进制代码就变得简略许多,如下图所示能够杰出显现应用程序的相关函数。不要忘掉二进制文件的巨细是4MB。
在对目录白名单和相似功用的参数进行了几回加密算法初始化和解析之后,歹意软件将向CNC发送一个GET恳求,标明一个新的受害者现已被进犯,体系确定正在发作:
发送此GET恳求后,歹意软件将测验运用SOCKS署理协议版别5的客户端检索受害者密钥装备。
此署理将恳求衔接到洋葱的域名(.onion)。下图表明衔接的相关数据包:
经过署理成功衔接到洋葱域后,将完成对勒索软件REST API的另一个GET恳求,此步的意图是检索将用于加密文件体系的RSA公钥,一个专一的比特币钱包和受害者的赎金告诉。一切这些构件好像都是根据特定的活动ID进行检索的。
服务器的呼应如下:
获取受害者装备之后,歹意软件将删去本身,然后解析检索到的RSA公钥。[1][2][3]黑客接单网