本文提出 LogicFuzz,据作者称这是首个专门针对可编程逻辑控制器(PLC)固件中逻辑指令库进行模糊测试的框架。PLC 广泛用于工业自动化,其逻辑指令库由供应商提供并编译进设备固件,若存在安全缺陷,可能被物理控制程序、网络服务或运行时子系统利用,导致权限绕过、内存破坏或数据泄露。现有模糊测试方法多关注协议或通用固件,难以有效覆盖 PLC 指令的语义依赖和触发条件。LogicFuzz 的核心创新在于构建语义依赖图(SDG),该图同时刻画 PLC 指令的操作语义和指令间依赖关系。结合使能信号(enable-signal)机制,LogicFuzz 能够自动合成针对特定指令的种子程序,显著减少人工构造测试用例的工作量,并支持在真实 PLC 硬件上进行可控、可重置的模糊测试。为了发现由控制流触发(即调用模式)的缺陷,LogicFuzz 通过变异 SDG 来多样化指令调用上下文;为了暴露由数据触发的故障,则在有效语义约束下进行覆盖率引导的参数变异。此外,LogicFuzz 集成了多源 oracle,通过监控运行时日志、状态 LED 和通信状态来检测模糊测试过程中指令级别的异常。作者在来自三家主要厂商的六台生产型 PLC 上进行了评估,共发现 19 个指令级缺陷,其中包含 4 个先前未知的漏洞。该研究对 PLC 安全测试、工业控制系统安全研究以及固件漏洞挖掘具有参考价值。适合关注 ICS/SCADA 安全、模糊测试方法、PLC 固件分析的读者阅读。
💡 推荐理由: PLC 是工业控制系统的核心组件,其固件指令库漏洞可能造成物理后果。LogicFuzz 首次将语义感知的 LLM 驱动模糊测试引入 PLC 逻辑指令领域,发现了真实设备中的未知漏洞,为防御者提供了针对 PLC 固件的主动安全测试思路。
🎯 建议动作: 研究跟进