2. 网表级后门威胁模型:攻击者假设、攻击面分析、攻击路径与风险等级

各位同学,咱们今天聊点实在的。做硬件安全这么多年,我见过太多人一上来就埋头找后门,结果方向都搞反了。为什么?因为没搞清楚“敌人是谁、从哪进来、怎么搞破坏”。

这一节,我就带你把网表级后门的威胁模型彻底捋清楚。说白了,就是先画一张“坏人画像”,再摸清“所有能下毒的地方”,最后把“攻击路径”和“风险等级”排个序。嗯,这套思路,我在好几个项目里都验证过,非常管用。

2.1 攻击者假设:谁在盯着你的网表?

我个人习惯,做任何安全分析之前,先问三个问题:

  • 攻击者有什么资源? 是只有网表文件,还是连设计文档、测试向量都有?
  • 攻击者想达到什么目的? 窃取密钥、破坏功能、还是让芯片在特定条件下失效?
  • 攻击者能接触到哪个阶段? RTL设计阶段、综合阶段、还是布局布线后?

根据我的经验,网表级后门的攻击者,大致可以分为三类:

攻击者类型 资源能力 典型场景
内部恶意工程师 拥有完整设计权限,熟悉代码结构 在RTL或综合脚本中植入后门
第三方IP供应商 提供加密或混淆的IP核,内部逻辑不可见 在IP核中隐藏触发逻辑或信息泄露通道
EDA工具供应链攻击者 篡改综合工具或库文件 让工具自动插入后门逻辑(这个最隐蔽)
我的经验: 内部恶意工程师其实最难防。为什么?因为他知道所有测试模式和验证边界。我曾经遇到一个案例,攻击者在状态机里加了一个“永远不会被正常测试覆盖到”的状态转移,直到芯片量产了才发现。

2.2 攻击面分析:后门能藏在哪?

你想想看,网表文件说白了就是一长串门级连接。攻击面其实比你想的要广。我把它归纳为四个主要维度:

2.2.1 组合逻辑后门

这是最经典的一种。攻击者通过修改几个逻辑门的连接,实现一个“特定输入组合”才能触发的功能。比如:

// 正常逻辑
assign out = (a & b) | c;

// 植入后门后
assign out = (a & b) | c | (secret_trigger & malicious_data);

你看,就多了一个与门和一个或门。正常功能完全不受影响,但一旦 secret_trigger 被激活,输出就被篡改了。

2.2.2 时序逻辑后门

这种更隐蔽。攻击者利用状态机或计数器,设计一个“稀有事件”作为触发条件。比如:

  • 计数器计到某个特定质数时才触发
  • 状态机经过5个特定状态序列后才激活
  • 利用亚稳态或时钟门控漏洞
注意: 时序后门最难检测,因为它需要长时间的仿真才能触发。我曾经见过一个后门,需要连续100万个时钟周期内出现特定的数据模式才会激活——常规验证根本跑不到那么深。

2.2.3 模拟/混合信号后门

嗯,这个领域我接触得少一些,但必须提一下。攻击者可以在模拟模块(如PLL、ADC、比较器)中植入后门,通过电压或电流的变化来触发。网表级检测对这种后门基本无能为力。

2.2.4 扫描链与测试接口后门

这个坑我踩过。攻击者可以利用DFT(可测试性设计)留下的扫描链,在测试模式下读取内部寄存器,或者通过测试接口注入恶意数据。很多团队觉得“测试模式只会在工厂用”,结果芯片到了用户手里,攻击者照样能激活测试模式。

2.3 攻击路径分析:后门是怎么被激活的?

搞清楚了攻击面,咱们再看攻击路径。我习惯把攻击路径分为三个阶段:

阶段1:植入 阶段2:潜伏 阶段3:触发 修改网表文件 篡改综合脚本 替换标准单元 通过RTL验证 通过门级仿真 通过ATE测试 特定输入序列 内部状态到达 时间/温度条件 网表级后门攻击路径三阶段模型 植入阶段最难发现,潜伏阶段最难检测,触发阶段最难预防

这张图我画了好几次才满意。你看,三个阶段各有各的难点:

  • 植入阶段: 攻击者需要修改网表文件。如果代码审查严格,这一步其实风险可控。但如果是第三方IP,你根本看不到原始代码。
  • 潜伏阶段: 后门在正常功能下完全“隐形”。所有测试向量都能通过,功耗、时序都正常。这是最让人头疼的。
  • 触发阶段: 攻击者通过特定条件激活后门。这个条件可能是外部输入,也可能是内部状态,甚至可能是芯片温度。
核心观点: 网表级后门检测,重点应该放在“潜伏阶段”。因为植入阶段你管不了(第三方IP),触发阶段你防不住(攻击者总有办法)。只有潜伏阶段,你还有机会通过静态分析把它揪出来。

2.4 风险等级划分:哪些后门最要命?

做安全分析,不能眉毛胡子一把抓。我一般把网表级后门分为四个风险等级:

风险等级 描述 典型例子 检测优先级
L1 - 致命 直接导致密钥泄露或功能完全失效 扫描链泄露密钥、状态机跳转到错误状态 最高
L2 - 高危 在特定条件下导致数据损坏或权限提升 组合逻辑后门篡改关键数据、测试模式越权
L3 - 中危 导致性能下降或信息间接泄露 功耗侧信道后门、时序违规导致偶尔出错
L4 - 低危 需要极高权限或极低概率才能触发 需要100万周期特定序列触发的后门
避坑指南: 我曾经犯过一个错误——把所有后门都当成L1来处理。结果团队花了三个月,查出来一堆“理论上存在但实际根本触发不了”的后门。真正致命的那个,反而因为藏在“低优先级”区域而漏掉了。所以,风险等级一定要结合具体场景来定。

嗯,说到这,我想起一个真实案例。有个客户做金融安全芯片,网表里发现了一个L2级别的后门——在特定交易金额下会多输出一个字节。当时团队觉得“只是多一个字节,又不是泄露密钥”,就没当回事。结果呢?攻击者利用这个字节,硬是拼凑出了完整的交易密钥。你看,风险等级不是死的,得看上下文。

2.5 小结

这一节的内容,说白了就是三件事:

  1. 知道敌人是谁——内部工程师、第三方IP、还是EDA工具链
  2. 知道敌人从哪下手——组合逻辑、时序逻辑、模拟模块、测试接口
  3. 知道哪些后门最要命——按风险等级排序,优先处理L1和L2

有了这个威胁模型,后面咱们讲具体检测方法的时候,你就能有的放矢了。不然的话,你连后门长什么样都不知道,怎么找?

好,今天就到这。下一节咱们聊聊网表级后门的静态检测技术——那才是真正动手干活的部分。


专注资料整理