论软件安全漏洞挖掘技术创新的方式.doc

论软件安全漏洞挖掘技术创新的方式.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
论软件安全漏洞挖掘技术创新的方式

论软件安全漏洞挖掘技术创新的方式 ; 1 引言 ; 随着社会的发展,黑客的技术水平越来越高,而在软件方面,漏洞属于一个不可避免的问题,这会导致黑客有机可趁,使数据信息受到破坏。在这种背景下,如何更快地发现软件安全漏洞,并做好修复工作,是保证数据信息安全的一个有效手段。 ; 2 软件安全漏洞挖掘技术概述 ; 2.1 漏洞概念 ; 在任何软件运行的过程中,都会根据安全策略进行一个安全域假定,也就是说这一域内所有的操作都是可控且安全的,但是如果违反了安全策略或者超出了这一安全域,软件运行则会变为未知且不可控的,而安全域在切换为非安全域的过程中,其触发点就是漏洞。通俗点说,漏洞就是指由于安全域设计不合理所形成的软件及系统破坏。正是由于这种漏洞的存在,使得计算机在未授权的情况下会被攻击者访问或破坏。一般来说,漏洞多数是被动的、静态的、可触发的。 ; 如果根据产生漏洞的原因来分类,则漏洞可以分为:输入验证错误、边界条件错误、缓冲区溢出错误、访问验证错误、意外条件错误、配置错误、竞争条件错误等其他错误。之所以出现漏洞,从根本上说是因为安全机制实现的过程中出现了一些非正常问题,比如软件编程出错、安全机制规划不完善。由于信息系统中存在潜在错误这一问题是不可避免的,因此漏洞在信息系统中也是必然存在的。 ; 2.2 漏洞挖掘技术 ; 在通过漏洞攻击的过程中,主要可以分为三个步骤:漏洞挖掘、漏洞分析以及漏洞利用,由此可见漏洞挖掘属于后两个步骤的基础及前提,对网络攻防有着非常重要的意义。所谓漏洞挖掘,主要是找寻漏洞,详细点说就是该领域专业人士使用各种综合应用工具以及技术尽最大可能找出软件中存在的潜在漏洞,要想做好这一工作并不容易,这对于个人经验有很大的依赖性。在实际的工作中,根据不同的分析对象,漏洞挖掘技术又可以分为基于源代码漏洞挖掘技术以及基于目标代码漏洞挖掘技术。 ; 对于基于源码漏洞挖掘技术来说,获得源代码是我们工作的前提。一般针对一些开源项目,对其公布的源代码进行分析就能够获得漏洞,比如在Limix系统中,漏洞挖掘所采用的技术就是使用的这一技术。具体来说,在应用这一技术的过程中,我们还通过源代码审核技术,扫描软件源代码,并对一些不安全的内存操作以及安全函数使用进行语义检查,进而挖掘出其中存在的漏洞。其中,静态分析技术属于一种比较典型的机遇源代码漏洞挖掘技术。 ; 但是在实际的工作中,由于很多商业软件源代码的获取比较困难,所以基于源代码漏洞挖掘技术往往难以起到应有的作用,在这种情况下,我们则可以使用基于目标代码漏洞挖掘技术。这一技术是依靠分析目标码来实现的,其过程往往涉及到指令系统、编译器以及文件格式等很多方面,所以难度比较大。具体的步骤是先反汇编需要分析的二进制目标代码,在获取汇编代码之后再对其切面,也就是将一些关联密切而且有意义的代码汇聚在一起,使其复杂性降低,最后利用分析功能模块对其是否存在漏洞进行判断。 ; 3 当前漏洞挖掘技术分析 ; 当前漏洞挖掘技术主要包括已知漏洞检测以及位置漏洞补救这两种,其中前者主要的作用在于发现系统中可能存在但是还没有被发现的漏洞,在这方面主要又包括静态分析、动态检测、安全扫描以及手工分析这几种技术。其中,手工分析要求比较高,不仅需要安全分析人员对软件漏洞原理有充分的了解,还要对软件结构及功能有比较深入的认识,而且即使满足了这两点要求,其依然会耗费很多的精力和时间,基于此,以下将主要对静态分析以及动态检测进行分析。 ; 3.1 静态分析 ; 这种漏洞检测技术不需要对程序进行运行,而且在没有输入的条件下就可以发现程序中存在的安全漏洞,因此在程序编写阶段,通过静态漏洞挖掘技术就可以发现其中存在的问题,并在开发早期就消灭掉漏洞。不过人们在运用静态分析的过程中,往往会出现误报。这一技术从本质上说是建立程序的一个状态模型,然后对程序如何完成状态转换进行分析,但是一个程序的状态空间是很大的,因此难以对所有的状态同时进行考虑,针对这种情况,对状态空间进行抽象是必不可免的,这就导致了程序部分信息的丢失。而我们为了提升分析结果的正确性,则会损失一部分分析精度,一般来说,近似假设地方越多,则精度的损失也会越大,而误报也越容易发生。实际的工作中,分析工具可能会使用一些不稳妥的分析策略,这也会导致出现一些安全漏洞,为日后的软件运行埋下隐患。 ; 3.2 动态检测 ; 所谓动态检测,主要是在程序动态运行的时候对软件中存在的漏洞进行检测,这不仅要求被测试目标编译为可执行程序,而且在检测的过程中还要提供相应的输入。具体来说,动态检测技术主要是利用操作系统所提供的雕饰接口以及资源监视接口,来获得目标程序运行过程中所需的运行数据及运行状态。在当前的动态检测技术中,比较常用的有数据流分析法以及环境错误注入法。 ; 这里首先分析环境错误注入

文档评论(0)

ailuojue1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档