基于大型软件的安全验证规则挖掘和缺陷检测研究

来源 :中国人民大学 | 被引量 : 0次 | 上传用户:ysminnpu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
对软件系统源码进行缺陷静态检测所面临的最大的现实困难之一是缺乏相应的缺陷检测规则。尽管对软件代码进行人工地分析和理解能够获得反映程序安全本质的深层次的缺陷检测规则,但对于大型软件系统而言,使用这种低效率的规则提取方式显然难以适应现实的需要。表现在,人工提取缺陷检测规则需要参与人员从整体上理解和掌握软件的代码结构和业务逻辑,而在具有数百万行代码的大型软件系统上较短时间内完成这项工作则变得更加艰巨。特别是近年来,计算机运算处理速度的不断提高为规模庞大、逻辑复杂的大型软件的运行创造了条件,软件规模也随之不断增大。在人工提取规则无法满足这种检测需求的情况下,研究具有较高自动化程度的缺陷检测规则提取方法则变得极为必要。  本文主要针对大型软件系统源码,探索自动提取缺陷检测规则和进行缺陷检测的方法。该方法使用闭频繁序列模式挖掘算法来获取频繁应用于保护某一特定安全敏感操作(Security Sensitive Operation)的安全验证语句(Security ValidationStatement)序列,依赖于这种安全验证语句序列生成与之对应的缺陷检测规则,并最终将其应用于缺陷检测。本文的安全敏感操作指的是引起安全问题的程序语句,对应着实际软件代码中爆发漏洞的数据访问操作或函数调用,而安全验证语句则是指那些用来验证传至安全敏感操作处的数据是否可信或合法的语句。所提出的方法可以被划分为三个阶段:代码预处理、安全验证规则挖掘和缺陷检测。首先,代码预处理负责将软件源码转化成数值形式的中间表达形式。在此过程中,基于用户提供的安全敏感操作,采取了程序切片的技术来获得对语句上下文相关性的理解,并淘汰与安全敏感操作不存在合法性验证关系的程序语句。针对不同语句形式对应同一语义的现象,还给出了一种方法来对程序语句进行等价语义识别与处理。其次,安全验证规则挖掘阶段主要负责闭频繁序列模式的挖掘抽取并将其分析整理成为与之对应的安全验证规则以提供给进一步的缺陷检测。最后,在缺陷检测阶段中,从生成的序列数据中检测有悖于安全验证规则的数值序列,将其视为违反规则的缺陷实例并将其进行上报。  为了检验这种方法的功效,针对C语言程序设计研发了一个相应的安全验证规则提取和缺陷检测原型系统--SVR-Miner,并使用该检测系统在Linux内核源码上开展了相应的实验检测,最终获得了8个可疑的编码缺陷,其中5个是已知的编程漏洞。对于剩下的3个可疑缺陷,将其报告给了Linux内核开发组织。实验结果表明,此工具能够快速准确地提取出大型软件代码中隐含的安全验证规则,并有效地将所获得的规则应用于对缺陷的检测。
其他文献
和磁盘相比,闪存作为一种新型的存储设备,具有读写速度快、抗震、省电、体积小等优点,已经在大量的电子设备中被广泛的应用,比如在最新的手机,数字照相机,DV,MP3,MP4,PSP,PDA,笔记本电脑
随着Internet的不断发展,Internet为用户提供越来越多的信息和服务。在目前的网络和电子商务环境下,推荐系统得到了广泛的应用,相似度计算作为推荐系统中重要并且基础的技术,在协
网络中每天都有故障发生。网络拓扑的频繁变化会导致路由重计算被频繁执行,使得路由表中的一些条目被不断的删除、加入、删除、加入…,这种现象被定义为路由振荡。由于各种实
最小加权顶点覆盖(MWVC)问题是图论中一个著名的组合优化问题,它有着广泛的实际应用,例如网络流、电路设计、运输和电信等。MWVC问题中的每一个顶点都有一个正权值,它的目标是在
XML文档具有两个显著的特点,其一:自描述性,存在大量的语义标签描述标签内的文本。这使得XML被广泛的用作描述服务或者数据对象、作为数据交换格式、标注非结构化文档(web页面,纯
随着互联网的发展,网络上出现了越来越多的主观性文本,这些文本包含的观点不仅对潜在用户的行为产生了影响,同时也影响了相关的决策。对主观信息的分析与提取,已是自然语言处理等
普适计算环境的特点是以人为本,旨在为用户提供高效精确的、无处不在的个性化服务。为了达到这一目标,就需要对海量的、离散的原子事件进行自动智能分析,提取用户感兴趣的、可以
随着无线传感网络技术的发展,其应用范围日趋广泛。而协议作为无线传感网络通信的基础,其重要性显而易见,但由于无线传感网络运行环境的复杂性,协议的正确性很难得到保证。通常的
现今互联网已经成为了信息的海洋,每天有上亿张新页面发布到互联网中,虽然其中大型的门户网站汇集了大量的信息,但是国内数以万计的中小型网站的信息量总和确实远远高于门户网站
因特网的繁荣给世界带来了重大的改变。但随着越来越多的Web服务程序和网站的开发,Web的漏洞如同雨后春笋般地出现。在最近几年,网络上出现了一种新的攻击类型:客户端攻击。客户