“被物联网”的我们,何以在信息化的时代里安身?

物联网

2012年12月,全球项尖科技杂志《Wired》,封面报导了一个无辜者“被黑”的真实故事:

  故事的主角霍南,是《Wired》杂志旧金山总部的一名优秀记者。

  在一个8月天里,一个来自世界另一边的黑客少年,闯进了霍南的iCloud账户,发出了一个“远端移除”的命令,删除了霍南花了一辈子积累起来的资料。

  其中,包括他女儿出生第一年的所有婴儿照片,他早已过世的亲戚留下的照片记忆,他八年心血工作累积的Gmail邮件等等,全部烟消云散。同时,青少年还窃取了霍南的推特账号,向他几千个追随者发出种族歧视和恐怖的污言秽语。

  不仅如此,当霍南致电苹果的科技客服部门,希望追回自己的iCloud账户时,霍南发现另一个“自己”早在半小时前,已经打过电话要求重设密码。

  而他所有的信息,在这位青少年面前几乎都是透明的。甚至基于所获取的资料信息,该青少年完全可以入侵到霍南的网络银行、股票账户等等,进行资金转移。

  整个事件下来,作为优秀科技记者的霍南连对手是谁都不知道,自然更不知道这一切的发生到底是“为什么”了,当然这并不足为奇。

  因为当这个青少年淡入人们的视野,享受众人的目光的时候,他坦言:做这件事的目的只是要揭露我们每个人日日依赖的网络有多脆弱且不可靠。他达到了自己的目的。而霍南之所以会损失将近十年的资料和回忆,只能说因为“万物互联”被“殃及池鱼”了。

  科技发展滋生风险危机

  “霍南事件”,对于在科技迅猛发展过程中,在走向物联网、大数据的我们来说,不是什么稀奇事,更不是个例。而且,越是科技发展,我们所用软件及网络程序代码越是复杂,我们面临危险就越大,而且也愈加脆弱容易受伤害。

  根据卡内基美隆大学的研究指出,一般商业软件,通常每1000行代码会有20-30个漏洞;每5000万行就可能有100-150万个可能存在风险或将被利用攻击的漏洞。而事实上,我们现在很多程序的代码行数又何止成千上万。

  早在1969年,引导阿波罗11号航行35.6万公里抵达月球再返航的导航电脑,程序代码只有14.5万行。到了20世纪80年代,太空梭正式开始服役的时候,主要航行软件的程序代码膨胀到了40万行。而到了21世纪,微软Office 2013的程序代码就有4500万行;支持一辆汽车运作所需的程序代码更是高达1亿行。

  随着软件程序代码的大小与复杂程度的不断上升,程序代码里所含的错误与漏洞也在呈几何倍数增加。所有的这些都在无形之间,增加了我们在这个“万物互联”的世界里的处处危机与防不胜防。

  无责任意识助推风险滋长

  即便是程序代码变得更高级复杂,那么,我们的程度员为何在黑客面前总显得有些力不从心,甚至是“道高一尺、魔高一丈”呢?

  或许,Facebook的软件开发人员的一句格言能为我们说明些问题,那就是“Move fast and break things”(快速动作,打破事物)。这句话充公体现了Facebook关于程序开发的指导精神: 关键在于产出程序代码的速度,即便有问题或安全隐患也在所不惜。

  Facebook的CEO马克·扎克伯格亦表示, “如果你从来没打破些什么,可能就是你动作还不够快” 。

  无独有偶。我接触过的一家国内互联网金融企业,其公司技术开发团队规模和实力都可以说是相当不错的。但是,企业高层的指导思路跟马克·扎克伯格颇为相似:为了赶项目进度,哪怕产品做得再烂些,BUG再多些,都是可以接受的。

  “先上线,抢占先机,剩下的再慢慢更新、迭代、升级。”即便是这样做,会对企业会造成具大的成本浪费也再所不惜,更别提用户体验和安全保障了。

  甚至,我们的很多程序员都心知肚明,自己那些赶鸭子上架的东西实在“烂透了”,但是没办法,那就等下次有机会再做得好一点吧,但每次似乎都会有另一个“下次”。

  这着实让我感到深深的担忧。“完成比完美更重要”,这种急功近利且不负责任的态度,或许就是我们软件程序代码的所有问题的根源,并已成为今日网络安全面临的最大威胁。