169、MLIR的Side-Channel(侧信道)攻击防护

169、MLIR的Side-Channel(侧信道)攻击防护 MLIR的Side-Channel(侧信道)攻击防护一个让我半夜惊醒的bug去年做AI加速器固件时,遇到一个诡异现象:同一个神经网络模型,在FPGA上跑出的推理结果,每次复位后前三次推理的延迟分布完全一致,但从第四次开始,延迟曲线突然出现规律性抖动。更邪门的是,这种抖动只出现在特定输入数据下,换一批测试向量就消失了。当时团队里有人怀疑是电源噪声,有人说是温度漂移。我盯着逻辑分析仪抓到的时序图看了三天,突然意识到——这不是硬件问题,是编译器生成的代码在泄露信息。MLIR在lowering过程中,把某些循环展开的决策依赖了输入数据的统计特性,导致不同输入触发了不同的代码路径,而代码路径的差异通过执行时间暴露了出来。这就是典型的侧信道攻击向量,只不过这次攻击者不是黑客,而是我们自己编译器的优化策略。侧信道攻击在MLIR中的表现形式MLIR作为多级中间表示框架,天然具备跨层次优化的能力。但正是这种能力,让侧信道问题变得隐蔽且危险。我总结了几种常见场景:时序依赖型泄露:当MLIR的Pattern Rewriter根据操作数的数值范围选择不同的lowering策略时,执行路径的时间差异会暴露数据特征。比如在量化推理中,对零值和非零值的处理走不同代码分支,攻击者通过测量推理时间就能推断出模型内部激活值的分布。功耗模式泄露:MLIR生成的硬件描述中,不同数据模式会导致不同的翻转率。如果编译器在调度阶段没有做数据无关化处理,攻击者通