2007年11月20日星期二

[Paper]Anti-Phishing HowTo

Author: axis

Date: 2007-11-20

Team: http://www.ph4nt0m.org

Corp: Alibaba B2B Corp. / Information Security

前言:

本文是一篇总结性质的文章。关于钓鱼与防钓鱼方面的paper很多,也许本文并没有什么新观点,也没有面面俱到。本文着重从互联网企业角度来谈谈如何防钓鱼。本文尽可能用简明的语言把问题描述清楚,但是某些涉及到细节的地方由于商密问题,不做详细解释,但是从我说的原理中完全可以推导出应该如何来做。希望本文对一些朋友能有帮助。

1. Pharming & Phishing

Pharming的概念和Phishing还是有点区别的。

Pharming:此类攻击有多种方式,但目的都是让目标域名指向虚假IP

可能使用的技术手段有:通过恶意软件修改hosts表,或者在DNS服务器中将网站域名指向恶意网站,或者通过类似DNS PoisoningArp欺骗等手段来实现。Pharming攻击的过程中在开始阶段用户难以发现。

Phishing则往往是伪造一个url,或者是欺诈性邮件里包含一个指向恶意网站的链接,通过类似手段来达欺骗用户访问钓鱼网站的目的。

2. Know Your Enemies

2.1 URL欺骗

Phishing Attacks往往是伴随着URL欺骗的,即用类似的URL,让用户误以为是真实网站,从而被欺骗。

l 例如:http://www.taobao123.com

l http://www.alibeba.com

2.2 伪造页面

钓鱼网站最直接的表现形式即为伪造页面。通过前面的url欺骗后,再伪造页面来进一步欺骗用户。如果欺骗成功,则用户到了此时会完全相信该网站的真实性。

伪造页面的图片、框架都可以是引用真实网站的,但是攻击者在需要的地方则改成了他自己phishing的东西。

伪造页面的危害本质在于,他利用了网站的信用度,欺骗了用户。

如下模仿163的登录页面来获取密码

2.3 邮件钓鱼

邮件钓鱼是发送一封包含欺骗性内容的邮件,以达到欺骗用户的目的。

如下例,发件人冒充成yahoo人员

在邮件正文中,则欺骗用户访问钓鱼网站


2.4 IM中实施钓鱼攻击

现在在各类流行的IM中都存在各种欺诈信息。

这类欺诈信息有的是直接骗取用户去访问伪造页面过的钓鱼网站,有的也是直接欺诈银行卡密码等敏感信息。

3. Anti-Phishing Solutions

3.1 在用户login之前实施防钓鱼措施

关键理念: 识别机器而不是识别用户。

成功案例:YahooAlibaba

如图,登录入口的右上角有一个用户事先设定好的“登录印章”。用户在登录时只要看到这个印章,则可确认网站的真实性。

通过cookie来判断网站的真实性。因为浏览器只有在访问到真实的网站时,才会调用到事先保存好的真实cookie,所以可以通过这个方法来判断网站的真实性

通过其他辅助手段让cookie可以在用户清除cookie时仍然存在,以及使得登录印章的cookie在不同浏览器比如firefoxIE的情况下通用。技术实现在此不再赘述。目前yahooalibaba都采用了这种做法。

注意: 此方法的精华是让用户参与这个过程,但是在实际实施过程中可能会遇到对用户要求门槛较高的问题,这时候可以根据具体需求,来调整用户是否参与该过程,以及保护用户范围。(即保护所有用户,还是只保护网站注册用户)

使用登录印章是一种主动的积极防御,难点在于用户意识习惯的培养。

可以考虑将登录印章放在页面最顶上的top页面里,摆在网站logo旁边的显眼位置,这样对于伪造页面的钓鱼网站来说是一个致命的打击。(有的钓鱼网站不需要用户登录,而是以欺诈信息为主)

3.2 使用浏览器Toolbar防止钓鱼攻击

成功案例:

Microsoft Phishing Filter Ali Toolbar等。

浏览器的Toolbar 在与网站业务整合时,也能够附带有防钓鱼的功能.

主要功能是:

Ø 对比访问url与已知恶意网站、或者可疑的url,发出报警或阻断.

Ø 提供数据库在线更新

Ø 让用户可以自行报告恶意网站



核心设计理念:

l 对知名网站url做拼写检查

l Update恶意网站数据库,对知名恶意网站做阻断

l 让用户帮助完善恶意网站数据库

使用浏览器toolbar的难点在于推广,以及用户的抵制心理。 同时这种防御是一种消极的防御。

3.3使用邮件过滤技术实现反邮件钓鱼

成功案例:微软等

l 验证sender id

注意:邮件的发件人是可以伪造的,许多网站在展示邮件的时候,没有验证邮件发件人的所在域和发送邮件的服务器是否一致,这样导致攻击者可以伪造成系统或其他任何人来发送欺诈邮件。事实上查看原始邮件头是能识别的,但是许多知名邮件服务提供商都没有做这一步。

l 验证邮件中的恶意链接,并报警

可以采用与toolbar中同样的做法,对于已知的,或者是怀疑的链接,进行报警或者阻断.

3.4 IM中的防钓鱼措施

IM中的欺诈信息非常多,常见的做法是对恶意链接报警或者阻断。

3.5发布对外接口来收集钓鱼网站信息

用户往往是最快发现钓鱼网站的,通过客服、用户举报,能够收集到很多钓鱼网站的信息。

在发现钓鱼网站后,常见的做法是联系钓鱼网站服务器所在的服务商,关闭钓鱼网站。

3.6长期的教育是必不可少的

防钓鱼是一个长期而艰巨的过程。

人民币在设计上内置了许多难以模仿的地方,比如水印、盲点等,每个人都会通过这些特征来判断人民币的真伪。因为这些特征都是深入人心的。

所以长期的教育是必不可少的,需要慢慢培养用户的习惯。

4. Conclusion

钓鱼的问题是由于协议和标准设计的缺陷造成的,很难被消灭。本文总结了一些常见的钓鱼手段和防御方法。

在几种方案中,我更倾向于第一种使用登录印章的主动防御,虽然门槛高一点,但却是一种主动的防御。我们需要为用户提供一种途径,满足用户在安全方面的需求。

在实际实施过程中,可以几种方案有机结合,以取得较好的效果。

钓鱼攻击是一种典型的以损害用户利用为目的的欺诈行为,希望国家相关部门能够尽早完善相关法规,使得这一攻击行为的定义,与防范的手段变得规范化起来。

没有评论: