恶意网页逃避JavaScript沙盒过滤技术及应对介绍 (恶意网页逃避怎么处理)

教程大全 2025-07-15 03:59:03 浏览

意网页是目前木马传播的一个主要途径,沙盒过滤技术是检测恶意网页的一个可行的方法,而且理论上检测率是很高的,但在现实实现这种检测方案时,检测程序内置的HTML以及javaScript解析引擎有可能在功能上没有实现完整,或者一些行为与真实的浏览器有偏差,还有运行环境毕竟和真实的客户机是不同的,总之会与浏览器有或多或少这样或那样的不同,而这些不同却可以被恶意网页的编写者所利用来躲避检测程序的跟踪检查,本文对恶意网页可能使用的一些逃避检测程序的方法进行了介绍。

目前基于WEB的应用越来越普遍,与此同时恶意网页也成为了木马传播的重要途径,而且有越来越严重的趋势。据统计,目前有80%以上的木马是通过恶意网页进行传播的,微软最新发布会的“微软安全情报”报告指出,2007年期间,Windows用户机器中所感染的特洛伊(Trojan)木马病毒下载程序猛增300%;攻击者正逐渐放弃传统的电子邮件攻击手段,转而越来越多地使用网页攻击策略。可见阻止木马传播的有效方式就是对恶意网页进行封杀,目前各安全厂家都在不遗余力的加强这方面的研究。具体到网关级安全产品(如入侵保护系统,安全网关,UTM等)来说就是对被保护的内网用户访问的网页进行分析过滤,如果发现恶意网页就发出告警,在网关处阻止恶意网页进入内网用户的主机,从而保护内网用户。

网关级安全产品阻断恶意网页在技术上的一个主要问题就是如何判断一个网页是否是恶意网页。现在大多数恶意网页中的恶意代码是用JavaScript编写的,这些JavaScript通过HeapSpray技术触发本地ActiveX控件漏洞而进行木马下载并运行,而且这些恶意的JavaScript代码为了躲避检测一般都进行了混淆加密处理,如下是一段真实的恶意网页中的JavaScript代码:

1.在DOM中,一些对象有许多别名,如:

document.location ,window.location,document.URL是等价的。

window,window.window,window.self,window.parent,window.self.self.self.self是等价的。

任一个全局变量都自动成为window的成员。

恶意网页可以利用这一点来检测自己是否运行在真实的浏览器中,例如:


   

在上面的这个网页代码中的do_evil()是这个恶意网页中包含恶意代码的地方,上面的代码中的if语句判断自己当前的运行环境中对DOM别名的特性是否支持,如果安全产品中自己实现的JavaScript解析引擎对DOM别名的特性实现不完整的话,那么很有可能会认为window.parent.window.spi 不等于5,从而让恶意网页逃过检测。

2.通过使用 HTML tag 的一些功能进行测试,已判断当前的运行环境是Sandbox还是浏览器,例如:

恶意网页逃避怎么处理

在上面的例子中,第一个meta在设定的Set-Cookie时,使用了HttpOnly属性,HTML协议规定在使用了HttpOnly属性后,这个meta设定的Cookie也就是”c2=v2”将不能被页面中的脚本访问到,也就是说在下面的Javascript代码中document.cookie的值在真实的浏览器中为” c1=V1”,如果安全产品的JavaScript解析引擎对meta的一些特性实现不完整的话,就会可能被恶意网页利用逃过检测。

3.Image对象是JavaScript的内建对象,可以通过语句var img = new Image()来创建对象,在创建Image对象后可以通过语句img.src=来从网络上获取图片,当浏览器遇到这句话时,会向www.exist.com发出http请求,获取图片a.jpg,如果这个图片从www.exist.com成功获取,浏览器会调用img的onload()方法,如果这个图片在www.exist.com上不存在或者www.exist.com根本就不存在,浏览器会调用img的onError()方法,恶意网页可以利用这些特性来来判断当前的运行环境是Sandbox还是浏览器,代码如下:

在以上代码中可以看到当在真实的浏览器中语句img.src=会让浏览器去获取图片a.jpg,然后调用goodman()函数运行恶意代码,如果安全产品的沙盒对以上特性没有实现完整的话,就会可能被恶意网页利用逃过检测。

4.当javascript代码中出现语法错误或者函数的无穷递归调用的错误,浏览器会调用window.onerror(),恶意网页中通过故意引入语法错误或无穷递归调用的错误来判断当前的运行环境是Sandbox还是浏览器,代码如下:

从以上代码可以看出,如果安全产品的沙盒对错误处理的实现不完整的话,例如在遇到语法错误时可能停止解析了,而没有象真实的浏览器那样去调用window.onerror,那么就可能被恶意网页利用逃过检测。

最后,还有很多其它可以采用的方法如对Ajax的特性进行探测,对事件的处理顺序,对plug-in的测试,对同源策略的测试等都可以用来探测当前的运行环境是在浏览器里还是在沙盒里。

通过以上分析可以看出要利用沙盒检测的方式对恶意网页进行检测,很重要的一点就是对浏览器的一些关键特性要尽可能模拟。绿盟科技的安全产品对沙盒检测以及恶意网页的反检测技术进行了持续的研究,在设计之初便针对一些可能的逃避情况进行了关注,目前已有成熟的解决方案并已进入产品化。

【编辑推荐】


怎么删除恶意网站?

上网时,有时会无意打开恶意的网站,此后一开机便自动打开该网站,在启动栏也没有发现该项。 这种情况是由于恶意网站利用javascript程序,通过在注册表“HKEY_CURRENT_USER\software\Microsoft\Windows\CurrentVersion\Run\文件夹下建立了Windows默认启动程序,当Windows启动后,我们会发现某个网页会自动打开,但是在“开始”→“程序”→“启动”中却找不到。 改回来的方法:一是查找源头,进入注册表,删除Run下面的相应项就可以了;二是在“开始”→“运行”处输入“msconfig”,把启动下面相应的那个网站前面的“√”去掉,重新启动计算机就可以了。 也可以在网上找一个IE反修改工具进行修复。 另外,为了避免此类恶意修改注册表再次发生,你可以在IE的安全属性设置中禁掉ActiveX,当然在以后的网页浏览过程中可能会造成一些正常使用ActiveX的网站无法浏览的现象,不过为了安全也是值得的。

如何预防恶意插件

下载360安全浏览器。

360安全浏览器有什么功能?

360安全浏览器是全球首款采用“沙箱”技术的浏览器,能够彻底避免木马病毒从网页上对你的计算机发起攻击。 360安全浏览器完全突破了传统的以查杀、拦截为核心的安全思路,在计算机系统内部构造了一个独立的虚拟空间——“360沙箱”,使所有网页程序都密闭在此空间内运行。 因此,网页上任何木马、病毒、恶意程序的攻击都会被限制在“360沙箱”中,无法对真实的计算机系统产生破坏,真正做到百毒不侵。 360安全浏览器只有1.6M,小巧轻快、功能丰富,适合快速安装。 除独家采用的“沙箱”技术外,360安全浏览器还集成了恶意代码智能拦截、下载文件即时扫描、恶意网站自动报警,广告窗口智能过滤等强劲功能,是目前市面上最安全的浏览器。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐