非标工业控制协议格式逆向方法研究_第1页
非标工业控制协议格式逆向方法研究_第2页
非标工业控制协议格式逆向方法研究_第3页
非标工业控制协议格式逆向方法研究_第4页
非标工业控制协议格式逆向方法研究_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、非标工业控制协议格式逆向方法硏究协议安全是工业控制系统信息安全中的一项重要内容,非标协议格式 的正确识别是协议安全分析的基础。基于工控系统行业现状和工控协议的 结构确定、传输重复、语义有限的特性,提出了基于网络流量的非标准工 控协议逆向识别方法,通过单报文处理进行初步分词聚类,多报文处理进 行报文序列比对,关键字段推断语义,最终得到协议格式。验证结果表明, 该方法能较好地识别非标工控协议格式。随着2010年"震网病毒"的出现,工业控制系统(industrial control systems , ics) 的安全性越来越受到全球范围的关注1。接口环节是ics中的关键环节,而

2、通信协议又 是接口的核心,工控协议的安全性分析已成为等级保护等安全测评中一项重要的内容。 各工控厂商或个人岀于提供个性化功能、优化通信性能、简化协议实现的复杂度等因素 的考虑,导致工控行业中有大量的非标准协议存在。非标工控协议安全性分析采用的模 糊测试等方法的前提是已知协议的格式信息,所以非标工控协议格式逆向识别成为了工 控信息安全中的一项重要内容。以往,非标工控协议的格式结构信息主要通过人工逆向的方式来获得,但这种方法往 往耗时费力且结果不准确。工控协议与信息系统应用协议的区别导致信息系统应用协议 逆向识别方法对非标工控协议的识别度不高。因此,需要研究适用于非标工控协议的格 式逆向识别方法。

3、1.1协议逆向技术介绍协议逆向工程(protocol reverse engineering , pre)指在不依赖于协议描述的情况下,通过对协议实体的网络输入输出、系统行为和指令执行流程进行监控和分析,提取 协议语法、语义和同步信息的过程2。根据分析对象的不同,协议格式逆向分析技术分 为基于网络流量和基于执行轨迹的协议格式逆向分析技术。基于网络流量的协议格式逆向分析技术以网络数据流为分析对象,根据协议字段的取 值变化频率和特征推断得到协议格式。其依据是数据流中的单个报文样本是协议格式的 个实例,相同格式的报文样本具有相似性,不同格式的报文样本具有一定的差异性, 可以将具有相似性的报文汇集在一

4、起,推断它们所遵循的报文格式。这种分析技术仅依 赖于所捕获的网络数据包,具有比较好的通用性,因此应用较广泛。基于执行轨迹的协议格式逆向分析技术主要对实现协议的二进制可执行程序进行逆向 分析,获得程序具体处理网络通信数据包的指令执行序列。其主要依据是程序对数据包 的处理按照定义好的数据包格式进行,通过对程序执行的跟踪,可以获得协议的部分或 全部语义、语法信息。该技术方法除需获取通信数据包外,还需获得协议的实体可执行 程序,这导致该技术在应用范围方面有一定的局限性。表1为基于网络流量和基于执行 轨迹两种技术的比较及代表性的项目。1.2工业控制协议特点工控协议是指工业控制网络中现场设备、控制器、操作

5、员站、通信和应用等服务器、 工程师站之间数据通信的规定,与系统功能和网络架构密切相关,对成套设施级可编程 逻辑控制器(programmable logic controller z plc)、厂站级分布式控制系统 (distributed control system ,dcs)、广域的数据采集和监控系统(supervisory control and data acquisition , scada),分别发挥提供核心基础能力的作用。随着工控行业的 发展,工控协议更多地采用基于以太网的通信协议方式,按照tcp/ip协议体系结构的划 分,工控以太网协议主要是应用层协议。相比较于传统的基于以太网

6、的信息系统应用协议,工业控制协议通常具有以下特点:(1) 传输信息中,以二进制形式表示的模拟量、数字量类型信息比较多,文本类型信息少, 视频类信息独立传输;(2) 多数信息有实时性要求,通信过程要在规定的时限内完成,否则就会造成数据质量失 效;g)有相对明确的数据生成者与使用者,许多传输过程也在确定的物理环境中进行,通常 认为通信环境比较清洁,许多通信数据不加密;(4) 协议中采用多种交互控制方式,如请求应答交互、周期主动传输,也提供多种流量优 化机制,如变化传输、事件订阅等;(5) 在自动控制层,使用包含工业以太网等多种形式的现场总线,而在本地和远程监控层, 基础层多采用基于以太网的tcp、

7、udp等可路由协议;(6) 出于工业应用的可靠性、安全性要求,通信数据包具有一定的检错、容错,甚至是纠 错能力,可保证数据的完整性;(7) 多数情况下,数据包具有相对一致的协议控制结构和数据内容结构,如开始和截止标 记、报文发送者和接收者标识、报文功能码、报文长度、校验码等。图1为一些工控协 议格式结构示例。工业控制网络中协议处理程序主要集成在ics厂商提供的专用软件或硬件设备中,所 以不易获取协议处理的可执行程序,而获取工控网络中的数据流量相对简单。所以对工 控协议的逆向分析多采用基于网络流量的方式。根据工控协议的特点,提出通过主要预 处理、单报文处理、多报文处理、语义推断4个阶段逆向分析工

8、控协议的方法,如图2 所示。2.1数据预处理通过接入工控系统网络中捕获网络中通信数据,作为原始数据源。根据1p地址、端口 号等分包过滤出需要分析的特定通信实体间的通信数据,作为逆向分析的报文序列样本 集。对报文序列中出现的丢包、重传、乱序等情况进行处理;滤除不含负载的报文;丢 弃校验和出错的报文;将ip分片的报文进行重组;对于tcp会话,一个完整会话以syn 报文开始,以fin/rst报文结束。由于工控数据往往要求实时性,因此本文不考虑单个 tcp报文中包含多个应用层协议的情况。对于应用层协议的逆向,需要将数据包按照tcp/ip协议格式进行自底向上的解除封 装,依次去除数据链路层、网络层和传输

9、层的格式封装,得到完整应用层报文。2.2单报文处理单报文处理的作用是对协议数据进行分词,并依据分词结果将协议数据包进行聚类划 分。分词是指识别区分出报文中的一些特殊字段。单报文分词指识别出仅单个报文就可 识别出的字段,如文本字段、时间戳字段、校验码字段等。根据报文中识别出的字段属 性对报文进行聚类划分,可得到不同类型的报文组类。下面主要说明文本字段和时间戳 字段的识别。(1)文本字段识别。将报文字节流中属于ascii码中可打印字符取值范围内的连续字节, 将其识别为文本字段;否则为二进制字段7。为了避免将属于二进制字段的字节错误地 识别为文本字段,限定文本字段的长度必须超过设定的文本长度最小阈值

10、。由于工控协 议中传输文本的数据包相对较少且格式相对单一,因此可将含有文本字段的报文聚为一 类进行处理。图3中框中部分为报文中的文本字段。(2)时间戳字段识别。将报文中连续的4 b或8 b数据按照时间戳(unix timestamp) 的方式进行计算得到时间值,如果该值在报文捕获时间的固走误差范围内,可将该4 b 或8 b标识为时间戳字段。图4中框中部分即为小端字序表示的时间戳字段,时间值为 2016 年 11 月 30 日 09:51:21.507340209o2.3多报文处理多报文处理的作用是在划分出同一报文组中的报文内容固定段与非固定段、定长段和 不定长段。序列比对是样本再划段和语义推断

11、的前提。由于工控协议往往具有格式相同 或相近、传输信息重复性高、同类型报文长度等长等特性,可以优先进行同长报文比对, 按比对结果再分类得到不同格式类型;再将得到的格式类型相或相近的不同长报文进行 不同长报文比对。最终得到多个不同格式样本的子集。同长度报文比对主要是划分岀相同长度报文组中报文内容的不变段与变化段。为了避 免将同一初始分类组中长度相同但格式不同的报文进行强行比对,影响比对的准确度, 需要设定距离阈值,在距离过大时停止比对,并将之再分类。依据比对结果划分标记变 化段和不变段。不同长报文比对主要是识别出长度不同、但格式相同或相近的报文中内容数据定长段 和不定长段。采用时间和空间复杂度都

12、相对比较适合的渐逬多序列比对算法。参考pi项 目中的渐进比对算法,主要包括3个步骤:(1)采用smith-waterman算法找出任意两 个样本之间的局部最佳比对,据此计算样本间的相似度,并构造样本集的距离矩阵;(2)采用非加权成对群算术平均法(unweighted pair group method with arithmetic means , upgma)计算子类间的距离,逐步将距离最小的子类进行合并;g)执行渐进多 序列比对,采用needleman-wunsch算法进行双序列动态规划比对,对未对齐的字 节进行补充。为减少算法复杂度,对同长报文比对后分类的各类中选取少数样本组合成 作为样

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

14、判断,如其取值变 化与报文的截获序号成正相关的关系,则判定为序号字段。长度字段是报文中用于定界的字段,字段长度通常为2 b或4 b ,取值与样本中的某 一字段或连续的某几个字段的长度相等,作用域通常在该字段之后或包含所有字段。识 别策略为判断该字段值与其后的某一字段或连续的某几个字段的长度、或与所有字段总 长度是否相等,若相等则判定为长度字段。格式标识字段是指用于区别报文中部分子格式序列的关键字段,多为协议格式字段或 功能码字段,格式标识字段的取值一般类型较少、变化率小,且与后续字段序列的格式 相关联,作用域多位于其后区域。如果该字段变化导致后部所有字段格式发生变化,将 其识别为协议格式字段。

15、数据字段是指对报文结构和其他关键字段影响不大或没有直接影响的可变字段,一般 指报文的负载。特征是随机性强,且变化无规律可循,长度可能不固定,通常位于协议 后部或尾部,对于序列比对中需要插入空位的可变字段,判定为数据字段,文本字段也 判走为数据字段。以两种典型ics系统中的通信数据作为数据源进行验证。以某plc与工程师站组态软 件之间的通信协议数据包为数据源,采用本文所述方法对协议进行逆向识别,识别的格 式结果如表2所示。以某dcs中的通信数据为数据源,对其进行协议的逆向识别,得到3种主要的协议格 式类型,如图5所示,格式i、ii中请求报文格式和应答报文的格式不同,格式iii请求和 应答采用同种

16、格式。工控协议逆向格式识别是协议安全性分析的重要前提。本文根据工控协议的特点,提 岀基于网络流量技术,采用单报文处理、多报文处理、字段语义推断3个阶段进行协议 格式逆向识别的方法。通过对两种协议数据源的验证可以看出,本文方法能较好地逆向 协议格式,提取出协议格式标识、序号、长度、数据等关键字段。受基于网络流量逆向分析技术的局限性,本文方法对协议功能码具体语义的识别率较 低。未来研究方向为将人工先验知识和机器学习方法引入协议逆向识别中,同时结合协 议上下文,实现更高的样本覆盖率,以提高协议逆向识别的准确度,同时得到协议转换 的状态机9。参考文献1 屈婉莹,魏为民,朱苏榕工业控制系统通信协议安全研

17、究cj.2015年全国智能电网用户端能 源管理学术年会论文集,上海,2015 : 220-224.2 吴礼发,洪征,潘皤网络协议逆向分析及应用m.北京:国防工业出版社,2016.3 marshall b.the protocol information projecteb/ol.(2011-03-20)2017-03-14,4 shevertalov m , mancoridis s.a reverse engineering tool for extracting protocols of networked a ppi icat ions c. proceedings of the 14th worki ng conf ere nee on reverse engineering , ieee computer society , washington dc , usa , 2007 : 229-23&5 cui w , kannan j , wang h j.discover : automatic protocol reverse engineering from network tracesc.16th usenix security symp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论