一、缓冲区溢出攻击与防止技术(论文文献综述)
王泽兵[1](2020)在《基于GCC插件的栈溢出攻击防护方法的研究与实现》文中进行了进一步梳理随着信息技术的发展,在科技日新月异的同时,系统与软件安全问题被大众越来越重视。其中栈溢出作为缓冲区溢出中危害最大的漏洞,一直难以被根除。众多学者提出一些有效的解决方法,其中栈不可执行机制、内存地址随机化和基于编译器扩展的栈保护SSP机制等简洁高效的方法已经得到广泛认可。但是随着时间推移,在面对攻击者精心设计的攻击手段时,这些方法逐渐显现出一定的局限性。以SSP防御机制为例,在使用fork系统调用的程序中,可以通过创建子进程来逐字节破解栈溢出防御检测标志,即canary检测字节,从而绕过SSP防御。这一漏洞目前被用于远程入侵Nginx等WEB服务器中。因此论文开展栈溢出攻击防护方法的研究具有重要的现实意义和实用价值。本文首先从栈溢出漏洞分析出发,通过实验验证对SSP的工作原理以及其不足之处进行研究。其次针对逐字节破解canary的攻击方法,本文设计了一种解决方案,其核心思想是在fork系统调用后,子进程执行前为其创建一块轻量级的缓冲区用于存放栈内canary的地址,并由此更新子进程的栈内canary数值,进而实现父子进程中canary的多样性,最后通过插桩代码改变canary存取以及函数返回时的校验阶段,从而完成对逐字节破解攻击的防御。基于上述思想本论文实现了一套基于GCC编译器的插件,其作用对象为程序的源代码。该插件可以在兼容SSP机制的情况下,同时防御逐字节破解的攻击手段。插件包含一个插桩模块以及动态共享库模块。插桩模块功能是在GCC编译器优化后端注册新的编译优化遍,用于插入关于canary入栈以及出栈时的信息验证代码。动态共享库是为经过插件编译后的程序执行提供环境支持,其中包括环境设置、改写的库函数以及插件自检等功能函数。为验证栈溢出防护方法的有效性,本文对原型系统进行了功能测试和性能测试。实验结果表明插件在WEB服务器中所引入的性能损耗小于0.5%,在普通应用程序中所带来的性能损耗小于2.5%,均处于可接受范围内。本方法在增强栈保护的同时也可满足实际应用场景的部署。
张祖法[2](2020)在《网络流量中面向缓冲区溢出漏洞的恶意程序检测方法研究》文中提出随着经济的快速发展,网络正在我们生活中扮演着重要的角色,与我们的生活息息相关,给我们的生活带来了极大的便利。但与此同时,网络规模的不断增大,网络所面临的威胁也逐年增多,网络中存在着许多漏洞,攻击者通过利用这些漏洞来发起攻击,给用户造成了极大的经济损失和严重危害,进而使得人们对于网络安全的检测需求日益强烈。基于此,有许多研究人员加强了对网络流量的安全性研究,比如提出对网络流量进行分类,进而识别出含有恶意程序的流量,但是当前提出的一些方法难以准确的判别出网络流量中存在的恶意程序。同时,相关数据表明,在攻击者利用网络漏洞编写恶意程序进行网络攻击中,缓冲区溢出漏洞被攻击者编写恶意程序用以攻击的数量所占比例很大,而对于网络流量中面向缓冲区溢出的恶意程序检测的研究还很少,现有的方法在准确率和误报率上存在着不足。因此,本文选取网络流量中面向缓冲区溢出漏洞的恶意程序检测作为研究课题。为解决上述存在的问题,本文首先提出了对经典的SVM(Support Vector Machines)算法改进后的OFSVM(Optimized Facile SVM)算法,来实现对网络流量进行分类,并结合特征提取和特征降维方法,进而实现对网络流量中恶意程序的识别。然后,针对传统的K-MEANS存在的对噪音和异常点比较敏感,且难以选取K值的情况,本研究提出了改进后的NIKClustering(New Improved K-MEANS Clustering)聚类分析算法,并结合自相似性方法,对网络流量中的面向缓冲区溢出漏洞的恶意程序进行检测。同时,对上述提出的算法进行了对比实验,设计并实现了恶意程序检测系统MD-BOV(Malware Detection for Buffer Overflow Vulnerability),对所提的方法进行了验证。本文主要工作阐述如下:1.提出了NTMI(Network Traffic Malware Identification)算法用来对网络流量中的恶意程序进行识别,首先借助Netflow收集器对网络流量中的流量数据进行采集,将采集到流量数据进行抽样和规范化处理,得到质量更好的数据集合,然后采用ReliefF分析技术进行特征提取,对提取的到特征集合需要进一步处理。因为这些特征集合中存在着复杂的高维特征空间问题,某些冗余的特征不仅会造成分类算法的学习复杂度不断增加,而且也会产生过拟合和局部优化的问题,所以需要对提取到的流量特征集合进行特征降维。通过wrapper方法进行二次特征提取,并计算特征属性相关性,接着需要进行归一化处理,然后借助OFSVM算法对网络流量进行分类识别训练,最后使用NTMI算法完成对网路流量中恶意程序的分类识别。所提出的方法经过真实网络流量进行测试,最终经过实验对比,NTMI算法在准确性和误报率上表现的更好,而且对恶意程序的识别具有较好的效果。2.提出了基于改进的聚类与自相似性的恶意程序检测算法RSS-IKClustering(Reliable Self-similarity with Improved K-MEANS Clustering),基于上节提取到的网络流量恶意程序集合,接着从确定聚类个数K值、优化初始聚类中心、优化对象的归属这三个方面对传统的聚类方法进行改进,得到NIKClustering算法,利用该算法对提取到的网络流量中的恶意程序进行聚类分析,从网络流量恶意程序中分离出U2R(Unauthorized Access from a Remote Machine to a Local Machine)类型的恶意程序,再借助自相似性方法实现对面向缓冲区溢出漏洞的恶意程序进行检测,最终实验数据表明本文的提出的RSS-IKClustering是可行的,可以实现在网络流量的恶意程序集合中检测出面向缓冲区溢出漏洞的恶意程序,且在检测准确率和误报率上都有较大的提高,论证了该方法的可行性和有效性。3.设计并实现了恶意程序检测系统MD-BOV。首先介绍了该原型系统的系统架构以及系统的执行流程图,然后展示了系统的主要界面,并对系统中的各个模块进行了详细的阐述,经过测试验证,该系统的检测结果与我们实验阶段的数据相吻合,同时该系统也具有易操作性和自动化等特征。
刘睿博[3](2019)在《Linux系统下基于clang编译器的安全防护机制的研究》文中提出科技的飞速发展,给人们的生活带来了翻天覆地的变化。互联网走进人们的视线,成为了当下人们生活密不可分的一部分。因为有了互联网,我们实现了信息共享,网络视频通话,线上购物,信息娱乐,而依托于互联网而出现的新型技术,也蔓延了各个传统行业。尤其近年来随着4G的普及以及5G的即将上市,以互联网金融,网络新媒体,大数据,云计算,物联网为代表的新的研究领域的技术发展,改变了人们生活的方方面面。在这种大背景下,越来越多的就业者选择加入互联网行业,通过代码改变生活。然而,人们的编程水平参差不齐,缺少标准的网络操作规范,这就给网络黑客可乘之机。近年来,网络安全问题频发,尤其是缓冲区溢出攻击,给企业和个人带来了巨大的经济损失。所以,研发高效安全的防护技术,减少缓冲区溢出攻击的可能性从而保证互联网环境的安全,是网络安全技术人员工作的重中之重。本篇论文以Linux系统下clang编译器平台为基础,针对缓冲区溢出进行防护技术的验证测试及分析,并对Linux系统下基于clang编译器的安全防护机制进行相关研究。论文的主要工作和研究成果如下:简要介绍了网络安全现状以及基于缓冲区溢出攻击的安全现状以及发展,并针对缓冲区溢出的安全保护技术进行相关背景介绍以及发展趋势的研究。分析了缓冲区溢出的原因,分类,以及Linux系统下内存空间的结构和函数帧栈的结构,同时研究了缓冲区溢出的攻击原理以及防护技术的基本思路,clang编译器的编译过程,为下文提供理论依据。以Linux系统下clang编译器为平台基础,提出了整数溢出保护和地址无关代码技术,并从实现原理、二进制特征、局限性三个方面进行分析,从而对安全防护技术有更深入的理解。搭建针对clang编译器的测试平台,对整数溢出保护技术和地址无关代码技术进行验证性测试,以及程序规模和性能测试,从而证明防护技术的安全性,有效性和高效性。最后,从防护技术的安全性和资源利用的高效性对论文的创新点进行总结,同时针对论文存在的不足以及技术的局限性提出改进措施以及下一步的研究计划。
金志勇[4](2019)在《面向缓冲区溢出漏洞的堆内存随机化算法研究》文中研究指明随着计算机技术的飞速发展,计算机系统的安全问题越来越引人注意。但是由于软件程序自身存在着脆弱性,经常被黑客攻击并加以利用,轻则造成程序崩溃,计算机系统宕机,重则造成大量财产损失。缓冲区溢出漏洞就是经常被利用、极度危险的漏洞类型之一。在程序运行过程中,向缓冲区写入超出其长度的数据,就会造成缓冲区溢出。攻击者可以利用缓冲区溢出漏洞窥探内存数据,或者劫持程序控制流,进而对计算机发动攻击。而在常见的脚本运行环境中,堆缓冲区溢出漏洞最为常见,也更容易被利用,所以,这就给攻击者提供了利用堆缓冲区溢出发动攻击的机会。攻击者可以利用堆分配器存在的安全漏洞,通过去碎片化等技术手段窥探内存数据,改变程序控制执行路径,从而执行对内存读写甚至破坏的恶意指令。论文系统地研究了缓冲区溢出攻击与防御过程,通过对缓冲溢出产生机理的研究,总结了常用的修复手段;通过对漏洞利用程序的研究,概括了利用总体流程,总结了漏洞利用关键步骤。在对溢出漏洞机理充分研究的基础上,选择缓冲区溢出中最为严重的堆溢出漏洞为研究主题,解决现有平台上部署的堆内存管理器在内存分配过程中存在可预测性强、释放再申请内存时可能得到相同的地址等问题。本文首先研究了linux系统glibc库中应用的ptmalloc2算法,并深刻分析其中内存分配及释放过程中的安全性问题,提出一种针对整个堆内存空间的随机化策略。该策略核心设计是维护一段缓存池,并将其中缓存分类为三类堆结构:smallbin、bigbin以及topchunk。然后设计一种随机化的内存区块分配算法,增加堆内存地址的不可预测性,避免溢出以及重用的漏洞隐患。该算法旨在性能和安全性之间求得平衡,以牺牲部分效率为代价,提高计算机系统的安全性。最后对新算法的安全性和性能消耗进行评估,根据实验结果证明当在随机化参数=12的情况下,能够有效防御现有的堆溢出漏洞,并将额外时间和空间消耗分别控制在10.2%和14%,相比其他算法在安全性上具有明显优势。
吴江[5](2019)在《一种快速安全的GPU堆分配器》文中研究说明图形处理单元(GPUs)广泛应用于诸多领域中执行通用计算,例如科学计算,深度学习。为了在GPU编程中提供更大的灵活性,在GPU编程框架(如CUDA)中引入了动态内存分配。然而,CUDA提供的动态内存分配器在高并发环境下效率低下。因此,最近有研究提出了几种动态内存分配器来增强动态内存管理的性能。尽管多年来软件安全性得到了改进,与堆相关的攻击仍然是一个严重的威胁。在这些内存攻击中,缓冲区溢出最为危险。有研究表明在GPU的工作负载上也存在缓冲区溢出问题。但是,这些分配器只关注实现更高的性能,却忽略了安全性问题。因此,本文基于ScatterAlloc提出了一种快速安全的GPU堆分配器,在保证能够高效处理并发动态内存分配的基础上,重点关注于缓冲区溢出的探测能力。具体的说,缓冲区溢出的检测基于canary检查的思想。通过使用加密的canary分别插入内存块的两端,只需要对canary进行正确性验证即可得出是否发生缓冲区溢出。为了有效的对内存块的canary进行验证,本文实现了两种检测机制。第一种是当内存块在释放的时候进行canary检查。第二种是实时检测机制,执行不间断的canary检查。对于实时检测机制,本文使用地址压缩技术以减少内存消耗。本文还实现了over-provisioning,它可以通过多分配一些内存使分配器能够容忍一定程度的缓冲区溢出错误。本文的主要贡献总结如下:(1)本文提出了一种快速安全的GPU堆分配器的设计与实现,它由一些关键性技术组成并能够有效的探测缓冲区溢出错误。这些关键性技术包括:基于canary的缓冲区溢出检测;地址压缩;over-provisioning。(2)本文进行广泛的性能评估去验证关键性的设计选择。实验结果显示分配器使用两种检测机制都可以有效的检测缓冲区溢出错误。分配器使用内存释放时的canary检查机制的性能负载比基本的实现高1%-3%;使用实时检测机制大约高28%-35%。(3)本文测试了hash参数ks和kmp对分配器性能的影响,并对分配器内存碎片进行详细分析。
袁连海,李湘文,徐晶[6](2019)在《缓冲区溢出攻击研究》文中认为近年来经常发生网络攻击和网络安全漏洞,其中极具破坏力的系统攻击基本上都是缓冲区溢出漏洞攻击,这是最常见的一种网络攻击技术。论文首先对采用C语言编写的应用程序的内存空间分布进行了叙述,通过具体程序叙述了缓冲区溢出漏洞攻击的基本原理、缓冲区溢出攻击的类别和预防方法,阐述了当前主流的缓冲区溢出攻击防御软件的原理、介绍了防御缓冲区溢出攻击的方法,包括静态防御和动态防御进行了叙述,研究了常见的缓冲区溢出漏洞和攻击手段以及防御方法,对目前缓冲区溢出防御研究成果进行分析总结,提出如何预防缓冲区溢出漏洞攻击的建议。
彭灿[7](2019)在《GPU堆管理器中地址随机化技术的研究与实现》文中指出GPU在HPC和云计算平台中被广泛部署来加速通用计算任务。其丰富的线程级并行可以提高GPU的利用率并且最大化系统吞吐量,因此在如机器学习、数据查询等场景中被广泛使用。在这些场景中,多个用户的进程在GPU上并行执行,确保用户间程序的独立性与安全性就成为了一个不可忽视的问题。但是有研究表明,GPU上存在着缓冲区溢出问题,一个进程可以利用缓冲区溢出去攻击同一GPU上的其他用户的进程。现有的针对GPU上的缓冲区溢出的研究都侧重于对缓冲区溢出的检测而不能从根本上对缓冲区溢出进行防范。本文在实验中发现GPU上的缓冲区溢出主要是由于堆管理器不合理的分配机制以及缺乏正确的访问控制策略导致的。GPU上的堆管理器在分配内存时连续地进行分配,并且程序每次运行分配的内存地址都保持不变。地址随机化是一种可以有效防范CPU上的内存错误的方法,但是在GPU上却缺乏类似的方法来防范由于内存溢出导致的越来越多的安全问题。基于此,本文提出将地址随机化技术集成到GPU堆管理器中,从而有效地防范GPU上的缓冲区溢出攻击。论文的主要工作如下:(1)本文为GPU上的堆管理器设计并实现了一种高效的地址随机化方法。(2)为了有效地选择随机算法,本文实现了三种高效率的随机算法,并对本文实现的随机算法和CUDA中随机算法的性能进行了比较分析。(3)本文设计了有效的机制来解决线程之间的冲突问题,还设计了地址动态变化机制使程序的堆地址每次运行都不同。(4)本文精心的分析本文设计的地址随机化方法的有效性、安全性及实用性。通过分析地址随机化的破解难度,并与CPU上的堆管理器中实现的地址随机化技术进行对比,从理论上验证本文方法的有效性和安全性。在实验中通过精心的设计测试程序验证了地址随机化的有效性;通过GPU上的缓冲区溢出攻击案例验证了本文方法防范缓冲区溢出攻击的有效性;通过多个场景,从多个角度分析了本文方法的性能开销,验证了本文的地址随机化技术的实用性。
高珊[8](2019)在《基于缓冲区溢出的攻击与防御技术研究》文中提出缓冲区溢出是一种非常普遍并且危险的漏洞,在各种操作系统和应用软件中广泛存在。利用缓冲区溢出攻击,可以导致程序运行失败、系统宕机、重新启动等后果。更为严重的情况可以利用它执行非授权指令,甚至可以取得系统特权,进而执行各种非法操作。要实现缓冲区溢出攻击,一般需要完成两个任务,一是在漏洞程序的内存空间中安排攻击代码;二是通过适当的溢出操作使程序跳转到预先安排好的地址空间执行指令。本文重点研究Heap Spray,它是一种代码植入技术,可以帮助攻击者实现稳定布局shellcode的目的。首先,简单介绍了缓冲区溢出的相关知识,对缓冲区溢出攻击原理作出总结,这为研究Heap Spray作了良好的铺垫。详细分析了 Heap Spray的实现原理,结合漏洞实例分析加深了对该技术的理解,接着针对现有的两个防御机制DEP和Nozzle提出了一个Heap Spray攻击模型HSM,并对模型中用到的shellcode编码技术提出了自己的改进策略。其次,研究Heap Spray技术的防御策略,不仅根据Heap Spray自身的特点对防御技术进行了分析,还从防御缓冲区溢出的角度作出归纳研究。通过对HSM模型的分析,主要基于对滑板指令和ROP链的检测提出了针对该模型的防御策略。最后基于HSM攻击模型在VM ware虚拟机上进行仿真实验,对模型能否实现精准堆喷射以及它的抗查杀能力进行了有效地验证。
邵思豪,高庆,马森,段富尧,马骁,张世琨,胡津华[9](2018)在《缓冲区溢出漏洞分析技术研究进展》文中研究表明首先介绍了缓冲区溢出漏洞危害的严重性和广泛性,然后,从如何利用缓冲区溢出漏洞的角度,依次介绍了缓冲区溢出漏洞的定义、操作系统内存组织方式以及缓冲区溢出攻击方式.将缓冲区溢出分析技术分为3类:自动检测、自动修复以及运行时防护,并对每一类技术进行了介绍、分析和讨论.最后,对相关工作进行了总结,并讨论了缓冲区溢出分析领域未来可能的3个研究方向:(1)对二进制代码进行分析;(2)结合机器学习算法进行分析;(3)综合利用多种技术进行分析.
李安安,杨德芹,王学健[10](2017)在《软件系统缓冲区溢出漏洞防范研究》文中研究指明研究了由计算机软硬件、网络和通讯设备、信息资源、信息用户和规章制度组成的人机一体化信息系统的软件系统的安全防护。针对安全漏洞易被用于进行软件攻击的现实情况,进行了软件系统缓冲区溢出漏洞防范研究。研究了利用缓冲区溢出进行攻击的基本方法以及缓冲区溢出防护的经典方法,对国内外缓冲区溢出漏洞的静态防范和动态防范研究的态势进行了观察,对软件系统安全漏洞风险层次进行了分析,最后给出了有关软件系统缓冲区溢出防护研究的技术思考。
二、缓冲区溢出攻击与防止技术(论文开题报告)
(1)论文研究背景及目的
此处内容要求:
首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。
写法范例:
本文主要提出一款精简64位RISC处理器存储管理单元结构并详细分析其设计过程。在该MMU结构中,TLB采用叁个分离的TLB,TLB采用基于内容查找的相联存储器并行查找,支持粗粒度为64KB和细粒度为4KB两种页面大小,采用多级分层页表结构映射地址空间,并详细论述了四级页表转换过程,TLB结构组织等。该MMU结构将作为该处理器存储系统实现的一个重要组成部分。
(2)本文研究方法
调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。
观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。
实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。
文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。
实证研究法:依据现有的科学理论和实践的需要提出设计。
定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。
定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。
跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。
功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。
模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。
三、缓冲区溢出攻击与防止技术(论文提纲范文)
(1)基于GCC插件的栈溢出攻击防护方法的研究与实现(论文提纲范文)
致谢 |
摘要 |
ABSTRACT |
1 绪论 |
1.1 研究背景 |
1.2 国内外研究现状 |
1.2.1 数据执行保护技术 |
1.2.2 地址空间分布随机化技术 |
1.2.3 基于源码的静态插桩防护技术 |
1.2.4 基于二进制代码的静态插桩防护技术 |
1.2.5 基于二进制代码的动态插桩防护技术 |
1.3 研究内容与技术路线 |
1.4 论文组织结构 |
2 研究基础 |
2.1 Linux内存组织与栈溢出漏洞 |
2.1.1 Linux内存组织方式 |
2.1.2 栈溢出漏洞分析 |
2.2 GCC编译器 |
2.2.1 GCC编译器概述 |
2.2.2 GCC编译器结构分析 |
2.3 寄存器传输语言 |
2.3.1 对象类型 |
2.3.2 操作数 |
2.3.3 表达式 |
2.4 GCC编译器的栈溢出防御机制 |
2.4.1 栈溢出防御机制的演化 |
2.4.2 栈溢出防御机制实验验证 |
2.4.3 栈溢出防御机制缺陷分析 |
2.5 本章小结 |
3 基于GCC插件的栈溢出防护方法设计 |
3.1 挑战与要求 |
3.2 总体设计 |
3.3 动态共享库设计 |
3.3.1 环境设置功能模块 |
3.3.2 库函数改写模块 |
3.3.3 错误处理模块 |
3.4 插件模块设计 |
3.5 本章小结 |
4 原型系统实现 |
4.1 开发及运行平台 |
4.2 动态共享库实现 |
4.2.1 环境设置功能实现 |
4.2.2 库函数改写实现 |
4.2.3 错误处理模块实现 |
4.3 插件模块实现 |
4.4 本章小结 |
5 原型测试及结果分析 |
5.1 功能测试 |
5.1.1 测试环境 |
5.1.2 插件执行可靠性验证 |
5.1.3 暴力破解防御性验证 |
5.2 性能测试 |
5.2.1 代码膨胀率 |
5.2.2 性能开销 |
5.3 本章小结 |
6 总结与展望 |
6.1 工作总结 |
6.2 研究展望 |
参考文献 |
作者简历及攻读硕士学位期间取得的研究成果 |
学位论文数据集 |
(2)网络流量中面向缓冲区溢出漏洞的恶意程序检测方法研究(论文提纲范文)
摘要 |
ABSTRACT |
第一章 绪论 |
1.1 研究背景和意义 |
1.2 国内外研究现状 |
1.2.1 缓冲区溢出漏洞的研究 |
1.2.2 网络流量分类识别方法研究 |
1.2.3 恶意程序检测方法研究 |
1.3 论文的主要工作 |
1.4 论文组织结构 |
1.5 本章小结 |
第二章 理论基础及相关技术 |
2.1 缓冲区溢出漏洞的概述 |
2.1.1 缓冲区溢出的类型 |
2.1.2 利用缓冲区溢出的攻击方式 |
2.2 网络流量中恶意程序检测概述 |
2.2.1 网络流量基本概念 |
2.2.2 网络流量分类识别方法 |
2.2.3 恶意程序检测方法 |
2.2.4 网络流量数据提取方式 |
2.3 本章小结 |
第三章 网络流量中基于改进的SVM的恶意程序识别 |
3.1 特征提取模块 |
3.1.1 数据采集和规范化 |
3.1.2 流量特征提取 |
3.1.3 特征属性降维 |
3.1.4 特征属性的归一化处理 |
3.2 OFSVM算法 |
3.2.1 现有SVM算法及其不足 |
3.2.2 OFSVM算法 |
3.3 网络流量中恶意程序识别模型的构建 |
3.3.1 网络流量中恶意程序识别模型的描述 |
3.3.2 网络流量中恶意程序识别算法 |
3.4 实验分析 |
3.4.1 实验设置 |
3.4.2 实验评估标准 |
3.4.3 实验结果分析 |
3.5 本章小结 |
第四章 基于改进的聚类与自相似性的恶意程序检测 |
4.1 改进的聚类K-MEANS算法 |
4.1.1 聚类分析算法 |
4.1.2 改进的聚类K-MEANS算法 |
4.2 自相似性和Hurst指数的估算 |
4.2.1 自相似性的概述 |
4.2.2 Hurst指数的估算 |
4.3 利用缓冲区溢出漏洞的恶意程序分析 |
4.4 RSS-IKClustering检测算法 |
4.5 实验分析 |
4.5.1 实验设置 |
4.5.2 实验评估标准 |
4.5.3 实验结果分析 |
4.6 本章小结 |
第五章 原型系统的设计与实现 |
5.1 系统总体架构设计 |
5.2 系统界面设计 |
5.3 系统模块设计 |
5.3.1 数据采集模块 |
5.3.2 参数分析模块 |
5.3.3 特征提取模块 |
5.3.4 特征降维模块 |
5.3.5 恶意程序识别模块 |
5.3.6 聚类分析模块 |
5.3.7 缓冲区溢出恶意攻击程序检测执行模块 |
5.3.8 结果分析模块 |
5.4 系统总结 |
第六章 总结与展望 |
6.1 工作总结 |
6.2 研究展望 |
参考文献 |
致谢 |
攻读硕士期间发表的学术论文及科研成果 |
(3)Linux系统下基于clang编译器的安全防护机制的研究(论文提纲范文)
摘要 |
ABSTRACT |
第一章 绪论 |
1.1 互联网环境安全 |
1.2 缓冲区攻击的现状及发展 |
1.3 针对缓冲区溢出攻击的保护机制的现状及发展 |
1.4 clang编译器介绍 |
1.5 论文结构安排 |
第二章 缓冲区溢出攻击和防护的理论基础 |
2.1 缓冲区溢出原因及分类 |
2.1.1 Linux系统下内存空间的结构 |
2.1.2 缓冲区溢出原因分析 |
2.1.3 缓冲区溢出分类 |
2.2 缓冲区溢出攻击 |
2.2.1 代码和数据 |
2.2.2 栈溢出的基本原理 |
2.2.3 shellcode的编写规范 |
2.2.4 基于栈的缓冲区溢出攻击实例 |
2.3 栈溢出防护技术的研究 |
2.3.1 正确的编程规范 |
2.3.2 不可执行堆栈 |
2.3.3 地址空间布局随机化ASLR |
2.3.4 边界检查 |
2.3.5 程序指针完整性检查 |
2.4 clang编译器的安装及编译过程 |
2.5 本章小节 |
第三章 clang编译器下安全选项的防护原理分析 |
3.1 整数溢出行为检查技术 |
3.1.1 实现原理 |
3.1.2 二进制特性分析 |
3.1.3 局限性分析 |
3.2 地址无关代码技术 |
3.2.1 原理分析 |
3.2.2 二进制特征 |
3.2.3 局限性分析 |
3.3 地址无关代码技术在可执行文件上的应用(PIE) |
3.3.1 实现原理 |
3.3.2 二进制特征 |
3.3.3 局限性分析 |
3.4 本章小结 |
第四章 clang平台下安全选项的测试设计与实现 |
4.1 测试方案的设计 |
4.1.1 测试平台介绍 |
4.1.2 验证测试的流程 |
4.2 选项的验证测试 |
4.2.1 整数溢出保护的验证测试 |
4.2.2 地址代码无关技术的验证测试 |
4.3 选项的性能和规模影响测试 |
4.3.1 选项的性能影响测试 |
4.3.2 选项的规模影响测试 |
4.4 本章小节 |
第五章 总结与展望 |
5.1 总结 |
5.2 展望 |
参考文献 |
缩略词对照表 |
致谢 |
(4)面向缓冲区溢出漏洞的堆内存随机化算法研究(论文提纲范文)
摘要 |
Abstract |
1 绪论 |
1.1 课题背景、目的与意义 |
1.2 国内外研究现状与分析 |
1.3 本文主要研究内容和组织架构 |
2 缓冲区溢出漏洞及内存管理 |
2.1 静态分析 |
2.2 漏洞利用 |
2.3 堆溢出表现形式 |
2.4 释放重利用漏洞表现形式 |
2.5 堆内存管理 |
2.6 本章小结 |
3 堆内存随机化算法设计 |
3.1 新随机化算法核心思路 |
3.2 引入随机化参数 |
3.3 随机化返回、增大和切割 |
3.4 内存碎片化处理 |
3.5 概率触发合并操作 |
3.6 本章小结 |
4 随机化算法安全性及性能测试 |
4.1 测试环境搭建 |
4.2 安全性测试 |
4.3 性能测试 |
4.4 本章小结 |
5 总结与展望 |
5.1 全文总结 |
5.2 研究展望 |
致谢 |
参考文献 |
附录1 攻读学位期间发表的学术论文 |
(5)一种快速安全的GPU堆分配器(论文提纲范文)
摘要 |
Abstract |
第1章 绪论 |
1.1 课题背景及意义 |
1.2 国内外研究现状 |
1.2.1 CPU内存分配器 |
1.2.2 GPU内存分配器 |
1.2.3 缓冲区溢出 |
1.3 论文研究内容 |
1.4 论文组织结构 |
第2章 相关技术背景 |
2.1 GPU架构 |
2.2 GPU内存分配器 |
2.2.1 ScatterAlloc |
2.2.2 CMalloc |
2.3 缓冲区溢出 |
2.3.1 与堆相关的内存攻击 |
2.3.2 缓冲区溢出原理 |
2.3.3 GPU堆溢出问题 |
2.3.4 缓冲区溢出防护 |
2.4 FreeGuard |
2.4.1 随机守护页 |
2.4.2 随机化 |
2.4.3 Canaries |
2.5 本章小结 |
第3章 系统设计与实现 |
3.1 系统设计 |
3.1.1 设计目标 |
3.1.2 系统布局 |
3.2 Canary设计 |
3.3 内存分配 |
3.4 内存释放 |
3.5 Over-provisioning |
3.6 内存释放时的canary检查 |
3.7 地址压缩 |
3.8 实时检测 |
3.9 本章小结 |
第4章 实验与结果分析 |
4.1 实验环境 |
4.2 缓冲区溢出检测的有效性 |
4.2.1 单个内核 |
4.2.2 先后启动内核 |
4.2.3 并行内核 |
4.3 hash参数 |
4.4 性能分析 |
4.5 内存碎片 |
4.6 本章小结 |
结论 |
参考文献 |
附录 A 攻读硕士学位期间所发表论文 |
附录 B 攻读硕士学位期间所参与的项目 |
致谢 |
(6)缓冲区溢出攻击研究(论文提纲范文)
1 引言 |
2 进程内存分配 |
3 缓冲区溢出攻击原理 |
4 缓冲区溢出防御 |
5 研究热点与展望 |
6 结语 |
(7)GPU堆管理器中地址随机化技术的研究与实现(论文提纲范文)
摘要 |
Abstract |
第1章 绪论 |
1.1 课题背景及意义 |
1.2 国内外研究现状 |
1.2.1 GPU安全问题研究现状 |
1.2.2 GPU上防范缓冲区溢出技术研究现状 |
1.2.3 地址随机化技术研究现状 |
1.3 论文研究的主要内容 |
1.4 论文组织结构 |
第2章 相关背景 |
2.1 CUDA |
2.1.1 CUDA内存 |
2.1.2 CUDA编程模型 |
2.1.3 CUDA内置的堆管理器 |
2.2 缓冲区溢出攻击 |
2.2.1 缓冲区溢出攻击原理 |
2.2.2 缓冲区溢出攻击的危害 |
2.2.3 GPU上的缓冲区溢出攻击 |
2.3 GPU上的堆管理器 |
2.4 地址随机化在CPU堆管理器中的实现 |
2.5 本章小结 |
第3章 堆管理器中地址随机化方案设计与实现 |
3.1 系统设计 |
3.1.1 系统设计目标 |
3.1.2 系统执行流程 |
3.2 随机算法 |
3.3 数据结构及初始化 |
3.3.1 系统数据结构 |
3.3.2 系统初始化 |
3.4 内存的随机分配 |
3.4.1 页层的随机化分配 |
3.4.2 块层的随机化分配 |
3.4.3 地址随机化的效果 |
3.5 内存释放 |
3.6 线程碰撞避免机制与地址动态变化机制 |
3.6.1 线程碰撞避免机制 |
3.6.2 地址动态变化机制 |
3.7 地址随机化安全性分析 |
3.8 本章小结 |
第4章 实验与结果分析 |
4.1 实验环境 |
4.2 随机算法的比较 |
4.3 地址随机化的有效性 |
4.4 防范缓冲区溢出攻击的有效性 |
4.5 性能评估 |
4.5.1 正确性验证 |
4.5.2 分配后立即释放 |
4.5.3 先分配后统一释放 |
4.5.4 延迟 |
4.6 本章小结 |
结论 |
参考文献 |
附录 A 攻读硕士学位期间所发表的论文 |
附录 B 攻读硕士学位期间所参与的项目 |
致谢 |
(8)基于缓冲区溢出的攻击与防御技术研究(论文提纲范文)
摘要 |
Abstract |
第1章 绪论 |
1.1 研究背景 |
1.2 国内外研究现状 |
1.3 论文的研究内容 |
1.4 论文的结构 |
第2章 缓冲区溢出攻击技术 |
2.1 缓冲区溢出概念 |
2.2 缓冲区溢出分类 |
2.2.1 栈溢出 |
2.2.2 堆溢出 |
2.2.3 BSS溢出 |
2.2.4 格式化串溢出 |
2.3 缓冲区溢出攻击原理 |
2.3.1 缓冲区溢出攻击实现过程 |
2.3.2 代码植入技术Heap Spray |
2.4 本章小结 |
第3章 Heap Spray攻击技术研究 |
3.1 Heap Spray攻击原理 |
3.1.1 Heap Spray攻击技术分析 |
3.1.2 Heap Spray实例分析 |
3.2 针对Heap Spray的防御技术分析 |
3.2.1 DEP |
3.2.2 Nozzle |
3.3 Heap Spray攻击模型设计 |
3.3.1 反汇编对抗模块 |
3.3.2 喷射块构造模块 |
3.3.3 随机化喷射块模块 |
3.4 shellcode编码技术改进 |
3.4.1 shellcode常用编码方法 |
3.4.2 shellcode编码技术改进 |
3.5 本章小结 |
第4章 Heap Spray防御策略研究 |
4.1 基于缓冲区溢出的防御 |
4.1.1 代码级检测 |
4.1.2 运行时保护 |
4.1.3 阻止攻击代码执行 |
4.1.4 加强系统防护 |
4.2 基于Heap Spray的防御策略 |
4.3 针对HSM模型的防御策略研究 |
4.3.1 基于滑板指令的检测策略改进 |
4.3.2 基于ROP链的检测策略改进 |
4.4 本章小结 |
第5章 仿真及结果分析 |
5.1 仿真环境 |
5.2 精准性验证 |
5.3 抗查杀性验证 |
5.4 本章小结 |
结论 |
参考文献 |
攻读硕士学位期间发表的论文和获得的科研成果 |
致谢 |
(9)缓冲区溢出漏洞分析技术研究进展(论文提纲范文)
1 缓冲区溢出攻击简介 |
1.1 缓冲区溢出漏洞的定义 |
1.2 操作系统内存组织方式 |
1.3 缓冲区溢出攻击方式 |
2 分析技术分类 |
2.1 漏洞自动检测技术 |
2.1.1 静态检测 |
2.1.2 动态测试 |
2.2 漏洞自动修复技术 |
2.3 漏洞运行时防护技术 |
2.3.1 被动防护技术 |
2.3.2 主动防护技术 |
3 分析讨论 |
4 总结与展望 |
4.1 对二进制代码进行分析 |
4.2 结合机器学习算法进行分析 |
4.3 综合利用多种技术进行分析 |
(10)软件系统缓冲区溢出漏洞防范研究(论文提纲范文)
0 引言 |
1 缓冲区溢出利用的基本方法及危害 |
1.1 修改内存值使程序崩溃 |
1.2 控制程序执行流程 |
1.3 获取管理员权限 |
2 缓冲区溢出防护的经典方法 |
2.1 进程地址随机化 |
(1) 栈地址随机化 |
(2) 局部变量地址随机化 |
2.2 栈不可执行 |
(1) 操作系统的保护 |
(2) ld链接器的保护 |
2.3 gcc编译器的gs验证码检测机制 |
3 当前国内外防范方法动态 |
3.1 静态防范方法介绍 |
3.2 动态防范方法介绍 |
3.3 两种方法的对比分析 |
4 软件系统安全漏洞风险层次分析 |
5 软件系统安全防护建议 |
(1) 对操作系统进行安全加固, 预防安全漏洞 |
(2) 采用静态防范方法, 谨慎使用系统软件、第三方动态库及应用程序 |
(3) 用动态防范、操作系统强制访问控制机制等方法, 防范漏洞攻击 |
(4) 采用软件安全工程方法, 提高软件研发平台和研发过程的安全性 |
四、缓冲区溢出攻击与防止技术(论文参考文献)
- [1]基于GCC插件的栈溢出攻击防护方法的研究与实现[D]. 王泽兵. 北京交通大学, 2020(03)
- [2]网络流量中面向缓冲区溢出漏洞的恶意程序检测方法研究[D]. 张祖法. 江苏大学, 2020(02)
- [3]Linux系统下基于clang编译器的安全防护机制的研究[D]. 刘睿博. 北京邮电大学, 2019(08)
- [4]面向缓冲区溢出漏洞的堆内存随机化算法研究[D]. 金志勇. 华中科技大学, 2019(01)
- [5]一种快速安全的GPU堆分配器[D]. 吴江. 湖南大学, 2019(07)
- [6]缓冲区溢出攻击研究[J]. 袁连海,李湘文,徐晶. 舰船电子工程, 2019(04)
- [7]GPU堆管理器中地址随机化技术的研究与实现[D]. 彭灿. 湖南大学, 2019(07)
- [8]基于缓冲区溢出的攻击与防御技术研究[D]. 高珊. 沈阳理工大学, 2019(03)
- [9]缓冲区溢出漏洞分析技术研究进展[J]. 邵思豪,高庆,马森,段富尧,马骁,张世琨,胡津华. 软件学报, 2018(05)
- [10]软件系统缓冲区溢出漏洞防范研究[J]. 李安安,杨德芹,王学健. 高技术通讯, 2017(08)