楼主: B100D1E55
收起左侧

[讨论] 沙箱针对性逃逸对策

  [复制链接]
aboringman
发表于 2018-6-12 21:29:49 | 显示全部楼层
Dr.Web确实只靠特征匹配,不过确实能抗。

只是没有启发【或者说没有发力】,没有云,纯靠入库真的很难保证安全。。。。。。
B100D1E55
 楼主| 发表于 2018-6-13 11:09:35 | 显示全部楼层
本帖最后由 B100D1E55 于 2018-6-13 20:38 编辑

编辑掉
B100D1E55
 楼主| 发表于 2018-6-13 11:10:22 | 显示全部楼层
本帖最后由 B100D1E55 于 2018-6-13 20:38 编辑

编辑掉
B100D1E55
 楼主| 发表于 2018-6-13 11:11:21 | 显示全部楼层
本帖最后由 B100D1E55 于 2018-6-13 20:37 编辑

编辑掉
B100D1E55
 楼主| 发表于 2018-6-13 11:14:38 | 显示全部楼层
本帖最后由 B100D1E55 于 2018-6-13 11:21 编辑

编辑掉
B100D1E55
 楼主| 发表于 2018-6-13 11:15:20 | 显示全部楼层
本帖最后由 B100D1E55 于 2018-6-16 08:13 编辑

结果补充(6月12日更新)——之所以不直接编辑原帖是因为防止二次被吞……

首先是一个坏消息:和vmray估计谈崩了,所以应该拿不到试用资格

然后是一个好消息,也就是本楼更新的内容,我想感兴趣的同学应该会觉得有意思

还记得主楼那个只有Cylance检出的样本么(xor+线性变换+用户名判断),它是一个标准的条件炸弹,只会在我的其中一个虚拟机引爆。上传vt除了Cylance的误报外没有任何厂家检出,六小时后增加了crowdstrike,而今天,也就是24小时候我看到了更新的结果:



可以看到新增了安博士、ESET、Dr.Web的检出。其中安博士报的是明确的毒名,而Dr.Web也是,很有可能他们的样本收集端检查了多条执行路径,发现了隐藏暗门。而ESET的云端也非常可能又这种能力,不过它选择则将毒入库为混淆器,而且是自动机生成的混淆器特征。顺带一提,ESET基本不从VT拉黑样本,我估计它是在我编译的时候后台LiveGrid自动上报的(不过我没有在那台机器上引爆样本,所以他们应该是自己云端自动跑出了行为)



在漫长的无检出窘况以ESET等的入库为代表结束之后,1个小时后立马增加了McAfee、TrendMicro。你们觉得他们是靠自己本事检测出来的呢?还是靠偷其他厂商结果检测出来的呢?呵呵

报毒原理分析:
现在拥有了一手的源码,可以研究一下ESET对于一些基本免杀手段的抗性如何:

在这里我不想贴出源码,不过我大致描述一下我程序的流程:
1.注册窗口控件
2.检测用户名
3.if条件判断是否执行解密路径
4.释放真的恶意文件并执行
5.额外的一些窗口控件函数

首先,我试着插入counter loop,loop数量为1000000000000000(再往上到long long int上限也就没意思了)。尝试了各种地方都不管用。也就是说如果被ESET入库的话counter loop绝对是想绕就能绕。也可能不是执行绕过,而是直接观测了syscall
然后我试着在counter loop中加入各种混淆的syscall,也不管用。也就是说如果被扫描引擎盯上了,这些雕虫小技基本歇菜了。

接下来我逐步把代码comment掉,看comment到哪个程度开始不报毒。首先我把整个恶意代码payload给屏蔽掉一部分,仍旧报毒,说明Kryptik系列的确仅仅是启发初期混淆行为,而不管你到底后来到底干了什么坏事还是好事
把条件判断换掉,依旧报毒,说明他们的扫描引擎某种程度上能无视条件判断,把不同分支内的syscall给展开
屏蔽掉文件写入,不报毒了。到这里我这个混淆器已经废了
调换部分行为顺序,依旧报毒,看来对行为顺序调换有一定抗性
去掉窗口空间里面的一条messagebox(本来是在error handling路径里),不报毒了。
编译器参数各种更换,报毒依旧。

经过各种折腾我基本归纳出这条新入库混淆器特征看的东西:
首先它不提取静态字符串特征,我试着替换不同行为对应的字符串参数都没用
其次,它主要看展开后的系统API行为,例如这个样本它盯着这几个要素看,满足所有的就报毒:
1. 要注册窗口控件
2. 注册窗口失败后要弹出一个提示框
3. 需要有打开和关闭文件输出流的行为
4. 需要有额外几个窗口控件的相关函数

从这里看到业界标杆扫描引擎的能力和局限:
就抗混淆能力而言,这个引擎能无视常见超时大法,无视行为顺序交换,无视额外混淆的行为等等,基本上可以只盯着这些行为特征看,满足了就报毒。而当我把程序大部分改动过不报毒后已经破坏了原始功能,可以说就算是自动机特征,抓的关键行为也非常准确了(虽然有少许辅助判断函数改了后对功能影响不大且不报毒,但程序规模变大之后就不好定位了)

就精度而言,这个自动机提取的特征算比较独特(满足上述所有特征的普通用户接触到的程序很难想象会存在)。其实特征提取的奥义就在于要提取尽量和正常程序不像的特征(特异性强),但要尽可能多覆盖同家族恶意程序(广谱性强)并抓住恶意行为重点。注意,我这里观测到的五个条件还是很有限,估计还有引入其他meta特征,但是我就不折腾了。特异性和广谱性本质上其实相互违背,这里平衡点在哪里就要看厂家调教的能力

其实上述所有免杀的尝试都指向了同一个结果:能抗超时等等不是因为针对性跳过了counter loop,而是根本无视了它。这里联系到我之前和ccboxes同学谈到的temporal和spatial查毒的两种方法(这纯粹是我个人土论),我想懂的人已经知道是怎么回事了总体来说ESET检测手段真是以不变应万变,既偷懒又厉害


ESET白皮书中DNA特征的示意图,和我测试的情况基本相符

但是,在理解了这条特征报毒原理后,我是否可以刻意构造一个程序,它什么坏事都不做,但是会被这条特征报毒呢?我试了一下,可以!

这说明理论的瓶颈就摆在那里,完全精确的判毒是不存在的,各家厂商都只能用各种手段逼近这个理论极限,而ESET显然是对样本挖的比较深的厂商之一。从行为特征入手产生误报的几率比表层要小不少,当然这也需要建立在拥有海量白特征的基础上。
一个引擎完全做到抗手工免杀是不可能的,但好的引擎抗水平一般的自动免杀是可能的。当程序规模变大之后,这些特征将更复杂,报毒依据更繁多,只要逼着黑客手工免杀,就能避免恶性毒大规模传播。好的杀软虽然不能完全抹除恶意程序的存在,但可以大幅提高批量生产恶意程序的成本,这么来看,杀软厂商的“擦屁股”虽然是不可避免的,但也还是有意义的
后续衍生作品参见:https://bbs.kafan.cn/thread-2125195-1-1.html


本帖子中包含更多资源

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

x

评分

参与人数 6人气 +6 收起 理由
欧阳宣 + 1 假装看懂的路过
pal家族 + 1 版区有你更精彩: )
ccboxes + 1 版区有你更精彩: )
Jerry.Lin + 1 学习了
wangkaka + 1 好久看不到这样的技术贴了

查看全部评分

B100D1E55
 楼主| 发表于 2018-6-13 11:37:38 | 显示全部楼层
顺便@191196846 @驭龙 @pal家族 @欧阳宣 @wangkaka @ccboxes 感觉你们应该会对新内容感兴趣

其他感兴趣但没被我at到的同学也请勿见怪
驭龙
发表于 2018-6-13 11:43:29 | 显示全部楼层
B100D1E55 发表于 2018-6-13 11:15
结果补充(6月12日更新)——之所以不直接编辑原帖是因为防止二次被吞……

首先是一个坏消息:和vmray估 ...

所以我过几天也回归ESET了,当然不完全是因为你的测试,而是我也觉得ESET不错,最重要的是用着舒服,也很期待11.2的到来,哈哈
wangkaka
发表于 2018-6-13 11:49:10 来自手机 | 显示全部楼层
本帖最后由 wangkaka 于 2018-6-13 11:50 编辑
B100D1E55 发表于 2018-6-13 11:15
结果补充(6月12日更新)——之所以不直接编辑原帖是因为防止二次被吞……

首先是一个坏消息:和vmray估 ...

eset真的很特殊。。这个dna行为特征太巧妙了。不过这种监控api的行为特征会不会区分度不够?应该还有其他配合的检测方式吧。期待eset新的机器学习成果不过我这没解决易语言问题,我就先不回去了。。。。
ccboxes
发表于 2018-6-13 11:53:27 | 显示全部楼层
B100D1E55 发表于 2018-6-13 11:37
顺便@191196846 @驭龙 @pal家族 @欧阳宣 @wangkaka @ccboxes 感觉你们应该会对新内容感兴趣

其他感兴趣 ...

这种拉黑式的入库思路都差不多,BD的Trojan.GenericKD.XXXXXXXX也一样,也是自动机提取的,应该是为了考虑压制误报,提取的特征很浅,有一些改MD5就过,其余的单改MD5是过不了的。不过没有ESET这么深入。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

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

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-12-23 08:30 , Processed in 0.097784 second(s), 15 queries .

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

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