Page 162 - 软件工程与项目管理
P. 162
软件工程与项目管理
Software Engineering & Project Management
冗余的问题,并没有提出有效的状态机优化方案。
Antunes 等人基于偏序比对算法,从对网络轨迹的分析中构建了一个网络协
议状态机。主要基于 FTP 进行评估,并建立了两种类型的协议状态机,分别为
贪婪自动机与保守自动机。前者试图利用协议状态的相似性得到最小数量的协议
状态节点,这样能够发现协议消息中的模式,但缺陷是会生成结构复杂、冗余的
状态机,不利于协议重放;而保守的方法会生成节点相对较多的协议状态机。该
方法通过序列比对技术、贪婪算法和偏序对齐算法从基于其采样消息构建协议自
动机的构建方案识别特定协议。该方法构建的自动机与逆向工程的应用于各大领
域的协议状态机不同,缺乏对协议状态的具体语义描述,只是对相应的字符进行
识别,缺乏实际的应用价值。
ReverX 工具同样利用了网络轨迹作为输入,可分为推断协议语言和简化协
议状态机两个阶段。在第一个阶段,ReverX 从网络轨迹中的协议消息中构造前
缀树接收器(PTA)用来构造一个有限状态机接收来自相同协议消息类型的不同
应用载荷,也称为协议语言构造;在后一个阶段,该工具根据在网络轨迹中不同
消息展现出的因果关系对协议状态机进行简化。ReverX 最大的创新点在于着手
处理二进制协议的协议状态机推断,将每一个消息进行初始化分割,每个字节作
为一个字段序列,并在构造前缀树接收器时合并所有来自无分支子序列的状态符
号和转换过程。ReverX 基于 DNS 协议进行评估,它接受来自网络轨迹的所有消
息类型,但只在协议消息的消息头得以实现逆向,更深层次的应用层报文无法体
现出来,还需要进一步的研究。
Zhang 等人于 2012 年提出基于数据包分析阶段、协议状态机探索阶段和基
于询问驱动的状态机构造阶段(querydriven state machine,QSM)三个阶段构造
协议状态机。该方法首先使用 Wireshark 工具捕获用户原始流量并将其存储在
pcap 格式的文件中;然后数据包分析模块将所有分组转换为 XML 格式的文件以
便更好地描述数据包结构。协议状态机探索模块创建一些序列与目标协议进行通
信,通过 QSM 学习算法与 EDSM 算法的结合推断协议状态机。基于询问驱动的
方法由于需要生成大量的询问,其自动化程度较低。肖明明等人于 2013 年提出
一种基于差错纠正的文法推断方法,从报文应用层会话中通信实体间通信时产生
的协议状态标志符序列反向推断协议状态机的方法。在差错纠正过程中,该文借
鉴了 ECGI 的差错纠正分析思想,提出了利用最佳路径去匹配标准确定纠正路径,
152
152

