本文是一篇技术分析文章,简单分析了163等大容量信箱服务器存在的巨大安全隐患,文章本身只是说说163信箱的注册和转发,没有太高深的技术,直接看就能明白,但危害却是无比巨大的,绝对值得引起重视!
我们先来注册一个163的信箱,在这个过程中你会惊讶地发现居然没有认证码的输入!这么说我们可以用很多工具自动完成批量的注册通行证的过程了,不需要人工的干预。继续注册完成并激活,最后进入信箱。
这时候创建一个邮件发给自己,再点右上方的转发,看看发生了什么?如图1所示。
输入名字然后发送,得到图2的发送成功页面。
在发送成功这个页面上点鼠标右键,然后选“刷新”。页面的提示:“不重新发送信息,则无法刷新网页”,如图3所示,此时我们选“重试(R)”,关键就在这里了:我们如此连刷几次,回头看信箱中的文件夹,赫然发现自己信箱的信多了好多!
进去一看都是我刚才不断刷新给自己发的信,全是一样的!这说明我们可以无限制地转发信件,可以利用这个漏洞轻松申请信箱,然后任意转发信件,安全隐患出来了!
我们可以制造一个带有1M大小的附件,然后把这个附件转发给自己,再在转发页面刷新260次,这样我们只传输了1M大小的附件,和260次的页面访问,按5KB/页计算(实际大约是发送一个<512的URL,得到一个静态无图片的页面,见图2的右边,大约2K的宇数)5KB×260+1MB=2.3MB,然而163的信箱空间被使用了1MB×260=260MB,这时候我们利用了2.3MB数据流量实现260MB的空间占用,效率达到1:100,在第二个信箱020_mail开始的信箱使用的第一桶金(第一个1MB的附件可以由010_mail转发给他)这样他需要的数据流量达到了1.3MB左右,就能占用260MB的空间,效率就达到了1:200。这样可以轻松轰炸掉任何一个电子信箱,合法的邮件地址,用合法的服务器,通过合法的过程,简单轻松快速进行电子邮箱轰炸,使用代理还没有暴露的危险,后面那260次的重复刷新工作完全可以交给按键精灵来完成。
这只是一个单人单机的攻击,没有人会愿意这样做,我们考虑写程序完成的可能性。在整个登录的过程中,我们发现所有的数据都是一个提交的过程,没有需要我们进行智能判断的地方,比如认证码的输入,图片的识别等等,唯一可能出意外的就是用户名被使用,但是一个好的用户名生成程序碰到这样的概率非常低。那么就是说一个好的按键精灵脚本就能够智能完成这样一个注册过程和转发过程,唯一要人工操作的就是那第一桶金(第一份1MB大小的邮件)。熟悉程序的朋友就会发现这其实可以用Winsock程序轻松实现完整的注册、登录、转信过程:先由人工指定一个带有第一桶金的信箱,然后程序开始运行→注册一个新信箱→进入信箱→由指定的信箱把1MB的附件发送到新注册的信箱→在新注册的信箱里面自己转信给自己→重复259次→退出信箱→注册一个新信箱→进入信箱……一直重复下去,一个更完善的程序还可以加入代理的调度使用,多线程并发,转信对象的随机调度,转发频率的动态控制等等。
我们计算一下程序攻击的有效性和效率、危害性:以3秒转发一封信计算,260份信需要780s,加上注册过程大约有9个步骤,用程序完成大约就是60s左右(实际数字要比这些数字小得多,而且可以程序动态控制)。就是说一个线程从攻击到结束是840s,就是14分钟,我们用一个512K的ADSL猫的速度计算,大约可以开到80个线程,14分钟完成80×260M=20800MB的空间占用,平均1485.7MB/分,就是1.48G/分,换算一下88.8G/小时,2T/天,服务器每秒磁盘的读写量需要分别达到24.7MB/S才能满足。在实际攻击中,只要服务器能响应,1份/线程/秒完全可以达到,就是服务器1MB/秒/线程的I/O,多少线程就是多少MB/秒/线程的I/O……不敢继续想象下去了!如果把大容量的信箱推广到所有邮件服务器,那网络带宽绝对会被这些高性能的服务器冲垮掉!
攻击扩展:如果攻击过程把转信控制成163发到Sohu,Sohu发送到Sina,Sina发送到163,在163、Sohu、Sina分别开到1000线程,那么它们相互的数据传输量将达到1000MB/S,这分别需要10Gbs的带宽互联才能完成,每个邮件服务器集群都需要1GB/S的I/O,服务器空间也是1GB/S的速度消失,这样的攻击我们只需要提供3000并发Winsock线程就能完成。
攻击的隐蔽性方面可以全部使用代理完成,访问模拟IE,而且信箱申请每IP的重复时间都达到10分钟以上,服务器难以控制,如果服务器限制时间长可以通过增加代理的数量来解决。
攻击防御:增加智能认证,在注册的过程,还有转发信的过程中增加图片数字的识别,转信成功的页面刷新也不重复转信,就能解决这个问题了。
这个攻击危害巨大,有磁盘空间拒绝服务、带宽拒绝服务,也影响大家的邮件的正常收发。虽然没有进行实地测试,但是我在自己搭建的MUD信件平台经过测试,测试结果是硬盘空间急剧增加,又由于MUD信件平台的磁盘处理没有做好,导致I/O满负荷,CPU占用率100%,操作系统假死,攻击停止后需要非常长的时间系统才能调整恢复正常!