Page 158 - 软件工程与项目管理
P. 158
软件工程与项目管理
Software Engineering & Project Management
内容中隐藏的统计结构,不符合复杂的协议结构规范与语义行为定义。
潘璠为解决 ProDecoder 中 n-gram 模型只能获取报文中部分字段的语义约
束,无法得到完整的协议格式,并且没有考虑字段之间的约束等问题,提出了一
种基于递归聚类的协议格式提取方法(arecursion based protocol reverse analysis,
RPRA),主要设计思想为:在对样本集进行初步划段、聚类的基础上,以多
序列比对和语义推断为核心进行递归分析,最终提取样本的协议格式。与 PI、
Discover 等现有方案对整个报文进行分析不同,RPRA 只递归地对同一类中的同
一段样本进行分析,采用这种方法虽然使算法的时间复杂度增加了,但有效提高
了多序列比对的准确度和样本字段语义推断的准确率。RPRA 以一个 FD 字段(用
于区别报文子格式序列的关键字段,如控制字段)的取值只能唯一对应一种格式
序列为原则,本着“正向定位,反向识别”的策略有效地改进了 Discover 中 FD
字段的识别策略。但 RPRA 的缺陷在于样本序列的复杂性可能导致与识别策略相
冲突,产生大量的误识别、漏识别,容易受到样本分布是否均匀、样本数量以及
样本分类参数距离权值的影响,不恰当的参数容易导致样本过分类,得到较低的
准确率和覆盖率,分析时间较长。Zhang 等人提出了 ProWord 工具,使用信息熵
作为字段边界的判决属性,并提出了两个重要算法。
第一,基于修改后的专家投票算法提出了一个无监督分割算法,可以根据
信息熵将应用载荷分割为候选词,相较现有的 n-grams 算法和 CS 方法提供更加
精确的分割,使用信息熵的依据在于:单独地从每个字段内部去看,它们都不是
完全随机的序列;总体地从字段组合的整体去看,因各字段随机分布不同且可能
非相关,有可能整体呈现随机性,利用这样的随机性去甄别字段边界,本质在于
衡量字段边界的不平衡性。第二,一个排名算法,该算法能够将不同种类的常见
的特征词通过启发式检索并进行合并,在此基础上可以在候选词上建立一个有序
的结构,并且挑选排名最高的词汇作为协议特征词。排名算法对字节子序列进行
排序,更有可能使得特征词的子序列被分配更高的等级分数。ProWord 设计为离
线分析工具,与之前的 n-gram 模型相比,ProWord 利用更多的存储空间来跟踪
候选特征词的出现,从而实现更准确的特征词提取。但 ProWord 的缺陷在于提到
的协议关键字的划分,只能将协议中出现的特定的频次高的词划分出来,无法得
到完整的协议格式提取;相较于二进制协议中规定固定协议字段规范的行为,则
无法根据上述方法进行提取。
148
148

