如果你关注过信息安全相关的新闻,一定对0 day这个名词不陌生。它指的是软件(或系统)中的安全漏洞,这些漏洞已经被人发现,但并未被软件的提供商所知晓。
最早,x day这种计数法指的是软件已经公开发售的天数,比如发售的第1天,就叫1 day。被黑客团体借用之后,0 day的意思就成了“尚未公开发售的软件中包含的安全漏洞”。在软件的载体从光盘变成在线服务之后,0 day也顺理成章指称各种服务系统中的漏洞。
通常,漏洞曝光得越晚,软件或系统的提供商给出补丁的几率就越低,一旦给出了补丁,就会被越来越多的用户所应用,那么利用此漏洞进行攻击的成功率就会下降。而0 day类型的漏洞,因为尚未被提供商所知晓,所以就不存在修复的补丁(除非“凑巧”被其它补丁修复),那么被修复的几率就是零。
在软件已经定义世界的今天,许多人尚未认识到,我们在享受软件带来便利的同时,也处于0 day的黑暗丛林之中。这丛林伸手不见五指,又没有丝毫规则,在已知和未知的地方,无数人在摩拳擦掌、蠢蠢欲动,在他们眼中,小到你我这样的普通人,大到跨国公司、政府机构,都不过是待宰的羔羊。
不信?请看看下面这几个故事。
在过去很长的时间里,大家都不知道,找到软件的漏洞到底有什么用。比如一个电风扇控制程序,你大概可以找到某个漏洞,越过管理员,操纵风扇的挡位,甚至让风扇反转。但是,能做的也仅此而已,它更像某些爱好者的恶作剧,适合出现在肥皂剧中。
事实上也确实如此,在早年,寻找软件的漏洞更多是一种业余爱好,或者一种在某些极客群体中流行的亚文化现象。有一个现象可以说明这个例子,在那些年,欧洲技术人员发现的漏洞远远超过北美的技术人员,原因是欧洲有相对完善的福利制度,父亲也可以休很长的产假,于是,他们有大把的时间来钻研这回事。
在二十多年前的美国,有一家叫iDefense的公司,一直从事“网络安全”相关的业务,这家公司的员工都是“正经”的IT人员,穿圆领衫,喜欢在没有窗户的地下室工作,日常以三明治和能量饮料为饮食,技术也不错。
然而,这家公司一直在亏损,因为当时大家都不知道“网络安全”到底意味着什么,它的业务模式更像亡羊补牢,企业已经被黑客盗走资料之后,才想起找专门做这方面业务的公司来救急。但平时,如果有人找到软件或系统的漏洞,服务提供商并不重视,反而认为这是在给自己找麻烦——你知道就知道了,但不要大肆宣扬,不要敲诈我,就没事。
所以,经营惨淡的iDefense申请在2001年9月11日破产——这可真是一个好日子,如果恐怖分子劫持的飞机没有撞击世贸大厦,它可能就真的破产了。然而9·11袭击不但推迟了裁决的日期,而且改变了裁决本身。一个月后,一位法官裁定,美国需要更多这样的公司,所以iDefense不需要强行清算,而可以按照破产法相关条款清算重组。
iDefense等来了英国投资商的60万美元,用于清算重组。继而,他们也打电话给之前就表达过兴趣的德州买家John P.Watters,告诉他可以用五百万美元的价格买下公司。
“别做梦了,我跟你们一样清楚,你们的钱很快就会烧光,到时候再给我打电话吧。”
John预料的没错,十个月之后,英国人告诉他,公司马上就要关门大吉,除非John买下公司的股票。这次John松口了:“我愿意花10美元,买下这间公司。”
2002年8月,John来到iDefense的时候,这家公司已经是风雨飘摇,超过2/3的员工都被裁员了,剩下的二十多个人已经六个月没有薪水。他们好奇地盯着这个来自德州、不懂技术、满脑子都是商业的大块头,搞不清楚他到底要做什么。
John做的第一件事让大家松了一口气,他坐下来,逐个给大家开薪水支票。同时,他还给高级员工提供一个选择:要现金支票,还是要股权?结果,所有人都选择要现金,未来到底会怎么样,大家已经彻底丧失了信心。
当时,iDefense主营的是一套叫iAlert的系统。今天看起来,它其实很简陋,更像一个黑客与安全爱好者的论坛,大家发现了安全漏洞之后贴在上面,iAlert继而通知对应的软件开发商,并收取信息服务费用。当时市面上有很多这样的生意,价格压得很低,许多漏洞警报甚至都是免费提供的。在那个时候,指出系统的漏洞并不是什么好生意,甚至可能被大公司以损害名誉为理由告上法庭。对大公司来说,“这些人完全就是把自制炸弹丢进儿童乐园的恐怖分子”,必欲除之而后快。
新浪推出潮流社区Hobby,系统欢迎语包含元宇宙:3月14日消息,新浪同城于近日正式上线了一款社区产品“Hobby”,产品定位是年轻人的潮流探店共创社区。其App内的系统消息中包含有“玩转潮流文化元宇宙”的欢迎语,可见这款社交产品带有元宇宙的属性。(新言财经)[2022/3/14 13:55:35]
市场行情如此,iDefense的生意当然不会好。
既然iDefense的员工都对未来不抱期望,John也就得到了大家的共识,你买下了公司,你可以按照自己的想法,随便折腾。
于是,John真的开始了,他把公司原有的生意做了个180度的大转折。从生意人的角度,他把问题想得很清楚:iDefense不赚钱,并不是因为技术不行,而是商业模式不对,软件漏洞的价值没有被充分发掘出来。在原来的游戏里一共有三个角色:
漏洞发现者,大多数是以安全为业余爱好的家伙,找到结果也是“义务”发在网上交流,博得一些虚名,这些人并没有得到太多物质回报;
漏洞受害者,也就是软件的使用者,他们其实并不清楚有哪些漏洞,这些漏洞的危害有多大,往往已经被攻击了还蒙在鼓里;
漏洞修复者,就是软件的提供商,对他们来说“多一事不如少一事”,只要漏洞没有火烧眉毛,就不必着急修复,所以,哪些漏洞应当以什么方式修复,哪些优先哪些落后,都由他们说了算;
所以到了2003年,John要改变整个游戏规则:
对于漏洞发现者,每次为iDefense提供一个漏洞,就可以获得75美元的奖励;
对于漏洞受害者,iDefense会把这些漏洞“包装”好,证明它们的危害性,并按严重程度排序,客户只要订阅这项服务,就能及时知道自己面临哪些威胁和隐患,有足够的时间和动力去督促软件提供商修复;
对于漏洞修复者,iDefense也会及时提供关于漏洞的最新信息,但形势已经不是“补不补随便你”了,不及时修复,就会面临客户的巨大压力;
除此之外,整个生意要玩起来,还有一个关键点,如果被发现的漏洞是直接卖给iDefense的,那么在被修复或者被其他人买下之前,它处于保密状态,iDefense不会公开细节,漏洞的发现者也不能继续传播。这样,订阅iDefense服务的客户才会相信,iDefense指出这些“高危漏洞”,至少在一段时间里是可控的。
就这样,“发现安全漏洞”的游戏,仅仅因为多了iDefense这样的“中介”,就陡然一变,生出了无数的花样。2003年,iDefense就把订阅费从1万8千美元提高到了3万8千美元,仍然挡不住热情的客户。一个客户不愿支付每年2万7千美元的费用,过了一年不得不以45万5千美元的价格重签合同。一家政府机构原本的订阅价格是2万5千美元,终止合同之后再次上门,可以承受的价格已经到了每年150万美元……
你或许会怀疑这个游戏的有效性,认为75美元实在不多,所以收集不来多少有价值的漏洞。事实也确实如此,iDefense收集的前1000个漏洞中,许多都是没什么价值的垃圾。
但是不要忘了,互联网是没有国界的。75美元对发达国家的人来说不算大钱,对于不发达国家的人却意义非凡,每天在电脑前敲敲键盘、点点鼠标,就可以让自己吃饱穿暖,甚至可以让家人过上优渥的生活。在这笔钱的刺激下,广大不发达国家涌现出的极具天赋的黑客,成为了iDefense重要的源头活水。
某种程度上,这有点像石油的故事。在很长的时间里,人类只会收集地面上溢出的原油,其用途也仅限于照明,完全没有“行业”的说法;一旦发现石油的价值,就会有人热衷油田钻探,有人热衷石油加工……整个行业应运而生,蓬勃发展。
作为这个行业的开拓者,iDefense的归宿也可以作为行业发展的见证。2005年7月,在John花10美元买下iDefense之后差不多三年,他以4000万美元的价格,把公司卖给了VeriSign。
在John还没有卖掉iDefense的时候,他就发现事情有点不对劲。除了软件的提供商和使用者,还有一些人也对漏洞有兴趣。这些人的行为比较古怪,他们愿意支付更高的价格,在每个漏洞的收购价只有400美元的时候,他们可以开出15万美元的价格收购,要求也颇为特意,“继续对漏洞保密,不要告诉软件的提供商和使用者”。
2021年投资者已花费270亿美元购买NFT,OpenSea成最受欢迎买卖平台:12月6日,据Chainalysis发布的《2021年NFT市场解读》显示,截至2021年,投资者已花费270亿美元购买NFT(包括ERC-721和ERC-1155)。其中,OpenSea是最受欢迎的市场,2021年至今已收到价值超过160亿美元的加密货币。
此外,报告指出,NFT收藏家在项目发布之前加入社群并获得白名单购买资格,将有76%的几率在出售NFT时获利。而在没有获得白名单资格的情况下购买NFT,则只有29%的几率在出售时能从中获利。[2021/12/6 12:54:38]
John改造iDefense的思路,是通过强调软件漏洞的重要性,最终减少它们。安全漏洞在没有被厂商知晓之前可以视为0 day,一旦它被知晓,被重视,它就不再是0 day,这样世界上的0 day就越来越少。但是,看起来还有一些人并不希望消灭0 day,相反,他们希望让这些0 day保密,在世界上一直存在。
这些人是谁?他们为什么要这么做?
好奇之下,John盘问他们的来历,这些人语焉不详,只愿意承认他们是某些承包商。而John拒绝了他们的要求之后,这些人马上改换说辞,声称“暴露漏洞会危害美国的安全,因为软件的漏洞可以用来监控美国的敌人与恐怖分子。”
原来,这些人是美国政府的承包商。
John始终没有同意他们的要求,因为在他看来,这属于“自砸招牌”。如果有朝一日,他的客户知道iDefense在提供安全订阅服务的同时,竟然还私藏了一些安全漏洞,信任就会坍塌,生意必然化为泡影。
但是John不知道,“收藏”各种0 day的游戏,其实政府早就已经在进行,甚至比iDefense早得多。
2007年,情报显示,伊朗正在部署能制造核武器的铀浓缩装置。迫于以色列的压力,美国不得不出手解决这个问题,虽然它在中东已经不堪重负了。
当时的布什政府有两个选择,第一,通过外交渠道,但基于美伊两国的关系,这条路显然希望渺茫;第二,通过军事手段,联合以色列进行军事打击,在预测完德黑兰会有怎样的反应之后,这条路也是困难重重。
布什告诉他的助手:“给我第三个选择!”这个选择既要能停止伊朗的核计划,消除以色列的忧虑,又不致引起第三次世界大战,堪称火中取栗,难度非同小可。
能“担此大任”的是美国国家安全局的专家Keith Alexander,他的计划名叫“圣母经(Hail Mary)”。
在布什提出要求之前,Keith他们就已经在着手对付伊朗的核设施。他们已经开发出专门针对AutoCAD文件的病,所以伊朗核工厂的大量设计图纸都传回了美国,也“事先收藏”了大量伊朗用到设备的0 day漏洞。但是,他们没有发动任何攻击行为,因为根据当时的美国法律,CNA(Computer Network Attacks,电脑网络攻击)必须有总统授权才可以发动。所以,当时他们的作为仅限于“获取信息”。
在总统要求获得“第三个选择”之后,Keith提出了他的建议:离心机是用于铀燃料浓缩的重要设备,其中最薄弱的环节是旋转轴,转速太快或者太慢,离心机都会报废。旋转轴是由PLC(Programmable Logic Controllers,可编程逻辑控制器)控制,控制软件来自德国西门子公司。如果能找到一种办法,让离心机的转速失去稳定,而电脑显示的数据又毫无异常,那么报废的离心机就不会引起任何怀疑,工作人员只会认为这是意外。
Keith的方案必须用到NSA已经收藏的“0 day武器库”中的7个安全漏洞,其中4个来自微软,3个来自西门子。微软的操作系统应用广泛,漏洞很容易找到,西门子的PLC控制软件广泛应用于世界各地的化工厂、汽车厂,所以也很不难发现漏洞。把这7个安全漏洞组合起来,就可以制作出攻击程序,按计划发动攻击。
为什么要同时动用7个0 day呢?0 day虽然是软件提供商所不知晓的安全漏洞,但每个0 day的前提、影响范围、安全隐患却各有不同。要想达到最终的目的,需要像下跳棋一样接力完成。打个不恰当的比方,为了成功地远程在民宅纵火,不但需要利用投影仪的漏洞,让它长期开着散发巨大的热量,还需要利用空调的漏洞,让它预先除湿加温,也别忘了操纵新风系统不停给室内供应新鲜空气,操纵扫地机器人把窗帘拽到投影仪旁边引燃……单独来看,每个漏洞似乎都不要命,协力组合之后就威力大增。
声音 | 比特币集团SE:在德国加密货币比股票更受欢迎:据dgap消息,德国加密货币交易所比特币集团SE最近发布了一项调查,调查数据表明,德国越来越多的人认识到加密货币的潜力。接受采访的人中有超过18%的受访者表示他们目前拥有加密货币(9.2%)或过去进行过加密货币交易(9.1%)。这两个群体中有58%的受访者甚至自己进行过挖矿活动。德国的加密货币持有率为9.2%,甚至高于股票持有率,这意味着,在德国加密货币比股票更受欢迎。[2019/6/6]
对伊朗核设施的攻击也是这样,中情局已经找到了“抵达彼岸”的路径,唯一的问题是,伊朗核设施的电脑都具有“空气闸门(Air Gap)”,也就是与外界互联网络完全断绝连接。那么,怎样把制作好的蠕虫病(攻击程序)注入进去呢?
到目前为止,外界都还不确切知道,美国和以色列到底是怎样做到这一点的,真相大概要等到2039年档案依法解密时才能揭晓。不过大家能确定的是,他们确实做到了。
蠕虫潜入电脑之后,一方面四处传播,尽可能扩大感染范围,另一方面会积极寻找西门子的Step7控制软件,一旦找到,它会尝试使用默认密码(比如admin或者password)——世界上相当多的人是不会修改默认密码的,就可以堂而皇之地登入控制系统。
登入控制系统之后,它并不会大肆作乱,而是专心寻找164这个数字,如果没有找到,蠕虫不会有任何作为。为什么要寻找164呢?因为根据情报,伊朗的离心机分为多个集群,每个集群都由164台机器组成。专心符合条件的集群,有利于保持攻击程序的隐蔽性,避免被其他人发现。
在找到特定的集群之后,蠕虫会首先静静观察十三天,验证离心机的转速是不是与之前情报获得的相符,如果相符,可以确认自己已经进入了伊朗核设施——毕竟这里的网络是与外界隔绝的,不能回传信息,也不能联系后方确认,蠕虫只能像过河卒子般“勇往直前”。
蠕虫的攻击逻辑并不复杂,先让离心机超速运转15分钟,然后正常运行27天,然后让离心机低速运转50分钟,再正常运行27天……周而复始,几轮之后,离心机就会报废。不过,最具匠心的一点是,蠕虫控制离心机异常运作时,还会向Step7发送伪信号,所以在控制台上看来,离心机的转速始终平稳,毫无异常。
攻击计划刚刚开始不久,美国就进行了新一轮的总统大选,奥巴马接班小布什入主白宫。相应的,小布什也把这个“绝密”信息告诉了奥巴马,而奥巴马也深入参与到这项计划中来。每次情报显示伊朗又报废了一批离心机,奥巴马就会打电话给小布什,让他知道“第三个选择”还在生效。
到2010年初,伊朗8700台离心机中已经有超过2000台报废,而伊朗方面始终找不出问题所在,毕竟从数据上看,一切都正常得不能再正常了。最终,伊朗的核计划受到严重影响,不得不暂停。
奥巴马在高兴的同时,也陷入了忧虑。他的第一重担心是,蠕虫会不会被发现?它有没有可能突破空气闸门,扩散到其它地方?如果是,那么它很快就会被发现。
奥巴马的担心是对的。2010年夏天,不知为何,美国和以色列专为伊朗量身定制的蠕虫从“与世隔绝”的环境中逃了出来,在互联网上大肆传播。据说是以色列人不满意蠕虫的传播速度,设法“加速”了这一过程。当时的副总统拜登也相信这一观点,据身边人回忆,当时拜登说“见鬼,肯定是那帮以色列人搞的,他们玩过火了”。
确实过火了,这个蠕虫病大肆传播,虽然没有造成破坏,但还是很快被全世界各地的安全人员发现。尽管一开始大家不清楚它的真正目的——它似乎在专心寻找某种PLC,同时对164这个数字特别感兴趣,找到之后却又长期无所作为,但蠕虫使用的安全漏洞已经被曝光,微软立刻发布了修复补丁和紧急通告。之后,有安全人员终于把它和伊朗核设施联系起来,并验证了它是为其“量身定做”的。这个之前默默无闻的程序也有了自己的名字,那就是“震网(Stuxnet)”病。Stuxnet,来自程序代码最开头几个字母的重新排序。
所以,现在轮到奥巴马的深层忧虑了:一国政府跨越主权边界,用蠕虫病攻击他国,不使用飞机、导弹,却达到了同样的效果,这是人类历史上第一次发生这样的事情。此事曝光,开了这种先例,其它国家会不会纷纷效仿?美国自己掌握了诸多0 day不假,但反过来,其它国家可能也掌握了大量的0 day,只是因为高度保密,谁都没有对外公布,也不会交流——但是,它绝对存在。
声音 | eToro CEO:以太坊仍是最受欢迎的智能合约平台:据bitcoinexchangeguide消息,eToro CEO Yoni Assia接受采访时表示,他看好以太坊这一全球最常用的智能合约平台,以太坊区块链在未来将通过新的应用程序和智能合约技术获得大量价值。[2018/9/11]
从这个意义上说,2010年堪称另一个1945年。1945年,美国在日本投下两颗原子弹,人类战争进入了新纪元,积极研究、制造、拥有核武器成了大家竞相追逐的目标。65年之后,所有国家都发现了,噢,原来游戏还可以这么玩!
长期以来,对于信息技术的攻防,美国国家安全局有一种策略,叫NOBUS(Nobody But Us“除了我们没有别人”)。简单说,它相信美国的信息攻防能力远超过其它国家,所以在发现安全漏洞时,简单的、初级的可以对外发布,交给软件开发商去修复,复杂的、高级的必须私藏在自己手里,以备不时之需。
然而他们很快发现,这是一个愚蠢的游戏,因为“私藏0 day”的玩家并不只有自己一个,大家都有自己的0 day武器库,谁也不比谁差多少。甚至,美国因为信息技术高度发达,连入互联网的设备和服务众多,反而最容易成为攻击目标。
2013年8月的某天,中情局局长John Brennan深夜打电话到白宫,询问“要不要把总统叫起来”。原来他们监测到,来自国外的黑客进入了“鲍曼水坝(Bowman Dam)”,试图打开闸门放水。这座大坝高75米,长244米,水库面积14.5平方千米。一旦攻击得逞,下游居民必然在睡梦中面临灭顶之灾。
“幸运”的是,他们最终发现黑客大概因为不熟悉美国的情况,所以搞错了目标,真正入侵的是“鲍曼大道水坝(Bowman Avenue Dam)”。这座水坝其实只是一座很小的水利设施,闸门宽不到5米,高不到1米。水坝建成于2013年,由计算机自动控制,根据上游传感器收集的水温、流速、水位等信息,自动调整闸门高度。控制程序通过调制解调器接入互联网,可以被外界访问。黑客正是在其中找到了一个安全漏洞,发送了开启闸门的指令。
与“黑客搞错了大坝”相比,更“幸运”的是,当天这座小小的水坝正在维护,没有联线,所以黑客即便发送了指令,也没有任何效果。但是,这已经足够让所有人倒吸一口凉气了——攻击美国的基础设施如此简单,如果得逞,效果又如此震撼。
2014年,索尼影业制作了电影《采访》,讲述了一个虚构的故事:两名记者以采访为名,行刺东亚某国的国家元首。电影准备上映的消息传出之后,网上有名为“和平卫士(Guardians of Peace)”的黑客组织告诫索尼影业:不要继续制作这部电影。但索尼影业不为所动。
结果,就在电影上映前夕,索尼影业遭到了黑客的大规模攻击,盗取了超过100TB的数据,内容包括尚未上映的多部电影的素材。不得已,索尼影业取消了《采访》的上映计划。
美国政府视之为对表达自由的危害,但也无可奈何。在网络安全的游戏里,0 day其实到处存在,谁的IT最发达,谁的网络最普及,谁受到危害的可能性也就越大。
更糟糕的是,本来进行网络攻击是违反朴素道德感的做法,但是今天,软件和网络已经定义了普通人的生活,相应的,也就具有极大的隐患。黑客不但盗取数据,也公布了新的一部007的剧本,以及员工的薪酬、社保等信息,当然引发了外界的关注。不止于此,黑客还公布了高层的往来电子邮件,外人可以看到,原来索尼影业的高层私下里大骂安吉丽娜·朱莉是“演技稀烂的宠儿”,并且因为奥巴马的看片爱好称他是“种族主义者”。这些八卦引起了轩然大波,索尼影业的联席董事长Amy Pascal不得不因此辞职。至于网络攻击是对是错,对不起,公众反而没什么兴趣。
美国人更没想到的是,自己的0 day武器库,有一天也会伤到自己。
美国国家安全局保留着许多0 day,并且为这些0 day定制了攻击程序——这很好理解,如果你的目标是进行网络攻击,那么发现一个安全漏洞之后,最好的办法是,一方面谁也不要告诉,这样没有人会察觉,另一方面,针对此漏洞开发攻击程序,需要的时候可以“一击致命”。在美国国家安全局的武器库中,有一款叫做“永恒之蓝(EternalBlue)“,它利用Windows自带的网络文件共享协议(SMB)发起攻击和传播。SMB协议的历史非常悠久,也就是说,所有使用Windows的电脑都可能“中招”。
对冲基金经理JIM CRAMER:比特币受欢迎导致美股银行股走势不及预期:据bitcoinist消息,在美联储宣布将在2018年将短期利率上调4次(而非3次)的几天后,银行类股没有像预期那样得到改善。前对冲基金经理Jim Cramer认为,比特币和其他基于区块链的技术越来越受欢迎是可能的原因之一。许多年轻的投资组合经理似乎认为银行是过时的机构,即将失去对新兴现代技术解决方案的信誉和权威。[2018/6/21]
2017年4月14日,黑客组织“影子经纪人(The Shadow Brokers)”在网络上公布了这一漏洞和攻击程序。有消息说,在此之前,“影子经纪人”曾以此为要挟,与美国国家安全局谈判,公开漏洞正是谈判破裂的后果。而美国国家安全局在预计谈判将要破裂之前,不得已把这个漏洞通知了微软,所以一直蒙在鼓里的微软在3月14日紧急发布了修复补丁。
严格来说,此时这个0 day已经名不副实,因为微软已经提供了安全补丁(据报道,微软对此颇有意见,国家安全局竟然把这个秘密保守了如此之久)。可惜为时已晚,毕竟微软的安全补丁层出不穷,普通用户谁会总绷着一根筋,第一时间下载呢?
2017年5月,以“永恒之蓝”为基础的“想哭(WannyCry)”病在网上大肆传播,病感染电脑之后会对整个硬盘的数据进行加密,要求支付比特币才能解锁(然而实际上,病的开发者似乎根本没有设置解锁的功能,所以支付了比特币也于事无补)。
24小时之内,全世界有超过150个国家被病波及,英国医疗系统、德国铁路系统、法国汽车制造商雷诺、西班牙电信、美国联邦快递逐一瘫痪。在中国国内,据公开报道,中石油的大批加油站、多所高校都受到严重影响,许多地方的和政府办公系统不得不被迫停工。
如果说0 day是黑幕之后的丛林游戏,心怀鬼胎的玩家各自为战,那么对抗0 day则是光明世界的“世界人民大联合”。“想哭”大规模爆发之后几小时,全世界的安全机构都开始行动。更让大家意外的是,安全专家、英国的大学肄业生Marcus Hutchins偶然发现,病会查询一个不存在的域名,以检测自己是否处在杀软件构建的虚拟环境中,如果发现身处其中,则会停止传播。所以,他花8.29英镑注册了这个域名,让病的域名查询无论如何都会得到回应,据此“认为”自己一直处在虚拟环境中,世界范围内的传播就此中止。
同时,安全人员Adrien Guinet发现,病用来加密数据的应用程序接口存在一个缺陷,所以用于加密的私钥会一直保留在内存中。如果电脑没有重启,则可以用程序读取到这个私钥,从而恢复数据。他的发现拯救了大批电脑和数据。
在软件的世界里,0 day无处不在。在人类的世界里,0 day更像黑暗丛林。
利用0 day发起攻击,开创了一种全新的,“(大部分时间)无害的攻击方式”。
各种影视作品和小说中的信息战,往往强调的是“攻击程序”,哪怕要提前准备,也要预置后门,或者提前埋伏好间谍程序,无论如何,都需要主动做一些事情。但是从上面的例子可以看到,尽管0 day作恶离不开最终的攻击程序,但整个游戏里最重要的部分,也是唯一要主动做的部分,其实只是观察、发现、验证、收集目标软件的安全漏洞。
然后,只需要严守秘密、静静等待,假装什么也没发生,既不要惊动对方,也不让其他人知道(用内行话说,要玩0 day游戏,必须做到可靠、持久、隐蔽)。直到攻击真正实施前的那一秒,攻击者的所有作为都是道德上无可指摘的。然而一旦攻击发起,结果又是致命的。
0 day市场有多大?
托iDefense的福,早已经有越来越多的玩家跻身这一市场。在正常的软件开发商、软件使用者、安全漏洞中介之外,还有大量人在苦心孤诣地寻找各种安全漏洞,有些人是为兴趣,有些人是政府使命,有些人则纯粹是为了赚钱。如今一个安全漏洞的售价早已不是750美元,随时有人愿意出价几十万甚至上百万美元购买它们。或许在某个第三世界国家偏远角落的地下室里,就有一双眼睛盯着电脑屏幕,绞尽脑汁寻找漏洞,只为赚钱改善自己的生活——阿根廷的经济经历了长期的衰退,但阿根廷的0 day市场却非常活跃。
这些安全漏洞被找到之后,有些会通知开发商,有些会被公开,有些会拿到中介市场上要价,有些则被偷偷私藏起来。在寻找安全漏洞的卖家时,有些人讲究“盗亦有道”,起码不卖给恐怖分子,有些人则唯利是图,只讲究“价高者得”,更有甚者,有些人会多次出售同一漏洞。
总的来说,0 day虽然有“市场”,其实更像黑暗丛林,各色人等在其中各自为战,你可以说他们受到各种规则约束,也可以说他们不受任何规则约束。
在这丛林里,许多问题大概和普通人想的不一样。实际上,美国政府一开始也低估了丛林的混乱程度,所以每次官方发动网络攻击都需要总统明确授权,但他们很快发现,这样做除了让自己更被动,所以取消了这项限制。
网上有一种流传的说法,美国安全机构会和微软等公司合作,在软件中“预留”各种后门,这是真的吗?
看过0 day的故事你就知道,这么做很不现实,因为如果微软真的这么做了,其实是给自己埋下了威力巨大的地雷:微软的产品是全世界普遍采用的,谁能保证世界上没有技术更强的技术团队?谁能保证这个后门不被发现?谁能保证这个后门不被其它“别有用心”的人利用来对付美国?谁能保证这个后门被其他人“恶意利用”了,美国境内的Windows用户能第一时间察觉?
如果美国国家安全局发现了0 day,它会第一时间通知软件开发商修复吗?
可能会,也可能不会,不必然会。因为一旦通知,哪怕对方没有及时修复,消息也可能走漏出去,自己的0 day武器库并不会因此变得更强大,日后想做些事情的手段反而不可能,所以,很可能它会假装什么也没发生,哪怕这样会置美国自身于威胁之中。
2016年,面对舆论压力,美国国家安全局做了迄今为止唯一一次公开声明,宣称它掌握的所有0 day中,91%已经通报给厂商,还有9%没有通报,其中一部分是因为厂商已经修复,另一部分是基于“国家安全理由”不通报。
而且美国国安局显然愿意承受“不通知”的风险。2017年肆虐全球的“想哭”病就是基于国安局的“永恒之蓝”攻击工具,以国安局长期以来私藏的0 day为核心的。“想哭”大规模爆发之后,美国政府和民间都遭受了惨重损失。但是,美国国安局并没有因此公开自己的0 day库存。
微软得知了一个0 day,它会通知国家安全局吗?
很可能不会。严格说起来,如果微软已经知道了安全漏洞,它就不再能被称为0 day,除非微软伪装成不知道,也不修复。这种情况下,通知国家安全局,告诉它们这个漏洞可以用来攻击,逻辑上似乎可行,实际上困难重重。
原因在于,第一,0 day的发现没有“赢家通吃”的特性,你发现了,不等于其他人不能发现,你最早发现,不等于其他人不能稍晚发现,甚至可能发现得更早只是没告诉你。第二,如果假装什么也没发生,任由这个漏洞继续存在,那么国家安全局当然可以扩充军备,但是另一方面,美国自己的用户也受到这个漏洞的威胁。对于国家安全而言,为未来对外的攻击私藏一个漏洞,却任由本国成千上万的用户面对这一隐患浑然不觉,到底划算还是不划算呢?
所以,虽然斯诺登揭露了美国国家安全局到处搜刮信息的丑恶现实,却激发了谷歌等公司提升安全性的决心——在斯诺登事件之后,对于美国政府的深度渗透和严密监视,谷歌公开表示“相当愤怒”:他们一面要与外部黑客作对,另一方面,本国政府却在背后捅刀子!接下来,公司大力扩张安全团队,寻找安全漏洞,升级系统安全性,甚至干脆自行悬赏征集谷歌系统的0 day。
虽然有证据表明,这些科技巨头与美国政府确实有某些秘密合作,但认为它们对政府门户大开、毫无保留,也不符合事实。
有些消息可以从反面证明这一点。大型科技公司和媒体在调查中发现,美国的安全机构也在为神秘黑客支付高额酬金,请他们寻找苹果、谷歌等公司的安全漏洞。据报道,联邦调查局曾公开承认,他们付了130万美元,请黑客找到绕开苹果公司安全系统的办法。面对媒体的采访,联邦调查局宣称他们“不知道黑客到底使用了什么漏洞,也不打算帮苹果修补这个漏洞”。
回到那句话,0 day的游戏是黑暗丛林,大家各自为战,看起来有规则可循,其实又没有规则可循。
“与世隔绝”的电脑,是不是可以高枕无忧?
“震网”病已经向我们展示了,“与世隔绝”并不等于“绝对安全”。恰恰相反,许多电脑因为处在“与世隔绝”的内网环境中,被虚拟的安全感所拥抱,因此反而放松了安全警惕,甚至取消了许多日常的安全措施。结果一旦空气闸门被突破,有任何一台电脑被感染,病就可以如入无人之境,野火燎原般传遍整个内部网络。
不用“外国”软件,是不是更安全?
凭直觉来说似乎是这样,然而逻辑的结果不是这样。是软件就一定存在漏洞,只不过有些漏洞被发现了,有些还没有被发现。通常来说,软件的应用越广泛、用户越多,漏洞被发现的几率就越高,也就越容易被修复。相反,通过行政手段,强行推广某些未经广泛使用和验证的软件,甚至让发现漏洞的人身陷囹圄,往往不过是鸵鸟政策,营造自欺欺人的安全感而已。这些软件有朝一日成为攻击目标,可能瞬间崩溃,毫无还手之力。
实际上,在iDefense发展的那些年,微软最先注意到了它。2002年,比尔·盖茨宣布微软的首要任务是加强安全性,更提出了“可信赖计算行动(Trustworthy Computing Initiative)”,专门为黑客设立了客户服务热线,并在每个月的第二个周二定期发布安全补丁。虽然微软的产品之前以漏洞百出著称,但是之后那些年,黑客圈公认“微软确实在努力改进安全性”,涉及到微软的0 day的数量和危害性有显著下降。
同样,谷歌也在重金悬赏自身系统的0 day漏洞并积极响应之后,大幅提升了安全性。尽管0 day不能彻底消灭,但0 day暴露的频率和危害性的下降是肉眼可见的。
一句话,软件的安全性不能靠行政命令来保护,只能顶着漫天炮火一点一滴做出来。
我们该怎么办?
day攻击可能来自任何方面,可能漏洞的发现者来自世界的这个角落,掮客来自世界的另一个角落,最终的攻击者又来自另一个地方。他们不需要彼此认识,就可以互相配合,完成一次严重的攻击。
但是,我们没有什么好办法。一方面,在开发软件时,大部分人想到的都是“如何实现这个功能”,而忽略了去思考“如果有人恶意使用这个功能该怎么办?”,所以其实留下了很多安全隐患——在追求“用户体验”、给用户提供各种便利的同时,更是如此。另一方面,软件的功能越来越强大,而我们真正用到的部分越来越少,即便是自己用到的功能,也更愿意图省事,而不想太多操心。这也就意味着,我们日常使用的软件,可能(甚至是“必然”)包含大量的安全隐患,具有巨大的作恶空间。
还有另一个因素也需要考虑,那就是软件行业提倡的“不要重新发明轮子”,它的潜台词就是“有现成的轮子就拿来用”。如今世界上已经有无数作为“轮子”的开源软件,大部分开发如果离开这些开源软件,基本是不可想象的。但是,就在广大程序员“放心”引入各种开源软件时,这些软件的安全隐患却往往无人问津。
2014年的“出血”事故就是一个绝佳的讽刺,通过这个漏洞,恶意攻击者可以获取服务器上的密钥、密码、聊天记录等等敏感信息。在这之前的若干年里,为保证信息安全,越来越多的网站都升级到加密传输协议(SSL)。但是,自己从头实现SSL无疑是不经济的,所以业界普遍把开源的OpenSSL组件“拿来就用”。可以说,OpenSSL为全球无数的网站、无数的生意提供安全保护,是互联网运行的重要基石,但是在很长的时间里,它的团队很小,只有一位全职开发人员负责维护,其他人都是志愿者,而且分散在世界各地。所以,OpenSSL的安全漏洞,就这样堂而皇之地“嵌入”了无数的网站、无数的生意。在它被安全团队曝光之前,或许早已在地下传播了很长时间。
所以,从过往经验来看,要确保信息安全,消灭0 day,只能摆脱黑暗丛林,暴露于阳光之下,靠安全人员和开发厂商的通力合作。因为软件的特性,0 day通常只能被拥有源代码的开发者所修复。所以一旦发现0 day,告知原开发者是最有效的办法。
实际上,开源世界也有应对0 day的办法,那就是CVE(Common Vulnerabilities and Exposures,公共漏洞及暴露)。它创建于1999年,是由美国国土安全部资助,由MITR Corporation(非营利组织)维护的,收集了所有已公开安全漏洞数据库,其中每一个都有自己的全球唯一标识符(CVE-ID),并且可以被引用。今天,CVE 这个术语已经被广泛接受,大家都会用“一个CVE漏洞”的说法。比如“想哭”病利用的0 day,对应的编号就是CVE-2017-0143,在CVE的数据库里可以清楚查到它相关的全部信息。
当然,单凭CVE是不够的。0 day暴露之前,可能有不少人在暗处密谋,而暴露之后,会有更多人想要从中渔利。那么,如何暴露漏洞,又不扩大损失,就需要一套做法。
在开源社区中已经摸索出了一整套做法,以前,它叫做“负责任的揭秘流程(Responsible Disclosure)”,现在叫做“多方协调的漏洞揭露流程(Coordinated Vulnerability Disclosure)”。简单说,就是在发现安全漏洞之后,所有利益相关方经过协调,商量出一个修复期限。
在漏洞修复之后,可以公开细节,但是在这之前,应当绝对保密——哪怕是对本国的安全机构也是如此,你可以说这是江湖规矩,但对于广大具有社会责任感的安全人员来说,这就是最大的“大是大非”。因为知道的人越多,安全漏洞被人用来作恶的可能性就越大,一旦自己发现的安全漏洞被人利用,某种意义上自己也就成了帮凶。
除此之外,还有更好的办法吗?我不知道。
参考资料:This Is How They Tell Me the World Ends: The Cyberweapons Arms Race. by Nicole Perlroth
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。