一句话:提出用黑盒神经网络学习PLC程序输入输出行为,以隐私保护方式认证代码完整性并检测篡改。
CPS关键领域中,PLC代码若被篡改可造成严重损害,但传统完整性认证依赖固件访问或信任根,专有/遗留PLC往往不支持。本文提出实用方案:利用PLC程序离线副本,经信息流分析选出关键输入,执行多种组合采集数据,训练神经网络从输入预测执行器命令;黑盒模型保护源码隐私,且信任来自同时一致攻击PLC代码与网络极难。在六阶段水处理厂测试台上,执行器状态预测接近100%准确,检测出全部120个有效代码变异,并发现难以同时篡改PLC并施加隐蔽对抗噪声以产生一致错误预测。
Cyber-physical systems (CPSs) are widespread in critical domains, and significant damage can be caused if an attacker is able to modify the code of their programmable logic controllers (PLCs). Unfortunately, traditional techniques for attesting code integrity (i.e. verifying that it has not been modified) rely on firmware access or roots-of-trust, neither of which proprietary or legacy PLCs are likely to provide. In this paper, we propose a practical code integrity checking solution based on privacy-preserving black box models that instead attest the input/output behaviour of PLC programs. Using faithful offline copies of the PLC programs, we identify their most important inputs through an information flow analysis, execute them on multiple combinations to collect data, then train neural networks able to predict PLC outputs (i.e. actuator commands) from their inputs. By exploiting the black box nature of the model, our solution maintains the privacy of the original PLC code and does not assume that attackers are unaware of its presence. The trust instead comes from the fact that it is extremely hard to attack the PLC code and neural networks at the same time and with consistent outcomes. We evaluated our approach on a modern six-stage water treatment plant testbed, finding that it could predict actuator states from PLC inputs with near-100% accuracy, and thus could detect all 120 effective code mutations that we subjected the PLCs to. Finally, we found that it is not practically possible to simultaneously modify the PLC code and apply discreet adversarial noise to our attesters in a way that leads to consistent (mis-)predictions.