课程:《密码与安全新技术专题》git
班级: 1892
姓名: 余超
学号:20189220
上课教师:张健毅
上课日期:2019年2月26日
必修/选修: 选修程序员
本次讲座主要学习了什么是漏洞挖掘、常见漏洞挖掘技术、漏洞挖掘示例、攻防示例。web
1.安全漏洞是指受限制的计算机、组件、应用程序或其余联机资源的无心中留下的不受保护的入口点。漏洞是硬件软件或使用策略上的缺陷,他们会使计算机遭受病毒和黑客攻击。
2.漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可使攻击者可以在未受权的状况下访问或破坏系统。具体举例来讲,好比在Intel Pentium芯片中存在的逻辑错误,在Sendmail早期版本中的编程错误,在NFS协议中认证方式上的弱点,在Unix系统管理员设置匿名Ftp服务时配置不当的问题均可能被攻击者使用,威胁到系统的安全。于是这些均可以认为是系统中存在的安全漏洞算法
SQL注入:几乎每个网站后台开发人员都听到的一个词,而且都很敏感,可是不知道是什么缘由形成的不少程序员却在实际开发过程当中常常忽视这个问题。前段时间部门一位新同事,听说是5年工做经验,在对他的代码作评审时,咱们发现全部的DAO层实现都是直接拼接SQL和参数,总监屡次提醒他这个问题,但他也没有发现,直到总监说出SQL注入这个词。sql
会话固定:这是一种会话攻击,经过该漏洞攻击者能够劫持一个有效的用户会话。会话固定攻击能够在受害者的浏览器上修改一个已经创建好的会话,所以,在用户登陆前能够进行恶意攻击。shell
路径访问,或者“目录访问”。该漏洞旨在访问储存在Web根文件外的文件或者目录。数据库
弱密码,字符少、数字长度短以及缺乏特殊符号。这种密码相对容易破解。编程
硬编码加密密钥,提供一种虚假的安全感。一些人认为在存储以前将硬编码密码分散能够有助于保护信息免受恶意用户攻击。可是许多这种分散是可逆的过程。设计模式
手工测试:定义:由测试人员手工分析和测试被测目标,发现漏洞的过程,是最原始的漏洞挖掘方法。【凭经验依次检验每一个可能产生漏洞的脆弱点】优势:人-主观能动性-显而易见和复杂不易见明显没有、没有明显; 缺点:人-无规律可循、不可大规模等。
补丁对比:定义:一种经过对比补丁之间的差别来挖掘漏洞的技术。文本(难定位,输出难理解)汇编指令(易理解,输出范围大,难定位)结构化(迅速直观,流行)。优势:发现速度快;缺点:已知漏洞;常见工具:PatchDiff二、bindif
程序分析:包括静态和动态
静态定义:是指在不运行计算机程序的条件下,经过词法分析、语法分析、语义分析、控制流分析、污点分析等技术对程序代码进行扫描,验证代码是否知足规范性、安全性等指标的一种代码分析技术。 优势:覆盖率100%,自动化程度高;缺点:漏报和误报(RICE,程序分析问题不可断定)工具: 数据流分析:Fortify SCA、Coverity Prevent、FindBugs等;污点分析:Pixy、TAJ(基于WALA);符号执行:Clang、KLEE; 模型检测:BLAST、MAGIC、MOPS。
动态定义:在运行计算机程序的条件下,验证代码是否知足规范性、安全性等指标的一种代码分析技术。通常经过插桩技术分析程序的异常行为。插桩技术是指在保证被测程序逻辑完整性的基础上在程序的关键位置插入一些“桩”,即加入一些测试代码,而后执行插桩后的程序,经过“桩”的执行获取程序的控制流和数据流信息,进而分析程序的异常行为。优势:自动化程度高、覆盖率较高缺点:漏报和误报(RICE,程序分析问题不可断定)冗余代码时间开销 工具:Android:Xposed。
二进制审核:定义:源代码不可得,经过逆向获取二进制代码,在二进制代码层次上进行安全评估。缺点:同静态审核逆向致使信息丢失,理解困难,甚至引入逻辑错误。二进制及编辑工具:IDA Pro、Ollydbg、UltraEdit、Hex Workshop以及WinHex
模糊测试:定义:经过向被测目标输入大量的畸形数据并监测其异常来发现漏洞。关键:测试用例构造,自动化。优势:无须源码、误报低、自动化程度高缺点:覆盖率低;工具:Peach、Sulley、Autodafe、SPIKE等浏览器
(1)白盒测试
白盒测试是一个极端,它须要对全部的资源进行充分的访问,这包括访问源代码、设计规约,甚至有可能还要访问程序员本人。
(2)黑盒测试
黑盒测试是另外一个极端。黑盒,顾名思义,就是看不到盒子内部的状况,只能了解外部观察到的东西。因此做为终端用户,能够控制输入,从黑盒子的一端提供输入,从盒子的另外一端观察输出结果,而无需了解被控目标的内部工做细节。模糊测试(Fuzzing测试)从某个角度来说,也能够看作是黑盒测试。
(3)灰盒测试
介于两个极端之间。大体能够定义为:包括了黑盒测试审核,也隐含的提示了具体的功能所预期须要的输入,以及该具体功能的预期输出。因此即使是不知道源代码,也不意味着这种测试方法毫无用处。
(1)提供源代码的状况
对于提供了软件源代码的状况来讲,咱们主要是针对软件的源代码进行阅读,找出其中存在安全漏洞的地方,判断该漏洞属于什么类型的漏洞,应当如何测试。而后,运行该软件的可执行文件,测试刚才发现的漏洞是否是可以成功地被触发。若是能被成功触发,那么就证实咱们的分析是正确的。
(2)不提供源代码的状况
不少时候,程序的源代码并不容易得到,而在这种状况下,咱们主要是向软件提供被刻意修改过的外部数据,同时借助一些工具型软件监视被测试软件在处理这些数据时会不会发生错误。而后,分析这些错误,检查其中哪些属于安全漏洞的范畴,并判断漏洞的类型。
(3)fuzzing测试的工做流程
如Microsoft Office系列软件、WPS系列软件、永中集成等等都是文字处理型软件。
2.文字处理型软件漏洞的发掘思想
2.1主动的功能测试
针对软件功能进行安全测试的思想就是“主动的功能测试”。
在进行针对某个文字处理软件的功能测试时,首先要作的就是正确使用软件的各类功能。通常来讲,为了可以全面了解所要研究的软件功能,须要对软件的帮助文档进行通读,也就是对帮助文档中的全部内容都进行通读。当你在软件的帮助文档中学会正确使用软件的某一个功能的时候,你如今作的就是开始实际操做一遍软件的这个功能。在这个过程当中,你可能会发现软件对一些功能是有必定限制的。
“发现软件正确使用过程当中的限制问题”,这是咱们试图发现软件漏洞最重要的目的。这些被限制的问题颇有可能就是咱们正在寻找的软件漏洞存在的地方,而发现这一切的一个前提,就是须要对软件的全部功能有一个充分的了解。
虽然这种方法能在最大程度上发现软件存在的安全漏洞,可是过程是十分辛苦和繁琐的,为了可以缓解这种痛苦的漏洞发掘过程,一些安全技术人员提出了另一种发掘文字处理型软件漏洞的思想,即“被动的输入性测试”。
2.2被动的输入性测试
“被动的输入性测试”的思想来源于对文字处理型软件所能处理的文档文件进行必定的修改,而后利用被测试的文字处理型软件来打开这些被修改过的文档文件,当软件在处理这些被修改的文档文件时,因为该文档文件的格式不正常,每每会致使软件出现问题,有一些甚至就成为安全漏洞。原理以下图:
有了能够用来被修改的原始文档文件,下一步就要对特殊文档文件进行必定的修改。因为特殊文档文件之间存在必定的差异,因此修改的方法分为如下两种状况:
(1)明文式特殊文档文件修改
思路:抓住明文格式的特殊文件中的关键字来进行超长数据修改或者过大、太小数据修改,而后让文字处理型软件来打开这个修改后的特殊文件,从而发现该软件中可能存在的安全问题。
(2)非明文式特殊文件修改
采用非明文保存数据信息的益处:
出于商业利益考虑
出于安全考虑
对于非明文的特殊文件,在进行软件漏洞测试的过程当中,每每采用“直接暴力式修改”的方法来进行测试。
在得到一个非明文保存数据的特殊文件时,能够将其看做一个由十六进制编码的文件,由于不管是明文的数据仍是非明文的数据信息,对于计算机来讲其最终都是由0和1表明的数据,为此,十六进制的编码方式可使得咱们从计算机的角度来阅读非明文的特殊文件。而“直接暴力式修改”的意思就是采用直接修改这些十六进制编码的方法来进行对文字处理型软件的安全测试。
sql注入漏洞
命令执行漏洞
xss漏洞(跨站脚本)
csrf漏洞(跨站伪造请求)
xxe漏洞
文件上传漏洞
文件包含漏洞
各cms的公开漏洞
大佬的漏洞清单。那么有可能除了上面那些,还多了下面这几项
逻辑漏洞
ssrf漏洞
信息泄露
js文件可能存在的未受权访问
组合漏洞
(1) 程序正向开发技术。这是一个开发者须要掌握的能力,包括编程语言、系统内部设计、设计模式、协议、框架等。拥有丰富编程经验与开发能力的人在漏洞挖掘过程当中每每比那些只对安全相关领域有所了解的人员对目标应用能有更深刻的理解,从而有更高的产出。
(2)攻防一体的理念。这些知识涵盖了从基本的安全原则到不断变换的漏洞形态及漏洞缓解措施。攻击和防护结合的理念,可以有效帮助研究者既可以发现漏洞,同时也可以快速给出有效的漏洞缓解措施和规避方法。
(3)有效使用工具。可以高效的使用工具可以快速将思路转化为实践,这须要经过花时间去学习如何配置和使用工具,将其应用于本身的任务并构建本身的工做流程来不断积累经验。更进一步,须要深刻掌握所使用工具的原理,以及如何对其进行二次开发,以使得其可以更加高效的应用于当前的工做实际。事实上,我认为面向过程的学习方法每每比面向工具的学习方法更加高效以及有价值,当本身发现一个在使用一个工具遇到瓶颈时,先不要退缩,尝试去改造它,或者经过本身动手实践去完成可以适应当前工做的工具,这每每可以帮助快速积累大量实践经验。帮助咱们之后更加高效的去实践漏洞挖掘工做。
(4)对目标应用的理解。最后,也是最重要的,做为一个漏洞挖掘人员,对本身研究的应用程序在安全性方面必需要比这个程序的开发者或维护者有更深的理解。这样你才能尽量的发现这个程序中的漏洞并修复它。
程序正向开发技术
有效使用工具
经过对漏洞挖掘的学习,我发现漏洞的复杂性分布很是广。一方面,有不少漏洞很是简单与直观,而且利用代码一目了然,好比说经典的sql注入。另外一方面,在系统中有的看似并不相关,而且就其自身而言并不是不安全,可是当这些东西以一种特定的方式结合起来的时候,就有可能引起大的漏洞,好比说条件竞争,或者一些其余的复杂的逻辑漏洞。各类眼花缭乱的安全漏洞其实体现的是人类在作事的各类环节上犯过的错误,经过改进工具流程制度能够获得某些种程度的解决,但有些涉及人性很是不容易解决,并且随着信息系统的日趋复杂,咱们能够看到更多的新类型漏洞,这个领域永远都有的玩。
总之,本文对漏洞发现问题作出如下贡献:
代码属性图。本文引入了一种新颖的源代码表示,它将抽象语法树,控制流图和程序依赖图的属性组合在一个联合数据结构中。
遍历漏洞类型。本文展现了常见类型的漏洞能够优雅地建模为代码属性图的遍历,并产生有效的检测模板。
高效实施。本文经过将代码属性图导入图形数据库来证实,能够在大型代码库(如Linux内核)上有效地执行遍历。
使用本文的方法找到的Linux内核驱动程序中的缓冲区溢出漏洞
本文设计了ShellSwap系统,这是第一个端到端系统,能够修改观察到的漏洞并用任意替换shellcode替换其中的原始shellcode。咱们的系统显示自动漏洞利用是可能的:即便对安全漏洞了解甚少的人也能够为他们的自定义用例改进漏洞利用。
本文提出了新的系统方法来利用原始漏洞利用的信息来防止ShellSwap退化为低效的符号探索,并修改替换shellcode而不改变其语义以适应原始漏洞隐含的约束。这些方法对ShellSwap的性能相当重要。
本文在100个案例--20个原始漏洞中评估咱们的系统,每一个漏洞包含5个不一样的shellcode。本文的系统在88%的测试集中成功生成了修改后的漏洞,而且全部新漏洞都按预期工做。本文还将本文的系统与先前的技术水平进行了比较,本文发现之前的方法仅适用于本文测试集的31%。事实上,ShellSwap的成功率几乎是以前解决方案的三倍,这意味着shellcode移植中固有挑战的影响被低估了,将来针对这一问题的工做将是有益的。
shellswap系统的体系结构
激励示例
示例函数的堆栈布局。
使用Shellcode替换方法修改Shellcodel漏洞利用程序
替换Shellcode的反汇编。Shellcode2
实验结果代表:
此表显示了易受攻击的二进制文件,其漏洞的类型,每一个二进制文件的原始漏洞利用数量,尝试的漏洞修改总数(每一个二进制文件的每一个原始漏洞利用一个替换shellcode)以及已成功修改的漏洞利用数量由systemm和shellswap生成
每一个shellcode和每种方法生成的漏洞数量
每一个替换shellcode实例的成功率,按长度排序
表V显示了每一个替换shellcode实例和每种方法的时间成本。布局修复的平均时间成本为19.73秒,而路径捏合的平均时间成本为9426.99秒。二者之间的巨大差别是由于后者须要一次或屡次符号跟踪迭代,正如咱们以前所讨论的那样,这是一个很是耗时的过程。咱们将进一步的性能改进做为将来的工做,并注意能够应用于此问题的相关工做中的示例优化。
本文引入受控通道攻击是对屏蔽系统的严重威胁,系统设计人员应该将其考虑在内。
本文针对普遍使用的库设计了几种具体的受控通道攻击。
本文在Haven和InkTag上有效地实施了这些攻击。
攻击模型:
咱们假设攻击者控制操做系统。可是,咱们将监视器组件和应用程序受保护环境中运行的任何代码保持不变。咱们的攻击所针对的屏蔽系统类具备如下属性:
a)操做系统的内存资源管理
系统使用虚拟内存。操做系统可使用请求分页将物理内存分配给各类应用程序。所以,操做系统根据其资源管理任务控制虚拟到物理存储器映射。屏蔽系统能够约束操做系统,以防止它读写应用程序存储器并确保应用程序地址空间的完整性。例如,不容许操做系统将特定页面映射到应用程序不指望的地址。可是,操做系统可以回收物理页面,从而删除虚拟到物理页面映射。它还必须可以恢复页面映射以处理页面错误。为此,操做系统必须可以获取发生页面错误的页面的虚拟基地址。咱们不会假设页面内的偏移知识。
b)申请
该系统支持大部分未修改的遗留应用程序。此类应用程序一般不会采起特殊措施来模糊其内存访问模式(除了针对缓存侧通道攻击而加密的加密代码以外)。咱们假设遗留应用程序是公开的,而且攻击者知道目标应用程序二进制文件的确切版本。在咱们的攻击中,咱们对应用程序的源代码进行了手动分析。这对开源软件来讲不是问题。二进制代码的手动分析也是可能的,虽然更加繁琐。
引言中引用的大多数屏蔽系统知足这两个条件。这包括咱们实施攻击的Haven和InkTag。相比之下,像Flicker [38]或TrustVisor [37]这样的系统不包含在此类中,由于它们须要对遗留应用程序进行重大修改,而且在Flicker的状况下,仅支持具备静态资源的单个受保护区域。
基本攻击:
对应用程序的攻击的实施
显示了咱们针对攻击的三种开源应用程序的版本。咱们使用相同的版原本攻击Haven和InkTag。对于Haven,咱们使用Microsoft Visual Studio的C / C ++编译器(版本18.00.30501)[4]编译了开源代码,并使用Windows附带的系统二进制文件(例如,ntdll.dll和kernel32.dll)。对于InkTag,咱们在uClibc工具链[6]中使用了GCC编译器(版本4.4.5)。
咱们的攻击对代码优化很是敏感,由于它可能会消除一些咱们可能用于推理的控制转移。例如,若是被调用者被内联到调用者中,则函数调用将消失。若是调用者和被调用者位于同一内存页面上,咱们可能没法跟踪函数调用,编译器常常对其进行性能优化。为了使咱们的攻击尽量真实,咱们在Windows和Linux上使用了与其余二进制文件相同的编译器选项。对于在Haven上运行的Windows二进制文件,咱们使用了Microsoft Visual Studio C / C ++编译器的完整优化(即/ Ox)ox和内联(即/ Ob2)选项。对于在InkTag上运行的Linux二进制文件,咱们在GCC编译器中使用了二级优化(即-O2),其中内联的可能目标包括指定的内联函数,
咱们构建了简单的控制台应用程序来驱动库。FreeType源包没有命令行应用程序。咱们编写了一个简单的命令行应用程序,它为输入文件中的每一个字母调用FreeType库,以使用Times New Roman字体(一种TrueType字体格式的流行字体)将其呈现到位图缓冲区。Hunspell源包中包含一个命令行应用程序,可对输入文件进行拼写检查。咱们将它与源包中的en_ US字典一块儿使用。对于libjpeg,咱们编写了一个简单的命令行应用程序,它调用libjpeg库来解码JPEG图像并将结果保存到BMP文件中。
在Windows上实施ASLR攻击
出于评估目的,咱们在Windows上实施了ASLR攻击,由于Haven和InkTag不支持ASLR。咱们使用Windows内核APls(例如,PsSetCreateProcessNotifyRoutineEx)来跟踪流程建立,并在建立时识别目标流程。而后咱们使用Windows内核API(例如,PsSetLoadImageNotifyRoutine)来跟踪为目标进程中的可执行文件分配的内存区域。咱们使用第VA节中描述的相同方法来直接操做页表。咱们经过设置Non-Executable位(第63位)来限制对存储器页面的访问。这使咱们能够避免数据页上没必要要的页面错误。咱们ASLR攻击的原型是做为内核驱动程序实现的。它有1644行C代码和156行汇编代码。部分代码与咱们在Haven上的实现共享。
总结:本文介绍了受控通道攻击做为一种新型的屏蔽系统攻击,并证实受控通道攻击是一种真正的威胁,必须在这些系统的设计中加以解决。咱们针对三个普遍使用的应用程序库设计特定的受控通道攻击,并在两个最现代和最复杂的屏蔽系统上实现和执行它们。咱们的攻击可以从这些系统上的受保护进程中提取整个文档和JPEG图像的近似版本。咱们还讨论了一些潜在的缓解措施。
工做实施方案:
A. Wi-Fi适配器的操做模式
因为Wi-Fi使用范围很广,所以应该应用一些Wi-Fi适配器来检测在实验室工做期间转发到范围内设备的信号。因为天线(Wi-Fi适配器)可能没法提取某些数据包,所以驱动程序能够在三种模式下运行:客户端,监视器和混杂模式(图1显示了不一样模式下的程序包拦截)。
截获的数据包
当学生执行演习时,他须要在监视器(黑客)模式下传输网络(无线)卡。每一个Wi-Fi适配器都会检测到在客户端模式下工做时转发给它的任何信号。不适合该适配器的适配器包将被丢弃,其他的包将按原样到达操做系统。在此模式下,损坏的包裹被丢弃而且操做被认为是正常的。
在监控模式(rfmode)中,驱动程序不对包进行过滤,而且天线捕获的全部信息都传递给OS。具备错误校验和的包不会被丢弃而且能够看到,即便用Wireshark。
中间件是混杂模式:驱动程序传输包,这些包经过与OS相关的网络链接接收,但与正常操做相反。发往其余网络客户端的包不会被丢弃,其余网络的包将被忽略。很明显,这种方案在用户成功链接并登陆到网络时起做用。与监控模式相比,此选项由少许适配器支持。当在此模式下以及在客户端模式下操做时,驱动程序从发送的数据包中删除低级别信道标题[5]。
在客户端模式中,用户对不适合他的分组不感兴趣,由于在混杂模式中,用户必须链接到网络。除了受损的软件包和标题802.11以外,监控模式与客户端相似,甚至超过了大部分适配器支持的混乱机制。这里出现的惟一问题是并不是全部适配器都能在监控模式下同时传输数据[6]。
B.软件安装和设置
链接适配器
下一步是研究加密算法(ENC):
OPN - 没有加密的网络是没有意义的。
WEP - 使用WEP加密的网络。事实上,这样的网络对于这项任务是有价值的。
WPA / WPA2 - 具备WPA / WPA2加密的网络,以及用于保护数据的加密技术:
WEP - 统计上用于保护无线网络的最经常使用方法。它提供全部网络流量的加密。它没有身份验证 - 若是您不知道密钥,您将没法解密数据。缺点是算法很是弱 - 密钥在不到5分钟内被攻击者破解。
WPA和WPA2预共享密钥 - 强大的系统身份验证和数据加密。经过共享密钥进行访问。只要系统容易受到暴力攻击,保护级别就是公钥的复杂性。
WPA和WPA2企业版 - 之前系统的变体,但外部验证器802.1x EAP用于确认身份,容许使用证书,智能卡等[8]。
WPA握手
Aircrack-ng命令
找到密码
上述实验室工做向学生展现了他们的Wi-Fi网络是如何容易被破坏的,他们的我的数据可能被盗或受到损害。在实验室工做以后,他们开始明白Wi-Fi做为一项普遍使用的技术须要额外的软件来进行受保护的安装。他们接受过训练,可使用一些技术来抵消特定的攻击。在将来,计划经过测验添加实验室工做来估计学生的知识并扩展一系列教育任务。实验室工做极可能成为关于Wi-Fi网络安全的单独教育课程的基础
在本文中,咱们全面研究了应用于社交网络数据的数据挖掘模型对不一样类型的恶意攻击的鲁棒性。咱们研究了使用其功能预测不一样类别用户的可行性。咱们仔细研究可使用这些功能成功预测的这些用户类,并研究操纵这些功能以欺骗数据挖掘模型是多么容易。咱们执行几种不一样类型的攻击来衡量现有技术数据挖掘模型的稳健性。咱们的工做代表,使用统计数据挖掘模型挖掘社交网络数据容易受到这些攻击,由于经过对训练或测试数据的简单操做,预测准确性会下降。
咱们研究了两种不一样攻击类别的影响。第一类是逃避攻击,由单个用户编辑,他们编辑他们的我的资料信息以防止任何可能暴露他们隐私的预测。这种攻击的影响是我的用户本地的,它能够致使较少的目标广告,以换取更多的隐私。第二类是中毒攻击其中对手操纵属于真实或虚假用户组的数据以下降预测模型的全局分类准确度。攻击者可使用中毒攻击来影响数据挖掘性能。例如,一个恐怖组织能够发动这种协调攻击,以愚弄“这是一个恐怖主义相关的概况”预测模型。这是一种更严重的攻击,对使用预测模型测试的全部用户产生全局影响。
咱们会检查不一样的指标,以评估功能的重要性,并针对每次攻击匹配最佳评估指标。咱们使用Facebook喜欢在两个分类任务上展现咱们的结果:政治观点(民主党与共和党人)和性取向(直接与同性恋)。对于每一个任务,咱们认为一个类是目标类,另外一个类是相反的类。例如,对于政治观点,咱们认为“民主主义者”是咱们的目标阶级,而“共和主义者”则是相反的阶级。咱们随机选择目标和相反的类,没有特别的理由支持一个而不是另外一个。最后,咱们提出了各类对策来防止一些提议的攻击。咱们报告了这些对策在下降各类环境下攻击严重性方面的成功。
对政治观点(PV)和性取向(SO)的良好\不良特征攻击
对政治观点(PV)和性取向(SO)的模仿攻击
中毒攻击政治观点(PV)和性取向(SO)
在本文中,咱们分析了Facebook的喜爱以及它们在预测不一样类别中不一样用户时的用处。咱们代表,单独使用喜欢,咱们能够高精度地预测政治观点和性取向。咱们对这些可预测的用户进行了屡次攻击,以衡量预测模型的脆弱性。咱们的结果代表,这些模型容易受到不一样类型的攻击。所以,构建在社交网络数据上的数据挖掘模型很容易被恶意攻击者操纵。咱们还提出了防范逃避和中毒攻击的对策。这些对策成功地下降了所讨论攻击的严重性。将来可能的方向是研究用户社交网络的影响。即便用户没有喜欢,他们能够经过他们链接的人来描述[22],[23]。使用这些社交连接和邻居可使预测模型更加健壮,由于攻击者难以控制他们的邻居。
漏洞挖掘技术脱胎于软件测试理论和软件开发调试技术,能够大大提升软件的安全性。网络安全界的第三方机构、技术爱好者也利用该技术寻找各类软件漏洞,并及时发布给大众,为提升信息安全总体水平作出了贡献。但漏洞挖掘也是一把双刃剑,已经成为黑客破解软件的主流技术。漏洞挖掘技术的发展前景是广阔的,随着信息安全愈来愈被重视,软件开发技术愈来愈先进,新的分析手段会随之出现。