分析网络钓鱼的原理及防御措施

IE7浏览器开始加入反钓鱼功能,这个功能成为浏览器安全功能的一个选项 – 仿冒网站筛选器。各类IM软件,如QQ等开始出现提示用户防止被网络钓鱼的安全信息。电子商务、门户、SNS、BLOG等大部分Web2.0热门网站,也开始公告用户防止被网络钓鱼的安全信息。

    在传统的利用系统漏洞和软件漏洞进行入侵攻击的可能性越来越小的前提下,网络钓鱼已经逐渐成为黑客们趋之若鹜的攻击手段。同时无论网络相关的客户端软件还是大型的Web网站都开始发觉网络钓鱼已经成为了一个严峻的问题,并积极防御。

    0×01 网络钓鱼原理分析

    网络钓鱼属于社会工程学攻击的一种,简单的描叙就是通过伪造信息获得受害者的信任并且响应,由于网络信息是呈爆炸性增长的,人们面对各种各样的信息往往难以辨认真伪,依托网络环境进行钓鱼攻击是一种非常可行的攻击手段。

    网络钓鱼从攻击角度上分为两种形式,一种是通过伪造具有“概率可信度”的信息来欺骗受害者,这里提到了“概率可信度”这个名词,从逻辑上说就是有一定的概率使人信任并且响应,从原理上说,攻击者使用“概率可信度”的信息进行攻击,这类信息在概率内正好吻合了受害者的信任度,受害者就可能直接信任这类信息并且响应。而另外一种则是通过“身份欺骗”信息来进行攻击,攻击者必须掌握一定的信息,利用人与人之间的信任关系,通过伪造身份,使用这类信任关系伪造信息,最终使受害者信任并且响应。

    相信大家也经常遇到第一种形式的网络钓鱼攻击,比如形形色色的虚假中奖信息等。在今天这个Web2.0大行其道的网络上,使用Google、百度来查询姓名都有可能得到真实的信息,大型的SNS网络社区一个名字就能查询出和你所有相关的人的敏感信息,个人隐私几乎都已经不复存在,如果这类敏感信息被用作第二种形式的钓鱼攻击,后果将不堪设想。同时这两种形式的攻击原理也被常用作web蠕虫的传播手段,比如利用web应用的消息功能传播蠕虫链接和恶意代码等,当你收到朋友的信息可能就会直接打开、浏览,蠕虫得以进一步的传播。这里因为网络钓鱼的敏感性,我就不再列举其他实例,下面介绍一些可以被用作网络钓鱼的Web攻击技术。

    0×02 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的真伪。

    0×03 Web漏洞结合钓鱼技术

    近两年来,XSS漏洞开始成为Web漏洞中的一个大热门,XSS漏洞的特性就是能够在网页中插入javascript运行,javascript几乎能做任何事情,传统的XSS漏洞攻击可能是直接获取客户端和服务端的会话,可能是制作Web蠕虫攻击整个Web服务业务,撇开利用XSS漏洞针对Web服务进行直接攻击的风险,XSS漏洞还能被用作钓鱼攻击!为了更深入了解XSS钓鱼的危害,我这里举一个简单的例子,网页中被插入任意的javascript运行,是能够做到直接篡改页面的,将如下的javascript代码放入任何一个已有内容的网页,将清空原有内容被写入任意内容。

    window.οnlοad=function Phish(){

    document.open();

    document.clear();

    document.write(‘Phshing Attack By 80sec’);

    document.close();

    }

    当钓鱼攻击者利用网站的Web漏洞进行钓鱼,网站管理员到这里应该意识到问题的严重性,这类钓鱼攻击并不是针对网站的Web服务业务进行攻击,而是利用网站的信任度对网站所有的用户进行攻击!当用户进入自己信任的网站而浏览的却是钓鱼网页,我想对网站的打击是无法评估的。

    0×04 伪造Email地址结合钓鱼技术

    伪造Email地址乍看起来很困难,但是经常接触邮件服务器的技术人员应该知道,我们是可以通过邮件代理服务器发送匿名邮件的,在没有邮件代理服务器的情况下可以在本地架设服务器发送匿名邮件,甚至可以直接利用WEB脚本程序使用虚拟主机、WEB服务器的邮件服务发送匿名邮件。通过邮件代理服务器可以直接修改邮件原始信息中MIME头的FROM字段,也就是发件人地址,利用这种匿名邮件可以伪造任何人的身份发送邮件。如下面的部分原始邮件头信息:

    Received: from localhost (unknown [210.191.163.131])

    by 192,168.1.1 (Postfix) with ESMTP id 8D20F606002

    for <[email protected]>; Tue, 23 Dec 2008 10:03:08 +0800 (CST)

    Subject: 中奖了!

    MIME-Version: 1.0

    From: “admin” <[email protected]


To: [email protected]

    MIME头中的FROM字段是可以控制的,我们这里伪造成了[email protected]的地址,而现在所有的邮件服务商对这类匿名邮件并没有提供防护措施,造成的后果是一个钓鱼攻击者能够伪造任何人、任何官方的身份发送钓鱼邮件,而一个普通用户是完全无法辨认信息真伪的。

    0×05 浏览器漏洞结合钓鱼技术

    浏览器的地址栏欺骗漏洞和跨域脚本漏洞可以实现完美的钓鱼攻击,地址栏欺骗漏洞实现的效果就是攻击者可以在真实的URL地址下伪造任意的网页内容,跨域脚本漏洞实现的效果是可以跨域名跨页面修改网站的任意内容,当我们访问一个URL返回给却是攻击者可以控制的内容,如果这里伪造是一个钓鱼网页内容,普通用户将无从分辨真伪。浏览器的相关漏洞,具体可以参考liudieyu发现的Chrome浏览器地址栏欺骗漏洞、80sec发现的ms08-058和第三方浏览器的部分漏洞。

    这种钓鱼攻击是最严重的,因为这类攻击利用的是客户端软件漏洞,完全不受服务端程序和网络环境的限制,是网站管理员无法控制的,大家只能在知道漏洞的情况下积极打上软件补丁,或使用安全软件修补客户端软件的漏洞。

    0×06 如何防范网络钓鱼攻击

    网络钓鱼攻击从防范的角度来说也可以分为两个方面,一个方面是对钓鱼攻击利用的资源进行限制,一般钓鱼攻击所利用的资源是可控的,比如WEB漏洞是Web服务提供商可以直接修补的,比如邮件服务商可以使用域名反向解析邮件发送服务器提醒用户是否收到匿名邮件,比如利用IM软件传播的钓鱼URL链接是IM服务提供商可以封杀的。另外一个方面是不可控制的行为,比如浏览器漏洞,大家就必须打上补丁防御攻击者直接使用客户端软件漏洞发起的钓鱼攻击,各个安全软件厂商也可以提供修补客户端软件漏洞的功能。同时各大网站有义务保护所有用户的隐私,有义务提醒所有的用户防止钓鱼,提高用户的安全意识,从两个方面积极防御钓鱼攻击。

    0×07 内容关键字匹配URL主动检测钓鱼攻击

    现在的网络钓鱼攻击并未做到主动防御,不过欣慰的是可以看到国内如QQ等IM软件,开始提醒用户不要打开未知的不可信的链接,防止用户被欺骗。网络钓鱼攻击还可以通过内容关键字匹配URL进行主动检测,我们知道现在网络上的网页木马等恶意代码横行,杀毒软件提供了查杀网页恶意代码的功能,这类查杀方式最初是使用恶意代码关键字特征进行查杀,而网络钓鱼也是拥有钓鱼关键字,这些关键字大都具有趋利性质,充满了大量的虚假信息,这类信息也是具有特征的,比如中奖、各类银行账号、虚假电话号码等,我们可以按照杀毒软件的模式建立起一个钓鱼的关键字特征库配合URL特征进行匹配分析,在一定程序上主动检测或防御钓鱼攻击。

    0×08 后记

    除开使用Web攻击技术进行钓鱼,攻击者还可以使用网络协议漏洞进行钓鱼,比如大家已知的ARP攻击、DNS劫持、DHCP劫持漏洞等,总之网络攻击技术是层出不穷的,但防御手段也会随着攻击技术不断更新,只有保持积极防御的态度才能做到最大化的防御。另外补充一点,我国对于网络钓鱼诈骗的立法还不够完善,一些网络钓鱼诈骗在定罪量刑时仍沿用了传统的对定罪量刑标准,不能体现网络犯罪等新型犯罪的特点,比如诈骗金额在2000元以下的罪案并没有在刑法中量刑,这对于网络钓鱼诈骗金额的小额多量的分布式特性是无法很好的取证的,希望国家能进一步完善相关法律。

 

你可能感兴趣的:(分析网络钓鱼的原理及防御措施)