基于状态层的软件行为建模方法技术

技术编号:8105650 阅读:265 留言:0更新日期:2012-12-21 04:17
本发明专利技术是一种基于状态层的软件行为建模方法。首先,截获软件正常执行时的系统调用序列,利用隐马尔科夫模型(以下简称隐马模型)将系统调用序列转化为状态序列;然后,根据状态序列建立状态转移图;最后,根据软件自身功能,抽取出敏感功能的状态序列,建立局部敏感功能图。该模型从系统调用的基础上抽取出更高层的行为模式,并根据软件的实际执行过程和功能建图,因此对软件行为的描述更加准确完备,存储更加简单,并对图赋予了实际的语义。该模型对软件行为的描述更加准确,隐马判断状态的正确率高达95%以上。

【技术实现步骤摘要】

本专利技术旨在建立软件行为模型,保证行为安全,属于信息安全领域。
技术介绍
软件行为是指软件运行时的表现形态和状态演变过程。软件行为模型就是指根据软件的行为信息建立的行为状态序列以及状态的变迁,可以表征软件的正常行为特征,并用于异常检测。目前,软件行为的建模方法有静态和动态两种。针对软件行为的静态分析多集中在代码层,直接对源代码进行分析,可以把握程序的循环跳转分支,但静态分析并不能反映软件的真实运行状态,并受到源码不可得和软件抗逆向分析技术等限制。动态分析多集中于系统层的系统调用,是主机入侵检测的研究热点。大部分动态建模从系统调用入手是因 为1)系统调用是操作系统提供给应用程序访问系统资源的接口,所以调用状况在一定程度上能够反映程序的行为特征;2)系统调用序列及其片段数量有限,分析起来比较简便;3)各操作系统的系统调用函数版本间变化非常小,比较稳定。所以目前看来,其为描述软件行为最合适的对象。因此现有研究对软件行为的定义大都围绕系统调用展开,并引申出行为轨迹和功能轨迹的定义来描述软件行为。软件的行为轨迹即系统调用序列。功能轨迹的定义各不相同,但基本上集中于检查点场景和时间戳,有些还会附加内存占用率和CPU使用率。建模的方式大多借鉴入侵检测的建模方法,基于统计学、机器学习、数据挖掘、文本分类、有限状态自动机等方法。动静结合的混合模型越来越多,分析的因素也越来越全面。现有的建模方法虽然看似全面,但都没有从软件的实际功能出发,不能准确的描述软件行为;过于全面的分析会导致模型复杂,实用性不强,例如动静结合的Dyck模型和HFA模型,包含了控制流分析,数据流分析,上下文和环境变量分析,使得模型过于复杂,实用性不强。
技术实现思路
针对上述问题,本专利技术提出了在系统调用序列的基础上,抽象出状态层,再根据软件的执行过程和自身功能建立状态转移图的建模方法。模型的建立只需截获系统调用序列,简单易行,实用性强。本专利技术包括以下步骤首先截获软件正常执行时的系统调用序列,本专利借鉴TERESIAS算法和Apriori算法的思想,先对序列进行分组,然后开始第一次扫描,找到出现次数最多的序列模式,记录并将其从序列中删除,之后序列自然分组,继续扫描剩余序列中的频繁序列模式,直到所有序列模式都被找到为止。然后将找到的序列模式定义为状态,比如序列模式I定义为状态1,具体的对应工作由隐马模型完成。先利用隐马的学习问题为每个序列模式建立一个隐马模型,再利用隐马的评估问题判定状态。最后根据状态序列建立状态转移图,在建图之前,先给出相关概念和定义。定义ISTG (State transition graph)是一个三兀组,STG-{V, E, W}。■ V是图中的节点,即已知状态集。■ E是连接图中节点的有向边的集合,表示任意两个相邻元素之间的关系。■ W是权值,表示某条边出现次数与所有边出现总次数的比值,和集合E中的向量--对应。定义2状态距离D (distance)为两个不同状态之间的距离,用以判断两个状态的相似程度。这里比较的是两状态分别对应的系统调用序列,设短的序列为Imin,序列长度为I1,长的序列为Imax,序列长度为12,先将Imin的第一位与Imax的第一位对齐,处在相同位置的数值如果相同记为0,不同记为1,将记录的值相加之后除以短的序列长度I1,记为札。然后Ifflin向后滑动一位,也就是将Imin的第一位与Imax的第二位对齐,再进行一次上述操作,记录 R2,直到Imin的末尾与Imax的末尾对齐为止,然后计算权利要求1.,其特征在于;包括以下步骤 首先进行序列模式的提取截获软件正常执行时的系统调用序列,挖掘出所有序列模式; 然后进行状态层的推导先利用隐马模型的学习问题为每个序列模式建立一个隐马模型,再利用隐马的评估问题判定状态; 最后根据状态序列建立状态转移图在建图之前,先给出相关概念和定义; 定义ISTG是一个三元组,STG = {V,E,W}; V是图中的节点,即已知状态集, E是连接图中节点的有向边的集合, W是权值,表示某条边出现次数与所有边出现总次数的比值,定义2状态距离D :为两个不同状态之间的距离,用以判断两个状态的相似程度;两状态分别对应的系统调用序列,设短的序列为Imin,序列长度为I1,长的序列为1_,序列长度为I2,先将Imin的第一位与Imax的第一位对齐,处在相同位置的数值如果相同记为O,不同记为1,将记录的值相加之后除以短的序列长度I1,记为R ;然后Imin向后滑动一位,也就是将Imin的第一位与Imax的第二位对齐,再进行一次上述操作,记录R2,直到Imin的末尾与Imax的末尾对齐为止,然后计算全文摘要本专利技术是一种。首先,截获软件正常执行时的系统调用序列,利用隐马尔科夫模型(以下简称隐马模型)将系统调用序列转化为状态序列;然后,根据状态序列建立状态转移图;最后,根据软件自身功能,抽取出敏感功能的状态序列,建立局部敏感功能图。该模型从系统调用的基础上抽取出更高层的行为模式,并根据软件的实际执行过程和功能建图,因此对软件行为的描述更加准确完备,存储更加简单,并对图赋予了实际的语义。该模型对软件行为的描述更加准确,隐马判断状态的正确率高达95%以上。文档编号G06F11/36GK102831059SQ20121030358公开日2012年12月19日 申请日期2012年8月23日 优先权日2012年8月23日专利技术者赖英旭, 张文雯, 杨震, 刘静, 李健 申请人:北京工业大学本文档来自技高网
...

【技术保护点】
基于状态层的软件行为建模方法,其特征在于;包括以下步骤:首先进行序列模式的提取:截获软件正常执行时的系统调用序列,挖掘出所有序列模式;然后进行状态层的推导:先利用隐马模型的学习问题为每个序列模式建立一个隐马模型,再利用隐马的评估问题判定状态;最后根据状态序列建立状态转移图:在建图之前,先给出相关概念和定义;定义1STG是一个三元组,STG={V,E,W};V是图中的节点,即已知状态集,E是连接图中节点的有向边的集合,W是权值,表示某条边出现次数与所有边出现总次数的比值,定义2状态距离D:为两个不同状态之间的距离,用以判断两个状态的相似程度;两状态分别对应的系统调用序列,设短的序列为lmin,序列长度为l1,长的序列为lmax,序列长度为l2,先将lmin的第一位与lmax的第一位对齐,处在相同位置的数值如果相同记为0,不同记为1,将记录的值相加之后除以短的序列长度l1,记为R;然后lmin向后滑动一位,也就是将lmin的第一位与lmax的第二位对齐,再进行一次上述操作,记录R2,直到lmin的末尾与lmax的末尾对齐为止,然后计算定义3入度in+STG中终止于某顶点的边的权值之和称为该顶点的入度;定义4出度out?STG中起始于某顶点的边的权值之和称为该顶点的出度;建图的方法和图论里的方法相同,还要满足以下两条规则:规则1小概率分支删除规则建图的时候,删除权值小于0.08的边,如果某个顶点的出度和入度都没有达到0.08,此顶点也一并删除;规则2等价状态合并规则两状态之间如果存在边,且距离D小于0.5可以合并;合并过程如下:顶点:顶点由两个变成一个边:两状态之间的边直接删除,两状态与其他状态之间的边保留;权值:因其与边相对应,所以如果保留了两条相同的边,则将其权值相加,只保留一条同样的边即可;入度:为合并之前两状态的入度之和减去两状态之间的边的权值;出度:为合并之前两状态的出度之和减去两状态之间的边的权值;状态图根据推导出的状态序列以及规则1和2直接生成,包括状态和状态之间的路径,局部敏感功能图单独建立,建图方法与状态转移图的建立方法一样,需要记录权值,其中包括状态、路径和权值。FDA00002050117700011.jpg...

【技术特征摘要】

【专利技术属性】
技术研发人员:赖英旭张文雯杨震刘静李健
申请(专利权)人:北京工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1