搜索
查看: 5712|回复: 58
收起左侧

[分享] ESET勒索防御测试

  [复制链接]
B100D1E55
发表于 2021-7-17 14:33:00 | 显示全部楼层 |阅读模式
本帖最后由 B100D1E55 于 2021-7-18 03:32 编辑

说到ESET勒索防御貌似论坛大部分人的评价都是“凉凉”或者“存在感很低”,真的是这么回事吗?

测试ESET勒索防御的正确方法

先说结论:测试ESET勒索防御非常玄学。。其实这篇的测试我很早就想做了,但是由于各种原因拖了很久很久,原因之一是我似乎无法让ESET的勒索护盾成功运作起来……自制样本无论行为多明显勒索护盾都跟没事人一样傻站着,以至于到后期我开始猜测ESET勒索防御是不是只查杀特定家族的样本,通过周边行为(例如删除卷影、添加自启动等)进行识别。直到我看到这句话……



提取重点:如果应用程序的行为是恶意的,或者程序的信誉比较可疑,则程序会被终止

也就是说想要让勒索护盾工作需要有两个可能性:1)程序属于知名勒索家族(Cerber,Locky,……) 2)程序有潜在风险并有可疑行为

对于前者,如果侦测到具体家族行为就算不联网似乎也能查杀(一两年前测试中遇到过),对于后者则需要有两(三)个条件:1)LiveGrid必须连接以查询程序信誉 2)程序必须在LiveGrid上有信誉记录,如果是未知则不会触发勒索护盾防御……一贯的压误报狂魔的作风 3)见文末更新部分

除此之外,当初官方还建议不要关闭实时监控,因为关闭实时监控会遗漏一些可疑文件操作。但是不关闭实时监控就没法测试已知样本了。因此官方推荐这样设置:



仅保留文件写入监控。先让待测样本落地,然后再打开实时监控。个人认为扫描引擎可能会检测一些特定文件并触发勒索护盾(比如勒索信),因此需要文件写入监控的合作。

测试扫描

为了实现测试条件全程可控,肯定是得使用自制样本来测试。这里使用开源的ransomware hidden tear来测试。使用开源ransom的好处是肯定已经被厂商入库,做检出测试的时候就可以进行各种有趣的修改。选这个项目的另一个理由是因为代码实在是太简单了,越简单越好做特征定位。



ESET在自己技术介绍里提到过DNA检测是通过程序行为的组合来进行识别,这里先看原始的勒索代码到底是什么结构:

原始代码主要可以分成这几块:

密码生成:使用随机数生成器生成随机密码(关键行为特征:Random())
信息获取:获取本机识别特征以便于区别不同受害者的密码(关键行为特征:System.Environment.*)
密码传输:将生成的随机密码发送到目标服务器(关键行为特征:System.Net.WebClient().DownloadString())
文件遍历/操作代码:遍历待加密文件夹的所有文件(关键行为特征Directory.GetFiles(),File.WriteAllBytes(),System.IO.File.Move())
加密代码:调用RijndaelManaged的AES模块对byte array进行加密并返回结果(关键行为特征:MemoryStream(),CryptoStream(),RijndaelManaged())
勒索信代码:释放勒索信到桌面(关键行为特征:System.IO.File.WriteAllLines())

除此之外还有一些其他特征比如字符串和行为特征的参数,字符串可以提取特征的有:勒索信的内容,勒索信的文件名,加密文件的后缀名等等……

可以看到这是一个十分简陋的勒索程序,缺少很多常见勒索程序的行为(改壁纸、添加自启动、删除卷影……)。但正是因为它行为少,刚好可以测试勒索护盾是否能防御这种简易勒索程序

初始编译报毒为Y家族:



现在我们来模拟免杀的流程,改变代码的特征组成,看看ESET有什么反应。这里直接通过去除相关代码来测试,程序行为肯定是废了。

累加去除
以下的去除是累加的,也就是2在1的基础上进一步去除,以此类推

1. 去除密码传输:报毒名不变
2. 去除后缀名列表:报毒名不变
3. 去除文件写入和重命名:家族名变更为AK



4. 去除勒索信:报毒名不变
5. 去除加密代码:停止报毒。此时整个程序已经几乎什么都不剩了

选择性去除:
1. 去除加密和文件操作:家族名变更为IX



2. 去除后缀名和文件操作:家族名变更为AK



3. 去除后缀名和加密:家族名变成AJ



进阶测试:

来试试看污染API的组成成分,这里比起之前去掉关键特征代码,选择加入无意义的API。本质上程序行为不受改变,但是行为组成改变了。ESET会不会扑街呢?

1. 加入无意义的注册表读写,比如下图的垃圾代码


家族名变为OE


2. 再加料,enum一下打印设备



都被说FU了我就不继续测了吧(逃

总结

代码去除测试的意义在于它改变了恶意程序的行为组成,可以模拟免杀不同代码段后可能发生的情况(当然这里没考虑程序结构的改变,比如xxx的比重之类的,这点静态引擎就不一样了)。免杀了后缀名和文件操作,就被AK家族检测,免杀了后缀名和加密操作就被AJ组合特征检测。之所以各种(模拟)免杀各种失败,主要可能性是我在走前人走过的道路……hidden tear发布以来就有各种各样的衍生威胁,一张图说明一切


hidden tear和它衍生出来的恶意程序家族

我觉得原作者肯定是后悔放出这个代码了,本来是给大家学习用的没想到想偷懒的坏蛋这么多。不过简单的免杀之路都被堵死了,民用杀软的任务也完成了(改源码已经算深层,加常见混淆、壳之类的更别说了,那种分分秒被查杀)

源码层面上免杀ESET真的好累!侧面说明了这个扫描引擎还不错,特征提取得准,无用特征用少,特征组合又多,不轻易受到无用特征噪声的影响。

测试行为防御

先看看原始能够被扫描引擎检出的样本,关闭实时监控



信誉不良……文件落地之后打开监控运行



勒索护盾出现,点拒绝恶意程序被查杀,看了一下documents大部分没有被加密



检出变为勒索防御特有报法

OK,勒索防御工作了,现在进行源码免杀。
具体流程不多说,本人c#能力有限,搞一个没有bug的免杀花了一个多小时。大概免杀了4个特征块,其中最难的是加密路径,最初非常天真地以为改个加密算法(比如AES改3DES)可以绕过AES特征,没想到照杀不误。最后只好动用了一些其他方法,所以多花了不少时间。





总之免杀完的结果是这样

这时候需要让文件从无信誉变成有信誉,我这里作弊了,直接上传到他们云上

大概过了2分钟,云端判黑



查了一下,云端鉴定威胁指数是100分……本地免杀了这么久2分钟就被干掉了,再次体现大招藏云端的好处。

几乎是同一时刻测试的虚拟机里同样的样本信誉从“未知”变成了“差”,运行样本


再拷贝一次样本:



已经LiveGrid拉黑……

这里略过了很多烦人的细节。这个测试只能说明ESET的勒索防御确确实实是存在的,并不能说明它就非常强悍,因为故事的最后我成功连云端一起免杀了(分数拉到了37,没套壳)。说明他们算法还是有局限性的

ESET多层防御不是这种层层递进的(就是层1过了层2可以检测,层2过了层3可以检测……)



而是这样……


这里我DBI/RS还画太大了一点。他们真的很靠扫描……


总结

以上仅为一个样本及其衍生产品的测试,并不能说明ESET一定强/弱。这个程序过于简单不足以反映真实世界的ransomware,所以可提取特征不多,免杀方向性过于明确,程序动作过于简单,也不可能模拟大规模爆发时候的情况,因此结果仅供娱乐参考。

更新

下了一个Paradise Ransom的样本(2年前),扫描杀,关了扫描AMS杀,关了AMS勒索护盾却不杀(LiveGrid显示“危”)

ESET勒索护盾设计真的很玄学,上面提到的Paradise样本勒索护盾不杀,本以为故事就这样结束了。但我突发奇想,稍微改一下文件,结果勒索护盾就杀了估计他们勒索护盾的检测和文件新旧也有关系,时间久了入库了勒索护盾就不检测了,毕竟常见情况下前置层已经可以查杀威胁。太贼了我去……也就是说勒索护盾只防御新的信誉不良的威胁,感觉对误报控制有帮助

所以测勒索护盾真的如官方所说,不是关了前置层测试就能得出结论的,里面有很多细节需要注意

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 32原创 +1 分享 +3 魅力 +1 人气 +93 收起 理由
huorong + 1 赞一个!
wangkaka + 3 很给力!
HEMM + 3 看不懂,但我大受震撼,话说为什么都叫你B.
badanwfs + 3 很给力!
QVM360 + 2 版区有你更精彩: )

查看全部评分

B100D1E55
 楼主| 发表于 2021-7-18 10:31:13 | 显示全部楼层
本帖最后由 B100D1E55 于 2021-7-19 07:26 编辑

勒索防御测试附录:

既然知道了正确的测试姿势,这里略微测试一下以往的勒索程序看看ESET的勒索护盾是否起作用
【新提醒】Ransomware 1X_病毒样本 分享&分析区_安全区 卡饭论坛 - 互助分享 - 大气谦和! (kafan.cn)



检测为A5家族,文件未加密

Ransom.wannacry (2021-06-30)_病毒样本 分享&分析区_安全区 卡饭论坛 - 互助分享 - 大气谦和! (kafan.cn)



检测为A5家族,壁纸被篡改,文件未加密

Ransomware 1X(Hakbit/yourdata家族,后缀为hauhitec)_病毒样本 分享&分析区_安全区 卡饭论坛 - 互助分享 - 大气谦和! (kafan.cn)



检测为B3家族,文件未加密

Ransom.sodinokibi (2021-06-23)_病毒样本 分享&分析区_安全区 卡饭论坛 - 互助分享 - 大气谦和! (kafan.cn)



检测为A5家族,部分文件被加密

Ransom.Lock (2021-06-23)_病毒样本 分享&分析区_安全区 卡饭论坛 - 互助分享 - 大气谦和! (kafan.cn)



检测为A3家族,壁纸被修改,文件未加密

Ransom.teslacrypt (2021-06-24)_病毒样本 分享&分析区_安全区 卡饭论坛 - 互助分享 - 大气谦和! (kafan.cn)

进程持续挂起,没细看究竟是什么问题

Ransom.arrow (2021-05-20)_病毒样本 分享&分析区_安全区 卡饭论坛 - 互助分享 - 大气谦和! (kafan.cn)

关闭实时监控和AMS仍旧会在内存内检出Crysis家族后kill

Ransom.avaddon (2021-05-21)_病毒样本 分享&分析区_安全区 卡饭论坛 - 互助分享 - 大气谦和! (kafan.cn)

必须要关闭实时监控和AMS否则会被kill,关闭后文件被加密。
因为这个程序是个kryptik,这里猜测是因为落地文件的LiveGrid记录很旧,于是勒索护盾躺平

Ransom.Nitro (2021-05-24)_病毒样本 分享&分析区_安全区 卡饭论坛 - 互助分享 - 大气谦和! (kafan.cn)

必须要关闭实时监控和AMS否则会被kill,关闭后文件被加密。

因为这个程序是个kryptik,这里猜测是因为落地文件的LiveGrid记录很旧,于是勒索护盾躺平

Ransom (2021-05-22)_病毒样本 分享&分析区_安全区 卡饭论坛 - 互助分享 - 大气谦和! (kafan.cn)



检出为A5家族

Ransom.tohnichi (2021-06-16)_病毒样本 分享&分析区_安全区 卡饭论坛 - 互助分享 - 大气谦和! (kafan.cn)



检出为A3家族,部分文件被加密(需要关闭实时防御和AMS)

Ransom.mansory (2021-06-17)_病毒样本 分享&分析区_安全区 卡饭论坛 - 互助分享 - 大气谦和! (kafan.cn)



检出为A5家族,没有文件加密
Ransom.chaos (2021-07-18)_病毒样本 分享&分析区_安全区 卡饭论坛 - 互助分享 - 大气谦和! (kafan.cn)



得把payload提取出来再修改再关闭实时监控才能绕过前置层被勒索防护查杀,A5家族


经典再现
Locky_病毒样本 分享&分析区_安全区 卡饭论坛 - 互助分享 - 大气谦和! (kafan.cn)



报C1家族

Cerber(17.10.09)_病毒样本 分享&分析区_安全区 卡饭论坛 - 互助分享 - 大气谦和! (kafan.cn)



报C1家族



测不动了,先这样吧


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 3经验 +40 分享 +3 人气 +7 收起 理由
屁颠屁颠 + 40 + 3 + 3 版区有你更精彩: )
aboringman + 1
Virus4 + 3 看来还是有点作用的233

查看全部评分

aboringman
发表于 2021-7-17 14:41:58 | 显示全部楼层
本帖最后由 aboringman 于 2021-7-17 15:17 编辑

第一蹲点,搬椅子过来学习。

用ESET,最好还是不要双击。献丑
InnoriaAlter
发表于 2021-7-17 14:46:47 | 显示全部楼层
本帖最后由 InnoriaAlter 于 2021-7-17 15:10 编辑

啊 好东西~~先插眼

话说试一下自制勒索的或者java系等等小众的勒索看看?

屁颠屁颠
发表于 2021-7-17 14:59:15 | 显示全部楼层
追加 原创先锋、杰出卡饭、一级技术 勋章
anthonyqian
发表于 2021-7-17 15:10:23 | 显示全部楼层
最尴尬的是ESET的ransomware shield工作的前提条件是LiveGrid判黑,而LiveGrid判黑后就用不到ransomware shield了,直接云杀了。
BitterLotus
发表于 2021-7-17 15:15:17 | 显示全部楼层
希望能测下G Data和BD
aboringman
发表于 2021-7-17 15:15:17 | 显示全部楼层
本帖最后由 aboringman 于 2021-7-17 15:31 编辑
anthonyqian 发表于 2021-7-17 15:10
最尴尬的是ESET的ransomware shield工作的前提条件是LiveGrid判黑,而LiveGrid判黑后就用不到ransomware sh ...

  1. 没人可以完全防范网络犯罪。
复制代码


看到了诺顿官网上这句无奈又很真实的话,还是很有感触的。
wenny
发表于 2021-7-17 15:28:37 | 显示全部楼层
对比几个看看
B100D1E55
 楼主| 发表于 2021-7-17 15:43:32 | 显示全部楼层
anthonyqian 发表于 2021-7-17 15:10
最尴尬的是ESET的ransomware shield工作的前提条件是LiveGrid判黑,而LiveGrid判黑后就用不到ransomware sh ...

我个人感觉这是一种策略……

本地写ransom通常断网测客户端,但是断网测肯定勒索防御不干活,实际散播出去会不会杀是未知数。想知道是否真的成功免杀只能上LiveGrid,上了就已经把样本交出来了
B100D1E55
 楼主| 发表于 2021-7-17 15:46:24 | 显示全部楼层
InnoriaAlter 发表于 2021-7-17 14:46
啊 好东西~~先插眼

话说试一下自制勒索的或者java系等等小众的勒索看看?

自己亲手养肥的很大概率不杀
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 湘ICP备2021004765号-1 ) GMT+8, 2021-8-1 08:15 , Processed in 0.139428 second(s), 21 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表