某工控组态软件工程文件加密机制探究
2022-12-19 11:28:42   来源:FreeBuf.COM   评论:0 点击:

一、 前言

在工业自动化控制领域,组态软件是数据采集与过程控制的专用软件,是实现人机交互必不可少的工具。工程设计人员使用组态软件在PC机上进行工程画面组态的编辑,然后把编译后的组态逻辑通过以太网或串口下载到PLC或其它连接设备中运行,并进行相应的控制和监视。组态软件广泛应用于机械、汽车、石油、化工、造纸、水处理以及过程控制等诸多领域。

本次研究的组态软件是一家取得国内市场领先地位厂商的产品,该产品广泛应用与工业控制领域,如轻工业、电力、交通、能源等通用装备控制行业。

天弓实验室研究员发现,该品牌组态软件的最新版本中工程文件加密机制比较脆弱,攻击者可在不知道文件密码的情况下获取密码,从而修改工程文件,改变生产流程,给工业生产过程带来损失。

二、 漏洞挖掘流程

1、 创建工程文件

打开软件,新建一个工程文件,添加一个组件,先保存为无密码项目,然后添加文件保护密码,另存为有密码文件。
image.png
2、 文件格式分析

使用分析工具打开这两个项目文件,查看数据统计结果。通过比对发现两个文件中都存在大量的16进制“4D”数据,在整个文件数据中占比都高于58%。在正常情况下该文件中占比最多的数据是“00”,所以推测工程文件无论是否设置文件保护密码,都要使用16进制“4D”进行异或加密。

下面进行比对分析
无密码分析
image.png
有密码分析
image.png
所以使用“4D”分别对这两个文件进行异或运算,结果在两个文件中都发现了一些可读字符,说明思路是对的,当异或运算之后的文件就是明文文件。

无密码
image.png
有密码
image.png
经过对比两个文件的异同,发现无论是否加密,文件头是一样的。继续往下查看,在加密密码存储区域有明显的差异。可看到加密文件的密码为“aaaaaa”,未加密文件没有密码。

image.png
3、 漏洞利用

通过上述分析明白原理后我们就可以编写解密脚本以实现自动化获取工程文件的加密密码,而不用每次进行分析。本次编写的脚本可以获取到工程文件是否有密码保护、密码长度及密码。
image.png
4、 利用场景

攻击人员通过控制生产网的工程师站后,打开工控组态软件查看工程文件时需要输入口令才可继续。攻击人员可以利用该解密脚本把工程文件进行解密获得密码,从而进入组态工程进行修改组态逻辑,以改变工业正常生产流程。

三、 总结

工程文件加密是应对网络攻击的最后一道防护措施,能够在生产网被攻陷时保证生产流程不被篡改。通过以上内容可以看出,部分组态软件在工程文件加密方面不够重视。文件加密应使用完善的加密算法,由加密密码参与运算来生成足够长的子密钥,再用子密钥来加密文件,而不是使用简单的固定值来对文件加密。

相关热词搜索:工业互联网安全

上一篇:国家能源局关于印发《电力行业网络安全等级保护管理办法》的通知
下一篇:派拓网络:面对性命攸关的时刻,如何实现可靠的医疗物联网安全

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306116;邮箱:aet@chinaaet.com。
分享到: 收藏