软件漏洞发掘技术研究

来源 :中国地质大学(武汉) | 被引量 : 0次 | 上传用户:zq867123
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着信息技术的发展,信息技术在人类经济社会中发挥着越来越大的作用。但信息技术是一柄“双刃剑”,它一方面促进了信息的共享与社会的发展进步,另一方面,它也给人类社会带来不容忽视的信息安全问题。来自国家互联网应急响应中心的报告显示,我国电子商务、金融机构以及第三方在线支付网站均面临网络钓鱼软件的威胁,我国网络用户的个人信息泄露情况严重。尤其现在的的网络黑客以获利为目的网络犯罪行为对社会的危害更大,在每一次重大的信息安全事故背后我们都能找到根本的原因--软件漏洞,而每一次信息安全事件的发生都可以归结为对软件漏洞的成功利用。软件漏洞一直以来是信息安全领域所面临的一项亟待解决的疑难问题,漏洞是指计算机系统在软硬件、协议等的实现或系统采取的安全策略存在的缺陷与不足。某个软件漏洞如果被攻击者获悉,攻击者就有可能利用该漏洞获得额外的系统权限来访问系统资源,从而使系统面临安全风险。因而,对软件漏洞发掘技术进行研究,在软件推向市之前或先于攻击者之前找出软件隐藏的漏洞,对提高软件质量、有效降低软件运行中的安全风险意义重大而深远。   针对软件漏洞发掘的研究很早就开始了,在70年代美国南加州大学就针对操作系统的安全缺陷开展了PA研究计划,美国国家标准局针对操作系统脆弱性进行的RISOS研究计划,以及后来的B.Hebbard小组的“渗透分析”方法与Brian Marick公布的软件漏洞调查报告,还有Landwehr等人对软件漏洞分类的研究以及普渡大学COAST实验室提出的漏洞分类方法等。软件漏洞发掘技术对已知漏洞进行扫描分析,对未知漏洞的则根据软件的运行状态采取不同的方法,一般分为静态分析技术与动态检测技术两大类。安全扫描技术的基本原理是利用模拟非法用户攻击的形式对目标软件可能存在并已被发现的软件漏洞进行逐项检查,根据扫描器的体系结构与采取的扫描策略分为基于主机的安全扫描器与基于网络的安全扫描器,而根据扫描对象的性质又可分为端口扫描与漏洞扫描。静态分析技术是指在程序不运行的状态下,对目标软件的源程序或二进制编码进行分析,以期找出其中隐藏的漏洞。对源程序的分析主要通过人工或借助软件工具来进行,对二进制编码的分析则是先对可执行文件进行反汇编(又称逆向工程),再对反汇编代码进行分析。常见的静态分析技术有源程序扫描、反汇编检测、补丁比较等。源程序扫描主要借助工具进行分析,而反汇编检测常用的检测技术有IDC脚本分析、有向图分析、整数范围限制的分析等。补丁比较是通过比较安装补丁前后目标软件的差异来查找漏洞。静态分析技术检测速度快,对源程序覆盖全面,能检测一些常见软件漏洞如缓冲区溢出、格式字符串漏洞、竞争条件等漏洞,却难以发掘程序在运行时的漏洞。动态检测技术是通过调试器运行目标程序,获得目标程序运行时的运行状态与数据,对程序中的变量、内存、堆栈等运行情况进行分析,并对运行结果与程序设计预期进行比较,根据两者的差别判断是否存在漏洞。动态检测技术主要包括软件错误注入测试、堆栈分析、格式分析等。软件错误注入是指在目标软件运行过程中人为地注入错误数据,根据目标软件是处理过程中是否出现异常来判断是否存在漏洞。堆栈分析则分为栈不可执行、堆与数据不可执行、虚拟堆栈分析技术等。格式分析则是通过目标软件解析格式文件时产生漏洞进行的分析,包括文件格式解析漏洞与协议格式解析漏洞。动态检测技术类似于黑盒测试,有较强的针对性,准确率也较高。   Fuzzing技术也叫软件漏洞自动发掘技术,该技术基于错误注入,通过编写自动化测试工具向目标软件输入构造的半有效数据并观察目标软件在运行过程中的异常来发掘软件中的漏洞。Fuzzing技术的测试对象广泛,有基于浏览器的Fuzzing测试工具mangleme;基于文件格式的Fuzzing的测试工具FileFuzzing与SPIKEfile;基于ActiveX控件的Fuzzing测试工具COMRaider与AxMan;基于IRC协议的Fuzzing测试工具IrcFuzz;基于DHCP协议的Fuzzing测试工具DHCPFuzz;基于TFTP协议的Fuzzing测试工具TFTPFuzz等。可以概括为两类:一类是基于文件格式的Fuzzing技术,主要针对各种文件格式如文档格式、多媒体格式、图像格式等。另一类是基于协议的Fuzzing技术,主要针对各种网络协议如TFTP协议、HTTP协议、TCP/IP协议等。Fuzzing技术通过以下流程予以实现:首先确定Fuzzing目标,然后构造半有效数据,接着调用目标程序并把半有效数据作为输入,接下来对目标程序进行监测,最后对疑似漏洞进行分析。Fuzzing技术简单易行,正确率高,能重现软件的异常情况,具有高度自动化的特点。不足之处在于前期准备工作需要花大量精力。   对一款应用广泛的软件Flash Player进行软件漏洞发掘是本文研究的创新点,首先对Flash Player软件的安全现状作了充分的分析,然后通过分析软件安全漏洞数据库CVE中有关Flash Player类漏洞的特征,得出大量的软件漏洞产生于Flash Player软件对SWF文件的解析过程中。因此,确定以SWF格式文件为研究对象,分析其结构特征,发现对SWF文件头中部分字段作修改,对标签数据块进行非法代码注入,以及在数据块中注入非法链接等是很好的测试点,并在此基础上构造半有效数据文件--SWF格式文件,还可以把SWF格式的文件名定义成超长文件名。最后通过设计的Fuzzing工具实现对Flash Player软件漏洞的自动发掘。经实践,Fuzzing工具发现了Flash Player软件的部分漏洞。
其他文献
相较于单处理器的执行平台,多处理器的执行平台由于可以提供更强大的处理能力而正在被越来越广泛的应用到各类实时系统中。例如,越来越多的嵌入式系统使用多处理器的平台来执
随着计算机多媒体技术和数字图像处理技术的迅猛发展,人们对数字图像的分辨率要求越来越高。高分辨率图像不但更加清晰,而且包含着更多的细节,而这些细节在许多实际应用中不
随着网络和多媒体技术的发展,各种图像和视频数据呈爆炸式的速度增长。视频语义概念检测是实现从底层特征到语义概念映射的机器学习问题。在视频语义概念检测中,新视频数据的不
三相永磁同步电机由于存在诸多优点,使其在交流伺服控制领域得到极其普遍的应用。在伺服电机驱动负载运行时,电机与负载间的连接装置传动轴往往不是完全刚性的,这就会引发伺服控制系统间的柔性传动,柔性传动必然会产生机械谐振。机械谐振的存在会使伺服控制系统的转速与电磁转矩发生明显且持续的震荡现象,这样就会影响到当前控制系统的控制精度、响应速度等,同时在某种程度上会限制系统频带响应宽度的提升,严重时会致使系统失
用于数字媒体版权保护的数字水印技术得到了学术界的广泛关注。通常来说,水印嵌入过程会给载体媒体带来不可恢复的失真。虽然说这些失真在大多数情况下是非常细微且不可察觉的
数据是实验室的命脉,随着互联网技术的发展,现代实验室对数据管理领域的要求也在不断改变。传统的以人工干涉为主的实验室数据管理模式受到不断的冲击,人们对实验室中产生大量科
视频人体动作识别是计算机视觉一个活跃的研究领域,在基于内容的视频检索和理解、公共场所的智能监控以及高级人机交互等领域具有重要的应用价值。   视频人体动作识别(Hum
随着现代网络通信技术的发展,信息安全问题日益突出。秘密共享是信息安全和数据保密中的重要手段,它在防止重要信息和秘密数据的丢失、毁坏、被恶意修改或被不法分子利用中起着
视频编码优化技术旨在信道带宽约束条件下,通过编码参数的优化组合,降低视频失真,是多媒体领域的核心技术。传统的编码优化方法将视频失真描述为像素的统计误差(如MSE,Mean Squar
近20年来,三维信息获取技术和三维建模技术有了很大进步,生活中越来越多的三维物体都出现在计算机中,并且被大规模的应用于工业制造、生物医疗和娱乐等行业。   三维物体一般