罗鸿彦[1]2008年在《基于逆向分析的缓冲区溢出漏洞挖掘技术》文中研究说明随着信息与网络技术的发展,以及这些技术在军事领域的不断渗透,计算机网络已成为连接未来信息化战场的枢纽。对计算机的攻击,能够获得大量宝贵的情报以及达到其它武器系统所不能及的效果。因此对以计算机为基础的网络攻击与防护就自然成为军事领域密切关注的问题。在过去的十年中,以缓冲区溢出为代表的安全漏洞是最为常见的,也是主要威胁计算机系统安全的攻击手段。更为严重的是,缓冲区溢出漏洞占了远程网络攻击的绝大多数。由于这类攻击使任何人都有可能取得主机的控制权,所以缓冲区溢出攻击代表了一类极其严重的安全威胁。从Windows系统到Linux系统,从Internet Explorer到Sendmail,无论是系统软件还是应用软件都不乏有缓冲区溢出漏洞的存在。在对信息系统安全所发动的攻击中,针对缓冲区漏洞进行的攻击已经成为一种最重要的攻击方式之一。本文对缓冲区溢出的原理作了详细地介绍,并在此基础上介绍了利用缓冲区溢出执行攻击代码的常用方法和ShellCode编程技术。然后对CSRSS.EXE的缓冲区溢出漏洞进行了全面的分析,对利用缓冲区溢出做手段的权限提升做了详细的分析。最后,本文还对基于二进制代码逆向分析的缓冲区溢出漏洞的挖掘技术进行了研究,基于Fuzzing并结合逆向分析技术提出一种缓冲区溢出漏洞的挖掘模型。
刘圣卓[2]2003年在《Linux下的缓冲区溢出攻击技术研究》文中认为缓冲区溢出攻击技术是一项十分有效的网络攻击技术。开展这项技术的研究对我军现实和未来的信息战都具有重要意义。本文主要阐述了这项攻击技术的多项技术细节。缓冲区溢出主要分为堆栈溢出、堆溢出和格式化字符串溢出等。本文详细分析了Linux操作系统平台下的5种缓冲区溢出漏洞产生的原因,阐述了这类漏洞攻击技术的原理,分析了3个具有代表性的漏洞实例,描述了其一般攻击方法。本文还介绍了3种执行流程跳转技术。文章重点讲述了用于攻击的二进制可执行代码——shellcode的编写技术细节和突破环境限制的改进方法,并介绍了“执行脚本shellcode”的开发。文章还介绍了项目组开发的缓冲区溢出攻击软件的框架和功能实现。文章的最后,从理论角度分析了缓冲区溢出漏洞产生的原因,介绍了针对这种漏洞的防护措施,并提出了下一步的工作计划。
钟达夫[3]2006年在《缓冲区溢出攻击语言研究与实现》文中指出缓冲区溢出攻击是一种攻击计算机系统的手段,通过往被攻击程序的缓冲区写入精心安排的超长内容,造成缓冲区溢出、越界,破坏程序执行逻辑,使之转向执行其他指令,从而达到攻击者的目的。该手段由于技术相对简单而获得的攻击效果比较显着,因此成为各国信息战研究热点之一。但是,缓冲区溢出攻击的实现,必须依靠高级语言来进行描述,而高级语言的描述效率直接决定缓冲区溢出攻击的效率,因此研究缓冲区溢出攻击的高级语言描述问题,对于未来的信息战具有重要的理论和现实意义。目前的缓冲区溢出攻击研究,主要集中于探索缓冲区溢出攻击新技术新方法、研究如何突破缓冲区溢出防御和入侵检测等方面,而从攻击者角度专门研究缓冲区溢出攻击描述的则鲜有案例。当前的缓冲区溢出攻击的描述方法,基本上都是针对具体漏洞以及漏洞的相关信息,手工编写利用程序,描述植入代码的构造和发送步骤。这样的描述方式使得攻击描述的效率比较低,攻击描述通用性比较差,难以应用于实际的计算机网络对抗。针对上述问题,本文通过研究当前的攻击语言,分析其不足之处,进而提出一种新的方案:在目前缓冲区溢出攻击方法和技术基础上,抽象出缓冲区溢出攻击一般规律,设计一种专门描述缓冲区溢出攻击的语言。本文以Windows和Linux/Unix下的缓冲区溢出攻击为研究对象,以栈溢出攻击为主设计完成攻击语言,并对该语言进行形式化分析和证明;本研究工作在Windows系统下实现了该语言,并针对Windows和Linux/Unix系统进行攻击实际验证,结果表明BOAL可以不用描述过程,自动生成植入代码并且其在不同系统间具有良好的适用性能。缓冲区溢出攻击语言的研究工作可以概括为以下几个方面:1、介绍论文的研究背景与意义、涉及的相关理论与技术基础,分析国内外在缓冲区溢出攻击及其高级语言描述方面的研究现状,指出它们存在的不足之处。目前的缓冲区溢出攻击描述,描述效率低且其通用性差。目前缓冲区溢出攻击的研究主要集中在研究新技术新方法、如何突破防御、本地及远程攻击等。对于缓冲区溢出攻击描述方面的研究,则几乎集中于入侵检测方面,对于主动攻击的缓冲区攻击描述难以找到相关方面的资料。2、针对缓冲区溢出攻击中存在的问题,分析目前的缓冲区溢出攻击方法以及攻击语言,对本文所涉及的关键技术进行研究,给出一种新的缓冲区溢出攻击思路。缓冲区溢出攻击描述效率低下且通用性差的原因在于:目前的描述工具仍然是采用命令式的高级语言进行过程描述,无法实现过程描述的自动化。而现有的一些攻击描述语言,如STATL,其描述效率高且通用和移植性能好,但是又由于自身的一些原因,不能用于描述缓冲区溢出攻击。本文借鉴STATL的思想,通过研究栈溢出、堆溢出和bss溢出攻击,并在以栈溢出攻击为主的基础上,将缓冲区溢出攻击抽象为植入代码和控制逻辑两个部分,并对其进行详细的分析研究。同时本文对缓冲区溢出攻击语言定义所涉及的语法和语义进行了研究。3、在给定的研究目标和关键技术的分析基础上,构造一种新的缓冲区溢出攻击攻击自动生成模型,设计缓冲区溢出攻击语言BOAL。根据研究目标和设计原则,本文构造了一种新的缓冲区溢出攻击自动生成模型。该模型的核心思想是用缓冲区溢出攻击语言BOAL来描述目标信息以及攻击信息等,然后由给出的编译器进行解释,直接发起攻击。根据构造的模型,设计缓冲区溢出攻击语言BOAL,并对BOAL的语法规则进行形式化分析与证明。4、根据设计的语法和语义规则,运用VC++6.0、Lex和Yacc等开发工具实现缓冲区溢出攻击语言BOAL。随后给出验证用例,分别在Linux/x86、Unix/x86和Windows/x86系统平台上给予验证,并分析实验结果;结果表明BOAL是可行的。最后对本文工作进行总结,提出今后研究工作的方向。
程恩[4]2006年在《缓冲区溢出漏洞攻击和检测技术研究》文中研究指明本文对网络安全领域中的缓冲区溢出攻击和检测技术进行了研究。首先分析了相关课题的研究背景,并针对当前该领域国内外的研究现状和发展趋势进行了分析,在此基础上阐述了本课题的研究内容。接着从缓冲区溢出攻击原理,攻击的类别和漏洞检测技术叁个方面进行了深入而系统的研究。由于最近几年基于硬件保护方案的缓冲区溢出检测成为研究的发展趋势,本文将检测技术的研究重点放在硬件层次,并跟踪了国外相关的研究。Minos项目提出了一种从另外一个角度分析缓冲区溢出漏洞攻击的新方法,但是它没有完善其思想模型。本文对其进行了分析并提出了基于控制流完整性模型,做了模型的实例分析并给出了结论。另一方面,将返回地址保护技术引入到硬件中实现是一个重要手段。针对存在的这些方法先做了指令执行过程的详细分析,然后针对相关的安全指令方案做了深入的研究,发现了其中的不足点,设计了可以绕开保护检测的例程。在此基础之上提出了一种新的安全指令,最后做了相应的功能性测试和性能测试。最后给出本文的结论和进一步研究的工作。
赵鑫[5]2008年在《漏洞攻击防范技术与漏洞数据库设计》文中指出计算机系统安全漏洞的研究以及漏洞库的建设,对于提高系统安全性、减少安全事件发生具有重要意义。本文首先介绍了国内外漏洞理论研究现状,以及国内外着名漏洞数据库的相关情况,介绍了计算机系统安全漏洞的理论基础,给出了计算机系统安全漏洞的定义,归纳总结了计算机系统安全漏洞的特点,并提出了安全漏洞的分类原则。其后,本文着重对缓冲区溢出漏洞的攻击与防范技术进行了研究。利用缓冲区溢出漏洞进行的缓冲区溢出攻击是Internet上危害最大、最广泛的一种攻击手段。本文给出了缓冲区溢出漏洞的概念和分类,从操作系统和系统内存管理角度研究了缓冲区溢出漏洞的形成原理。本文着重对缓冲区溢出漏洞攻击技术进行了探讨,对两个缓冲区溢出漏洞的实例进行了利用攻击,研究了漏洞攻击过程中的网络通信、调试、逆向工程等相关技术。本文还提出了多种缓冲区溢出的防范技术,对缓冲区溢出检测技术进行了详尽的讨论,建立了完整的防范体系,以期有效地降低缓冲区溢出的威胁。最后,在对安全漏洞特征进行分析的基础上,建立了一种安全漏洞分类分级体系,并以此为理论指导设计实现了一个基于国际CVE标准的大容量系统安全漏洞数据库。作为漏洞数据库的应用之一,以此漏洞数据库为基础,本文创新性地提出了一种漏洞发布的规范,给出了漏洞发布的一般步骤和相关措施,为国家相关管理机构实施我国自己的漏洞管理政策提供一定的参考。
邓爽[6]2009年在《缓冲区溢出攻击分析及防范策略研究》文中指出缓冲区溢出的漏洞随着冯·诺依曼构架的出现就已经开始出现了。在1988年随着莫里斯互联网蠕虫的广泛传播他们开始声名狼藉。不幸的是,同样的基于缓冲区溢出的攻击一直持续到今天。根据CVE显示的数据,2009年至今新发现的800多种漏洞中,有70多个都是缓冲区溢出漏洞。可见,这项基于这项“古老”漏洞的攻击依然不容人们小觑。对于基于缓冲区溢出攻击与防范的研究仍具有重要意义。本论文在总结国内外研究成果的基础上,研究了缓冲区溢出攻击的不同阶段的技术和方法,以及针对不同攻击手段的防范技术。并在此基础上提出了开发防范缓冲区溢出漏洞的安全程序所应遵守的原则和框架。旨在全面的介绍缓冲区溢出攻击和防范技术,加强安全研究员和程序开发人员的理解并提高其安全意识。论文研究内容包括:1.简要介绍了缓冲区溢出漏洞的发展历史以及当前基于溢出漏洞的研究现状。2.详细探讨了Windows平台下缓冲区溢出攻击的技术手段,包括基于栈和基于堆的攻击。主要讨论了Windows2000-Windows spl平台下堆的管理策略以及针对其的攻击方式和思路。3.分析了针对不同缓冲区溢出攻击的各类防范方法和手段。4.结合前文的探讨和研究,提出了在软件开发生命周期内应该遵守的原则,包括软件开发阶段,编译阶段和安全配置阶段。在开发阶段进行安全性编程,避免使用不安全的函数等;在编译阶段利用现有工具进行静态或者动态的检查,进一步排除潜在的安全漏洞;最后在配置阶段,通过合理的设置加固系统的安全性。
陈志恒[7]2018年在《Linux系统下程序编译安全选项技术的研究与实现》文中认为在信息化社会中,随机计算机技术与网络信息技术的不断高速发展,各种实体业务已经在网络上开始兴起,如电子商务、移动支付、网上银行、云存储、大数据以及各种专用网的建设等等,这些都给人们的生产和生活带来了极大便捷。但与此同时,人们在享受网络所带来的各种便捷生活的同时,也随时面临着网络安全隐患所带来的种种威胁。比如由于人们缺乏网络安全意识,对计算机和网络的使用不当,同时入侵者刚好利用了这种不当,对个人或企业甚至是政府部门的网络进行攻击破坏,导致个人、企业,甚至是政府部门的重要信息泄露或是财产损失等严重后果。在当前的计算机网络与分布式系统中,超过半数以上的网络安全威胁,大多来自于一种比较传统的网络攻击方式——缓冲区溢出攻击。而在缓冲区溢出攻击中,最为危险的是堆栈溢出攻击,因为通过对某个程序的堆栈进行溢出攻击,入侵者可以造成函数返回地值被覆盖,从而在函数返回时,改变程序返回的地址,让程序跳转至入侵者指定的地址中。这种缓冲区溢出攻击能够给计算机使用者带来很多严重的后果,一是导致程序崩溃,拒绝服务器,二是程序将跳转至入侵者指定的地址,并且执行一段恶意代码,造成服务器瘫痪,叁是入侵者可以通过缓冲区溢出攻击,得到服务器的root权限,从而修改服务器的相关参数。本论文以Linux系统下的GCC编译器与Clang编译器,以及微软最新的安全防护技术——MPX为研究对象,分析缓冲区溢出攻击的原理和对应的安全防护机制。在不同版本的Linux系统下,通过编写测试用例,利用不同的编译器对测试用例进行编译时,加载各种安全选项,通过对比测试用例未添加安全编译选项与添加选项前后,测试例程的二进制与反汇编的对比,从而验证GCC编译器、Clang编译器与MPX的安全编译选项能否对测试用例进行保护,并研究添加选项后,选项对测试用例所带来的影响有哪些。本论文的创新点在于:首次将MPX技术利用到Linux系统下,通过编写测试用例进行验证测试,通过查看反汇编与二进制,研究在Linux系统下,MPX安全编译选项是如何对程序进行防护。
王森[8]2016年在《KVM虚拟机的漏洞验证与利用方式研究》文中研究指明时下,云计算技术成为了信息技术领域最炙手可热的话题。作为一种基于互联网的、大众参与的、以服务方式提供的新型计算模式,云计算的资源是动态、可伸缩的。它一方面能为个人及中小规模用户带来按需所取的庞大计算资源,另一方面也能给企业用户提供更加灵活的IT解决方案。随着技术的不断发展,各种攻击手段的不断衍生,人们愈发关注云计算面临的安全问题。系统虚拟化技术是构建云计算环境的技术基石之一,这种技术通过对计算机资源的分割与整合,达到了可用性强,部署快速等诸多优点。它的主要代表产品有VMware、Xen、KVM等。KVM虚拟化技术是Linux官方推荐的虚拟化方案,受到了云计算提供商和广大个人用户的青睐,然而KVM的安全漏洞问题也日益凸显。由于使用了经典的QEMU设备仿真部分,KVM存在着诸多遗留下来的高危漏洞。据NVD漏洞库显示,KVM虚拟化环境中存在着大量直接威胁虚拟机安全的漏洞,其中包括本地权限提升,虚拟机逃逸风险和缓冲区溢出等等安全隐患。这些虚拟化环境中的漏洞为云计算环境的安全带来了极大的威胁。如何应对KVM虚拟化环境中的诸多安全漏洞,是一个亟待解决的问题。本文对KVM虚拟化环境中漏洞进行了整理和分析,并从KVM虚拟化环境的硬件仿真漏洞入手,提出并设计了几个典型的硬件仿真漏洞的基于触发式的验证方式和利用手段,并给出了针对此类安全漏洞的安全防护和危害缓解措施。首先深入研究了KVM虚拟机和QEMU硬件仿真技术的相关知识,包括设备虚拟化过程,内存管理和安全威胁。在此基础上对仿真芯片PIIX4热拔除漏洞、虚拟软盘控制器FIFO溢出漏洞和虚拟pcnet网卡数据包接收缓冲区溢出漏洞这叁个典型的高危漏洞进行了原理分析和触发条件研究。给出了针对每一个漏洞的验证方法和其中一些漏洞的进一步利用方式,并进一步提出了对这些安全漏洞的防护手段及危害缓解措施,提出利用内存空间随机化的手段对这类漏洞造成的影响进行预防和减灾,并进行了相关实验测试。本文最后进行了总结,分析了现有工作的不足,并展望了课题的进一步研究方向。
王建国[9]2008年在《基于缓冲区溢出的攻击技术及防御策略研究》文中研究指明随着信息与网络技术的发展,以及这些技术在军事领域的不断渗透,计算机网络已成为连接未来信息化战场的枢纽。对计算机的攻击,能够获得大量宝贵的情报以及达到其它武器系统所不能及的效果。因此对以计算机为基础的网络攻击与防护就自然成为军事领域密切关注的问题。缓冲区溢出攻击是黑客攻击的主要手段,给网络信息安全带来了越来越大的危害。已有的防御手段研究相对滞后,目前国内外的研究大多集中在某个具体漏洞的利用与防范上,缺乏全面的研究。并且现有的缓冲区溢出防御手段也存在诸多不足之处。针对这一问题,论文以缓冲区溢出攻击与防御研究为主题,力图系统地对缓冲区溢出多方面的性质进行综合研究。论文首先介绍了缓冲区和堆栈的基本概念,研究并总结了缓冲区溢出的原理和过程。论文还通过一些攻击示例介绍了系统如何被溢出攻击,并介绍了一些常用的攻击方法。然后,论文研究了Windows环境下基于堆栈的缓冲区溢出攻击的技术细节且从操作系统的体系结构出发深究了这种漏洞的成因。从Windows环境中缓冲区溢出的利用方法出发,讲述了漏洞发掘的技术。接着,论文研究了缓冲区溢出攻击里最关键的部分Shellcode的编写方法,总结了Shellcode的一般流程,具体说明了如何编写突破系统版本限制的Shellcode的编写要用到的技术,其中关键是找到Kernel32.dll的基址,给出了叁种找Kernell32.dll的方法,给出了多种突破现有防火墙的方法,给出了如何突破现有Windows的堆栈保护技术的方法。还总结出了一个精确定位溢出点的公式。在此基础上,论文研究并总结了目前防御缓冲区溢出攻击的一些常用方法,主要从主客观两方面来讨论。主观方面,主要是要提高程序员编写代码的质量,形成良好的编程风格;客观方面,主要是从系统和软件做一些相关的检查和优化。数组和指针边界检查是目前常用的防止缓冲区溢出的方法,而且它能很有效的防止缓冲区溢出漏洞攻击。但是,常规的边界检查所带来额外性能开销也是相当大的。论文提出了数组和指针边界检查的优化方法,并且提出了一条特殊的针对边界检查的指令,结合相应的软件优化方法,并且在仿真平台上做了模拟仿真,通过一些基准测试了优化方案,并分析了相应的实验结果,得到了较好的优化结果。
陈文娟[10]2007年在《Linux下缓冲区溢出及防护》文中指出在过去的10年里,缓冲区溢出攻击是最为常见的一种攻击形式。入侵者可以通过溢出攻击轻易地获得一个远程主机的部分或全部控制权。溢出攻击通过向进程的缓冲区中写入超出其缓冲区长度的内容,从而破坏进程的堆栈或其他数据区,使进程转而执行其他指令以达到攻击者的目的。也就是说溢出攻击主要达到以下两个目标:1.把攻击码注入到进程中;2.修改函数返回地址RET等使进程跳转到攻击码shellcode所在的地址执行;另外,对所获得的只有普通用户权限的shell进行权限提升攻击,以获得一个具有root权限的shell。由于现在的溢出攻击利用了ELF动态链接过程,巧妙的构造和伪装shellcode,以绕过防火墙、IDS,论文在分析ELF动态链接过程、shellcode的构造和特点、缓冲区溢出技术的基础上提出了基于非正常二进制码的shellcode检测方法及分析公式,并在对系统调用的检测过程中综合使用参数、环境变量的检测及跟踪进程执行过程中用户权限的方法,最后通过修改Linux内核,以系统调用execve()为原型实现了检测。另外,还提出一个通过检测ebp来防止伪造栈桢的思路。
参考文献:
[1]. 基于逆向分析的缓冲区溢出漏洞挖掘技术[D]. 罗鸿彦. 上海交通大学. 2008
[2]. Linux下的缓冲区溢出攻击技术研究[D]. 刘圣卓. 中国人民解放军信息工程大学. 2003
[3]. 缓冲区溢出攻击语言研究与实现[D]. 钟达夫. 广西师范大学. 2006
[4]. 缓冲区溢出漏洞攻击和检测技术研究[D]. 程恩. 南京航空航天大学. 2006
[5]. 漏洞攻击防范技术与漏洞数据库设计[D]. 赵鑫. 北京邮电大学. 2008
[6]. 缓冲区溢出攻击分析及防范策略研究[D]. 邓爽. 山东大学. 2009
[7]. Linux系统下程序编译安全选项技术的研究与实现[D]. 陈志恒. 北京邮电大学. 2018
[8]. KVM虚拟机的漏洞验证与利用方式研究[D]. 王森. 北京交通大学. 2016
[9]. 基于缓冲区溢出的攻击技术及防御策略研究[D]. 王建国. 上海交通大学. 2008
[10]. Linux下缓冲区溢出及防护[D]. 陈文娟. 暨南大学. 2007
标签:计算机软件及计算机应用论文; 缓冲区溢出论文; 漏洞挖掘论文; linux系统论文; 信息安全论文; linux服务器论文; 网络安全论文;