一种基于py的检测和恢复ICS项目更新的开发思路

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文件,如果有,就把对应的文件更新。再重新检测,循环往复进行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 基于Django和python实现的流量检测模型系统源码+项目说明.zip `data_cut/`存放按照五元组切割后的流量样本 `data_raw/`存放流量收集来的原始样本 `feature_extract/`存放特征提取后的训练和测试样本 `flow_cut/`按照五元组切割流量样本模块 `flow_collect/`采集流量模块 `model_train/`模型训练模块 `model_test/`模型测试模块 `result_show/`结果展示模块 `flow_system/`配置模块 `home`主页模块 `requirement.txt`配置要求 `manage.py`django主要运行程序 ## Data `data_raw`存放流量收集来的原始样本 `data_cut`存放按照五元组切割后的流量样本,其中`flow/`存放普通流量,`tls/`存放加密流量 `feature_extract/`存放特征提取后的特征,其中`image/`存放图片特征,`flow/`存放流级特征,`tls/`存放加密特征,详细命名规则请看每个文件夹中的readme.txt ## Model VMT HAE WVM ## Model_save `model_save/`存放WVM训练好模型 `modelSaved/`存放VMT和HAE训练好模型 ## Settings `flow_system/settings`中,`DATABASES`设置数据库账号与密码,默认数据库为mysql ## Use `python manage.py migrate flow_cut`建立数据库标项 `python manage.py migrate flow_collect`建立数据库标项 `python manage.py migrate feature_extract`建立数据库标项 `python manage.py migrate model_test`建立数据库标项 `python manage.py makemigrations`保存数据库变动 `python manage.py runserver`运行本地服务器 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,也适用于小白学习入门进阶。当然也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或者热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载,沟通交流,互相学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值