
在我们这个日益互联的世界里,数字领域与物理领域之间的界限正逐渐模糊。那些将计算与物理过程相集成的系统,即信息物理系统(CPS),已构成现代社会的支柱,从电网、自动驾驶汽车到智能工厂和医疗设备,无处不在。这些系统的安全至关重要,因为一个漏洞不再仅仅是对数据的威胁,更是对物理基础设施和人类安全的威胁。这一现实造成了一个关键的知识鸿沟:为保护数据而设计的传统信息技术(IT)安全实践,在应用于受物理定律支配的系统时,往往力不从心,甚至适得其反。
本文旨在通过提供对 CPS 安全的全面概述来弥合这一鸿沟。其结构旨在引导您从基本概念走向高级应用。在第一章 原理与机制 中,我们将剖析安全(safety)与安防(security)之间的核心区别,在物理背景下重新审视经典的 CIA 三元组,并追溯攻击的剖析结构以理解分层防御是如何构建的。随后,在 应用与跨学科联系 章节中,我们将通过关键基础设施的实例,展示这些原理在实践中如何应用,并阐明安防是如何成为一曲由控制理论、物理学和系统工程学等多个领域共同谱写的交响乐。我们的旅程始于探索问题的核心:当网络行为产生物理后果时,会发生什么。
想象一下,你正在设计一辆自动驾驶汽车。你花费了无数小时来确保其组件的坚固性。刹车经过百万次循环测试,传感器被保护起来以抵御雨雾,发动机控制软件也有冗余备份。你设计了一个安全(safe)的系统,一个能够抵御自然界中随机故障和恶劣条件的系统。这是传统安全工程(safety engineering)的领域:构建不会自行失效的系统。
现在,想象一种不同的情况。一个聪明的黑客,坐在数英里外的一家咖啡店里,发现了一个漏洞。他们没有破坏汽车的刹车;他们只是在汽车的数字耳边轻声说了一个谎言。他们发送了一个虚假信号,让汽车的传感器相信前方的道路是畅通的,而实际上那里有一堵墙。汽车完美地遵循其程序,没有踩下刹车。结果是一样的——一场撞车事故——但原因却截然不同。这不是安全(safety)的失效,而是安防(security)的失效。
这个区别是理解信息物理系统(CPS)的绝对核心。在 CPS 的世界里,数字与物理之间那条整洁的界线消融了。危险(hazard)是一种可能导致伤害的系统状态,比如汽车离墙太近。安全(Safety)是防止由非恶意原因(如刹车油泄漏或传感器被强光致盲)造成的伤害的学科。而安防(Security),则是关于防止来自一个有智能的、恶意的对手所造成的伤害,这个对手会故意利用系统的网络接口来引发物理效应。
因此,我们不能简单地将我们从传统信息技术(IT)领域的安防思维方式照搬过来。在 IT 领域,我们担心的是数据泄露和经济损失。在 CPS 领域,我们担心的是物理学。考虑一个拥有两个安防漏洞的工厂。一个是勒索软件攻击,可能加密公司的服务器,其发生的可能性为每年 ,潜在损失为 C_{\text{IT},1} = \800,000p_2=0.04C_{\text{IT},2} = $150,000C_{\text{phys},2} = $4,000,000$。
一个以 IT 为中心的风险模型可能会优先处理高可能性的勒索软件。但在物理世界中,我们必须以不同的方式定义风险。一个更合适的模型是 ,其中 是我们赋予物理安全的权重——比如说 ,以强调人身安全的重要性是经济损失的两倍。突然之间,情况发生了变化。勒索软件的风险是 R_1 = 0.2 \cdot (\800,000 + 2 \cdot $0) = $160,000R_2 = 0.04 \cdot ($150,000 + 2 \cdot $4,000,000) = $326,000$。那个罕见但具有物理危险性的攻击才是更大的威胁。这就是 CPS 安防的世界:一个后果不仅以比特和字节衡量,而且以质量、速度和能量衡量的世界。
几十年来,网络安防一直以保密性(Confidentiality)、完整性(Integrity)和可用性(Availability)(CIA)三元组为指导。保密性是关于保守秘密。完整性是关于确保数据准确且未被篡改。可用性是关于确保系统在需要时可以访问。在 CPS 的世界里,这个三元组仍然适用,但其优先级却被颠覆了。
让我们参观一个化工厂。为保障安全,一个反应堆设有一个“故障时开启”(fail-open)的泄压阀:如果控制系统发生故障或失去通信,该阀门会自动打开以防止灾难性爆炸。这是一个安全优先的设计。该工厂还有一个复杂的数字孪生——一个虚拟模型——它通过分析压力趋势来预测和防止浪涌的发生。为了做好这项工作,这个模型需要整整 秒的高分辨率压力数据。
现在,IT 安防团队来了。在传统原则的指导下,他们关心保密性。压力数据是专有信息,因此他们提出了一项数据最小化策略:只应存储 秒的数据。从 IT 的角度来看,这是降低工业间谍活动风险的明智之举。
但在这里,我们看到了冲突。强制执行这条保密性规则会使预测模型“饿死”,削弱其发现潜在问题的能力。这反过来又增加了纯粹被动的“故障时开启”阀门被启用的几率。旨在保护保密性的安防控制措施,却削弱了一项主动的安全措施。在这种情况下,压力数据的完整性(它是否真实?)和该数据对安全关键模型的可用性,远比其保密性重要。当一栋大楼着火时,你不会担心是否有人看到了蓝图;你会确保消防队能进入,并且他们的水管里喷出的不是沙子。在 CPS 中,完整性和可用性是安全等式中的直接输入。
要防御一个系统,你必须首先了解它的漏洞。让我们追踪信息在典型 CPS 中流经的路径,我们可以将其看作一个四阶段的管道,并看看攻击者可以在哪里下手。
采集(Ingest):这是物理世界被转换成数据的环节。传感器测量温度、速度或位置。这里的主要威胁是完整性。如果攻击者能向系统提供虚假数据,那么随后的每一个决策都将基于一个谎言。
存储(Store):数据被存储起来用于分析、记录或以后使用。在这里,保密性通常是一个主要问题,因为这些数据可能代表有价值的知识产权,如专有化学配方或机器人的操作模型。
计算(Compute):系统的“大脑”——控制器或数字孪生——处理数据。它运行算法,估计系统状态,并决定下一步该做什么。同样,完整性至关重要。如果攻击者能够污染控制算法或篡改物理模型,即使输入数据完美,也可能导致系统做出灾难性的决策。
驱动(Actuate):控制器向执行器——电机、阀门、刹车卡钳——发送命令,以影响物理世界。这最后一步完全关乎可用性。一个来得太晚的命令通常和一个从未到达的命令一样无用。一个错过了其 20 毫秒最后期限的刹车命令就是一次失败。
这些攻击可以体现在两个不同的层面上,这是一个决定我们防御策略的关键区别。想象一个智能恒温器。攻击者可以发起网络层攻击,通过入侵你的 Wi-Fi 并发送一个数据包,将温度读数从 更改为 。传感器本身没有问题;是数字信息遭到了破坏。这里的防御是密码学的:数字签名和加密通信可以揭露被篡改的数据。
或者,攻击者可以发起物理层攻击。他们可以走到恒温器前,用一个冰袋贴着它。现在传感器如实地报告低温,因为它的物理环境被操纵了。密码学在这里毫无用处;数据包是完全真实的!防御必须是基于物理的。一个数字孪生可能会注意到,恒温器报告温度迅速下降,而主供暖系统已知正在运行,这在物理上是不可能的,从而标记为异常。区分这两个层面——用比特语言讲述的谎言与用物理语言讲述的谎言——对于构建坚固的防御至关重要。
保障 CPS 安全没有单一的灵丹妙药。相反,我们构建一个“纵深防御”,即一系列协同工作的嵌套防御工事。
我们的防御始于设备芯片的内部。我们必须能够信任它正在运行的代码。这是通过一个被称为安全启动(Secure Boot)的精妙过程实现的。在微控制器深处,在一块不可变(只读)的内存中,存有一小段代码,称为引导加载程序(bootloader)。这是我们的信任之根。它之所以可信,是因为它无法被更改。当设备上电时,引导加载程序就像一个保安。在允许主应用程序固件运行之前,它会进行一次检查。固件的制造商已经对代码进行了一次加密哈希(一个独特的指纹),并用一个秘密的私钥对其进行了“签名”。由此产生的数字签名与固件捆绑在一起。
引导加载程序持有相应的公钥。它自己计算固件的哈希值,并使用公钥来验证签名。如果签名有效且哈希值匹配,就证明了两件事:代码未被更改(完整性),并且它确实来自制造商(真实性)。只有这样,引导加载程序才会移交控制权。这就创建了一条信任链,从不可变的硬件一直延伸到正在运行的应用程序。
一旦我们有了一个可信的设备,我们就必须保护它的对话。仅仅知道代码是真实的还不够;它接收到的命令也必须是真实的,而且关键是,必须是新鲜的。
想象一个攻击者录制了一个合法的、经过认证的命令:“打开大坝泄洪道 10 秒钟。”这个命令有正确的签名,所以它具有完整性。然后,攻击者在一小时后简单地重放这个录制的消息。控制系统看到一个有效签名的命令,便服从了。然后又一次。又一次。结果是一场洪水。这是一种重放攻击,它之所以奏效,是因为完整性检查是无状态的;它不知道消息是旧的还是新的 [@problem_-id:4240611]。
解决方案非常巧妙:我们需要引入时间的概念,而不依赖于完全同步的时钟。一种常见的方法是挑战-响应协议。在泄洪道控制器接受一个命令之前,它会生成一个随机的、一次性使用的数字,称为nonce,并将其发送给中央控制器。“如果你想让我做什么,就在你的签名命令中包含数字 12345。”然后,中央控制器发回命令“打开泄洪道”,并将 nonce 12345 包含在消息的签名部分内。泄洪道控制器验证签名并检查 nonce 是否是它刚刚发出的那个。由于攻击者重放的消息将包含一个旧的、过时的 nonce,它将被拒绝。这个命令不仅是真实的;而且可验证是当下的。
从宏观上看,我们如何设计整个网络?传统模型是“城堡加护城河”,即边界安全。网络由一个强大的外部防火墙保护。一旦你进入了边界内部,你通常就被信任了。这创造了一个坚硬的外壳,但内部却是柔软的。如果攻击者设法攻陷了网络内的一个设备,他们通常可以轻松地横向移动,攻击其他所有设备。
现代方法被称为零信任架构(ZTA)。其指导原则简单而无情:“从不信任,永远验证。”不再有“内部”或“外部”之分。每个设备、每个用户、每个数据包都被视为潜在的敌对实体。身份至关重要,必须持续证明,通常是将设备的软件状态绑定到一个硬件锚点,如可信平台模块(TPM)。
此外,ZTA 采用微分段。网络不再是大的、开放的区域,而是被分割成微小的、有防火墙隔离的段,理想情况下小到一个设备。一个传感器应该只被允许与其控制器通信,而不能与其他任何东西通信。如果该传感器被攻陷,损害就被控制住了。攻击者无法将其用作跳板来攻击财务服务器或另一条工厂生产线。零信任通过假设故障会发生并构建能够遏制故障的系统,极大地减小了成功攻击的“爆炸半径”。
从芯片到网络架构的这一旅程揭示了一个深刻的原则:保护我们的物理世界需要一种新的思维方式。它迫使我们权衡一个秘密的价值与一次失败的代价,不仅要检查数字的真实性,还要检查物理的一致性,并构建不仅能抵御事故,还能对抗智能对手的系统。信息物理系统安防之美就在于计算逻辑与物理定律之间这种错综复杂的舞蹈。
在我们迄今的旅程中,我们已经探讨了信息物理系统的基本原理,认识到它们不仅仅是连接到机器上的计算机,而是一个集成的整体,其中信息和物理是同一枚硬币的两面。代码中的一条指令不仅仅是数据;它是一个可以旋转涡轮机、打开阀门或驾驶车辆的命令。因此,网络攻击的后果并不仅限于数字领域。它们可能是令人震惊的,有时甚至是危险的物理后果。
现在,让我们从原理的领域走向实践的世界。这些思想是如何应用于保护构成现代社会支柱的复杂、关键系统的?我们将看到,保护一个 CPS 并非单个专家的工作,而是一场宏大的、跨学科的交响乐,需要建筑师、物理学家、侦探、控制理论家和英明指挥官的技能。
想象一下,你被赋予了保护一座庞大城市的任务。你将从何入手?你不会仅仅在它周围建一道巨大的墙。你会研究它的布局,识别关键区域——医院、发电站、供水系统——并创建安全区域,区域之间设有受控的接入点。同样的逻辑也适用于保护一个复杂的工业工厂。
工程师和安防专家已经制定了一些标准,作为这项任务的架构蓝图。一个突出的例子是 IEC 62443 系列标准,它引入了“区域”(zones)和“管道”(conduits)这两个优美而简单的概念。一个区域不一定是一个物理区域;它是一个共享共同安防需求的资产——传感器、控制器、服务器——的逻辑分组。一个敏感的控制回路可能构成一个区域,而一个不太关键的数据记录系统则构成另一个区域。“管道”则是连接这些区域的受控通信信道。它就像一个有守卫的大门,一个检查站,防火墙或其他安防设备在这里执行严格的策略,确保只有经过批准的流量才能通过。这种优雅的抽象使我们能够将一个令人眼花缭乱的复杂网络划分为一组可管理的受信任域,而不管它们的物理拓扑如何。它为从高层次上推理安防问题提供了一种形式化语言,就像建筑师的总体规划一样。其他框架,如美国国家标准与技术研究院(NIST SP 800-82)提供的指南,也提供了互补的理念,通常推荐功能性分段,与像用于工业网络的 Purdue 模型这样的概念模型对齐,但没有 IEC 62443 那样形式化的区域和管道抽象。
有了我们的架构蓝图,我们现在必须理解我们面临的威胁的本质。在 IT 世界中,我们经常谈论“CIA 三元组”:保密性、完整性和可用性。在 CPS 中,这些不是抽象概念;它们是具有直接物理后果的力量。
考虑一下电网,这也许是人类有史以来建造的最宏伟的 CPS。
完整性攻击,即伪造信息,是通往物理混乱的最直接途径。想象一个攻击者巧妙地更改了来自一条输电线路的遥测数据,使其报告低电流,而实际上它正处于红热状态,接近其热极限。控制中心相信自己有充足的容量,可能会将更多电力重新路由到那条线路上。线路过热、下垂、接触到树木,并跳闸脱离服务。负载瞬间转移到其他线路上,而这些线路也可能接近其极限,从而引发连锁反应——一场可能使整个地区陷入黑暗的级联故障。网络空间中的谎言变成了物理上的灾难。
可用性攻击,如中断通信的拒绝服务(DoS)攻击,就像切断了电网的神经系统。如果一个大型发电厂突然跳闸离线,电网频率开始下降。自动二次控制系统(AGC)本应命令其他发电机增加功率以恢复平衡。但如果 DoS 攻击阻止了这些命令怎么办?电网将变得跛行,无法执行稳定自身所需的纠正措施,使其在下一次小扰动中就可能完全崩溃。
保密性攻击,即数据窃取,没有直接的物理影响。但这是敌人的侦察任务。窃取电网的拓扑结构、保护设置和运行计划,就像窃取了堡垒的蓝图。它使对手能够以毁灭性的精度规划未来的完整性或可用性攻击,瞄准最关键和最脆弱的点。
如果网络攻击表现为物理上的不当行为,那么也许我们可以通过观察物理现象来检测它们。这就是使用数字孪生进行安防的核心思想。在这种情况下,数字孪生不仅仅是一个三维模型;它是一个系统的基于物理的良知,不断运行工厂的数学模型,并将其预测与实际发生的情况进行比较。
想象一个数字孪生正在监控一个智能交通系统,该系统使用匝道计量来控制进入高速公路的交通流量。孪生模型的模型,也许是一个卡尔曼滤波器(Kalman filter),知道匝道上的汽车队列应该如何根据它发送的命令表现。它有一个期望值。当攻击发生时,现实偏离了这一期望。
一个复杂的孪生能做的不仅仅是标记单个异常。它可以对整个攻击活动进行推理。安防分析师可以将潜在的攻击路径建模为一个图,其中每一步都有一定的成功概率和一定的被检测风险。攻击者会想找到一条路径,既能最大化其成功概率,又能保持在“雷达之下”。找到这条最可能的隐蔽路径似乎是一个难题。但通过一点数学上的优雅,它可以被转化。通过取概率的负对数,最大化概率乘积的问题就变成了最小化权重总和的问题。最可能的攻击路径以图上的最短路径的形式显现出来——这是一个计算机可以高效解决的经典问题。因此,数字孪生可以充当哨兵,不仅能识别出问题所在,还能指出对手最可能的攻击计划。
知道威胁的存在是一回事;抵御它则是另一回事。CPS 防御不是一堵单一的墙,而是一个有多层防御的堡垒,其中一些是活的,可以适应。
一个基础策略是纵深防御。我们对命令进行认证和授权,以确保只有合法用户才能发布它们。我们分割网络,使用我们讨论过的“区域和管道”,以遏制任何突破。我们还内置了韧性响应,当数字孪生检测到异常时,可以触发切换到预先计算好的安全操作模式。
然而,我们面临一个关键的权衡,这是信息物理系统的一个核心真理:安防控制不能盲目应用。一个 IT 安防专家可能会坚持加密所有流量。但在一个具有毫秒级时序预算的硬实时控制回路中,加密算法引入的延迟可能会导致控制器错过其最后期限。在控制系统中错过最后期限,其导致不稳定的可能性与攻击一样大。系统的物理特性——其对信息及时性的需求——施加了一个安防必须尊重的硬约束。
这就是为什么最先进的防御不是静态的附加物,而是与系统本身的物理特性深度交织在一起。
其中一个概念是移动目标防御(MTD)。想象一种防御机制,它不断地重新配置系统的参数——其控制律、其传感器映射。对于试图了解系统动态的攻击者来说,这看起来像是不可预测的、变化的噪声。但对于在数字孪生帮助下协调这些变化的防御者来说,每一种配置都是可证明稳定和安全的。这是一场在系统动力学层面上进行的高超的“猜壳游戏”,它迷惑了对手,同时保证了物理任务的完整性。
我们可以更深入,直达硬件和软件信任的根基。我们如何知道控制器本身没有在深层次上被攻陷?像可信平台模块(TPM)这样的技术允许设备执行“可度量启动”,创建一个从固件开始加载的所有软件的加密哈希链。然后,它可以在一个称为远程证明(remote attestation)的过程中,将这个由芯片中烧录的唯一密钥签名的度量值呈现给验证者。这就像是设备的一份经过签名和密封的健康证明。
当我们把这种信任机制与控制回路联系起来时,真正的美感就显现出来了。数字孪生接收到这份“信任报告”。它不是做出二元的“信任/不信任”决定,而是可以概率性地更新其对设备完整性的信念。它可能会得出结论,比如说,对设备的完整性有 99.9% 的信心,或者只有 70%。这个概率随后被用来动态地加权来自该设备的数据。如果信任度高,传感器数据被重重加权。如果信任度低,数据则被优雅地折价处理。系统会自动减弱其对被认为不那么可信的信息的依赖。这种可信计算与贝叶斯估计的融合,是构建韧性系统的一种极其优雅的机制。
这种验证信任的概念贯穿于系统的整个生命周期,甚至延伸到我们从供应商那里收到的软件更新。通过严格的回归测试和软件“契约”的形式化验证相结合,我们可以创建一个量化模型来估计意外部署来自供应链的有缺陷或恶意更新的风险。
谈了这么多数字孪生和自动化防御,有人可能会想,人类操作员是否变得过时了。答案是响亮的“不”。人的角色没有被消除;它被提升了。操作员成为这场复杂安全交响乐的指挥家。
考虑一个大型电池系统的操作员,网络攻击可能导致热失控和火灾。操作员不是手动逐秒控制电流;一个自动化的模型预测控制器(MPC)负责处理这件事。相反,操作员充当一个监督性的贝叶斯决策者。一个警报响了——数字孪生的残差监视器被触发了。这是一个真实的攻击还是一个传感器故障(假阳性)?操作员必须决定行动方案。
这个决定是对风险和非对称成本的仔细权衡。一个导致停机的假警报可能会产生显著的经济成本()。但对一次真实攻击不作反应可能导致灾难性故障,代价更高()。操作员利用来自异常检测器的证据、他们对攻击可能性的先验信念,以及至关重要的是,来自数字孪生的关于当前安全违规风险的物理感知预测,来做出明智的判断。他们可能选择让系统继续运行,切换到一个更保守的自动模式,或者,如果危险的证据是压倒性的,启动手动覆盖并安全地关闭系统。
这整个过程体现了韧性(resilience)的概念。当攻击发生时,系统的首要任务是吸收冲击——即使性能下降也要维持其基本的安全功能。接下来,通过自动化系统和人类指导的协同作用,它寻求恢复,在有限的时间内将性能带回到可接受的水平。最后,系统从经验中学习。事件数据被用来改进模型、调整检测器和完善控制策略。系统适应,变得更强大,为下一次挑战做好更充分的准备。
最后,我们看到信息物理安防是一个具有深刻统一性的学科。它将系统工程的结构化世界、物理学不可改变的定律、统计学的概率推理、控制理论的动态优雅、可信计算的密码学确定性以及人类决策理论的精妙判断联系在一起。唯一的、统一的原则是信息与物理不可分割。要真正保护这些系统,就是要掌握它们之间错综复杂的舞蹈。