面对WannaCry,赛先生急了
上周五晚开始爆发的勒索病毒,在全球范围内,让不少政府、高校、加油站、火车站、医院等诸多公共服务机构的计算机被感染,基本上是全球中招。现在看来,影响很大,损失也很大。不过,可怕的不是这个勒索病毒,而是大家对它的反应,尤其是国人对它的反应。
问题从未解决
WannaCry病毒有多厉害?真相是,该病毒就是一普通的蠕虫病毒。同所有的蠕虫病毒一样,它利用了Windows的一个漏洞,进行交叉感染传播,导致病毒疫情的爆发。
问题是,到目前为止,我们并没有有效地控制流行病疫情爆发的手段。禽流感也好,SARS也好,每一次都是临时抱佛脚,“头痛医头、脚痛医脚”,对付过去了。当疫情远去的时候,我们才反省和检讨,我们的反应和应对策略有多么的可笑。回忆一下历史,是不是这样?这一次,也不例外,还这样。
病急乱投医
不少政府机构和相关职能部门,都给出了一些“措施”。不过这些措施,绝大多数是“应急的”,甚至是“应景的”,而不是应对措施。如下列的建议,既不解决现实问题,也不解决将来的问题,属于“political correct”的套话。
“打补丁”。马后炮。不是就NSA知道漏洞,微软不知道吗。知道,早打上了。微软也不愿意这事发生,它肯定不认为这是什么好事。
“装杀毒软件”。马后炮。黑客不让病毒发作,你能弄到该病毒的特征代码?弄不到特征代码,你杀什么?你永远解决不了漏报和误报的矛盾。
“封端口”。典型的“自己摔一跤,一生气把马路挖了”的行为。端口无罪啊,是软件的问题,是人的问题,好不好?人有好坏,软件质量有好坏,端口没有好坏。人出了问题,软件出了问题,不能怪端口。我们干脆把65535个端口全封了算了!
“提高安全意识”?“相关的股票涨了”?出了这么严重的安全事故,还涨股票?算了吧,我们吃瓜去吧。
两个科学问题
WannaCry背后,简单地说,有两个科学问题。这两个问题不说清楚,别说你解决了这个问题。
一是蠕虫病毒疫情的动力学传播问题。蠕虫病毒是不可能被消灭掉的,总会有人去研究蠕虫病毒。问题是蠕虫病毒的动力学传播,会不会爆发疫情?这个是可以研究的,而且是可以控制的。通过改变蠕虫动力学传播的某些变量和参数,甚至是改变它的方程,控制疫情的爆发,是我们的主要任务和工作。
二是密码学问题。WannaCry病毒的蠕虫特性只是一个手段,想搞大规模的疫情。真正的威胁是加密。加密的动机是勒索要钱,故又称勒索病毒。对计算机内的文档、图片等实施高强度加密,并向用户索取以比特币支付的赎金。这个问题是一个NP问题。目前还没有解。如果有人告诉你,能帮你解密,基本上可以断定为骗子,或者病毒就是他弄的,解密的密钥就在他手上。这么说吧,如果有人宣称自己能解决这个问题,那密码学就完了,计算机科学里面的最根本的问题P和NP的问题也解决了。恭喜他,他要获得图灵奖和Clay的千禧年数学大奖了!