想象一下。 你正计划入侵一个国家最危险、最重要的设施。
这个设施不是银行,也不是科技公司。 它是一个核反应堆。
该反应堆建在地下数十米深处。 四周环绕着防导弹的混凝土墙。 由军队和防空炮严密保护。
但作为一名黑客,你面临的最大障碍,那个让入侵在技术上变得不可能的障碍是: 这个反应堆完全没有连接到互联网。
没有接入的网线,也没有输出的网线。 甚至禁止使用 Wi-Fi 网络。 智能手机也禁止带入。
操作反应堆的设备与外部世界完全隔离。
根据所有网络安全法则以及我们在渗透测试中学到的一切: 如果没有网络连接,就不可能远程入侵目标。
但在 2010 年,世界从一场网络噩梦中惊醒,这场噩梦永远地改变了游戏规则。 一个计算机病毒,仅仅几行代码,就成功穿越了围墙,绕过了军队,渗透了隔离的系统,并对核离心机造成了彻底的物理摧毁。
它是如何做到的? 病毒如何让屏幕前的工程师相信一切正常,而反应堆却在内部爆炸?
欢迎来到我们的第二集。 今天,我们将深入探讨历史上最伟大、最危险的网络武器——震网(Stuxnet)病毒。
准备好你的茶,集中注意力。 因为你今天将听到的是一堂高级渗透测试的大师课。
什么是物理隔离?
要理解这个技术奇迹,我们必须先明白一个网络安全概念:物理隔离(Air Gap)。
当我们有一个极其敏感的机构时,比如国防部、核反应堆,甚至是电网。 我们会采用人类已知的最强保护协议,即物理隔离。
这意味着控制反应堆的设备仅通过一个内部网络相互连接。 这个网络与任何外部网络都是物理上完全断开的。
[!NOTE] 即使你是世界上最强的黑客,拥有最强的入侵工具,并尝试使用
nmap扫描开放端口,你也什么都找不到。 因为目标根本不在互联网地图上。
在伊朗的纳坦兹核设施,情况就是如此。 工程师们在工作时百分之百地放心,他们的系统绝不可能被感染。
攻击计划
但是,编写震网病毒的黑客们——据信是美国国家安全局(NSA)与以色列情报机构合作——知道这一点。 他们也知道渗透测试中的一条黄金法则:
如果你无法从外部接触到目标,那就让目标把你带到内部。
计划如下: 反应堆确实是隔离的。 但在反应堆工作的工程师是人。
他们回家,去咖啡馆,使用普通的互联网。 最重要的是,工程师们有时需要通过 USB 闪存盘将文件或更新传输到内部系统。
这就是攻击的起点。 黑客们没有攻击反应堆本身。 他们攻击了五家作为承包商在反应堆内部安装和维护系统的外部公司。
他们在维护工程师的设备上植入了病毒。 然后,他们等待。
零日漏洞的杰作
让我们戴上黑客的帽子,从技术上理解发生了什么。
想象一位无辜的维护工程师,从家里被感染的设备上拿了一个 USB 闪存盘,然后去核设施上班。 工程师深入地下,到达控制室,并将闪存盘插入中央计算机。
通常情况下,要让病毒从闪存盘运行,用户需要点击文件,对吗? 或者自动播放功能需要开启。 在敏感场所,这个功能通常是禁用的。
但震网不是普通的病毒。 震网是一个可怕的编程杰作。
为了让病毒在工程师没有察觉、没有点击任何东西的情况下从闪存盘传播到计算机,病毒使用了一种我们称之为零日漏洞(Zero-Day Exploit)的漏洞。
[!TIP] 零日漏洞是操作系统(如 Windows)中的一个秘密漏洞。 制造商(如微软)不知道它的存在,安全软件也不知道。 因此,没有更新或补丁可以修复它。 防护成功率为 0%。
一个零日漏洞在黑市上的售价可达数十万,有时甚至数百万美元。 想象一下,普通黑客或犯罪团伙使用一个漏洞就自认为是王者了。
震网病毒一次性包含了四个零日漏洞。 这是一种可怕的力量展示。 就像你用坦克来砸一扇木门。
闪存盘一插入计算机,其中一个零日漏洞就利用了 Windows 显示图标的方式。 计算机一“看到”闪存盘,无需任何点击,病毒就将自己复制到了反应堆的设备中。
悄无声息的传播与中间人攻击
攻击的下一步是传播。 病毒进入了内部,但它仍在一台普通的管理计算机上。 它的目标是到达控制反应堆的敏感控制设备。
病毒开始在内部网络中悄无声息地传播。 它使用第二个漏洞从一台设备转移到另一台设备,就像向网络上的打印机发送命令一样。 它窃取管理员权限以躲避安全软件的检测。
病毒在网络中游荡,寻找一个特定的目标。 病毒不想窃取文件,也不想加密设备索要赎金。
病毒的设计目标是摧毁一种名为离心机的设备。
这些设备是极长的圆柱体,以每秒超过 1000 转的惊人速度旋转,以分离和浓缩铀同位素。 浓缩过程非常敏感,如果旋转速度稍有偏差,整个设备就会爆炸并摧毁旁边的设备。
那么,计算机如何控制这些物理设备呢? 通过我们称之为 SCADA 的系统和名为 PLC(可编程逻辑控制器)的精密控制器。
黑客们在寻找德国西门子(Siemens)制造的 PLC 设备。 病毒非常智能,当它进入任何一台计算机时,它会问自己: “这台计算机是否连接到 PLC 设备?”
如果答案是否定的,病毒就会休眠,不做任何事情,不删除任何文件,以免暴露自己。
但当病毒最终到达连接到这些设备的计算机时…… 现在,病毒已经到达了反应堆的心脏。 它到达了控制电机速度的计算机。
graph TD
A[1. 感染承包商的 USB] --> B[2. 工程师将 USB 带入核设施];
B --> C[3. 利用零日漏洞自动执行];
C --> D[4. 在隔离网络中传播];
D --> E[5. 找到西门子 PLC 控制器];
E --> F[6. 中间人攻击:向离心机发送恶意命令];
F --> G[7. 向工程师发送伪造的“正常”数据];
G --> H[8. 离心机物理损坏];
黑客们本可以让设备以最大速度旋转并立即爆炸。 但这会立即暴露攻击。 反应堆会关闭,问题会在两天内解决。
黑客们比这要狡猾得多。 他们想慢慢地摧毁核计划,并摧毁工程师的士气和自信。
他们执行了历史上最复杂的攻击之一:中间人攻击(Man-in-the-Middle Attack)。
病毒将自己注入到 PLC 控制设备和工程师监控的屏幕之间。 让我简单解释一下:
- 病毒开始向离心机发送命令,让它们以尽可能快的速度旋转,直到电机过热并损坏。
- 坐在控制室里的工程师应该会听到警报声或在屏幕上看到速度指示器。对吗?
这里就是编程的“奇迹”所在。 病毒拦截了从设备传出的真实数据,并用预先录制的、显示一切正常的虚假数据取而代之。 速度看起来很完美,没有任何过热迹象。
工程师喝着茶,看着屏幕,看到绿色的指示灯一切正常。 突然,他听到地下传来巨大的爆炸声。 他跑下去,发现离心机被撕裂、烧毁、爆炸。
他跑回屏幕前。 屏幕告诉他一切运行高效。
想象一下那种心理上的恐惧。 伊朗工程师开始怀疑自己。 他们更换设备,更换电线,解雇一些员工,认为他们工作失职或存在制造缺陷。
没有人想到,是一段代码在中间对他们撒谎,通过 0 和 1 物理地摧毁设备。
无声的毁灭与最终的发现
这种无声的破坏持续了数月之久。 超过 1000 台离心机被摧毁,核计划被推迟了数年。
如果病毒如此智能和隐蔽,我们是怎么知道它的? 世界又是如何开始研究震网病毒的?
在这里,我们学到了编程中一个非常重要的一课: 恶意代码,无论多么精确,都可能失控。
根据分析,一名设备被感染的维护工程师将他的笔记本电脑带出反应堆,并在家中连接到普通的互联网。 病毒,由于被编程为在 USB 和本地网络上积极传播,开始复制自己并进入全球互联网。
病毒开始感染全球数十万台设备。 但正如我们所说的,它不会损害普通设备。 它只是进行扫描:“这是西门子的设备吗?不?那我就睡觉。”
但大型安全公司注意到一种非常奇怪的病毒在亚洲,特别是在伊朗传播。 他们将病毒样本带到实验室,并开始对其进行逆向工程。
当专家们打开代码时,他们受到了生命中最大的冲击。 他们发现病毒的大小为 500 KB,对于一个病毒来说这是一个非常巨大的数字。 他们发现了我们之前提到的四个零日漏洞。 他们发现它是由多种复杂语言编写的,并且有从真正的台湾公司窃取的数字签名,以欺骗 Windows 并使其相信它是一个合法的程序。
专家们一致认为,这段代码不可能是由坐在地下室的黑客编写的。 这段代码耗资数百万美元,需要一个由核心程序员、系统工程师和情报人员组成的团队。
这是人类历史上第一个网络大规模杀伤性武器。
从震网病毒中学到的教训
震网病毒的故事不仅仅是一个历史故事。 它是我们为渗透测试专家教授的完整课程。
- 物理隔离增加了渗透的难度,但并不能阻止它,只要有人类因素与系统交互(通过闪存盘、笔记本电脑维护等),就存在渗透路径。
- 社会工程学总是能打破最坚固的防火墙。
- 今天,我们都关注 Web 和移动渗透,但未来完全是 IoT(物联网)。入侵交通信号灯、供水网络、工厂。这些系统中的安全性不幸仍然非常薄弱,依赖于旧系统。
- USB 安全至关重要。如果你是一个敏感公司的系统管理员,你应该物理上或通过策略禁用 USB 端口。
在震网病毒之前,最坏的渗透场景是偷钱或泄露照片和数据。 在震网病毒之后,世界意识到键盘和鼠标可以引爆反应堆,切断整个国家的电力,并杀死真实的人。
这解释了为什么今天世界上所有国家都在其网络军队上花费数十亿美元。