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抗衡啊!!!