中文

基于黑盒神经网络预测的 PLC 代码完整性证明

密码学与安全 2021-08-24 v2 机器学习

摘要

信息物理系统(CPSs)广泛应用于关键领域,若攻击者能够修改其可编程逻辑控制器(PLCs)的代码,则可能造成重大损害。遗憾的是,传统的代码完整性证明技术(即验证代码未被修改)依赖于固件访问或可信根,而专有或遗留 PLC 不太可能提供二者。本文提出一种实用的代码完整性检查方案,基于隐私保护的黑盒模型,转而证明 PLC 程序的输入/输出行为。利用 PLC 程序的忠实离线副本,我们通过信息流分析识别其最重要输入,在多种组合上执行以收集数据,随后训练能够从输入预测 PLC 输出(即执行器命令)的神经网络。通过利用模型的黑盒特性,我们的方案维护了原始 PLC 代码的隐私,且不假设攻击者不知晓其存在。信任来源于同时以一致结果攻击 PLC 代码与神经网络极为困难这一事实。我们在一个现代六阶段水处理厂测试平台上评估了该方法,发现其能以近 100% 的准确率从 PLC 输入预测执行器状态,从而可检测出我们对 PLC 施加的全部 120 个有效代码变异。最后,我们发现不可能以导致一致(错误)预测的方式同时修改 PLC 代码并对我们的证明器施加隐蔽对抗噪声。

关键词

引用

@article{arxiv.2106.07851,
  title  = {Code Integrity Attestation for PLCs using Black Box Neural Network Predictions},
  author = {Yuqi Chen and Christopher M. Poskitt and Jun Sun},
  journal= {arXiv preprint arXiv:2106.07851},
  year   = {2021}
}

备注

Accepted by the 29th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2021)