基于用户数据改变检测并阻止勒索软件

作者:{Persist}@ArkTeam

原文作者:Nolen Scaife, Henry Carter, Patrick Traynor, Kevin R.B. Butler

原文题目:CryptoLock (and Drop It):Stopping Ransomware Attacks on User Data

原文来源:2016 IEEE 36th International Conference on Distributed Computing Systems

加密勒索软件(又名加密勒索软件)试图通过将其文件作为人质来勒索用户。这种勒索软件不同于其他类型的恶意软件,因为它的影响只能通过远程攻击者持有的加密密钥来逆转。用户只能通过使用匿名支付机制(例如比特币)才能重新获得他们的文件。这类恶意软件已经存在了十多年,其日益广泛的使用现在每年造成数千万美元的消费者损失。越来越多的执法机构也成为勒索软件的受害者,失去了宝贵的案件档案。


图1 勒索软件TeslaCrypt

防御勒索软件主要难点有三个,首先这种恶意软件容易上手,导致攻击者成本很小;其次通过行为难以区分是否为恶意软件,最主要的是主要面向小白用户(从不会数据备份)。

主要有三类勒索软件:

  1. A类:重写文件内容,打开文件、读内容、加密、替换信息、关闭文件。
  2. B类:继承A,把文件移出,干完活再移进来。
  3. C类:打开文件,读文件,加密成一个新的文件,删除原来的文件。(独立的读写流)

本文实现了第一个基于用户数据变化的检测系统,目的不是一个文件都不损失,而是损失一部分来发现恶意行为,终止行为,是基于Windows平台的。

本文提出了三个用来检测勒索软件的标识:

  1. 文件类型改变
  2. 文件相似性:加密前后的文件差异很大,使用相似性保留函数sdhash来给相似性打分,0-100分,0表示一点都不一样,100表示完全一样
  3. 信息熵:加密或压缩后的文件熵值很高

CroptoDrop维护了一个进程的”信誉”分数板,当一个进程触发某个标识符的时候就给它加分,一旦达到某个可疑的阈值,挂起进程,请求用户的权限再进行操作。

通过实验发现没有合法进程会触发三个指标,打分机制使该工具能够保持在得分阈值低的情况下不会引起显着的误报,研究表明单一指标检测机制的情况下有很高的几率会产生误报,三个指标的情况下就低得多。CryptoDrop的可靠性由ransomware的典型行为加强,这种行为经常触发所有三个主要指标

本文利用了一个使用用允许介入进程和文件系统之间的调用的驱动程序的Windows内核。这样的方法使该工具不仅可以检测何时文件被更改,也是为了防止机制被恶意软件修改。这种方法也防止了干扰磁盘加密系统(例如BitLocker),它们在文件系统和磁盘之间进行操作。

熵测量:Ransomware经常写付款指示。这些小的低熵写入过度影响熵的平均值。所以加了一个权重,这个权重确保了低熵和小的读/写操作不会过度的影响平均值。

当受保护的文件被读取或写入时,计算出执行操作过程中该操作涉及的字节的熵更新读写操作的加权平均数。然后计算读写差值,差值超过0.1,说明行为可疑。

这种测量是无状态的,每次超过阈值的读写原子操作都会发生。尽管阈值相比熵值很小,但是它提供了一种检测小的熵值增加的压缩文件操作的解决方法。


图2 CroptoDrop的结构


图3 信息熵计算公式

发表评论

电子邮件地址不会被公开。 必填项已用*标注