- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
漏洞挖掘技术分析和研究
漏洞挖掘技术分析和研究
摘 要:目前,漏洞挖掘技术在信息安全领域中日趋重要。文章从漏洞的概念出发,对漏洞挖掘的含义、作用以及主要技术进行了分析与探讨,并总结了漏洞挖掘技术未来的发展方向。
关键词:漏洞挖掘;手工测试技术;FUZZING技术;动态分析技术;静态分析技术
1 漏洞
1.1 漏洞的概念
漏洞是指计算机系统或软件中的安全缺陷,这些安全缺陷包括功能缺陷或逻辑缺陷,对计算机系统的安全性具有潜在的威胁。漏洞的存在范围很广泛,在计算机系统的硬件、软件或网络通信协议上都有所体现。
1.2 漏洞的特性
1.2.1 必然性
漏洞的存在对于计算机系统或软件是客观存在、不可避免的,其根本原因在于系统或软件在实现过程中存在的非正常问题,具体因素可包括编程代码疏忽、软件安全机制规划出错。由于计算机系统或软件的天然脆弱性,所以漏洞也是必然存在的。
1.2.2 长期性
随着计算机系统或软件的投入使用,已有的漏洞会随着用户的使用暴露出来。当系统或软件开发商推出补丁修正漏洞时,同时也可能导致程序出现新的安全漏洞。因此,在系统或软件的整个使用过程中,总是会出现旧有漏洞被修复,而新漏洞不断出现的问题。因此,可以说漏洞在系统中的存在是长期性的。
1.3 危害性
漏洞的存在容易对计算机系统造成损害。攻击者可以利用计算机系统或软件的漏洞进行攻击行动,使运行有漏洞的系统或软件的计算机用户的资料、数据被篡改或破坏,造成隐私泄露或经济损失。总之,漏洞的危害性是客观存在的。
2漏洞挖掘
2.1 漏洞挖掘的概念
漏洞挖掘是指查找目标系统中可能存在的漏洞,在这个过程中,需要运用多种计算机技术和工具。根据挖掘对象的不同,漏洞挖掘一般可以分为两大类,即基于源代码的漏洞挖掘和基于目标代码的漏洞挖掘。对于基于源代码的漏洞挖掘来说,首先要获取系统或软件的源代码程序,采取静态分析或动态调试的方式查找其中可能存在的安全隐患。但大多数商业软件的源代码很难获得,一般只有一些开源系统能为挖掘者提供源码,如LINUX系统,所以目前基于源代码的挖掘一般都是LINUX系统及其开源软件。对于不能提供源码的系统或软件而言,只能采用基于目标代码的漏洞挖掘方法,该方法一般涉及程序编译器、计算机硬件指令系统、可执行文件格式等方面的分析技术,实现难度较大。
2.2 漏洞挖掘的作用
由于漏洞的必然存在性和危害性,所以漏洞挖掘是十分必要并有益的。因为一旦攻击者发现系统中存在的严重漏洞,就可能迅速开展攻击行动,从而对计算机系统进行非法访问或破坏。先于攻击者发现并及时修补漏洞可有效减少来自网络的威胁。因此主动发掘并分析系统安全漏洞,对网络安全具有重要的意义。
3 漏洞挖掘的主要技术
3.1 手工测试技术
手工测试就是通过人的手工方式向测试的目标系统或软件发送特殊的数据,这些数据包括正确的或错误的输入,在发送数据后,通过观察测试目标对输入数据的反应来查找系统中可能存在的漏洞。该方式不需要额外的辅助测试软件,可由漏洞测试者独立完成,具有实现简单、结果直观的优点,但是局限性也很大,主要表现为效率不高、对测试者的个人技术水平依赖较大等方面,所以手工测试一般适用于简单、小型、直观的系统或软件。
3.2 FUZZING技术
Fuzzing技术的实现原理是软件工程中的黑盒测试思想,其主要方法是使用大量的数据作为应用系统或软件的输入,以目标对象接受输入后是否出现异常为标志,来查找目标系统中可能存在的安全漏洞。Fuzzing方法所使用的半有效数据一般由特定的工具来生成,这些数据其必要标识和大部分数据是有效的,但在逻辑方面存在一定错误,能够导致应用系统或软件的崩溃,从而发现安全问题所在。
Fuzzing技术的思想较为简单,易于理解与应用,具有漏洞重现容易、误报率低的优点,但其同时也具有黑盒测试技术的一些缺点,比如数据格式不通用、构造测试周期长等问题。总的来说,Fuzzing技术在漏洞挖掘方面的应用越来越广泛,现有漏洞大多数是由Fuzzing方式挖掘而出的。
3.3 动态分析技术
动态分析技术是指在目标系统或软件的动态运行中查找漏洞的技术。其主要思想是在特定的容器中运行目标程序,通过目标程序在执行过程中的状态信息来发现有潜在问题,这些状态信息包括当前内存使用状况、CPU寄存器的值等方面。在具体实现过程中,动态分析主要从代码流和数据流两方面进行操作。对于代码流,主要是通过设置程序运行断点来跟踪系统运行状态,分析对象主要是有安全缺陷的函数或函数参数;对于数据流,主要是进行特殊数据的构造,也是采用半有效的数据进行输入。动态分析技术的关键是容纳程序运行的容器,也就是动态调试器工具,常见的动态调试
原创力文档


文档评论(0)