恶意网页逃避JavaScript沙盒过滤技术及应对介绍

意网页是目前木马传播的一个主要途径,沙盒过滤技术是检测恶意网页的一个可行的方法,而且理论上检测率是很高的,但在现实实现这种检测方案时,检测程序内置的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=http://images./files/uploadimg/20090724/1859081.jpg来从网络上获取图片,当浏览器遇到这句话时,会向www.exist.com发出http请求,获取图片a.jpg,如果这个图片从www.exist.com成功获取,浏览器会调用img的onload()方法,如果这个图片在www.exist.com上不存在或者www.exist.com根本就不存在,浏览器会调用img的onerror()方法,恶意网页可以利用这些特性来来判断当前的运行环境是Sandbox还是浏览器,代码如下:

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

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

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

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

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

【编辑推荐】

  1. 教你一招拒绝带病毒的恶意网页
  2. “Kappa女”视频引发木马泛滥 恶意网页暴增
  3. 一个不放 彻底击破危险的恶意网页

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/147808.html<

(0)
运维的头像运维
上一篇2025-03-11 20:54
下一篇 2025-03-11 20:55

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注