搜索
查看: 12726|回复: 151
收起左侧

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

  [复制链接]
B100D1E55
发表于 2018-6-11 00:24:31 | 显示全部楼层 |阅读模式
本帖最后由 B100D1E55 于 2018-6-11 04:53 编辑

之前曾经讲到杀毒软件永远无法做到运行前完全精确的查杀(事实上运行后同样困难),源于一个简单的证明:
假设一个程序包含两个函数foo()和bar(),在主函数中是这样的:
  1. main()
  2. {
  3.   foo();
  4.   bar();
  5. }
复制代码

其中foo()是正常代码,而bar()是包含恶意行为的代码。这个程序可能执行到foo()就永远循环而不会执行bar()(严格来说这样它就不是恶意程序),也可能正确返回后继续执行恶意的函数bar()(此时它是恶意程序)。根据停机问题的结论,任何图灵机都不可能判断foo()是否会执行结束,也就无法判断一个程序到底是不是真的会展现出恶意行为。
当然,以上只是一个理论构造,现实中的安软可以通过很多非精确的方式来逼近这个理论壁垒。例如,对于很多靠特征或者静态启发的安软,只要静态扫描到bar()的恶意内容就会报警(可以是特定的二进制特征,也可能是一些区段的异常熵值,等等)。动态启发则通过模拟执行程序来判断,但foo()可以运行很长时间以至于超过检测时间限制,这无法被虚拟机准确甄别出来。

/*******************************************/
近期越来越多安全厂商开始为企业客户提供云沙盘鉴定服务(BD, ESET, Dr.Web)。云沙盘的优势在于可以避开普通动态启发引擎的诸多限制。出于性能考量,动态启发扫描引擎对样本预执行的时长限制很严格,而能调度/仿真的资源很有限,相比之下,云沙盘则可以让样本在近乎实机的环境中展开恶意行为。事实上大厂现在都进行这样的部署,例如下图Office 365的防御策略
fig5-multilayered-ML-models-non-pe.png

在这个多层防御策略中,本地机器学习引擎能在毫秒内检测待测可以文档,而在云端,客户可以将本地提取的特征向量提交给云模型进行鉴定,响应时间也在毫秒级(p.s. 个人认为Avira基本上对大多样本也是这个策略)。当然,后续还有一个Detonation-based ML models,这个就是云沙盘,即让样本在云端的仿真环境执行并提取行为日志进行判断,由于运行样本本身需要不少时间,这个层级的响应就需要数分钟时间。

可能在一些人看来云沙盘似乎是一个非常保险的方法,因为其环境非常贴近实机,很多反扫描引擎的手法便无法生效。云沙盘可以不顾虑性能影响,收集更加细致的运行数据进行分析。但事实上从我个人来看,云沙盘对企业针对性攻击来说并不是什么灵丹妙药,其实局限性是相当大的,主要原因在于通用云沙盘构建的环境很难展开针对性恶意行为。

所谓样本的“针对性”,即一个样本在特定条件下才会展开行为。这个攻击面范围很广,从机器的用户名,到时间戳,到IP地址,有大量的方式可以让一个“定时炸弹”感知环境选择性引爆。比如如果我想攻击企业A的计算机,用某些方法我得知企业A计算机的用户名都有“PC-”的前缀,那么我可以写一个恶意程序,先检测用户名,当且仅当用户名开头是“PC-”的时候才解密恶意代码。而这样的样本放在云沙盘中往往就没法展开恶意行为,有很大概率会被鉴定为白文件。同理,我可以进行进程列表检测,当且仅当我看到qqprotect进程的时候才释放恶意代码,这样一来我可以很有效的针对中国区用户投毒,因为用qq的大部分是中国人,而中国人大部分电脑上都装有qq。相反,杀毒厂商云沙盘不一定构造这样的环境,自然无法展开对应行为。这些逃逸方法可以说是黑客对图灵机局限的很好利用。

作为娱乐,先列举一些黑客想出来的云沙盘逃逸方法:
1. 检测虚拟机:常见的有检测虚拟机注册表、厂商ID、虚拟机专属的硬件设备特征(MAC地址、VGA适配器厂商名称等)。
anti-sandbox-vm.png
对应的策略很多,比如抹除对应注册表特征等。但这个攻击面非常广,将每种可能性涵盖费时费力,在我看来只能是厂商后续逐步擦屁股猫鼠游戏。
当然也有的厂商直接让样本在实机执行,辅以一些透明度比较低的限权沙盘,比如Symantec就有这么做

2.时间攻击:一些权限指令在有hypervisor的环境中执行延迟远比bare-metal来的高,主要是因为hv在这当中需要截获指令并进行安全检查,必要的时候还需要进行一些仿真。
anti-sandbox-time.png
针对这类攻击,可以针对性地对这类不常见指令进行侦测(例如hybrid-analysis对这类指令的调用会放入可疑栏目中),也可以对系统时间进行伪装,但这里面攻击方法也非常多……

3.环境侦测:检测CPU核心数、检测硬盘大小(虚拟机环境一般硬盘会很小)、检测屏幕分辨率(虚拟机如果fit guest的话屏幕分辨率会很诡异)……
还可以检测最近打开的文件、安装过的程序等等
anti-sandbox-env.png

anti-sandbox-env2.png


4. 破坏行为监控:摘钩子、unaligned call、等等。这类对于不透明的沙盘来说问题不算太大,对于公共沙盘来说,写一些测试程序可以轻松修谈到虚拟环境的一些特性,如果他们还给不打码的系统截图就更方便了

5. 超时大法:比如sleep()函数,一般而言目前沙盘对这类函数都有一定绕过手段,但达到类似目的方法非常多,也是一个“擦屁股”的领域。
anti-sandbox-sleep.png
当然还有一种手法叫API hammering,主要是用来攻击系统监控。例如针对性密集调用一些被密切监控的函数,这些函数一般实机下没有监控所以运行速度很快,但是在带监控的虚拟环境下会很慢。恶意程序可以借此拖慢程序在沙盘中的运行速度,借此超时。类似的方法也用在JS解码上
anti-sandbox-js.png

6. 环境侦测:检测时间、用户名、时区设定……不赘述
anti-sandbox-artifact.png

7.用户交互检测:检测鼠标是否有移动,需要用户进行特定操作才展开行为等等。其实之前毒区有一个破坏MBR的就类似,需要用户点击“退出”之后才会破坏MBR,而自动沙盘如果不懂得去点击那个按钮就无法跑出对应行为。

针对6,7甚至是1和3这样的软肋,不同的厂家选择了不同的解决方法。

趋势等厂商允许企业客户自定义沙盘环境,也就是说客户可以将这类沙盘布置成和企业普通计算机一样的环境,这样一来,用户名检测大法之类的选择性执行方法在企业定制的沙盘中同样会展现行为。当然,这个方法局限性仍旧很大,比如对时间戳的检测就没法很好避免

对于7,普通沙盘一般都已经有一些模拟鼠标活动、模拟点击常见按钮(比如“yes”“next”“是(Y)”)的功能,但是局限性仍旧很大

还有一类,就是以VMRay为代表的符号执行技术,VMRay称之为“倒带”(Rewind)。
其实类似方法在早年就提出,比如07年有一篇引用500+的论文“Exploring Multiple Execution Paths for Malware Analysis”就提出了这样的构想:在执行待测样本的时候,是否能自动化地探索多条控制流来提高一个程序的代码覆盖率?例如对于下图程序
sample_program.png
其中程序会读取一个数字到y,计算后赋值给z,根据z的结果运行结果会不同。在这里假定ERROR为成功执行恶意代码,而SUCCESS则是在条件不满足时异常退出,可以有这种情况(成功执行):
succeed.png
但如果y不是6,对应ERROR行为就无法展开。而符号执行在这里要做的类似于方程求解:
symbolic.png
用lambda替代y,侦测到if else条件分支后,根据不同的分支判断结果列出方程反相推导出lambda的数值,将程序倒带回分支部分,插入解使其运行另一个程序分支。
通过对这类分支的多路径检查,沙盘可以更全面地展开所有可能的行为:
branches.png

在07年的论文中,作者讨论了实现这一思路的具体难处,包括如何完整的对程序进行快照和倒带,这里面有很多系统工程的内容这里不赘述。当年的实现仍旧有一些局限,比如其只能跟踪变量线性的变化,更复杂的不行。或者单纯hook一些异常退出的函数来触发倒带等等……

在VMRay沙盘系统的实现中,VMRay使用了Intel的Processor Tracing技术(Skylake及之后的处理器支持)。基于硬件的支持带来了很多好处,例如支持PT技术的处理器可以跟踪更多条件分支,而早年的一些技术比如LBR只能跟踪最多32个条件分支。此外,PT支持直接将日志记录到物理内存,避免了对缓存和TLB的污染,而且可以过滤大量日志噪声。

  • 首先,VMRay使用PT手机的信息来判断待测程序中是否存在尚未执行的代码区域
  • 然后,对这些未执行区域进行过滤(比如异常处理就可以丢弃)
  • 对于可以的条件分支进行跟踪,比如在获取系统时间等syscall后面的条件分支
  • 对这些分支使用符号执行,推导出触发分支的解
  • 将程序倒带回那个分支,注入求得的解进行另一个控制流的行为展开

ida0.png
上图这个程序,先用GetSystemTime()获取当前时间,然后检查时间是否是2010年 10月,如果不是则立马退出程序

当VMRay的分析算法发现40915c这个代码块没有被执行,就往回追溯,发现有两个条件分支指向这块区域。进一步发现系统时间是条件判断的一部分。

对第一个分支跳转条件进行求解,得到SYSTEMTIME.wMonth需要是0xa,通过倒带运行隐藏路径1
ida1.png

对第二个分支跳转进行求解,对应解可以是wMonth=0xb且wYear=0x7d9,通过倒带运行隐藏路径2
ida2.png


OK,其实我也出于好奇测了一下杀软扫描引擎到底是否有这种能力。其实这个答案基本上是否定的,因为性能要求太高……不过懒惰的我还是实验了一下。实验材料是之前论坛很火的Tilde ransomware,我写了一个简单的xor解密器,先将文件xor加密之后用程序释放出来运行。这方法不能更老了,不过这么做的目的主要在于规避杀软的特征查杀,看看哪一家扫描引擎能查出毒。之后,我进一步给解密路径增加了判断条件,让其通过检查用户名的方法只针对我的其中一个虚拟机运行,虚拟机内运行结果如下图:
bomb.png

测试自然是断网的,一开始也没传VT不然就要遇上拉黑大法好了
以下列出主流杀软的检测结果

原始Ransomxor加密xor加密+用户名判断
AviraYNN
BitDefenderYNN
Dr. WebYYY
ESETYYY
火绒YYN
KasperskyYYN
NortonYNN
Windows DefenderYYN

这个结果……基本符合预期,但是也有些神奇的地方

之所以说符合预期是因为已知Avira没有怎么用动态启发,而Dr.Web, ESET, 火绒,WD已知都有动态启发引擎,从结果来看卡巴也有一些动态分析。但是没想到BD和诺顿跪了,看来他们的扫描………………

可怕的是ESET和Dr.Web连带用户名判断的样本都查出来了,而且精确报出了原始毒名。如果我冲动一点的话恐怕就要归纳说ESET和Dr.Web扫描引擎有检查程序多条控制流的能力了。

但实际上并非如此。更多的测试表明ESET和Dr.Web的扫描引擎只是针对简单的xor做了一些对抗处理,特征入库后简单的single-key xor仍能被检出(还是不容易的,点个赞),我对加密函数稍微加一点线性变换两个引擎就跪了。
接下来用用户名判断的样本测测几个在线沙盘:

Threatexpert:跪了
HybridAnalysis:跪了
Cuckoo:跪了
VMRay:尚未拿到试用资格

其实也很正常,这些公共沙盘背后的厂家就算有对应的技术,也不会开放给普通用户。

顺便用这个样本来看看VT哪家拉黑快(这个样本广度近似为0,测试的时候又是断网,厂商唯一捕获的可能是VT上):

xor加密样本第一次上传:
nofence.png
大约6小时后
no_fence_xhrs.png

xor+用户名判断的样本第一次上传:
user_fence.png
大约6小时后:
user_fence_xhrs.png
在这里,6小时后额外检出的厂家之所以能发现病毒有几种可能性:1)客户端没有简单xor对抗但是云端有 2)这些厂商剽窃了第一批检出厂商的结果
到底是怎么回事任君自由想象。可能有人认为还有可能性3),即云端有符号执行检查,我之所以没列出这条是因为下面的测试:

xor+线性变换加密+用户名检查
对于这个样本,动态如果能检出很可能有类似符号执行的多控制流检查能力,先看看初次上传:
Cylance不算,这货报的是我用的编译器……
ult_xor.png
6小时后:
ult_xor_xhrs.png
难道CrowdStrike沙箱跑出对应行为了?这里其他厂商没检出可能纯粹是因为他们不在VT拉黑狂魔列表里

额外的一些思考:
符号执行是挖掘隐藏控制流的灵丹妙药吗?其实并不是。在上文可以看到,符号执行可以对简单的条件判断进行逆向求解,但如果这个解被用在更深层次上我相信符号执行是无能为力的。例如在上文xor解密器的案例中,如果将外界输入值作为恶意代码的解密密钥,那么就算符号执行引擎能跑解密代码路径,也无法解密出正确解(因为它不知道正确的key是什么)。这个情况下条件判断的难度化归到了解密payload本身,因此符号执行也就无用武之地。
总体来说,符号执行可以解决“如果满足条件X我就采取A行动”这类控制流隐藏手段,但没法解决“如果满足条件X我就用X采取A行动”这类问题,因为难以简单自动求得什么样的“X”能引导出正确结果。除此之外,一个程序的分支众多,攻击者完全可以大量增加特定分支数量来增加分析的负担进行逃逸。因此多层防御(特别是实时行为/内存监控)至关重要。上文简单的xor解密器已经放倒了几家厂商的扫描,如果后续没有防御层的话就很酸爽了


评分

参与人数 18原创 +2 分享 +3 魅力 +1 人气 +19 收起 理由
star-ray + 1
尘梦幽然 + 1
914525753 + 1 精品文章
引领四基生活 + 1 版区有你更精彩: )
绯色鎏金 + 2 原创内容

查看全部评分

B100D1E55
 楼主| 发表于 2018-6-12 11:43:50 | 显示全部楼层
本帖最后由 B100D1E55 于 2018-6-12 11:49 编辑

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

今天突然想起来测试的时候漏掉了一个东西。。。对xor解密器报毒的杀软不一定都有动态执行能力,因为很有可能只是对xor进行了针对性处理。因此最好的检验方法就是测试一下xor+线性变换+无用户名检测的样本,结果如下:
linear+xor.png
这个结果有一点意思,对比xor+无用户名检测的样本而言减少了3家检出,分别是Cybereason,Dr.Web,Sophos AV
由此可见这三家当初的检出都是靠静态而不是动态,特别是之前我误以为大蜘蛛是动态检出,现在看来大蜘蛛连动态虚拟都没跑,囧rz

这里更有意思的是Ikarus和Avast(AVG)都检出了,传统观念认为这几家都是纯静态,真的是这样吗?
其实检验的方法很简单,我只要在解密前加上一些延时代码即可,比如counter loop 100000次
linear+xor+cntr.png
对比一下,歇菜的有Avast(AVG),ESET,Ikarus
从这个对比可以看出Avast(AVG)以及Ikarus很可能拥有代码模拟执行功能,会对程序进行初步的展开并对衍生物/内存等进行静态启发,但是这个展开过程执行的指令数量很少。而ESET这么快歇菜了我个人猜测是因为ESET采取了“分类处理”,即对不同类别的样本扫描时长不同。用过ESET的同学都会发现ESET扫不同PE样本耗时差别很大,说明ESET内部可能有一个判断机制,对某些类别的样本会加长沙盒内模拟执行的时长,而某些样本则会简单处理。其实ESET库体积变大也和这方面有关,将运行初期行为/meta特征入库之后扫描引擎可以在展开更少行为的情况下判毒,而毒库小的动态引擎反倒需要收集更多的行为才能判别,因此扫描更慢。

最后的最后,将counter loop 延长到鬼畜的10亿次(就算counter loop这么长,在实机中也就是一眨眼的功夫,因为这个流程的IPC近似为1)
linear+xor+cntr_long.png
大家都歇菜了,除了某个误报王

所以这里的结论是:Avast(AVG),Ikarus有基本代码模拟执行能力;大蜘蛛对这个系列样本的检出不是靠动态启发而仅仅是特征匹配;卡巴、ESET、微软的动态扫描超时阈值各不相同(顺带一提,火绒也能跑很长的counter loop,但敌不过更鬼畜的数字……)

预告:预计顺利的话下一次将更新vmray的结果

评分

参与人数 3人气 +3 收起 理由
191196846 + 1 版区有你更精彩: )
wangkaka + 1 测试辛苦了
驭龙 + 1 这个回复应该置顶,人气送上第二个

查看全部评分

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

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

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

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

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

updated_detection.png

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

updated_detection_new.png

在漫长的无检出窘况以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检测手段真是以不变应万变,既偷懒又厉害

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

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

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


评分

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

查看全部评分

popu111
发表于 2018-6-11 00:42:42 | 显示全部楼层
感觉大佬这次文章有些意犹未尽啊

话说现在的云在线沙盘,对公众公开的那种,用的虚拟环境真的是假的不能再假。感觉企业定制用还好,可以直接整机copy走,然后按照规则清除部分数据拿来做模拟环境,但是似乎没有这么干的,大概都更注重明面上的数据安全一些。
B100D1E55
 楼主| 发表于 2018-6-11 00:43:52 | 显示全部楼层
popu111 发表于 2018-6-11 00:42
感觉大佬这次文章有些意犹未尽啊

话说现在的云在线沙盘,对公众公开的那种,用的虚拟环境真的是假的不能 ...

还在更新呢好玩的在后头
驭龙
发表于 2018-6-11 09:36:07 | 显示全部楼层
NS的表现,确实是让人出乎意料啊
cloud01
头像被屏蔽
发表于 2018-6-11 09:41:33 | 显示全部楼层
看来ESET的确是对大蜘蛛青出于蓝而胜于蓝。启发领域牛逼的当之无愧。
B100D1E55
 楼主| 发表于 2018-6-11 10:26:07 | 显示全部楼层
驭龙 发表于 2018-6-11 09:36
NS的表现,确实是让人出乎意料啊

估计只搞简单特征匹配了
B100D1E55
 楼主| 发表于 2018-6-11 10:27:40 | 显示全部楼层
cloud01 发表于 2018-6-11 09:41
看来ESET的确是对大蜘蛛青出于蓝而胜于蓝。启发领域牛逼的当之无愧。

还好,算法做了针对性处理而已,暂时没有看到什么能让我惊掉下巴的黑科技
驭龙
发表于 2018-6-11 10:35:17 | 显示全部楼层
B100D1E55 发表于 2018-6-11 10:26
估计只搞简单特征匹配了

说实话,赛门铁克这几年搞的SDS引擎已经提高基因效果了,但还是跟其他基因引擎有差距,而且现在大多数威胁都是靠Trojan.gen2等这种拉黑,或者那种本地机器学习,样本分类方面真的比不上ESET或者WD呢
cloud01
头像被屏蔽
发表于 2018-6-11 10:40:37 | 显示全部楼层
B100D1E55 发表于 2018-6-11 10:27
还好,算法做了针对性处理而已,暂时没有看到什么能让我惊掉下巴的黑科技

也不错了 ,特别超前的外星科技估计也难有,还有闲情逸致能做个精处理就不错了,长年累月下来效果还是不错的。毕竟安全行业是有限的智慧加误报平衡对抗无限智慧和无底线。除了WINODWS架构重新设计,以便于HIPS更好的拦截。现在的系统文件重要的不重要的都混在一起,真没办法。win10的防御相当于是把重要的都进行保护但又比较伤害用户。只能寄希望与国产系统 吸收WINDOWS的缺点和HIPS的要求来开发设计了。系统程序放一个文件夹,启动必须的系统文件和进程单独放一个文件夹,软件开发行业也需要规范,不要向WINDOWS文件夹和SYSTEM32乱写DLL,不要乱加驱。
191196846
发表于 2018-6-11 10:41:42 | 显示全部楼层
我双击AVIRA时候 像你说的 一般都是提取特征向量到云端匹配,响应时间大概3-5秒

但也有少数情况是直接UPLOAD到APC,然后响应时间Analyze也是差不多3-5秒就出结果了

以上两种情况改Hash都过不了,而且有时候新文件APC能直接给出准确的报毒名

我一直觉得APC很神奇,我不知道他们云用了多少检测手段,但是几乎很少MISS的样本

误报的话:平常见不到;我自己改过一个白文件的Hash 后 没有报(等待时长3-5秒),但是我遇到过一个恶意样本有有效数签就直接被过了……所以……


================================
AVIRA现在虽然是“单层防御”,但他扫描流程大概是这样的:

特征匹配-》静态启发-》本地ML-》云匹配-》云自动上传分析

至少从我双击样本区的情况来看,效果还是很不错的

大佬你怎么看?AVIRA的NightVision

======================================

还有一个小问题:

那些携带恶意代码的PE不应该也直接归类到恶意文件吗(有潜在风险释放)?那静态启发,就如你文章开头所说,也是可以识别出bar(),这样的侦测方式不就能一定避免本地动态启发带来的性能问题吗?

==================================

那个xor加密/xor加密+用户名判断,你可以在APC连上后双击看看……
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

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

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 苏ICP备07004770号 ) GMT+8, 2018-12-12 22:39 , Processed in 0.058512 second(s), 10 queries , MemCache On.

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