齐安安小课堂 | 串口数据抓取以及串口数据模拟

liftword2周前 (06-23)技术文章10


各位同学们好,好久不见!

齐安安小课堂又双叒叕开课啦~

本期来讲讲在工控现场使用的设备中

有哪些普遍存在又容易被忽视的安全隐患

只有重视每一个小细节

才能对工业安全做出更好的防护哦~


引言

在工控现场中,存在着几乎所有设备都离不开,很基础,但是也非常容易出现安全隐患的地方——串口那么串口是什么呢?串口通信是否有风险?本次小课堂中我们将带来解答,并详细描述如何对串口进行安全攻防。

什么是串口?

串口全称为串行通信接口,串行接口是一种可以将接收来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接收的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。

工控现场中,所拥有的大部分网络设备都具备了串口通信,甚至将串口保留为最基础的调试接口,即使没有外接串口设备,我们也可以在PCB板上找到串口接出的pin针脚或焊点。如果工控设备没有对串口进行加密读取的话,就会产生对串口进行敏感数据操作可能性。

本文将模拟硬件与串口进行通信时及串口数据传输时对数据进行抓取和分析的过程,将模拟抓取到的数据发送给下位机,以此验证不经过系统时是否可以直接通过串口发送数据到下位机。


串口的主要运用场景

串口是计算机上一种非常通用的设备通信协议。大多数计算机(不包括笔记本电脑)包含两个基于RS-232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用来获取远程采集设备上所产生的数据。

RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。用途诸多,比如连接鼠标、打印机或者Modem,也可以连接工业仪器仪表。


STM32串口通信基础以及通信过程

通常PC机(或上位机)一般使用的都是RS232接口(通常为DB9封装),不能直接交叉连接。RS232接口是9针(或引脚),常常是TxD和RxD经过电平转换得到的。所以,要想使得芯片与PC机的RS232接口直接通信,需要也将芯片的输入输出端口也电平转换成rs232类型,再交叉连接。


经过电平转换后,芯片串口和rs232的电平标准是不一样的:

单片机的电平标准(TTL电平):+5V表示1,0V表示0;

Rs232的电平标准:+15/+13 V表示0,-15/-13表示1。


进行操作时使用的工具


Virtual Serial Port Driver模拟串口


友善串口调试工具,也可自己使用python包serial进行调试,示例为了操作方便使用工具。


串口数据抓取

开始监听com口数据

抓取的数据如图所示

抓取的数据如图所示


可以查看到dump view窗口中写入的数据


以aa请求开头,以ff请求结尾,中间f0818283为数据,再观察工控机器的所做出对应的操作,即可了解到该指令的含义。


串口数据通信

最后,使用友善串口调试助手发送串口数据即可

结论

在经过测试验证的情况下,可以在没有进行串口通信加密的情况下,借助上位机(一般代指PC),绕过软件权限限制,对下位机(工控设备),进行随意的修改和发送指令。


课后答疑

Q:如何对串口数据通信进行保护呢?

A:可以在接受到外设备发送过来的8个字节数据后,通过加密处理,生成16字节密钥与标签码,并将这些信息通过串口回传给外设备。如此便可防止串口被监听导致所发送的数据泄露。

Q:现代大多工控设备中会对串口进行加密保护吗?

A:比较少因为进行这样的操作需要直接连接到机器,然而,工控现场保护较为严密,采用物理保护后,针对软件层面上的保护一般因为节省成本而忽略掉,但是此类行为并不可取。工控数据对安全性要求非常高,不做串口加密保护,的话就相当于等同于存在一个已知的威胁隐患。所以,相关工业企业需要足够重视,更好地保护工业数据的安全。

内容二月又三年

责编:喵喵

转载请注明出处

相关文章

Python实现串口助手 - 03串口功能实现

 串口调试助手是最核心的当然是串口数据收发与显示的功能,pzh-py-com借助的是pySerial库实现串口收发功能,今天痞子衡为大家介绍pySerial是如何在pzh-py-com发挥功能的。一、...

200行Python代码实现串口调试助手之联合调试

软件开发离不开调试,调试手段分两种:一是黑盒调试,即直接从输入 / 输出角度测试软件功能是否正常,这种方式仅能发现问题,但无法直接定位问题原因所在;二是白盒调试,即直接拿源代码在线 debug,pyt...

200行Python代码实现串口调试助手之环境搭建

在写 pzh-py-com 时需要先搭好开发和调试环境,下表列出了开发过程中会用到的所有软件/ 工具包:一、涉及工具列表二、开发环境搭建(Python + pySerial + wxPython +...

同事开玩笑说:你这个python程序要是外流出去了,可能会有危险

引言公司因为业务原因,购入了一些高灵敏高精度的振动传感器。老板说:“拿去进行测试,看看数据如何?”吭哧吭哧接入数据,一看,确实精度和灵敏度非常高。具体多高呢?将传感器固定在相关的结构物上,在办公室中人...

Python实现串口助手 - 02界面构建

今天给大家介绍的是串口调试工具pzh-py-com诞生之界面构建。  一个软件的UI界面是非常重要的,这是软件与用户交互的接口,软件功能即使再强大,但如果没有清晰的UI界面,那也发挥不出软件的功能,使...