发明名称 基于状态层的软件行为建模方法
摘要 本发明是一种基于状态层的软件行为建模方法。首先,截获软件正常执行时的系统调用序列,利用隐马尔科夫模型(以下简称隐马模型)将系统调用序列转化为状态序列;然后,根据状态序列建立状态转移图;最后,根据软件自身功能,抽取出敏感功能的状态序列,建立局部敏感功能图。该模型从系统调用的基础上抽取出更高层的行为模式,并根据软件的实际执行过程和功能建图,因此对软件行为的描述更加准确完备,存储更加简单,并对图赋予了实际的语义。该模型对软件行为的描述更加准确,隐马判断状态的正确率高达95%以上。
申请公布号 CN102831059A 申请公布日期 2012.12.19
申请号 CN201210303587.4 申请日期 2012.08.23
申请人 北京工业大学 发明人 赖英旭;张文雯;杨震;刘静;李健
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 刘萍
主权项 1.基于状态层的软件行为建模方法,其特征在于;包括以下步骤:首先进行序列模式的提取:截获软件正常执行时的系统调用序列,挖掘出所有序列模式;然后进行状态层的推导:先利用隐马模型的学习问题为每个序列模式建立一个隐马模型,再利用隐马的评估问题判定状态;最后根据状态序列建立状态转移图:在建图之前,先给出相关概念和定义;定义1STG是一个三元组,STG={V,E,W};V是图中的节点,即已知状态集,E是连接图中节点的有向边的集合,W是权值,表示某条边出现次数与所有边出现总次数的比值,定义2状态距离D:为两个不同状态之间的距离,用以判断两个状态的相似程度;两状态分别对应的系统调用序列,设短的序列为l<sub>min</sub>,序列长度为l<sub>1</sub>,长的序列为l<sub>max</sub>,序列长度为l<sub>2</sub>,先将l<sub>min</sub>的第一位与l<sub>max</sub>的第一位对齐,处在相同位置的数值如果相同记为0,不同记为1,将记录的值相加之后除以短的序列长度l<sub>1</sub>,记为R;然后l<sub>min</sub>向后滑动一位,也就是将l<sub>min</sub>的第一位与l<sub>max</sub>的第二位对齐,再进行一次上述操作,记录R<sub>2</sub>,直到l<sub>min</sub>的末尾与l<sub>max</sub>的末尾对齐为止,然后计算<img file="FDA00002050117700011.GIF" wi="788" he="113" />定义3入度in+STG中终止于某顶点的边的权值之和称为该顶点的入度;定义4出度out-STG中起始于某顶点的边的权值之和称为该顶点的出度;建图的方法和图论里的方法相同,还要满足以下两条规则:规则1小概率分支删除规则建图的时候,删除权值小于0.08的边,如果某个顶点的出度和入度都没有达到0.08,此顶点也一并删除;规则2等价状态合并规则两状态之间如果存在边,且距离D小于0.5可以合并;合并过程如下:顶点:顶点由两个变成一个边:两状态之间的边直接删除,两状态与其他状态之间的边保留;权值:因其与边相对应,所以如果保留了两条相同的边,则将其权值相加,只保留一条同样的边即可;入度:为合并之前两状态的入度之和减去两状态之间的边的权值;出度:为合并之前两状态的出度之和减去两状态之间的边的权值;状态图根据推导出的状态序列以及规则1和2直接生成,包括状态和状态之间的路径,局部敏感功能图单独建立,建图方法与状态转移图的建立方法一样,需要记录权值,其中包括状态、路径和权值。
地址 100124 北京市朝阳区平乐园100号