Memory forensic analysis of a programmable logic controller in industrial control systems(PLC内存取证分析)


一、摘要

在工业控制系统中,PLC已经成为了主要的网络攻击对象。对PLC进行内存分析,有助于了解攻击手段。但是,仅仅为了内存取证去逆向PLC的固件是不明智的,因为逆向是一个耗时耗力的过程,且针对某一款PLC的逆向过程往往只能适用于该PLC。为此,本文从PLC的功能层入手,以Allen-Bradley ControlLogix 1756-L61为例,分析了该PLC内存中有用的取证条目(forensic artifacts)。作者使用Differential Analysis(差异分析法),通过观察PLC运行不同的测试用例时内存的变化,确定了各forensic artifact的内存位置、结构和解析规则。

二、介绍

PLC内存取证的主要难点在于PLC的硬件、固件以及工程软件是专有的。目前,现有的PLC取证技术集中在PLC固件的解析与逆向,没有哪种取证方法能够全面覆盖PLC的内存。在本文中,作者使用差异分析法去解析、分析Allen-Bradley ControlLogix 1756-L61的内存,成功解析出了固件、控制逻辑程序、I/O数据、配置数据以及日志数据。通过使用一系列精心设计的测试用例和分析相应的内存,作者生成了一个profile,该profile包含一系列规则,可以用于解析forensic artifact。

三、实验部署

实验装置如下图所示,主要由Allen-Bradley ControlLogix 1756-L61 PLC、工程软件、基于JTAG的内存获取装置以及内存分析软件组成。

四、PLC内存分析方法

下图是指作者提出的PLC内存分析方法。

(一)研究工程软件

研究工程软件的目的:(1)从工程软件的project组织以及配置中可以获得有用的forensic artifact。以Allen-Bradley为例,该PLC的project由tasks、programs以及routines组成,说明内存中也有相应的组织。(2)由于需要构建、配置不同的project作为测试用例研究PLC的内存,因此研究工程软件必不可少。

(二)获取内存

生成不同的测试用例,并使用JTAG等内存获取工具,获取PLC的内存。

(三)确定forensic artifact的数据结构

确定forensic artifact的数据结构有两种途径:一是通过查阅厂商的用户手册来获取相关的forensic artifact的数据结构。二是通过不同的测试用例结合差异分析法分析内存,从而确定数据的结构。

(四)确定forensic artifact的实例

根据确定的forensic artifact的数据结构,从获得的内存之中解析出forensic artifact的实例。

(五)形成规则

根据之前对不同测试用例下内存的分析步骤和分析结果,为各forensic artifact生成解析规则,便于重复使用。

五、Digital artifacts in ControlLogix 1756-L61

作者在这一节展示了获得的数据结构以及可以从内存中解析得到的forensic artifacts,主要有固件的基地址、project的备份、控制逻辑程序、I/O数据、配置参数以及日志。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值