看一个程序是否有恶意行为,仅仅通过一个动作(单步防御)在很多情况下不能奏效,而是要把一个主体的多个动作串联起来才能判断。
举个例子:
一个人使用刀,并不是违法行为;
一个人站在人群中,也并不危险;
但是一个人在人群中握着刀,就很危险。
这个思路并不新奇。火绒盾做出的第一版产品也和“主流产品”很相似。但是由于可以直接接触到用户的反馈,我发现原来我们做多步防御的思路并不好。
过去的行为分析,主要看的是进程和进程的关系。每个分析器用独立的视角分析一个进程,这样就会造成子进程父进程等等多个进程分析之间的混乱。而我们发现,如果换一个视角,把每个行为和进程的关系作为一个矩阵来观察,事情就变得非常清晰了。
用这种方法,系统可以比较容易地总结出病毒的行为模式,建立起一整套基于行为的防护规则。这一套分析规则一直没有让人失望,至今为止还没有需要被“特殊照顾”的白名单文件。
火绒2.5的改版,可以说最大的变化就在新的行为分析引擎方面,我们不仅重新设计了行为分析系统架构,而且重写了行为分析系统代码。
我们将火绒2.5新行为分析系统命名为火绒多维矩阵行为分析系统,下面我们就一起来这看下全新的行为分析系统有了哪些变化。
重构的行为分析系统架构,细化分析粒度
为了全面提升行为分析系统能力,我们重新设计了行为分析系统架构。从之前的二维分析模式,提升为多维矩阵式架构。具体来说,2.0版本的行为分析以统一的视角、按照进程的物理关系(二维平面),结合进程行为来进行分析。而在2.5行为分析系统中,除进程的物理关系外,进程的行为也被用作关联进程关系的纽带之一(多维空间),从而实现了在更高维度上对进程关系和行为的组织和分析。通过这种方式,可以从逻辑上更准确地分析出进程的恶意行为并定位相关的进程。
或许从概念上来解释,可能会感觉比较抽象。我们可以以一个应用场景为例,比较直观地说明多维矩阵式架构所带来的提升:以往比如从RAR压缩包中运行发现风险行为,可能会连RAR进程一起视为风险进程,而新的行为分析架构下可以区分出RAR与真正的风险进程,这样使得分析结果更为精准。同理的还能区分通过下载器运行的风险进程等。
对于上面的例子,包括火绒2.0在内的传统多步行为分析系统,在解决类似问题时不可避免地需要引入知识库(本地或云白名单),而火绒2.5行为分析系统不需要此类知识库机制,可以完全从逻辑上解决此类问题。
全新同步阻断式监控模式,大幅提升拦截有效率
除了对系统架构的调整,我们还优化了火绒多维矩阵行为分析系统的监控模式,从以往的异步分析模式改为同步阻断模式。以往的异步分析模式我们在监控到程序的多个动作后,到程序运行可能是最危险的动作之后,我们会进行阻断并回滚操作,而这时候可能最危险的动作已经运行。而新的同步阻断模式,可以在程序运行到最危险的动作同时就进行阻断并回滚操作,这样可以大幅提升行为分析系统拦截有效率,规避危险动作的侵害。
最直观的例子是,以往有锁屏行为的风险程序,虽然火绒能够发现这项风险,但是屏幕已经被锁定了,而新的行为分析系统可以在所屏幕被锁定之前阻断程序运行,并提示风险。
调整行为模式规则组织方式,规则更新效率更高
对行为分析体系有所了解的朋友应该知道,行为分析除了本身的分析能力之外,更要依靠行之有效的行为模式规则来判定程序的多步行为是否存在风险。
我们根据多年分析病毒样本积累的经验,重新调整了行为规则组织方式。这样能够大幅提升我们内部完善行为分析模式规则的效率。这样能够更敏捷的应对新行为模式的病毒程序,从而不断进化行为分析系统的查杀能力。
优化行为模式规则,减少误报几率
在调整了行为模式规则的阻止方式之后,我们重新优化了以往使用的行为模式规则,力图大幅减少行为分析误报几率。
细化动作监控粒度,支持更多动作发起者进程
我们还细化了对动作发起进程的监控粒度,增加了对CMD启动BAT、RUNDLL32启动DLL等宿主类程序的处理。这样的好处是能够更加精确的处理白加黑类攻击方式。
重写行为分析系统代码,大幅提升系统效率
最后除了上述的各种优化手段以外,我们重写了整个行为分析系统的代码。整合了以上各项变动的优势,精简分析系统代码,达到了大幅提升行为分析系统运行效率的目的,使得火绒2.5变得更为轻巧、高效。
火绒杀毒没有云,是国内最小巧精悍的杀毒软件,扫描引擎的通用脱壳在全世界也是屈指可数的 |