软件漏洞检测系统的设计

摘 要:结合fuzzing技术、API序列特征匹配技术及特征函数参数检测技术等,开发研究了一种新的软件漏洞检测系统.能有效发掘Window环境下的软件中潜在的未知安全漏洞,提高了软件漏洞检测效率.

关 键 词:模糊检测软件漏洞漏洞发掘

中图分类号:TP3文献标识码:A文章编号:1672-3791(2012)10(b)-0004-01

随着软件行业飞速发展,许多问题也相应产生,如软件开发周期短、测试量少、安全性低等,很多软件在仓促的工期之下被颁布出来,这些问题会导致很多软件漏洞的产生,软件漏洞的存在,会影响软件的正常运行,若漏洞被利用,系统就很可能被非法入侵和攻击.为提高软件漏洞检测的效率,针对这些存在的问题,设计开发了一种新的软件漏洞检测系统,利用本系统能够自动检测到软件的功能性、安全性等方面出现的漏洞.利用这个系统简化测试漏洞与缺陷的工作,并提高软件漏洞的检出率和正确率,实践证明该系统对软件漏洞测试的有效性.

1系统原理与结构设计

这种软件漏洞检测系统初步构想是利用目标程序的API序列与已训练过的特征库进行对比,从而检测出软件的显式及隐式漏洞.然而,在人为不对目标软件进行操作的情况下,仅能够获取程序加载段的API序列,需要一个自动化检测模块使检测范围扩展至整个程序.因此,在该软件漏洞检测系统中引入了模糊测试(Fuzzing)理念,通过对交互界面的控件扫描及分类,不断地向程序接口输入大量有目的构造的随机化操作,其目的是迫使程序报出错误,检测出漏洞及缺陷.但仅仅报出错误是不够的,还需要对错误进行监控,所以加入了漏洞回溯模块,这样对漏洞的发掘及过程查找很有益,也简化了测试人员的工作,系统功能模块划分如图1所示.

本系统针对中、大型企业软件开发及测试人员,检测运行在Windows平台下的应用软件,并从底层函数调用序列的特征匹配、特征函数参数检测与Fuzzing漏洞检测方法三个方面进行底层与表现的多重检测,在系统设计中,对API特征库的创建也是比较重要的任务之一.

2系统实现的关键技术

2.1 Fuzzing模块

Fuzzing,也叫做模糊测试,是一种在各大、中软件公司中常用的测试办法,也是较有效的测试办法.其原理是对于目标软件产生大量的用例,替代了人工获取软件的漏洞情况,当其中的某一个用例使得软件异常,那么可以获取这个用例并对其中的操作进行整理分析,从而能够追溯到比较合理的软件漏洞过程.在系统引入Fuzzing理念之前,只可以对程序加载段进行API序列分析,至于运行过程中则无法监控或者只能以人工代替输入,当引入Fuzzing后,便能够将监控范围扩展至程序运行段,从而更全面地检测漏洞.

Fuzzing是本软件漏洞检测系统中的重要模块,它发送数据到目标程序的指定控件,进行大量的测试任务,是用以触发软件中未知的漏洞的方法.

2.2 API HOOK模块

Detours是一个强大的工具,提供了简单易用的函数接口来拦截win32系统下API调用和为一个已在运行的进程装入一个动态链接库.Detours库有三个主要的函数,一个是原API函数;另一个是需要自己编写的替换函数,再有一个是过渡函数.

在实现过程中,将有关HOOK的代码整合到一个动态链接库中.在exe文件中,Detours库提供一个函数,该函数可以启动被检测软件,并直接将动态链接库注入到被检测软件中.这样软件所有调用的API就会被记录下来,连接起来就是API的序列,调用API时传递的参数也会被记录并保存下来,这样就实现了API序列的跟踪.

2.3 数据处理模块

数据集是某些数据的集合;项集是项的集合,或者说就是泛指的集合;一个数据集到另一个数据集支持度是指两个数据集重合的数据占后一个数据集的比例.在这里使用显露模式寻找被测软件的漏洞比例,它的优点是在寻找两个数据集之间多个属性上的差异时结果明显直观.

显露模式(Emerging Patterns,EPs)是指那些从一个数据集到另一个数据集支持度发生显著变化的项集,它们能够捕获数据库中两个数据集之间的多个属性上的差异,两个支持度的比称作EP的增长率.每个EP是一个多属性上的测试,并且可能在区分一个类的实例与另一个类的实例方面非常强.一般地,EP的区分能力大约正比于它的增长率和它在目标类的支持度.

在经过匹配之后,将找到所有存在问题的序列及其位置,结合已有的完整序列,可以计算出有问题的序列占总序列的百分比.这种对数据的分析处理过程可以帮助系统更有效地对软件测试数据进行分析评估,提高软件漏洞检测的效率.


3结语

软件漏洞的存在,会影响软件的正常运行,甚至可能被非法入侵和攻击.而现有的测试技术对人力有很强依赖性,效率也不高,为提高检测软件漏洞的效率,开发了自动化程度较高的软件漏洞检测系统.系统运用模糊测试(Fuzzing)技术进行数据检测,并利用目标程序的API序列与已训练过的特征库进行对比,从而检测出软件的显式及隐式漏洞,大大提高了软件检测的自动化程度,系统的主要检测对象是用于Windows平台上的应用软件,并且含有交互性界面及数据输入模块,可以迅速的发现并定位出被检测软件中存在的漏洞,并向用户提交检测报告.系统方便快捷、漏洞检出准确率高、误报率低,有很强的实用性与创新性.

类似论文

舵机角度检测系统的设计与应用

【摘 要】舵机是水下航行器的重要执行机构,舵机角度检测系统的性能直接影响着水下航行器的运动控制性能,由。
更新日期:2024-9-2 浏览量:17404 点赞量:5254

于规则的数据检测系统的设计与实现

【摘 要】数据完整性是管理信息系统有效运行的重要基础 本文设计了一种基于规则分析的通用化、自动化、化的。
更新日期:2024-6-15 浏览量:82420 点赞量:18674

基于RFID技术的汽车尾气检测系统电路设计

【摘 要】传统的汽车尾气检测方法费时且使用的仪器操作困难,本文设计了一种汽车尾气检测系统电路,该电路包括检测模块和判断模。
更新日期:2024-12-7 浏览量:23439 点赞量:6992

汽车线束检测系统的设计与实现

摘 要:随着汽车工业的迅速发展,汽车配套的零部件也得到迅速发展 为了保证汽车线束的安全使用,需要。
更新日期:2024-3-22 浏览量:45602 点赞量:10960

海洋平台中控接地故障回路检测系统的设计

摘 要:在海洋平台油气安全生产中,中控系统起着大脑和中枢神经般的重要作用,而对于接地故障的自动监控并排除隐患对于安全。
更新日期:2024-2-19 浏览量:34984 点赞量:9407

基于单片机的管道漏磁检测系统硬件设计

【摘 要】本文主要介绍了基于51单片机的磁场检测系统硬件设计、工作原理及主要功能 该实验以8051单片机为核心,采用线性。
更新日期:2024-7-13 浏览量:95391 点赞量:21579

基于图像处理的PCB自动检测系统的设计与

【摘 要】研究一种高精度、大场景、快速实时的PCB缺陷自动光学检测系统,分别进行了硬件结构和软件系统的设计 该系统主要由二。
更新日期:2024-1-9 浏览量:9891 点赞量:4163