勒索病毒工作原理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qmickecs/article/details/72617795

序言


前些天借着Windows上的”永恒之蓝“漏洞,本来几乎快销声匿迹的加密勒索病毒又重新回到了公众视线里。由于电信等网络运营商早就封堵了可能导致中毒的445端口,所以外网影响不大,但是教育网里的同学就遭殃了,尤其是很多临毕业的学生纷纷中招,论文被加密,可能因此被迫延毕。

本文尝试着还原这些勒索病毒中文件加解密的原理,来了解为什么这些病毒这么难缠,并给出一些“破解”的可能性,虽然条件都比较苛刻。

原理


这类病毒都利用了公钥加密来加密文件。关于公钥加密原理和实现可以看本博客的其它相关文章,这里不再赘述。

有的病毒使用RSA加密(比如本次爆发的WannaCry病毒),有的使用椭圆曲线加密(比如CTB Locker),以下简称ECC。本文主要讲解使用椭圆曲线加密的方式。

ECC的优势在于,相比RSA加密,达到同样强度的密钥要短得多,要达到128位AES的加密强度,RSA密钥长度需要3072位,而ECC只需要256位。对于病毒来说,体积越小越隐蔽越容易传播,公钥自然是越短越好了。

但是相应的RSA实现更加简单,更加易用。

DH(Diffie–Hellman密钥交换)


DH(Diffie–Hellman key exchange)通常用于通信中双方协商密钥。利用公钥系统的特性,双方只需要向对方公布自己的公钥,即可得到同一个只有双方知道的共享密钥。

假设小红跟小明进行一次DH,具体流程是:
小红生成私钥 x 和公钥 gx
小红公布公钥 (g,gx)
小明生成私钥 y 和公钥 gy
小明公布公钥 (g,gy)
小红计算共享密钥 s=(gy)x=gxy
小明计算共享密钥 s=(gx)y=gxy

至此,流程结束,双方都得到了相同的共享密钥 s

需要注意上面的计算用到的并不是我们平常使用的实数域上的指数运算,如果是实数域上的指数运算,我们可以很方便地对公钥取对数,从而得到私钥。它们是在有限域内进行的,所以不能通过简单地对公钥求对数来得到私钥,这也是所谓的公钥系统中的离散对数难题,DH的安全性即由此保证。

而ECDH(Elliptic Curve Diffie–Hellman key exchange)则是基于椭圆曲线离散对数问题。

扫描二维码关注公众号,回复: 3186627 查看本文章

CTB Locker病毒中ECDH应用


首先,病毒作者自己生成一对椭圆曲线密钥对,分别称为主公钥(master public)和主私钥(master private),然后把主公钥写到病毒中,主私钥保存在作者自己的电脑上。

病毒运行时,搜索硬盘中特定后缀名的文件(比如doc、xls、pdf等),每找到一个文件

  1. 首先采集文件创建时间、系统环境等信息,借助这些信息生成一个会话私钥(session private),然后根据会话私钥生成会话公钥(session public)。
  2. 使用会话私钥和主公钥,进行ECDH得到共享密钥(shared secret)
  3. 对共享密钥计算SHA-256摘要,得到AES密钥
  4. 使用AES密钥对文件进行加密并写回硬盘,同时向加密后的文件写入会话公钥
  5. 最后删掉原文件

可以看到,硬盘上最后保存的只有病毒自带的主公钥,每一个文件的会话公钥,以及被加密的文件内容。想要解密,唯一的办法就是使用文件的会话公钥和病毒作者的主私钥进行ECDH,得到共享密钥。

破解方法


想直接解密文件内容基本不可能。

病毒使用的加密方案都是目前成熟的解决方案,只要实现没有明显漏洞,就不可能被破解,实际上常见的勒索病毒(CTB Locker,WannaCry等)目前都没有被破解。

但是要找回文件可以从两个方面入手:

  1. 病毒删除文件后往往没有对原文件进行覆盖操作,使用数据恢复软件或者找专门的数据恢复机构有一定几率能找回原文件。目前很多宣称能找回WannaCry病毒加密文件的工具都是这种方式。
  2. 在Windows XP SP2及以下版本的系统中,随机数产生器存在漏洞,在产生随机数后随机数会被保留在内存中,于是可以通过读取内存的方式将里面的随机数读出来,从而获得会话私钥,解密文件。这个方法只对使用系统随机生产生器的病毒有效,而且对系统版本有要求,中毒后机器也不能重启过。

参考文献


OpenSSL: Elliptic Curve Cryptography
CTB-Locker encryption/decryption scheme in details
Integrated Encryption Scheme

猜你喜欢

转载自blog.csdn.net/qmickecs/article/details/72617795