A study on command block collection and restoration techniques through detection of project file manipulation on engineering workstation of industrial control system
一、摘要
本文提出了一种基于数字通信技术,能够在项目数据因网络攻击而发生改变后进行检测和恢复的方法
二、相关技术介绍
(一)传统ICS的安全策略
早期,ICS被认为是相对安全的系统,它采用了隔离网络(air-gap)的策略,将受保护的系统和外部网络隔离。如下图,但是随着技术的发展,ICS已经能通过以太网,无线通信等方式实现互联,传统的隔离网络已经不能再保证网络系统的安全。
(二)PEData
TIA Portal step7分为两种文件,数据文件和索引文件。当一个新的项目被建立后,项目文件就会生成。项目文件存储位置是 “C:\Users{account name}\Documents\Automation{project name}\System\“
PEData.plf是一个包含实际程序代码块的数据文件。PEData.idx包含项目数据的索引数据,并存储在与plf文件相同的路径中。该项目文件包含有关PLC的程序代码块和配置的所有信息。
三、检测和恢复工具的开发
本文针对上述的需求提出了一种对项目文件的更改进行监控,保留,恢复的工具。这种工具使用python开发,分为三部分:TIAMon,数据库,TIAMachine。
1)TIAMon
TIAMon负责检测项目文件的更新,对收集和保留相关数据。这种检测包括TIA Portal和恶意软件修改导致项目文件的变化。
2)数据库
当项目文件被更新时,TIAMon会在更新前获取该项目文件最新版本的属性信息。然后计算一个哈希值,以保证数据和连接存储的完整性。收集到的数据(包括时间,哈希值,版本等)都存储在一个预先构建好的数据库内,如果没有数据库,就生成一个新的数据库,并将收集到的数据存储在库内。下图展示了数据库的存储信息表。
3)TIAMachine
TIAMachine负责进行项目文件的恢复
根据以上的三个部分,可以很容易的构建起该检测工具的工作流程
运行py脚本后,首先检测是否存在数据库,没有的话就新建一个。接下来判断plf文件是否有修改,如果有修改,就在记录中插入更新后的plf文件。如果没有更新,接着检测idx文件,如果有修改,就在记录中插入更新后的idx文件。否则进行下一步的判断,判断记录中是否有更新过的plf或idx文件,如果有,就把对应的文件更新。再重新检测,循环往复进行。