Page 159 - 软件工程与项目管理
P. 159

第四章 软件逆向工程技术与应用



                 孙芳慧针对 PI、Netzob 中的初始聚类方法进行优化并提出了一种将基于
            协议格式关键字识别的聚类划分方法与基于网络流量特征的聚类归约方法相结
            合的私有协议格式提取方法。在聚类划分阶段,首先根据字符类编码型进行分
            词标记分为文本和二进制两种字段;随后寻找可能存在的格式标志符(format
            distinguisher,FD)作为关键字,按照序列中值分布频率来进行判定;再按照基

            于标记类别的初步划分和基于关键字的聚类划分两种方法递归地对报文进行聚
            类。在聚类归约阶段,首先使用基于中心点的 PAM 聚类算法,然后对基于编辑
            距离的 LD(Levenshtein distance)算法进行改进。为了衡量两个类中字段格式的

            相似性,提出了一种基于序列比对的报文相似度(message similarity,MS)计算
            方法,该方法符合报文分词序列比对特点。随后又引入了一种基于 Dunn 指标的
            聚类归约方案以提高结果的有效性,降低整体聚类的冗余。
                 Cai 等人于 2016 年将隐半马尔可夫模型(HSMM)应用于协议消息格式,通
            过消息分割和关键字选择的最大似然性概率来确定协议关键字的最优长度和协议

            消息格式。该方法基于网络轨迹,使用 Tshark 工具收集原始流量数据集,并通
            过会话重建、消息重组进行数据预处理,使用基于 BaumWelch 算法的学习过程
            对基于 HSMM 对协议进行建模,随后利用前向后向算法将模型应用于协议消息

            分割并获得协议关键字的最优长度。该文献方法不但能发现存在协议字段之间的
            顺序关系,而且能发现协议字段之间存在的并列关系(如 HTTP 请求头中的 host
            与 cookie 字段为并列关系)。文献还提出了基于频繁规则的封闭字符串算法来发
            现最优的关键字字段,并提出了一种基于亲和力传播机制的算法对协议消息进行
            聚类从而推断协议类型,为下一步推断协议有限状态机的工作做了铺垫。将该方

            法与 Discover、PI 项目进行测试比对,相比于上述两种方法,提出的方法具有严
            格的数学理论证明,具有更高的精确率与召回率;但缺陷在于无法解析二进制协
            议,随着观测序列的增加,会出现观测序列联合概率下溢的情况。由于模型描述

            能力有限,需要进一步分析才能够获取字段之间的取值约束等语义信息,而模型
            所获得的协议关键词也存在较多冗余。
                 曾令元为解决 PI、Discover 中协议识别率高低依赖于数据量大小的问题,基
            于民用小型无人机测控过程的通信协议较为私密的背景下,将比特流消息数据作
            为研究对象、飞行记录文档作为先验知识,通过数理统计和数据挖掘等手段实现

            了协议格式提取以及字段语义推断的协议逆向工作。数据来自MATLAB仿真平台,


                                                                                    149
                                                                                    149
   154   155   156   157   158   159   160   161   162   163   164