一、引言与摘要
对PLC进行内存取证有助于理解攻击者的攻击手段,从而提高关键基础设施的安全性。当下的取证方法主要集中于使用PLC调试工具或ICS协议(GE-SRTP协议、PCCC协议等)进行内存取证。这些方法往往不能获得PLC的全部内存空间。本文提出了一个基于JTAG的内存取证框架——Kyros。
Kyros取证框架包括两个阶段:
(1)创建配置文件
(2)内存获取
下图展示了Kyros取证框架包含的两个阶段的流程。
二、基于JTAG的内存获取框架
(一)创建配置文件
在使用JTAG获取PLC的内存内容之前,需要针对目标PLC创建一个配置文件,该文件包含了一些必要信息,如PLC电路板上JTAG引脚的位置、不能获得的内存块以及采集参数等。具体需要获得的信息及其解释见下。
PLC Hardware Assessment: 得到PLC的处理器信息以及内存单元的信息,主要有处理器的架构、型号、内存单元的容量。
JTAG Pins Identification: 确认电路板上JTAG的引脚位置。
Memory Acquisition Setup: 找到合适的JTAG Debugger用于获取内存。
Device Memory Map Creation: 确认无法获得或信息冗余的地址范围。
Acquisition Parameters Optimization: 通过实验确认读取内存时的块的大小、读取速率。
Profile Generation and Verification: 根据上述信息生成最后的profile。
(二)PLC内存获取
根据第一阶段确认的地址范围、块大小、读取速率等信息,使用相应的JTAG debugger以及API获取内存。
三、案例研究
在本节,作者以Allen-Bradley PLC 1756-A10为案例,按照上述框架,先采集目标PLC的硬件信息,再使用JTAG读取内存,成功获取了内存的内容。
四、局限性
阅读论文可知,要想通过JTAG读取内存,重要的是获取PLC的硬件信息,为此需要针对目标PLC进行实验和分析。