不联网的电脑就绝对安全吗?错了

很久以前有个朋友问我电脑安全的问题,说到上网的电脑可能中毒,他说:“这个问题应该很好办,要保证安全的电脑不容许上网,就可以了嘛”。

逻辑上说,这样的确没错。但在实际情况下,我们又发现很多“应当安全”的电脑没有脱离互联网。我已经无数次看到地铁、移动营业厅的自助机器上装了各种安全助手、安全管家了。断网,物理隔离,这么简单的办法,为什么做不到呢?

其实,安全领域真的有这种“断网”的机制,英文叫做air gap(有人翻译为“气隙”,我觉得不好,翻译为“空气隔绝”都好嘛),被这样处理的电脑,叫做air gapped computer。按照定义,air gapped computer是与互联网完全隔绝(但是与内部网络联通)的电脑,但也有些公司坚持认为,如果防火墙足够强大完善,躲在防火墙后面的电脑也可以叫做air gapped computer(以下简称“物理隔绝”)。

有了air gap,安全看起来就不再是问题,大家可以高枕无忧了。但是,数据安全真的这么简单吗?不是的。

物理隔绝的电脑也是需要数据交换的,常用的U盘可以成为它的命门。大名鼎鼎的震网(Stuxnet)病毒就可以感染被物理隔绝的电脑,比如伊朗伊朗核设施的离心机就被这种病毒感染了(据说病毒是美国国家安全局NSA开发的)。它通过U盘传播到控制离心机的电脑上,不断变化离心机的运转速度,导致离心机报废。

离心机的控制系统是常说的“工控”,也就是与外界隔绝的单片机,可以简单理解为“安心躲在自己的龟壳玩”的系统。我们日常使用的智能水表、智能电表,都是类似的工作方式。通常认为,这是绝对安全的。但是,“震网”病毒似乎一开始就不是为互联网传播,而是为USB传播定制的。换句话说,只要用过U盘,就可能感染这种病毒。所以,“震网”病毒顺利地传播到了离心机的控制电脑上,而且这种病毒做得相当巧妙,伊朗人只能发现离心机不断莫名其妙地出现故障,这些故障看起来却如此“自然”。

然而凡事总有想不到的地方,开发的震网病毒也犯了“想当然”的错误。按照原来的设计,如果监测到运行的电脑是太“古老”的Windows 95 Windows 98,就会自动注销。但是程序员错误地把判断条件里的“或”写成了“和”,也找不到这些老机器来测试,所以直接发布了。结果,只有当运行的电脑是太古老的“Windows 95 Windows 98”的时候才会自动注销,而这显然是不可能的。在伊朗那些老旧的电脑里,“震网”病毒频繁引发蓝屏故障,这才露出马脚,最终被抓出来。

回头说安全,U盘可能成为安全命门没错,但即使是震网病毒,数据也只能单向传输,设计者处心积虑要达到的目的很明确,就是破坏。可是,有没有办法能从被感染的机器上把数据偷出来呢?答案是有的。

以色列本·古里安大学数字安全实验室(Cyber Security Lab)的研究者们展示了几种办法。一种办法是用计算机和手机配合完成:首先感染计算机,计算机在运行过程中自然会发出电磁辐射,而接受电磁信号正是手机的专长。实验已经证明,通过控制显卡工作时发出无线电波,用手机上的FM接收器收取,就可以取得电脑上的数据,有效距离可以达到30米,完全可以隔几堵墙下手。

还有一种办法更诡异,堪称“脑洞大开”。如果有两台电脑放在一起,一台可以上互联网,一台做了物理隔绝。如果两台电脑都感染了恶意软件,它们就可以通讯——通过温度。在物理隔绝的电脑上,恶意软件可以通过计算量和传感器精确控制温度,另一台电脑的传感器可以精确感知温度的变化。如果把数据用温度变化进行编码,数据就可以传输出去。

只要两台电脑的距离不超过40厘米,这种手段就是有效的——而且,这种通讯可以是双向的。你或许会觉得这种方法带宽太低,没错,它的带宽确实很低,但是已经足够用来盗窃密码和密钥了。

我不知道有多少人会和我一样觉得这种办法“脑洞大开”,因为我们长期以来都已经形成了思维定势,觉得传输数据需要用网络,至少需要用无线电波,却没有想到还能另辟蹊径。这让人想起罗伯特·梅特卡夫在1973年给“以太网”命名时的做法,他巧妙借用了物理学中源自古希腊的“以太”概念——以太充满了空间,承载着比特流,将它们传到各处。

开了这个脑洞,更多的办法就会奔涌而出。它们的做法大都类似:先用U盘之类的媒介感染被物理隔绝的电脑,然后通过各种“以太”把数据传输出去。比如有一种类似做法是由恶意软件控制电脑的扬声器,发出人耳听不见的超声波,再用传感器接收超声波。

最近,本·古里安大学的研究人员又想到了一种更巧妙的办法。恶意软件感染物理隔绝的电脑之后,通过硬盘灯来发出信号。之所以选择硬盘灯,有几个原因。

首先,它的带宽足够:硬盘灯每秒可以闪烁6000次,用摩尔斯电码之类的编码方式,每秒钟可以传输4000 bit,也就是半小时差不多1m的数据。其次,硬盘灯的闪烁相当正常,没有人会想到这里面有什么猫腻,只会认为这是在搜索或者生成索引。再者,观测光信号相当容易,只要通过窗户能看到,就可以通过放飞小型无人机,或者在其它地方用望远镜观察,唯一的问题在于观察设备:普通智能手机的摄像头每秒钟只能接收60 bit,Go Pro每秒钟可以接收120 bit,专门的感光设备可以接收4000 bit。

研究人员也提出了防范策略:物理隔绝的电脑应当放在安全的房间里,远离窗户,或者在窗户上粘贴专门隔绝闪光的薄膜。不过,最简单的办法当然是遮住服务器的硬盘灯。

我在朋友群里分享了“通过硬盘灯窃密”的新闻,本来只是让大家一起跟我脑洞大开,想着这事还相当遥远。没想到的是,从大家的反应里,我得到了更加脑洞大开的信息:

保密严格单位的电脑必须放在没有窗户的房间里,因为真的发生过“把图像编码之后,通过屏幕闪烁发出去”的事故;

即便不是物理隔绝的电脑,也有奇特的办法泄密:比如在服务器上偷偷跑大型任务,导致页面响应速度有规律的延迟……

这样看来,“安全”永远不是一劳永逸的事情,在你意想不到的地方,永远有漏洞在等着你。


分享到:


相關文章: