APP下载

一种基于Google的恶意网页防御技术

2010-08-07黄若衡谢耀滨

网络安全技术与应用 2010年4期
关键词:重定向搜索引擎警告

黄若衡 谢耀滨

1 上海直真视通科技有限公司 上海 200233

2 信息工程大学 河南 450002

0 引言

随着计算机网络的普及,网络信息安全问题也日益凸显。网络攻击越来越频繁、恶意代码愈加肆意,客户信息甚至计算机系统的安全更加令人担忧。根据计算机安全组织SANS提供的数据显示,2007年以来,针对IE浏览器的攻击数量日益激增,已经排到网络攻击方式的首位。 此外,在对 4396起网络攻击的统计中表明,针对网络浏览等应用的攻击已经占到了所有攻击的一般以上。

由此可见,对用户浏览器的安全防护是保护用户信息安全的一种非常有效的手段。本文实现的恶意网页防御技术,利用Google的资源,可以对含有恶意代码的网页进行报警和拦截,为用户营造更加安全的上网环境。

1 Google搜索引擎对恶意网页的检测

Google搜索引擎内嵌一个恶意网页检测功能,当使用Google搜索引擎进行搜索时,Google会对搜索出的可能含有恶意代码的网页给出警告。

例如使用 Google搜索“计算机网络安全”时,会发现Google对URL为:http://www.diqiuren.org/news_view.asp%3F newsid%3D25698,网页会在搜索的下边以蓝色字体发出如下警告信息“该网站可能含有恶意软件。有可能会危害您的电脑”,如图1所示。

图1 Google搜索网页时给出的警告提示

点击网页链接,浏览器并不会进入到上述 URL指定的页面,而是会转入到“恶意软件警告”页面。页面会醒目的提示到“警告——访问该网站可能会损害您的计算机!”,如图2所示。继续点击“安全浏览诊断网页”,此时Google会对此网页近90天的安全情况作以简要说明。其内容包括此网站当前列表状态如何,是否被列入恶意网页;在过去的90天里,Google对此网站的测试结果说明;该网页是否以媒介身份散发恶意代码;是否托管了恶意代码等详细内容。如图3所示。

图2 Google对恶意网页的警告页面

图3 Google对恶意网页的安全浏览诊断页面

利用Google来检测恶意网页,首先恶意网页会先提交给Google,而不会在本地打开,确保恶意代码不会下载到本地机器并执行;另外 Google的恶意网址名单的提供者是StopBadware.Org,该组织是一个合作性的网络社区,同时向Google、AOL、PayPal、趋势科技(TrendMicro)、联想(Lenovo)和VeriSign取得研究分析所需的资料,对恶意软件及其分布进行分析并预测,具有领先的分析技术,可以保证 Google的恶意网址库的时效性和权威性。

2 基于 Google的恶意网页防御工具的设计与实现

通过对Google的恶意网页检测功能的分析,可以设计出基于Google的恶意网页防御工具(以下简称防御工具),该工具采用BHO技术实现,当浏览器访问某个网页时,BHO对象首先会将访问的网页提交给Google进行检测,如果该网页属于恶意网页,则跳转到Google的安全诊断页面,如果不是恶意网页,则跳转到访问的页面。

2.1 BHO的介绍

BHO全称为Browser Helper Object,即浏览器辅助对象,它是微软推出的作为浏览器对第三方程序员开放交互接口的业界标准,用户通过简单的代码就可以进入浏览器领域的“交互接口”(Interactived Interface)。通过这个接口,程序员可以写一个进程内COM对象,这个对象在每次启动时都要加载。这样的对象会在与浏览器相同的上下文中运行,并能对可用的窗口和模块执行任何行动。防御工具正是充分利用BHO的这种特性,来实现与浏览器的交互。

BHO对象依托于浏览器主窗口,一旦一个浏览器窗口产生,一个新的 BHO对象实例就要生成。浏览器通过注册表发现一系列的BHO对象,并为之分别建立一个进程中实例,这样这些对象可以装载到浏览器上下文中并运行起来,而BHO需要建立一个私有的基于COM的通讯通道来钩住浏览器的事件。因此BHO实现一个IObjectWithSite的接口,通过该接口Internet Explorer可以将它的 IUnknown 接口传递给BHO,BHO反过来能够存储该接口并进一步查询更专门的接口,如IWebBrowser2、IDispatch和IConnectionPointContainer,如图4所示,其中BHO site是用于实现通信的COM接口。

图4 IE与BHO对象的关系图

2.2 Google恶意网页检测功能的查询和利用

Google对提交检测的网页提供两个在线查询页面:

(1)警告网页

http://www.google.cn/interstitial?url=***

(2)安全诊断网页

http://www.google.com/safebrowsing/diagnostic?site=***

当访问某个网页时,例如URL为“http://www.X.com”,首先导航到http://www.google.cn/interstitial?url=http://www.X.com ,这是Google保存的恶意网页警告页面,如果该网页不是恶意网页,Google会返回一个“查询被禁止”的页面,而不是如图2所示的警告页面,见图5。

图5 Google对安全网页的“查询被禁止”页面

因此,防御工具在访问网页之前先重定向到Google的警告网页上:如果返回的网页不是“查询被禁止”的页面,说明访问的网页是安全的,再二次重定向到该网页上;如果返回的网页是警告页面,则重定向到访问网页的安全诊断页面中。

2.3 用BHO实现恶意网页防御工具

当用户在浏览器中输入要访问的网址时,防御工具首先要获取此时访问的URL。BHO对象通过SetSite()方法来初始化,初始化完毕后通过IWebBrowser2接口来获得WebBrowser对象m_spWebBrowser,就可以使用get_LocationURL函数来获取当前浏览器访问页面的URL。代码如下:

m_spWebBrowser->get_LocationURL(&strURL);

获取URL之后,首先重定向到Google的安全警告页面上, 重定向的时候,我们使用m_spWebBrowser->Navigate()来实现。具体代码如下:

char* GoogleCheckl="http://www.google.cn/interstitial?url=" ;

//连接两个char*字符串

char str1[1024];

strcpy(str1,GoogleCheckl);

strcat(str1,strURL);

char* str2=(LPSTR)str1;

WCHAR BUF1[1024]; //将char型转换为LPCWSTR

swprintf(BUF1, L"%S",str2);

URLsafe = BUF1;

m_spWebBrowser->Navigate(SysAllocString(URLsafe),N ULL,NULL,NULL,NULL);

重定向到Google的安全警告页面之后,要对该网页的安全性作判断。这里只是简单地判断返回页面中是否包含“Forbidden!”,如有,则说明查询失败,该网页是安全的。BHO查询网页时必须先获取到网页的的HTML文本,而这些都包含在网页文档的body对象中。可以通过m_spWebBrowser-> get_Document()函数来获取网页文档对象,再通过IHTMLDocument 2获取接口指针之后,便可使用spHTML->get_body(&m_pBody)的到body对象。最后通过m_pBody->get_outerHTML (&bstrHTML Text)将页面的HTML文本保存到bstrHTMLText中,此时便可以在bstrHTMLText中查找“Forbidden!”字符串,用来判断网页的安全性,具体代码不再赘述。

最后还要注意的问题是防御工具对浏览器进行了两次跳转,而每一次跳转都会重新执行一次系统代码,因此当第一次跳转判断出网页的安全信息后,必须区分是第几次跳转,否则防御工具会无限次地查询跳转网页的安全信息,可以通过设置跳转计数位来加以区分。这样在第二次跳转的时候,系统不会对警告页面再次查询了,比如当输入“www.X.com”时,第一次跳转到“www.X.com”的警告页面“http://www.google.cn/interstitial?url=www.X.com”,第二次不会再跳转到“http://www.google.cn/interstitial?url=http://www.google.cn/interstitial?url=www.X.com”进行循环查询了。

3 结论

本文应用基于Google搜索引擎对恶意网页的检测,设计一种新的恶意网页防御技术,充分利用了Google所支持的安全页面诊断的权威性和实时性,节省了自行开发恶意网址库的时间,同时也利用Google作为蜜罐,避免本机遭受恶意网页的攻击。同样该技术的不足之处也在于过分依赖 Google搜索引擎,仅仅是被动地利用其安全页面诊断功能,在下一步的研究中将研究与Google搜索引擎的交互,改进其主动防御的功能。

[1] SANS. SANS Top-20 Internet Security Attack Targets (2007 Annual Update) [EB/OL].2007.http://www.sans.org/top20/.

[2] StopBadware.org恶意软件网站指南.[EB/OL].2007. http://www.googlechinawebmaster.com/2007/09/stopbadwareorg.html.

[3] 向讨厌的恶意软件说再见.[EB/OL].2008. http://www. google chinablog. com/2008/12/blog-post_12.html.

[4] Browser Helper Objects: The Browser the Way You Want It.[EB/OL].2004.http://msdn.microsoft.com/en-us/library/bb2 50436(VS.85). aspx.

[5] C++中使用 BHO来屏蔽特定网站.[EB/OL].2009.http://www.hacker.com.cn/article/view_15250.html.

猜你喜欢

重定向搜索引擎警告
实验室警告
“毁容”警告:你的“牙龈线”正在后移
解决安卓文件夹乱象
重复压裂裂缝重定向的措施研究
4G伪基站的监测定位与规避协同分析
网络搜索引擎亟待规范
锐志车ABS、VSC、防滑警告灯点亮
基于Nutch的医疗搜索引擎的研究与开发
广告主与搜索引擎的双向博弈分析
基于马氏体重定向的铁磁形状记忆合金本构理论分析