注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

学会珍惜

You've been saying for the longest time

 
 
 

日志

 
 

利用强迫超时规避JavaScript Exploit特征码检测  

2013-01-31 09:24:41|  分类: 前端开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
转自:riusksk's blog

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://riusksk.blogbus.com/logs/82239670.html

作者:Sven Taute
译者:riusksk(泉哥:http://riusksk.blogbus.com)

由于JavaScript的动态特性,用它来混淆exploit代码很是容易。由于JavaScript是一种解释语言,网站也提供源代码给用户,因 此,Javascript混淆代码的功能常常被用于保护源代码,以防止被复制粘贴,同时保护开发者的知识产权。在过去几年,用于混淆攻击代码的算法已经被 大大改进了。再加上商业工具的运用,甚至已经开发出可伪装(隐含经空白字符格式化的payload)的混淆器。

检测恶意Javascript的问题
对于经动态混淆的代码,利用已知特征码的方法是检测不到的,因此经混淆处理后的代码就无法识别出是恶意代码。对此,反病毒扫描器需要有一个良好的仿真引 擎,以识别出经解压后脚本的运行行为。既而,这也就引发了一场攻击者与安全软件厂商之间的争夺战。混淆代码是为了保护源代码的知识产权,同时也可用于更好 地隐藏exploit特征码,它们似乎有许多共性:它们都被复杂化处理,以隐藏真实代码,防止被人们或检测软件识别。
基于特征码的检测方法一经失效,反病毒引擎就必须分析和仿真JavaScript,直到识别出脚本的真实功能,以达到检测恶意代码的目的。如上所 述,JavaScript是一种可用多种方法来隐藏代码的语言,它支持各类元编程(metaprogramming)(译注:元编程是指某类计算机程序的 编写,这类计算机程序编写或者操纵其它程序(或者自身)作为它们的数据,或者在运行时完成部分本应在编译时完成的工作。多数情况下,与手工编写全部代码相 比,程序员可以获得更高的工作效率, 或者给与程序更大的灵活度去处理新的情形而无需重新编译),这意味着代码可实现自修改,并创建出新代码。先加密字符 串,然后用eval()函数来执行也是一种众所周知的方法。由于代码必须能够自我运行,因此JavaScript混淆器集成了KEY和经大量混淆算法实现 的解密程序。

JavaScript代码压缩器的不同功能和限制
从攻击者的角度来看,存在一个优势,那就是网站开发者在大多JavaScript压缩器中并未考虑到因素:时间因素。在正当网站上经混淆的代码必须执行得 够快,即使是未经压缩的代码也应如此。然而,从攻击者的角度来看,我们确实还有一些时间可以拿来利用,但如果exploit的执行是在毫秒或2秒内完成 的,这就无所谓了,因为大多受害者并不会注意到它,甚至不会在当时打开任务管理器杀死进程。然而反病毒扫描器必须像网站开发者一样以相同的方式来处理 Javascript,它的执行不能比未扫描时花费明显过多的时间,最好是1秒的十分之一。

利用时间因素
为了利用时间因素,代码压缩器需要创建出不会在一定时间跨度(timespan)内被分析出来的代码。由于这技术不应过于复杂,因此它必须以某种方式来执 行,并且这种方式要求在短时间内不会分析出代码,所以最好的解决方案就是加密payload。对比现在流行的代码压缩器,它们均没有满足加密 payload的所有关键要求,自然而然地,也就不可能在合理的时间内进行解密。这不仅要求让反病毒扫描器无法查看payload,攻击者的浏览器也不 能。如前所述,由于反病毒扫描器的快速分析,因此在攻击者浏览器上的执行时间相对比较紧迫。然而也并非都是如此,我们可以创建一个加载器,用于暴力搜索访 问payload的KEY,然后选用一个在数秒内可破解的KEY。最后导致反病毒引擎超时,但此时payload已经在浏览器中运行了。在当今浏览器里都 拥有高优化的JavaScript引擎,运行暴破算法的速度很快,这给我们提供了很大的优势。

  评论这张
 
阅读(94)| 评论(0)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017