0 网络钓鱼形势分析
IE7浏览器开始加入反钓鱼功能,这个功能成为浏览器安全功能的一个选项 - 仿冒网站筛选器。各类IM软件,如QQ等开始出现提示用户防止被网络钓鱼的安全信息。电子商务、门户、SNS、BLOG等大部分Web2.0热门网站,也 开始公告用户防止被网络钓鱼的安全信息。
在传统的利用系统漏洞和软件漏洞进行入侵攻击的可能性越来越小的前提下,网络钓鱼已经逐渐成为黑客们趋之若鹜的攻击手段。同时无论网络相关的客户端软件还是大型的Web网站都开始发觉网络钓鱼已经成为了一个严峻的问题,并积极防御。
1 网络钓鱼原理分析
网络钓鱼属于社会工程学攻击的一种,简单的描叙就是通过伪造信息获得受害者的信任并且响应,由于网络信息是呈爆炸性增长的,人们面对各种各样的信息往往难以辨认真伪,依托网络环境进行钓鱼攻击是一种非常可行的攻击手段。
网络钓鱼从攻击角度上分为两种形式,一种是通过伪造具有“概率可信度”的信息来欺骗受害者,这里提到了“概率可信度”这个名词,从逻辑上说就是有一定的概 率使人信任并且响应,从原理上说,攻击者使用“概率可信度”的信息进行攻击,这类信息在概率内正好吻合了受害者的信任度,受害者就可能直接信任这类信息并 且响应。而另外一种则是通过“身份欺骗”信息来进行攻击,攻击者必须掌握一定的信息,利用人与人之间的信任关系,通过伪造身份,使用这类信任关系伪造信 息,最终使受害者信任并且响应。
相信大家也经常遇到第一种形式的网络钓鱼攻击,比如形形色色的虚假中奖信息等。在今天这个Web2.0大行其道的网络上,使用Google、百度来查询姓 名都有可能得到真实的信息,大型的SNS网络社区一个名字就能查询出和你所有相关的人的敏感信息,个人隐私几乎都已经不复存在,如果这类敏感信息被用作第 二种形式的钓鱼攻击,后果将不堪设想。同时这两种形式的攻击原理也被常用作web蠕虫的传播手段,比如利用web应用的消息功能传播蠕虫链接和恶意代码 等,当你收到朋友的信息可能就会直接打开、浏览,蠕虫得以进一步的传播。这里因为网络钓鱼的敏感性,我就不再列举其他实例,下面介绍一些可以被用作网络钓 鱼的Web攻击技术。
2 URL编码结合钓鱼技术
首先我们要明晰一个概念,浏览器除了支持ASCII码字符的URL,还支持ASCII码以外的字符,同时支持对所有的字符进行编码。URL编码就是是将字符转换成16进制并在前面加上“%”前缀, 比如我们将GOOGLE的域名后缀.cn进行URL编码:
http://www.google%2E%63%6E
“.cn”这三个字符就是以每个字符的16进制形式加上“%”前缀,浏览器和服务端都能够正常支持。原理分析到这,一个攻击者是怎么通过URL编码 进行钓鱼攻击呢?我们知道钓鱼攻击者常用的攻击伎俩就是混淆URL,通过利用相似的域名和内容来骗取受害者的信任,这里就存在一个相似度的值,通过URL 编码就能提高URL的相似度,假如我们拥有任意一个y19ml1.cn这样的垃圾域名,使用子域名配合URL编码就能提高相似度,比如先制造一个 http://www.google.cn.y19ml1.cn的子域名,通过URL编码我们将得到如下URL:
http://www.google.cn%2E%79%31%39%6D%6C%31%2E%63%6E
可以想象,一个普通用户在浏览信任度极高的网站时,被攻击者使用“概率可信度”信息和“身份欺骗”信息配合相似度极高的URL,在惯性思维下很难分辨一个URL的真伪。
3 Web漏洞结合钓鱼技术
近两年来,XSS漏洞开始成为Web漏洞中的一个大热门,XSS漏洞的特性就是能够在网页中插入javascript运行,javascript几乎能做 任何事情,传统的XSS漏洞攻击可能是直接获取客户端和服务端的会话,可能是制作Web蠕虫攻击整个Web服务业务,撇开利用XSS漏洞针对Web服务进 行直接攻击的风险,XSS漏洞还能被用作钓鱼攻击!为了更深入了解XSS钓鱼的危害,我这里举一个简单的例子,网页中被插入任意的javascript运 行,是能够做到直接篡改页面的,将如下的javascript代码放入任何一个已有内容的网页,将清空原有内容被写入任意内容。
window.onload=function Phish(){
document.open();
document.clear();
document.write(’Phshing Attack By 80sec’);
document.close();