0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于网络流量的非标准工控协议逆向识别方法

SwM2_ChinaAET 来源:未知 作者:李倩 2018-05-11 09:38 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

协议安全是工业控制系统信息安全中的一项重要内容,非标协议格式的正确识别是协议安全分析的基础。基于工控系统行业现状和工控协议的结构确定、传输重复、语义有限的特性,提出了基于网络流量的非标准工控协议逆向识别方法,通过单报文处理进行初步分词聚类,多报文处理进行报文序列比对,关键字段推断语义,最终得到协议格式。验证结果表明,该方法能较好地识别非标工控协议格式。

0 引言

随着2010年“震网病毒”的出现,工业控制系统(Industrial Control Systems,ICS)的安全性越来越受到全球范围的关注[1]。接口环节是ICS中的关键环节,而通信协议又是接口的核心,工控协议的安全性分析已成为等级保护等安全测评中一项重要的内容。各工控厂商或个人出于提供个性化功能、优化通信性能、简化协议实现的复杂度等因素的考虑,导致工控行业中有大量的非标准协议存在。非标工控协议安全性分析采用的模糊测试等方法的前提是已知协议的格式信息,所以非标工控协议格式逆向识别成为了工控信息安全中的一项重要内容。

以往,非标工控协议的格式结构信息主要通过人工逆向的方式来获得,但这种方法往往耗时费力且结果不准确。工控协议与信息系统应用协议的区别导致信息系统应用协议逆向识别方法对非标工控协议的识别度不高。因此,需要研究适用于非标工控协议的格式逆向识别方法。

1 协议逆向技术和工控协议特点

1.1 协议逆向技术介绍

协议逆向工程(Protocol Reverse Engineering,PRE)指在不依赖于协议描述的情况下,通过对协议实体的网络输入输出、系统行为和指令执行流程进行监控和分析,提取协议语法、语义和同步信息的过程[2]。根据分析对象的不同,协议格式逆向分析技术分为基于网络流量和基于执行轨迹的协议格式逆向分析技术。

基于网络流量的协议格式逆向分析技术以网络数据流为分析对象,根据协议字段的取值变化频率和特征推断得到协议格式。其依据是数据流中的单个报文样本是协议格式的一个实例,相同格式的报文样本具有相似性,不同格式的报文样本具有一定的差异性,可以将具有相似性的报文汇集在一起,推断它们所遵循的报文格式。这种分析技术仅依赖于所捕获的网络数据包,具有比较好的通用性,因此应用较广泛。

基于执行轨迹的协议格式逆向分析技术主要对实现协议的二进制可执行程序进行逆向分析,获得程序具体处理网络通信数据包的指令执行序列。其主要依据是程序对数据包的处理按照定义好的数据包格式进行,通过对程序执行的跟踪,可以获得协议的部分或全部语义、语法信息。该技术方法除需获取通信数据包外,还需获得协议的实体可执行程序,这导致该技术在应用范围方面有一定的局限性。表1为基于网络流量和基于执行轨迹两种技术的比较及代表性的项目。

1.2 工业控制协议特点

工控协议是指工业控制网络中现场设备、控制器、操作员站、通信和应用等服务器、工程师站之间数据通信的规定,与系统功能和网络架构密切相关,对成套设施级可编程逻辑控制器(Programmable Logic Controller,PLC)、厂站级分布式控制系统(Distributed Control System,DCS)、广域的数据采集和监控系统(Supervisory Control and Data Acquisition,SCADA),分别发挥提供核心基础能力的作用。随着工控行业的发展,工控协议更多地采用基于以太网的通信协议方式,按照TCP/IP协议体系结构的划分,工控以太网协议主要是应用层协议。

相比较于传统的基于以太网的信息系统应用协议,工业控制协议通常具有以下特点:

(1)传输信息中,以二进制形式表示的模拟量、数字量类型信息比较多,文本类型信息少,视频类信息独立传输;

(2)多数信息有实时性要求,通信过程要在规定的时限内完成,否则就会造成数据质量失效;

(3)有相对明确的数据生成者与使用者,许多传输过程也在确定的物理环境中进行,通常认为通信环境比较清洁,许多通信数据不加密;

(4)协议中采用多种交互控制方式,如请求应答交互、周期主动传输,也提供多种流量优化机制,如变化传输、事件订阅等;

(5)在自动控制层,使用包含工业以太网等多种形式的现场总线,而在本地和远程监控层,基础层多采用基于以太网的TCP、UDP等可路由协议;

(6)出于工业应用的可靠性、安全性要求,通信数据包具有一定的检错、容错,甚至是纠错能力,可保证数据的完整性;

(7)多数情况下,数据包具有相对一致的协议控制结构和数据内容结构,如开始和截止标记、报文发送者和接收者标识、报文功能码、报文长度、校验码等。图1为一些工控协议格式结构示例。

2 非标工控协议格式逆向识别方法

工业控制网络中协议处理程序主要集成在ICS厂商提供的专用软件或硬件设备中,所以不易获取协议处理的可执行程序,而获取工控网络中的数据流量相对简单。所以对工控协议的逆向分析多采用基于网络流量的方式。根据工控协议的特点,提出通过主要预处理、单报文处理、多报文处理、语义推断4个阶段逆向分析工控协议的方法,如图2所示。

2.1 数据预处理

通过接入工控系统网络中捕获网络中通信数据,作为原始数据源。根据IP地址、端口号等分包过滤出需要分析的特定通信实体间的通信数据,作为逆向分析的报文序列样本集。对报文序列中出现的丢包、重传、乱序等情况进行处理;滤除不含负载的报文;丢弃校验和出错的报文;将IP分片的报文进行重组;对于TCP会话,一个完整会话以SYN报文开始,以FIN/RST报文结束。由于工控数据往往要求实时性,因此本文不考虑单个TCP报文中包含多个应用层协议的情况。

对于应用层协议的逆向,需要将数据包按照TCP/IP协议格式进行自底向上的解除封装,依次去除数据链路层、网络层和传输层的格式封装,得到完整应用层报文。

2.2 单报文处理

单报文处理的作用是对协议数据进行分词,并依据分词结果将协议数据包进行聚类划分。分词是指识别区分出报文中的一些特殊字段。单报文分词指识别出仅单个报文就可识别出的字段,如文本字段、时间戳字段、校验码字段等。根据报文中识别出的字段属性对报文进行聚类划分,可得到不同类型的报文组类。下面主要说明文本字段和时间戳字段的识别。

(1)文本字段识别。将报文字节流中属于ASCII码中可打印字符取值范围内的连续字节,将其识别为文本字段;否则为二进制字段[7]。为了避免将属于二进制字段的字节错误地识别为文本字段,限定文本字段的长度必须超过设定的文本长度最小阈值。由于工控协议中传输文本的数据包相对较少且格式相对单一,因此可将含有文本字段的报文聚为一类进行处理。图3中框中部分为报文中的文本字段。

(2)时间戳字段识别。将报文中连续的4 B或8 B数据按照时间戳(Unix timestamp)的方式进行计算得到时间值,如果该值在报文捕获时间的固定误差范围内,可将该4 B或8 B标识为时间戳字段。图4中框中部分即为小端字序表示的时间戳字段,时间值为2016年11月30日09:51:21.507340209。

2.3 多报文处理

多报文处理的作用是在划分出同一报文组中的报文内容固定段与非固定段、定长段和不定长段。序列比对是样本再划段和语义推断的前提。由于工控协议往往具有格式相同或相近、传输信息重复性高、同类型报文长度等长等特性,可以优先进行同长报文比对,按比对结果再分类得到不同格式类型;再将得到的格式类型相或相近的不同长报文进行不同长报文比对。最终得到多个不同格式样本的子集。

同长度报文比对主要是划分出相同长度报文组中报文内容的不变段与变化段。为了避免将同一初始分类组中长度相同但格式不同的报文进行强行比对,影响比对的准确度,需要设定距离阈值,在距离过大时停止比对,并将之再分类。依据比对结果划分标记变化段和不变段。

不同长报文比对主要是识别出长度不同、但格式相同或相近的报文中内容数据定长段和不定长段。采用时间和空间复杂度都相对比较适合的渐进多序列比对算法。参考PI项目中的渐进比对算法,主要包括3个步骤:(1)采用Smith-Waterman算法找出任意两个样本之间的局部最佳比对,据此计算样本间的相似度,并构造样本集的距离矩阵;(2)采用非加权成对群算术平均法(Unweighted Pair Group Method with Arithmetic means,UPGMA)计算子类间的距离,逐步将距离最小的子类进行合并;(3)执行渐进多序列比对,采用Needleman-Wunsch算法进行双序列动态规划比对[8],对未对齐的字节进行补充。为减少算法复杂度,对同长报文比对后分类的各类中选取少数样本组合成作为样本集进行不同长报文比对。

2.4 字段语义推断

字段的语义表示协议将如何使用该字段,包括会话标识符、序号、地址、长度字段、格式标识字段、校验和、时间戳等。以不同字段在协议语法层次中表现出的不同特征作为语义推断的依据,对不同字段按照相应的识别方法进行识别。由于单报文处理中已将文本字段、时间戳字段、校验和字段等进行了识别,因此该阶段主要在二进制数据段内对标识符、序号、长度、地址、功能码、数据等字段进行识别。最后对提取的格式进行整理融合,最终得到协议的格式结构。

序号字段是用于标识报文在一个会话的先后顺序。特征是一般靠近段首,取值一直变化,且与报文的截获先后顺序相对应。可以对未知的数值变化段进行判断,如其取值变化与报文的截获序号成正相关的关系,则判定为序号字段。

长度字段是报文中用于定界的字段,字段长度通常为2 B或4 B,取值与样本中的某一字段或连续的某几个字段的长度相等,作用域通常在该字段之后或包含所有字段。识别策略为判断该字段值与其后的某一字段或连续的某几个字段的长度、或与所有字段总长度是否相等,若相等则判定为长度字段。

格式标识字段是指用于区别报文中部分子格式序列的关键字段,多为协议格式字段或功能码字段,格式标识字段的取值一般类型较少、变化率小,且与后续字段序列的格式相关联,作用域多位于其后区域。如果该字段变化导致后部所有字段格式发生变化,将其识别为协议格式字段。

数据字段是指对报文结构和其他关键字段影响不大或没有直接影响的可变字段,一般指报文的负载。特征是随机性强,且变化无规律可循,长度可能不固定,通常位于协议后部或尾部,对于序列比对中需要插入空位的可变字段,判定为数据字段,文本字段也判定为数据字段。

3 方法验证

以两种典型ICS系统中的通信数据作为数据源进行验证。以某PLC与工程师站组态软件之间的通信协议数据包为数据源,采用本文所述方法对协议进行逆向识别,识别的格式结果如表2所示。

以某DCS中的通信数据为数据源,对其进行协议的逆向识别,得到3种主要的协议格式类型,如图5所示,格式I、II中请求报文格式和应答报文的格式不同,格式III请求和应答采用同种格式。

4 结论

工控协议逆向格式识别是协议安全性分析的重要前提。本文根据工控协议的特点,提出基于网络流量技术,采用单报文处理、多报文处理、字段语义推断3个阶段进行协议格式逆向识别的方法。通过对两种协议数据源的验证可以看出,本文方法能较好地逆向协议格式,提取出协议格式标识、序号、长度、数据等关键字段。

受基于网络流量逆向分析技术的局限性,本文方法对协议功能码具体语义的识别率较低。未来研究方向为将人工先验知识和机器学习方法引入协议逆向识别中,同时结合协议上下文,实现更高的样本覆盖率,以提高协议逆向识别的准确度,同时得到协议转换的状态机。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 协议
    +关注

    关注

    2

    文章

    620

    浏览量

    41262
  • 通信数据
    +关注

    关注

    0

    文章

    13

    浏览量

    10134
  • 工控系统
    +关注

    关注

    1

    文章

    102

    浏览量

    15161

原文标题:【学术论文】非标工业控制协议格式逆向方法研究

文章出处:【微信号:ChinaAET,微信公众号:电子技术应用ChinaAET】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    常见元器件的极性识别方法

    元器件的正负极或第一引脚与PCB上的正负极或第一引脚在同一个方向,如果元器件与PCB上的方向不匹配时,称为反向不良。下文分析常见电子元器件的极性识别方法。1片式电阻
    的头像 发表于 05-18 11:04 278次阅读
    常见元器件的极性<b class='flag-5'>识别方法</b>

    厚声电阻的精度标记识别方法

    厚声电阻的精度标记识别方法主要依据其阻值精度等级采用不同的标注规则,常见精度等级包括±5%、±1%等,具体识别方式如下: 一、±5%精度电阻的标记方法 三位数字表示法 规则 :前两位为有效数字
    的头像 发表于 03-31 15:38 248次阅读
    厚声电阻的精度标记<b class='flag-5'>识别方法</b>

    动态流量池数据资源交付技术:破解网络流量调度的核心难题

    。而传统的网络流量交付模式长期面临资源浪费与突发拥堵的双重困境,基于动态流量池的数据资源交付方法的出现,为这一行业痛点提供了全新的解决方案。一、传统数据流量交付的行
    的头像 发表于 03-30 13:50 1980次阅读
    动态<b class='flag-5'>流量</b>池数据资源交付技术:破解<b class='flag-5'>网络流量</b>调度的核心难题

    如何做非标检测?设备特点、试验步骤与周期费用实用指南

    非标检测,即非标准检测,指的是那些没有统一国家标准、行业标准或国际标准可遵循的检测活动。这类检测通常是为了满足特定客户的需求或解决某些特殊问
    的头像 发表于 03-26 13:53 182次阅读
    如何做<b class='flag-5'>非标</b>检测?设备特点、试验步骤与周期费用实用指南

    网络分析仪在非标称阻抗电缆测试中的应用

    、S参数(如插入损耗、回波损耗/驻波比、Smith圆图)以及眼图特性,是评估其信号完整性的重要依据。   测试挑战与难点 使用网络分析仪(VNA)测试这些非标称线缆时,面临一个普遍的难题:测试系统的端口通常是标准的50Ω同轴接口
    的头像 发表于 02-06 15:54 351次阅读
    <b class='flag-5'>网络</b>分析仪在<b class='flag-5'>非标</b>称阻抗电缆测试中的应用

    Modbus RTU 协议非标准扩展方案与应用实践

    除了常规的数据采集,Modbus RTU 还有哪些不寻常的“高阶玩法”?下面分享几个有意思的用法。 1. 暗度陈仓 通过4X保持寄存器传文件 在仅支持 Modbus RTU 协议的串口连接下,可通过
    的头像 发表于 01-28 10:38 393次阅读
    Modbus RTU <b class='flag-5'>协议</b>的<b class='flag-5'>非标准</b>扩展方案与应用实践

    AsterNOS-VPP + ET系列智能平台:构建高性能、可自定义的开放网络流量调度底座

    AsterNOS-VPP针对云时代IP动态变化、复用导致的传统路由策略效能不足问题,提供基于Geo-Engine的流量调度方案。其通过提取TLS SNI等协议头部域名信息,实现
    的头像 发表于 01-13 11:09 1350次阅读
    AsterNOS-VPP + ET系列智能平台:构建高性能、可自定义的开放<b class='flag-5'>网络流量</b>调度底座

    攻击逃逸测试:深度验证网络安全设备的真实防护能力

    攻击逃逸测试通过主动模拟协议混淆、流量分割、时间延迟等高级规避技术,能够深度验证网络安全设备的真实防护能力。这种测试方法不仅能精准暴露检测引擎的解析盲区和策略缺陷,还能有效评估防御体系
    发表于 11-17 16:17

    电解电容极性的识别方法及注意事项

    电解电容器是一种具有极性的电子元件,正确识别其极性对电路安全与性能至关重要。若极性接反,可能导致电容漏液、发热、爆炸甚至损坏整个电路。以下是电解电容极性的识别方法及注意事项: 一、外观标识法(最常
    的头像 发表于 11-11 15:37 3673次阅读
    电解电容极性的<b class='flag-5'>识别方法</b>及注意事项

    OT网络流量分析的突破口:IOTA助力安全与效率双提升

    重点速览面对复杂的OT网络环境,传统的数据采集与分析工具往往难以满足高效性和精准性的需求。ProfitapIOTA提供了一种智能化的解决方案,使企业能够更快速、更准确地进行流量分析与故障诊断。本文
    的头像 发表于 08-08 18:12 1123次阅读
    OT<b class='flag-5'>网络流量</b>分析的突破口:IOTA助力安全与效率双提升

    DPI技术赋能:开启智能流量分析新纪元

    随着企业数字化转型的深入,网络流量复杂度与安全威胁呈现爆炸式增长。传统防火墙与入侵检测系统面对加密流量和高级威胁显得力不从心,关键业务响应延迟激增,未知恶意流量渗透导致数据泄露风险高,运维团队在安全
    的头像 发表于 07-28 11:05 1705次阅读
    DPI技术赋能:开启智能<b class='flag-5'>流量</b>分析新纪元

    协议分析仪能监测哪些异常行为?

    。 检测方法协议分析仪可解析非标准字段内容,结合威胁情报匹配已知隐蔽通道模式。 隧道攻击(Tunneling Attack) 实例: HTTP:将Modbus TCP流量封装在H
    发表于 07-22 14:20

    如何评估协议分析仪的性能指标?

    ,避免订单延迟。 IoT网络:大量小包(如CoAP协议)需高包处理速率防止堆积。 延迟(Latency) 定义:数据包从进入分析仪到输出结果的耗时(纳秒/微秒级)。 评估方法: 硬件时间戳:使用支持
    发表于 07-18 14:44

    完整教程:如何在树莓派上配置防火墙?

    引言防火墙是任何网络包括树莓派网络中必不可少的工具。本质上,防火墙是内部网络(如树莓派网络)与其他外部网络(如互联网)之间的安全屏障。其主要
    的头像 发表于 07-07 16:30 1412次阅读
    完整教程:如何在树莓派上配置防火墙?

    工业智能网关的协议兼容性体现在哪些方面

    工业智能网关的协议兼容性是其核心功能之一,主要体现在 支持多种工业通信协议、物联网协议非标准协议解析,以及
    的头像 发表于 07-07 15:09 1091次阅读