安全资讯

恶意程序分析师初级参考

字号+ 作者:Vasilios 来源:转载 2018-03-21 11:11 我要评论( )

尽管加密对于在安全行业从业的大多数人来说都不陌生,但依然有很多人对加密在恶意程序中的运用缺乏基本的了解—— 特别是勒索软件。因此我们认为开展一次针对加密......

尽管加密对于在安全行业从业的大多数人来说都不陌生,但依然有很多人对加密在恶意程序中的运用缺乏基本的了解—— 特别是勒索软件。因此我们认为开展一次针对加密机制和机密技术如何被恶意软件所利用的入门介绍是有益的。

首先我们将在文章中简单介绍一下什么是加密,然后跟进了解一些勒索软件用于文件加密的常见方式。在这个文章系列的后续第二部分中,我们将使用针对新型勒索软件Ransom.ShiOne的变体具体来分析并强调尝试解密文件时所需要密切关注的加密方式的一些主要弱点。

什么是加密?

简而言之,加密是一种以实现只允许授权访问而禁止无授权访问的信息编码过程。在计算机领域,加密是将数据从可读格式(明文)转换为编码格式(密文)的方式方法,只有当实体有权访问解密密钥时才能被其解码。过去加密长期在军事领域被用于秘密通信,现在它被常用于数据的加密传输和存储,以及认证、身份校验等。很不幸的是,加密也被用于类似勒索软件的恶意目的。

评估加密

如果恶意程序分析师想要有效的分析评估一个恶意程序的加密方式,就需要观察到在设备上创建或接收加密数据的加密过程。如果你有权访问恶意程序在执行加密过程前所运行的任何进程,那么通常会有足够的数据解密或简单地查看本地解密的数据。

作为加密过程的观测者是不用破解加密就可以恢复文件的唯一方法。但是对于勒索软件的攻击,成为观测者通常是不可能的。恶意程序运行完毕并发送加密密钥后,就已为时已晚。当恶意程序关闭时,你就不能再成为观测者。现在你必须依靠分析,并希望加密过程存在缺陷。

成为解密和加密的观测者究竟意味着什么?有人曾问我:

“为什么恶意程序的作者不总为恶意程序与C2服务器的通信进行加密呢?“

我的回答是因为恶意程序是公开的,它可以运行在任意世界各地受害者的系统中。作为一个逆向工程师,我们常常有机会访问到恶意程序样本二进制文件并可以在底层进行软件调试和检查。基于这种情况加密通信显得毫无意义,因为我们总能在数据传输加密前和解密后查看到。

在客户端 (受害者计算机) 上接收到的 SSL 或HTTPS通信将在内存中解密成可被处理的数据, 以任何恶意软件想要的方式。此时我们就能够检查内存并将解密的通信数据以其原始形式进行提取, 因此当服务器把加密后的数据下发到正在被逆向分析的恶意软件时, 它确实不会起到任何内容隐藏的作用。

这种逻辑同样适用于勒索软件和文件加密中等许多案例。如果我们正在分析一个在本地生成加密密钥的勒索软件,我们就可以在恶意软件创建后立即从内存中发掘到密钥,并将其保存下来,并使用内存中的密钥在勒索软件执行后解密文件,并能够确定其用于加密的算法。

如果在勒索软件运行和加密文件的过程中用户转储其内存,那么是有机会成为观测者,或者有可能恢复被加密的文件。但不幸的是这不是一种典型情况,作为恶意软件受害者的第一本能并不是在继续允许进程运行的同时创建内存转储。但是对于一个理论上的方法,技术上确实是可以奏效的。

勒索软件算法

近年来,我们遇到了各种勒索软件的加密算法,它们被用于将受害者的文件加密作为勒索对象。其中最常见的算法涉及标准、公开和经过验证的不对称加密算法。但偶尔也会看到使用自定义加密方式(可能会较弱)或者更简单的混淆方式来挟持受害者文件作为绑架对象。

多年前我遇到勒索恶意软件时它通常还只会使用一些简单替代法将受害者计算机作为勒索赎金的对象,而不是加密驱动器上的所有文件。我已经经历了勒索软件发展的种种,从文件隐藏、自定义加密到主引导记录(MBR)重写。

1.文件混淆

在文件混淆的情况下,勒索软件只会移动或隐藏目标文件,即文档和任何它认为受害者会关心的文件,并要求支付赎金后为其恢复文件。在这种情况下,文件恢复是轻而易举的。你可以简单地逆向执行文件隐藏的代码, 就能够逆向它所采取的加密操作。

以下是一个示例:一个虚假的弹出窗口声称你的硬盘驱动器已损坏,并要求你致电并支付“协助服务”以恢复文件。在我分析的这种特定恶意软件上,它显示了一个弹出窗口(如下所示),并将所有文档和桌面文件简单地移动到隐藏位置的新文件夹中。解决这个问题的方法就是查看代码以便查看哪些文件被移至哪个位置。

2.自定义加密

在处理自定义加密时,勒索软件通常是将需要加密的文件以某种标准的修改文件的方式进行编码或加密。举一个简单的例子就是对文件的每个字节通过一个常量或循环字节集进行异或运算。在这些情况下,几乎可以将算法本身视作解密的关键。如果能够逆向该算法,就可以准确地分析出它是如何修改或对文件进行加密处理的。那么通过简单地逆向步骤就可以还原原始文件。相比之下当面对非对称加密算法加密时,算法本身不会为解密文件提供足够的信息。

3.MBR重写

在第三种情况,MBR可能会遭到被一个需要输入密码或序列号才能访问的小程序所覆盖重写。恶意程序会强制重启计算机,在系统加载Windows之前,它会首先提示用户如何通过支付赎金来接收密码。在这种情况下,逆向启动引导记录中的密码或序列号的验证算法(实质上就是创建一个注册机),可以为你提供哪些密码将是允许通过验证进行访问的。另外,使用出厂引导记录重写硬盘上被恶意程序修改的那部分也可以解除计算机的锁定。

除了逆向加密算法之外,唯一的难点就是需要知道如何重写MBR以便将原始代码恢复到驱动器的这部分中。

以下是一个MBR密码锁程序的示例。请注意到该程序并没有向你询问任何ID,这意味着该加密程序可能没有什么独特的加密方式,而可能只是需要一个固定的解锁密码。

以上三种替代方法并没有在标准意义上使用到了加密技术,但我在这里提到它们是因为它们表明自定义编码、闭源混淆有时也可能造成破坏。大多数勒索程序犯罪分子使用标准化、公开的开源加密算法来加密文件进行勒索是因为算法本身是经过测试并可靠安全。这意味着你可以了解到有关加密算法的每一个细节,但这其实并不重要,除了得到密钥之外, 你无法采取任何方法解密被加密的文件。

为什么了解这很重要?使用这种标准化、开源代码的加密方式是建立在加密密钥关系之上。所使用的算法简单推导出两个相关的独立密钥。这个概念被称为非对称加密,它也是目前绝大多数勒索软件作者使用的加密算法。

非对称密码学基础

非对称加密关联生成了两个完全不同但又密切相关的密钥。一个密钥(公钥)用于将数据加密为密文,而与之配对的密钥(私钥)用于将密文解密为原始明文。这种加密方式被称为不对称是因为公钥虽然用于加密但不能用于解密,而解密需要私钥来完成

在使用非对称密码技术的加密通信中,公钥和私钥在本地生成。公共密钥可供整个任何人查看。如果有人想发送一个只允许Bob阅读的消息,那么他们会使用Bob的公钥来加密该消息。因为他的公钥并不能用于解密该消息,所以它是完全安全的。Bob通过使用他的离线私钥,将能够解密该消息并查看消息明文。

以下几张图片可以帮助你理解非对称加密的原理。

 

这就与勒索软件作者用于文件加密的方法类似。加密过程的基本运行原理如下:

首先会生成一个随机数组。这组字节将在第一轮文件加密之前使用。通常情况是使用该随机数执行一系列数学运算初始化生成公钥,实际上则是创建了从初始密钥派生出的子密钥。这个子密钥将用于实际的文件数据加密。在加密过程的第一阶段期,第二组随机数组将会生成,该组随机数组将被用作初始化向量(IV)。接下来的每个阶段都将使用前一阶段的输出作为新的IV。

随机数首先被用作IV,然后将生成的密文用于下一轮加密。

密钥的生成本身也依赖于一个随机数生成算法。所以可以想象, 一个可靠的并且 "尽可能随机" 生成算法是非常重要的。

 

勒索软件文件加密

现代勒索软件通常会做以下几件事情:它可以在本地动态生成密钥,将它们发送到C2服务器,并附带客户端ID,或者密钥由软件作者生成并预先加载到勒索软件本身中。

后者虽然可以说更安全,但要为每个受害者生成一个全新的二进制文件需要花费更多的开销,或者至少在软件每个活动版本中使用相同的密钥进行分发。这里的权衡是,虽然密钥的生成不能直接观测和被安全分析人员发现相关弱点,但多个受害者实际上将具有相同的加密密钥。因此,如果一个人支付赎金并分享他的密钥,那么受该活动版本影响的其他人都可以免费解密他们的文件。这是通过钥匙泄漏的产生的弱点。

但是如果密钥是动态生成的,那么它就存在使用内存dump进行文件恢复的潜在可能,也存在分析人员通过加密过程找到漏洞的细微可能。(恶意软件作者通常不在意预防内存dump,因为正如我们前面所说的,很少有用户知道他们应该何时创建内存dump)。然而这种本地密钥生成方法的好处是恶意软件是完全动态的,没有人会共享相同的密钥。两种方法都有其弱点和长处。

流行的勒索软件作者通常使用AES、RSA、Blowfish等标准化加密方式,尽量使得受害者在作者不提供解密密钥的情况下的无法恢复原始文件。我说“尽量”的原因是因为在很多情况下这些好的算法会被滥用(如允许相同的密钥生成两次)。另外,密钥的传输和生成可以会被拦截。

非对称密码加密几乎不可能破解,但这并不意味着它不能被破解。为了了解如何处理这一问题,请收看我们的下一篇博客,我们将使用ShiOne勒索软件来演示恶意程序分析人员如何分析查找加密算法的弱点。


本文来自: 蜗蜗侠's Blog-关注网络安全 http://blog.icxun.cn/Information/673.html

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 关于防范NSA“永恒之蓝”勒索软件病毒攻击【紧急通知】

    关于防范NSA“永恒之蓝”勒索软件病毒攻击【紧急通知】

    2017-05-13 15:13

  • 【紧急通知】关于NSA“永恒之蓝”勒索软件病毒攻击

    【紧急通知】关于NSA“永恒之蓝”勒索软件病毒攻击

    2017-05-13 15:10

网友点评
暂时未开启评论功能~