DCO ( Dynamic Code Obfuscation )理解

首先介绍大家参考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 函数)。

 

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

 

translated from:  http://www.finjan.com/Content.aspx?id=1456

黑客们玩“猫与老鼠”

动态代码混淆技术是黑客们与安全专家们长期智斗的产物。为了响应安全专家们关于检测“加密恶意代码”的努力,黑客们发明了动态代码混淆技术,该技术使得一个新的访问者访问恶意网站时代码被不同地混淆(方式不同)。代码混淆已经存在一段时间了,动态代码混淆由于其复杂性和流行性将成为值得关注的趋势.由于它有效地迂回传统“数字签证”(signature-based solution),已经成为传播恶意代码的有利武器。动态代码混淆,自动混淆代码和其它的编码方法便利黑客们安置不可见的恶意代码,在用户访问那个恶意站点时其机子就中标了。

动态混淆技术的广泛流传早由MCRC的2007年春的调查报告分析中出现了。通过分析UK多于10,000,000个URLs,Finjan发现80%被检测到的恶意代码都是被混淆的以规避数字签证产品(如anti-virus, IDS/IPS,URL)的过滤。

规避数字签证安全工具的复杂策略

动态代码混淆技术在黑客与安全公司间的棋局上不断发展进化。早期安全专家们检测恶意代码用的是词法分析,它扫描代码并识别执行恶意操作的记号(如删除文件,访问注册表)。当黑客们意识到这种安全策略,他们便开始通过加密或串联字符串或其它方法来隐藏或者混淆代码。被混淆了的代码在anti-virus scanners看来就是良性字符串,不能被检测出来哦。恶意行为在代码被解码时(即运行时)呈现出来。

为了能检测出恶意代码,anti-virus发明了一种“js/wonka”的数字签证,它能大体检测出那些包含有一些可能用于混淆脚本的功能函数的静态页面。黑客们响应这个防御策略通过开发动态代码混淆技术。换句话说,每个访问恶意网站的人都会收到一份恶意代码实例,这基于随机函数或可变参数。理论上讲,一个数字签证安全策略将需要成千上万的signatures来检测这些特别的恶意代码段并阻止它们。结果,动态代码混淆使得很多老式攻击(能被混淆和重用的)复活了。

考虑一下下面这段动态混淆代码,它是在2006年冬在一个俄国网站上检测出来的。一旦用户进入该站点,无需交涉,脚本将会解析混淆代码并执行它。

 混淆代码示例

一个熟悉JS语言的人可能留意到代码中函数和参数名是随机的。这种类型的攻击迂回数字签证检测,因为数字签证检测没有能力处理无限多可能性。译码后代码如下图所示:

译码后的代码

实时代码检测忙于动态网页威胁

只有一个办法能防住动态混淆代码及类似的黑客技术,那就是在网页内容到达终端用户之前,动态地分析并理解嵌在内容中的代码。

前摄的,基于行为的安全策略对每一块内容实施了纵向分析,无论它来自什么源。这种分析将代码破为N块,理解代码想去做什么(在它们做之前)。结果呢,这种策略能够识别那些将要执行恶意或可疑操作的代码,在周边上把它阻止掉,而不是允许它进入网络后依赖于桌面安全策略。

但是,我有我的疑问:

1.文末提及的衬里代码检测是在服务器端进行的么?如果是,那么它在发出前是混淆的呀,明明检测不出结果来;如果不是在服务器端而是在浏览器端,那么末句“允许它进入网络后………”又该怎么理解。

2. 比如在Mozilla Firefox中,是在解释器一级作拦截么?那怎么“成片成片”地检测呢?一次不是只能解释执行几句话么?

请高手 大师 黑客大爷们指点一二呀,不胜感激!

 

translated from: http://searchsecuritychannel.techtarget.com/generic/0,295582,sid97_gci1241151,00.html 

http://www.secguru.com/link/attackers_hide_malicious_code_using_dynamic_code_obfuscation
     With Yuval Ben-Itzhak,chief technology officer of Finjan. The company's latest Web Security Trends Report, which covers the fourth quarter of 2006, says that dynamic code obfuscation is a dangerous emerging trend.

     之所以叫“动态”,是因为黑客们修改函数名,有各种encryption keys,一旦有个参数是动态变化地,数据库里的“签证”就匹配不上了。 
     DCO是种趋势。我们需要一种技术,它能够理解代码,并在没有“签证”的情况下分析将要执行什么。我们要看到代码是否将要删除一个文件或更改浏览器的某项设置,基于此决定防与不防。常规的AV软件停滞于此,我们需要额外的工具来对付DCO。我们称这项技术为行为代码分析技术(Behavior code analysis technology). 
     如今在Finjan 的工具上,延迟是20ms,用户感觉不到地. 是的,我们确实给传输带来了延迟。但如果延迟2s,你一定说代价太高烂死了,而2ms却没有造成什么问题。The benefit is that using an application allows us to arm it with resources needed. Running this as another agent on the desktop might impact productivity. 
     Finjan是这方面的领导者之一,有18项专利。微软特许了我们的技术。其它的安全商们也开始瞄准DCO。2007年我们看到很少对付DCO的产品。

VOMM

translated from: http://wo0wo0noop.blogspot.com/2007/01/dynamic-code-obfuscation.html

     另外地,安全专家们计划发布一个叫做VOMM的工具,作为MetaSploit framework的一部分。这个新工具将会自动化DCO过程,允许黑客们通过添加characters/line breaks/spaces来破坏杀毒软件的签证。

DCO

translated from: http://searchsecurity.techtarget.com/tip/0,289483,sid14_gci1246356,00.html

     代码混淆是有意地将脚本或程序源码搞地难懂。有很多种方式可以达到这个目的,比如加密,添加额外的tabs/random comments/variable names.给这样的做法一个合理的解释就是防止逆向工程。把程序搞地难懂,避免外人未授权许可就访问源码。 例如微软建议开发者们利用Script Encoder来混淆最终脚本。

     在某种程序上,这只是一种粗劣的访问控制。实际上有许多代码混淆程序设计赛,如International Obfuscated C Code Contest, 目的是写出最晦涩最混淆的C代码。不幸的是,代码混淆也为恶意代码编写者们服务,他们想隐藏和伪装代码的真实目的。黑客们的这种行为已经不是新鲜事儿了。早在90年代,秘密和多态病毒隐藏或改变它们自己的签证。这些是基于二进制代码的病毒,而非脚本,但是黑客们正把这些技术应用在混淆脚本上。Spammers一般使用混淆的JS或HTML代码来改变URL地址导向,或改变脚本所做内容。伴随着Web2.0技术的出现及JS和HTML的宽松使用,混淆代码对于隐藏浏览器漏洞,重定向函数和XSS攻击是个超有力的工具。

      庆幸的是,反毒商们也不是吃白饭的。他们聘请了一堆竞争者和启发式分析师们,还引进了一已知恶意代码签证数据库。签证是数字手印,从恶意代码中来并用来识别它。

     下面说说DCO。黑客们现在这样编码他们的恶意代码,改变函数名称、使用离散的编码值。这意味着每个访问者访问该恶意网站,将会接收到“独一无二”的病毒。这从根本上不止改变了混淆代码的威胁,而且改变了攻击者通过受害者散步病毒的速度。举个例子,VOMM模块将被加入广泛使用的MetaSploit攻击工具包。它最初是为基于JS的漏洞设计的,无疑它将扩展到能囊括其它的非二进制漏洞。This tool will mean even malicious hackers in training will be able to automate the dynamic code obfuscation process。

     数字签证对于DCO是不起作用的,因为那些随机元素使得杀毒软件在DB中找不到匹配。我们必须使用基于行为的分析技术,不使用数字签证,来分析一个程序将要做些什么。如果一引起行为MS可疑,如删除文件,就要出现警告喽。这个分析将拉长处理周期,并对效率和用户体验有所影响。这意味着网关分析可能是最好的方式(相对于桌面解决方式)。

     同时,因为社会工程仍是这些攻击中的关键元素,增强安全意识来与DCO抗衡啊!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值