(五)
在事后的故障回顾会议上,被问及这次流量异常问题应该由谁负责时,大家一下子都懵掉了。这自然是理所当然的,毕竟对于这种来自于外部莫名其妙的流量险些导致事故的事情,谁都不想负责。但是发生了这么严重的事情,总得有人负责,于是在激烈地辩论了半天之后,大家一致认为这次流量异常和遭到外部攻击有着密不可分的联系(至少从流量瞬间飙高又掉回正常水平的表象上看是这样的),所以大家一致要求安全组尽快查明此事的原因。会后,老板把这件事情交给了李超。因此,李超这一天没能像往常一样准时下班。
到了晚上十一点多的样子,办公室里其他的灯都已经被关掉了,而李超头顶的灯还一直亮着。此时李超正一筹莫展地坐在电脑前,老板给他留下了一个难解的谜题,而他几乎穷尽了所有的方法。
最初,李超分析了异常请求的业务报文格式,他发现这些请求并不是那种由黑客通过脚本拼接出来的有规律的试探性请求。相反,李超发现这些请求就是普通用户发起的合法请求。但倘若是合法请求,为何能够在短时间内能够达到那么大的请求量,难不成在那个时间点上,全世界的人民都来公司的网站上购物?这样的假设显然不合理,李超摇了摇头,公允地说,目前公司还没有那么大的影响力。
之后,李超又对异常请求的IP地址归属地做了统计,这次李超发现这些IP地址均匀地分布在世界各地,而且除了来自于几个及个别的IP地址上的请求数比较多之外,来自于其他IP地址上的请求数基本上也就是一两个的样子。也就是说,当时大多数用户可能仅仅访问公司网页一次或者两次的样子。而至于那几个及个别的IP地址,李超一看就知道那是代理服务器的IP或者是出口网关的IP地址。单从这几个公共IP地址来看是看不出什么名堂的,不过知觉告诉李超,来自这些代理服务器或者出口网关背后的每一个IP地址的访问次数应该同样只有一到两次。总之,从IP地址上分析,似乎也没有发现什么破绽。
不过,在分析的过程中,李超还是发现了两个疑点:其一,用户的行为实在让人费解:来自于每个IP地址的访问量只有一到两次,这对于电子商务网站来说是不可思议的,因为李超知道一次购买最快的方式也要辗转四个页面,期间用户会多次访问公司服务器;其二,遭到攻击时总访问量让人费解:李超搜索了一下目前全球接入因特网的终端数量,发现当时的总访问量几乎是1年前接入网络电脑(含移动终端)数目的一半,换句话说,事件发生的时候,全球有一半的网络用户都在访问公司的网站——这当然是不可能的。
但是不可能的事情已然成了事实,李超觉得这其中肯定有哪里不对。李超靠坐在椅子上,仰头闭眼冥想:有没有可能是黑客所为呢?一个能够把全世界一半的电脑都变成“网络僵尸”为己所用的黑客?
哈哈哈,李超几乎笑出了声,这种桥段只可能出现在电影里吧!
最后,黔驴技穷的李超放弃了抵抗,抓起放在桌上的手机浏览新闻。没过多久,他再次(上午的时候有一次)被一则新闻吸引:
“黑潮来袭:全球各大网络公司均遭黑客突袭”
李超瞄了一眼新闻的发布时间,确认是刚刚发布的。霎时见,好像是发现了什么惊天秘密似的,一股莫名的兴奋感涌上李超心头,他用几乎颤抖着的大拇指点开新闻,在焦虑中等待页面的刷新,这还是李超第一次觉得自己的手机速度不够快——不过最后总算是进入了新闻正文。
按这则新闻的说法,李超得知,在公司遭受攻击之后到现在的这几个小时里,全球各大网络公司都先后受到了类似的攻击。新闻说,虽然攻击行为持续时间长短不一,但是攻击的表征却出奇的一致——请求IP地址均匀地分布在全球。新闻还说,目前各大公司的安全人员已经展开了调查,只是因为攻击不具有特征性而很难下定论,不过各个公司的安全人员一致认为这是一场有预谋有组织的黑客攻击。最后,新闻还在末尾附上了一个表格,这个表格统计了各个公司遭受攻击的持续时间。
看到最后,李超笑了,因为在那个表格里,向来安全问题很多的“巨软”公司遭到的攻击时间最短。而他曾经的竞争对手,joojIe则被持续攻击了三十五分钟之长。等一会儿,李超灵光一现,这么说攻击时间的长短是不是和攻击的难易程度成正比呢?或者,是不是说“巨软”在几分钟之内就被攻击者攻陷了,而joojIe则坚持了三十五分才被攻陷?
带着这样的疑问,李超把先前分析过的用户请求数据包重新导入编辑器,这一次他决定仔细地研究一下攻击时请求的数据包。
功夫不负有心人,这一次李超在数据包里一个本已废弃的字段上发现了一串奇怪的字符,他把这段字符串复制到字符解析器里,知觉般地以ASCII编码翻译,奇迹出现了——总得来说,编译后的字符串还是一堆乱码,不过在字符串最开始的地方赫然写着一个眼熟的词组(一般写计算机领域管这个叫魔数)——BETAMORE。
BETAMORE?什么意思?
李超一下子没有反应过来,呆呆地握着鼠标坐了半天。许久之后,他才意识到BETAMORE就是“贝塔猫”,这真是个天大的发现!也正是因为这个发现太大了,李超不知道如何表达自己的想法,所以他的第一反应是骂了句“我操”,紧接着,李超的脑子里变得一片空白——他完完全全被现在的情况搞蒙了。
时间来到第二天早上五点,窗外的天空已经慢慢地亮了起来,虽然加了一宿班,但此时的李超却是前所未有的兴奋(加班加到如此的兴奋还是头一次),因为他感觉自己离真相越来越近了。
在过去的几个小时里,李超做了如下三件事情:
第一,李超写了一个脚本确认了所有的请求报文里都有BETAMORE这个魔数。
第二,虽然不知道原理,但是李超确认公司的系统已经完全被攻陷了。
第三,同样不知道原理,但是李超同样确认所有接入网络的终端设备早就在某一刻被攻陷了。
这一切似乎都和“贝塔猫”有着千丝万缕的关系。
最后,李超得出了一个让他十分震惊的结论:可能有人使用人工智能“贝塔猫”劫持了全球互联网!
这个时候,不知道为什么,李超顺势抓起手机——不知道为什么,现在他特别想给自己的老同学安德森打个电话,但是一想到自己的智能手机可能早已被“贝塔猫”入侵了,他立马放弃了这个念头。
不料,刚刚放弃打电话的念头,李超的手机便响了起来。本来已经非常惶恐的李超被突然响起的电话铃吓了一跳,差点将手机扔在了地上。李超拿稳手机,看到来电人正好是安德森。起初李超有点犹豫不决,不过最后还是接通了电话。
“嗨,李超同学,怎样最近?”现在是早上五点,但安德森的语调却很轻松。
“不怎么样,讲真。”
“是吗?”安德森缓慢的语调透过听筒,让这边的李超愈发的急躁。
“是的,是的,安德森,让我长话短说,”李超把手机放到眼前看了时间,之后又把手机对到耳边,对着话筒说,“一个小时以后,老地方见。”
听筒里的那句“好的”好的还没有传到李超的耳朵里,李超便挂掉了电话,胡乱收拾好东西,行色匆匆地离开了公司。
(待续)
长按下面二维码,关注王晓辰的公众号,收看更多原创故事
领取专属 10元无门槛券
私享最新 技术干货