[发明专利]一种基于漏洞模型的软件漏洞模型检测方法无效

专利信息
申请号: 200810155450.2 申请日: 2008-10-22
公开(公告)号: CN101373506A 公开(公告)日: 2009-02-25
发明(设计)人: 曾庆凯;张林 申请(专利权)人: 南京大学
主分类号: G06F21/22 分类号: G06F21/22
代理公司: 南京天翼专利代理有限责任公司 代理人: 汤志武;王鹏翔
地址: 210093*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 漏洞 模型 软件 检测 方法
【权利要求书】:

1.基于漏洞模型的软件漏洞模型检测方法,其特征是步骤包括:

1)将漏洞模型从数据库中载入流程,即装入内存、建立漏洞模型的数据结构,在分析程序时作为参考依据;

2)模型检测前段步骤,以函数为单位根据漏洞相关操作进行模型检测工作;

3)模型检测后段步骤对主函数进行模型检测,根据漏洞相关操作以及前段对函数的模型检测结果,进行状态检测并报告漏洞的存在性;

所述漏洞模型从数据库中载入流程:漏洞模型由漏洞状态的状态结点、有向边的集合所构成;状态结点有启始、中间过渡和漏洞识别3种类型,每个状态结点具有状态号、类型和描述属性;有向边表示引起状态变化的操作,每个有向边具有边号、类型、原状态、新状态和描述属性;状态结点、有向边的集合分别存储在数据库中的一个表中:状态结点表和有向边表;为方便模型检测处理,在内存中建立由有向边类型进行检索的操作转换表;每个类型的有向边对应一个链表,链表的结点为一个有向边,表示一个原状态到新状态的转换关系;

在内存中建立由有向边类型进行检索的操作转换表的流程:步骤20:初始动作;步骤21:在数据库有向边表中取一个有向边的记录;步骤22:若取到记录转步骤23,否则,转步骤26;步骤23:判断取得有向边类型的操作转换表头是否已存在,若已存在转步骤24,否则,转步骤25;步骤24:创建一个有向边结点,结点的边号为该有向边的边号;把此结点连接到对应有向边类型的链表尾部,转步骤21,直到在数据库有向边表中取完有向边的记录;步骤25:创建该有向边类型的操作转换表头,创建一个有向边结点,结点的边号为该有向边的边号;把此结点作为该有向边类型的第一个结点,转步骤21,直到在数据库有向边表中取完有向边的记录;步骤26:结束,操作转换表建立完成;

通过对程序抽象提取处理,过滤去除无关的操作,进行提取与漏洞模型相关的操作序列的流程:每个函数程序特征对应一个操作序列链表,程序特征链表以函数为单位进行组织,操作序列链表的结点为一个与漏洞状态相关的操作或函数;函数程序特征载入时,将磁盘中程序特征链表装入内存,初始函数处理标志为INI,值为0;

进行所述模型检测前段步骤处理流程时,建立函数有向边表,结构与漏洞状态的有向边表相同:步骤30:初始动作;步骤31:按序取出一个函数程序特征链表结构;步骤32:判断该函数是否为main函数;是则转步骤31,否则转步骤33;步骤33:置当前操作为函数操作表头,置当前状态为ALL,ALL为状态全集合,置函数处理标志为ING,值为1,进行函数状态处理流程;步骤34:判断是否所有函数已被处理完,是则转步骤35,否则转步骤31;步骤35:结束;

模型检测后段的处理流程,步骤60:初始动作;步骤61:取函数程序特征链表结构;步骤62:判断该函数是否为main函数,是则转步骤63,否则转步骤61;步骤63:置当前操作为函数操作表头,置当前状态为INIT启始,置main函数处理标志为ING,值为1;步骤64:取出函数当前操作的下一个操作为当前操作;步骤65:判断是否取到,若取到转步骤66,否则已为函数的最后操作队尾,则转步骤6e;步骤66:判断当前操作是否为漏洞状态机中操作集合中的语句,操作集合在有向边类型集合中,是则转步骤68,否则转步骤67;步骤67:判断当前操作是否为函数调用,是则转步骤69,否则转步骤64;步骤68:以当前操作、当前状态,进行状态转换处理流程;得到状态转换后的次状态,转步骤6c;步骤69:若函数处理标志为ED,值为2,则转步骤6b,否则转步骤6a;步骤6a:若函数处理标志为INI,值为0或ING,值为1,则转步骤6f,否则转步骤64;步骤6b以调用函数、当前状态,进行调用状态转换处理流程;得到状态转换后的次状态,转步骤6c;步骤6c:判断次状态中是否存在漏洞状态,是则转步骤6d,否则转步骤64;步骤6d:漏洞报警、并从集合去除报警状态,转步骤64;步骤6e:置函数处理标志为ED,值为2;步骤6f:处理出错结束;步骤6g:正常结束。

2.根据权利要求1所述的基于漏洞模型的软件漏洞模型检测方法,其特征是函数的状态处理流程:步骤40:开始动作;步骤41:取出函数当前操作的下一个操作为当前操作;步骤42:判断是否取到,若取到转步骤43,否则已为函数的最后操作队尾,则转步骤4b;步骤43:判断当前操作是否为漏洞状态机中操作集合中的语句,操作集合在有向边类型集合中;是则转步骤45,否则转步骤44;步骤44:判断当前操作是否为函数调用,是则转步骤46,否则转步骤41;步骤45:以当前操作、当前状态,进行状态转换处理流程;得到状态转换后的次状态,转步骤41;步骤46:若函数处理标志为ED,值为2,则转步骤4a,否则转步骤47;步骤47:若函数处理标志为INI,值为0,则转步骤49,否则转步骤41;步骤49:置当前状态为ALL,ALL为状态全集合,置函数处理标志为ING,值为1,进行函数状态处理流程;步骤4a:以调用函数、当前状态,进行状态转换处理流程,得到状态转换后的次状态,转步骤41;步骤4b:判断函数结束时的当前状态是否同初始时的当前状态,是则转步骤4d,否则转步骤4c;步骤4c:函数有向边表中加入若干条表示<源状态,新状态>的函数有向边,此时边操作为所处理的函数名,并同时建立操作转换表链表;步骤4d:置函数处理标志为ED,值为2;步骤4e:结束;

所述状态转换处理过程,步骤50:开始;步骤51:置次状态为空;步骤52:从操作类型或函数对应的操作转换表中取一个有向边;步骤53:判断取到有向边否,若取到,转步骤55,否则步骤54;步骤54:得到状态转换后的次状态,置次状态为新的当前状态,转步骤57;步骤55:判断有向边的源状态是否在当前状态中,是则转步骤56,否则转步骤52;步骤56:有向边的新状态加入次状态,转步骤52;步骤57:结束。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200810155450.2/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top