Dynamic Code Obfuscation — 最精确地理解DCO(一)

首先请大家查看附件中的论文New Attack Tricks Antivirus Software。。下面是我的理解,请多多批评指正。

1. 传统多态病毒:

有自己的引擎,src code I -> src code II。一般的杀毒软件能找到引擎,分析它并入数据库。

2. DCO攻击:

引擎在黑客服务器上(对恶意代码的handle也在这儿),它为每个访问的用户生成一份“独一无二”的混淆出来的代码(长地不一样,本质却一样)。

3. Symantec采取措施:

控住浏览器,识别漏洞,在洞口待客(恶意代码)。常用的“模式匹配”貌似过气儿了,行为模式即将盛行。判断代码是否恶意,我们不找“签证”了,而是检测代码让系统在一开始要做的事情,例如调用系统API等,照样可以拦截住并干掉它!

4. 其它防护措施:

Finjan静态分析DCO代码,试图来识别混淆背后的模式,它是找那个built-in 函数,理解含义,就晓得代码干嘛了。“模式匹配”总地来讲没过气儿,“key”是那个built-in函数(该函数肯定是plain code喽),如果杀毒商们能在众多恶意代码样本中发现相同的代码片断,那该片断就可作为签证使用啦!

 

疑问:

如果多态都是通过那个built-in函数实现的,那么问题现在归结为:传统的多态病毒“一种病毒一个函数”,一对一,杀毒商们分析并找出签证入数据库以作匹配;而新型的DCO攻击,“一份代码一个函数”,而事实上黑客服务器可以造出无数份不同的病毒,所以杀毒商们赶不及分析如此“多”的函数,所以棘手了?

难道混淆算法有无数个或超多个?

如果不是,而是有限个,那杀毒商们早就统计出来入库作匹配了,还等着你逍遥法外啊。所以这条不成立。

如果是这样黑客们就随意搞出很多混淆代码和反混淆代码(built-in 函数)。

 

请问各位过路的大虾小虾们,我这样理解对地不?

你可能感兴趣的:(算法,浏览器)