导读:本文包含了编译器安全论文开题报告文献综述及选题提纲参考文献,主要关键词:Linux系统,clang编译器,缓冲区溢出,安全防护机制
编译器安全论文文献综述
刘睿博[1](2019)在《Linux系统下基于clang编译器的安全防护机制的研究》一文中研究指出科技的飞速发展,给人们的生活带来了翻天覆地的变化。互联网走进人们的视线,成为了当下人们生活密不可分的一部分。因为有了互联网,我们实现了信息共享,网络视频通话,线上购物,信息娱乐,而依托于互联网而出现的新型技术,也蔓延了各个传统行业。尤其近年来随着4G的普及以及5G的即将上市,以互联网金融,网络新媒体,大数据,云计算,物联网为代表的新的研究领域的技术发展,改变了人们生活的方方面面。在这种大背景下,越来越多的就业者选择加入互联网行业,通过代码改变生活。然而,人们的编程水平参差不齐,缺少标准的网络操作规范,这就给网络黑客可乘之机。近年来,网络安全问题频发,尤其是缓冲区溢出攻击,给企业和个人带来了巨大的经济损失。所以,研发高效安全的防护技术,减少缓冲区溢出攻击的可能性从而保证互联网环境的安全,是网络安全技术人员工作的重中之重。本篇论文以Linux系统下clang编译器平台为基础,针对缓冲区溢出进行防护技术的验证测试及分析,并对Linux系统下基于clang编译器的安全防护机制进行相关研究。论文的主要工作和研究成果如下:简要介绍了网络安全现状以及基于缓冲区溢出攻击的安全现状以及发展,并针对缓冲区溢出的安全保护技术进行相关背景介绍以及发展趋势的研究。分析了缓冲区溢出的原因,分类,以及Linux系统下内存空间的结构和函数帧栈的结构,同时研究了缓冲区溢出的攻击原理以及防护技术的基本思路,clang编译器的编译过程,为下文提供理论依据。以Linux系统下clang编译器为平台基础,提出了整数溢出保护和地址无关代码技术,并从实现原理、二进制特征、局限性叁个方面进行分析,从而对安全防护技术有更深入的理解。搭建针对clang编译器的测试平台,对整数溢出保护技术和地址无关代码技术进行验证性测试,以及程序规模和性能测试,从而证明防护技术的安全性,有效性和高效性。最后,从防护技术的安全性和资源利用的高效性对论文的创新点进行总结,同时针对论文存在的不足以及技术的局限性提出改进措施以及下一步的研究计划。(本文来源于《北京邮电大学》期刊2019-05-25)
王曼丽[2](2015)在《基于GCC编译器插件的内核安全加固方法研究》一文中研究指出操作系统是计算机软件与硬件资源的管理者,控制着整个计算机系统的运行。它直接和硬件交互并为用户提供接口,是计算机软件的运行核心和基础。因此,操作系统安全是整个计算机系统安全的基本前提和保障。而内核作为操作系统最核心部分,更成为操作系统安全乃至整个计算机系统安全的关键所在。然而,内核漏洞的不断发现和频繁利用,却给系统安全带来了巨大威胁。所以,对内核安全加固方法进行研究非常必要且具有重要的应用价值。论文工作主要包括以下叁方面:(1)分析了内核安全威胁和内核加固方法。首先,研究讨论了缓冲区溢出漏洞、本地权限提升漏洞、空指针引用漏洞的原理及攻击方法,分析比较了每类漏洞的防护方法,针对每类漏洞提出有效且可实施的防护方法。其次,通过分析比较现有的内核安全加固方法,确定了基于编译器技术进行内核安全加固。最后,根据GCC编译器强大的兼容性和可移植性的特点,选取GCC编译器作为实现内核安全加固的技术手段。根据GCC编译器的整体结构及优化过程,确定了在GCC后端的优化过程作为执行内核加固的时期。(2)设计了基于GCC编译器插件的内核安全加固方法。针对内核安全威胁的严重性,提出了采用控制流边界检查和栈完整性检查的设计方法,达到有效防护漏洞攻击,加固内核的目的。特别地,针对控制流边界检查,提出了通过将转移指令的目标地址与用户空间和内核空间的边界值比较,判断转移指令的目标地址在合法的范围内的方法。针对栈完整性检查,提出通过函数调用前加入检测字节,在函数返回前验证检测字节,判断栈中返回地址完整性的方法。(3)实现了基于GCC编译器插件的内核安全加固方法。利用GCC编译器插件技术实现了控制流边界检查和栈完整性检查的设计方法。在Linux操作系统下,使用C语言编写融入安全检查功能的GCC插件,加以编译后生成共享库并加载到GCC编译器中使之生效。在此基础上,利用嵌入安全检查功能插件的GCC编译器重新编译内核,从而实现内核加固。对安全加固后的内核原型系统进行功能测试和微/宏观性能测试,结果表明该内核加固系统能有效防护漏洞,并且相对于其它的防护系统性能开销较小。(本文来源于《北京交通大学》期刊2015-03-01)
王蕾,石刚,董渊,白晓颖,王生原[3](2013)在《一个C语言安全子集的可信编译器》一文中研究指出以安全关键领域的安全标准为依托、安全相关软件的语言编码和编译要求为指导,进行了以下几方面的研究和探索:首先对形式化验证可信编译技术进行分析研究,特别着重当前广受关注的经过验证的CompCert编译器。然后以我国安全领域C语言安全子集标准《航天型号软件C语言安全子集》为依据构造测试用例、创新测试方法,并以此对CompCert编译器进行测试评估。之后依据测试结果,为CompCert编译器增加未支持的C语言标准特性,裁剪不符合C语言安全子集要求的特性,构建符合C语言安全子集标准的可信编译器。最后的实测结果表明,所实现的编译器符合C语言安全子集标准的要求,且没有降低C代码的执行效率。(本文来源于《计算机科学》期刊2013年09期)
王秀丽[4](2011)在《汽车电子控制领域编译器安全验证策略》一文中研究指出编译器验证是汽车电子软件开发过程中的重要一环.在分析了相关安全要求和通用验证方法的基础上,提出了一种基于测试的编译器安全验证策略,并给出了具体实现过程.(本文来源于《上海交通大学学报》期刊2011年S1期)
李刚,丁佳,梁盟磊,薛小平,王小平[5](2011)在《安全编码预编译器的设计与实现》一文中研究指出针对轨道交通车载装备的安全性问题,基于安全编码处理器(VCP)的编码思想,设计并实现安全编码预编译器(VCPC)。VCPC能将没有安全性的源代码转换成具有验证能力的安全代码,生成的安全代码可应用于VCP中的单处理器,实现对处理器各种故障的监测和保护。测试结果表明,该安全代码的剩余错误率可以达到1/A。(本文来源于《计算机工程》期刊2011年03期)
俞甲子[6](2008)在《GCC编译器安全验证方法研究》一文中研究指出编译器作为计算机软件中最为基础的软件之一,与操作系统、数据库系统一起被列为构成计算机系统软件的关键性的基础设施。而编译器作为任何软件的产生器,它的安全性、可靠性和稳定性更是至关重要。特别是在那些对软件的可靠性要求十分高的特殊环境里面,我们必须保证编译器编译出来的代码是对程序源代码的正确、真实的反应,保证编译器在编译过程中逻辑上的正确性以及行为上的透明性。本文首先研究了目前国内外对于软件验证,特别是编译器验证领域的一些工作进展。主要包括形式化的验证方法、模型校验、目标文件结构比较等等方法,分析并讨论了这些方法在理论上的优缺点以及它们在实践应用中的效果。本文对于编译器的安全性的关注点在于:验证编译器是否在编译阶段在输出目标代码中插入恶意的代码或者后门程序。之后本文提出了两种可行的编译器验证方案:编译器代码分析及对比验证以及目标码逻辑结构对比验证。在第一个方案中,我们以GCC编译器为例,试图将GCC编译器源代码中的所有函数分成两类:对于那些会在函数内部改变它的输入数据的函数,影响编译器最终输出结果的,我们将它们归类为第一类;对于那些在函数内部不会改变输入数据的函数,不影响编译器最终输出结果的,我们将它们归类为第二类。对于第二类函数,我们在函数的入口处将所有输入数据保存,然后在函数返回时将所有输入数据与之前保存的数据进行对比,如果对比成功,则证明该函数的确没有改变编译器的最终输出结果;对于第一类函数,我们将人工地检查这些函数的代码并且由一组独立的小组将这些函数根据描述重新实现,然后对比原先这些函数的运行结果以及独立实现的函数运行结果,如果结果一致,则表示该函数安全。第二个方案中,本文采用了一种对比编译器的输出目标文件与源文件的控制流逻辑结构的方案。在这个方案中,我们采用GCC编译器编译一份源代码,然后提取源代码和编译以后目标码的控制流图的结构,使用同构图算法对这两个控制流图进行比较,如果这两份控制流图的逻辑对比一致,那么可以证明该编译器在编译过程中没有插入恶意代码,即证明这目标编译器在行为上安全的。最终,本文提出将这两种方案相互结合的综合的编译器安全验证方法,使得一方面能够大大减轻编译器验证的工作量,另一方面又能够保证验证的完整性。本文所提出的方法和结论可以进一步地推广到其他的编译器和硬件平台的验证工作中去,它们应该有着更广泛的应用前景。(本文来源于《浙江大学》期刊2008-08-15)
申瑞芬[7](2007)在《高可信安全编译器的设计与实现》一文中研究指出嵌入式软件已经在航空航天、汽车控制等安全关键领域得到广泛应用。这些领域的特点要求嵌入式软件具有高可信性,而嵌入式软件的可信性依赖于安全编译器的可信性。安全的编译器具有两个特点:一是具有安全检测功能,尽早发现程序中的安全隐患;二是编译器自身的可信性,保证程序能够被翻译成正确的目标代码。MISRA-C是基于C89标准抽取出的安全C语言子集,已经成为嵌入式软件领域的C语言标准。作为在嵌入式领域广泛使用的编译器,GCC并没有针对任何安全子集规范做系统性的语法和语义检查,不能帮助软件开发者尽早发现软件存在的安全隐患。本文通过扩展GCC-3.4.6实现了支持MISRA-C规范检测的安全编译器CCRG-SC,并使用嵌入式实时操作系统μC/OS和GCC-3.4.3编译器源码对CCRG-SC进行了功能和性能测试,测试结果表明:对于程序中不符合安全子集规范之处,CCRG-SC能够给出警告或错误信息;CCRG-SC由于规范检测引入的时间开销很小。测试是保证编译器正确性的重要方法。本文基于黑盒测试的方法,设计实现了C编译器验证工具CVT。CVT是一个C编译器测试套件,测试集包括语法测试集、表达式测试集、GNU扩展测试集、编译和运行时的反例测试集等。为了满足表达式测试的宽度和深度要求,设计实现了表达式自测试用例自动生成工具GREAT。GREAT支持数学函数,能够根据用户给出的任意复杂的表达式模板,生成表达式实例,计算出表达式实例的期望值,并生成详细的测试报告。最后,用GREAT生成的25636个表达式测试用例测试CCRG-SC编译器,测试结果表明CCRG-SC编译器维持了GCC-3.4.6编译器原有的表达式处理能力,没有引入新的结果误差和错误。(本文来源于《国防科学技术大学》期刊2007-11-01)
周天凌,黄连生[8](2007)在《Hlpsl2Cpp——一个安全协议编译器》一文中研究指出安全协议的人工实现是一个低效且易错的过程。安全协议编译器Hlpsl2Cpp可以自动从用HLPSL语言描述的安全协议生成C++的协议实现代码。Hlpsl2Cpp节省了人工实现协议的大量重复劳动,避免了人工实现安全协议带来的各种讹误和实现相关漏洞。(本文来源于《计算机应用研究》期刊2007年06期)
张得佳[9](2005)在《基于双栈结构的安全C编译器的研究》一文中研究指出通过对缓冲区溢出攻击原理的研究和分析,讨论了C/C++源程序缓冲区溢出的常见表现,并分析了其原因和产生机理,提出了一种基于安全分离控制和数据信息的双栈结构的C编译器模型,其好处是无论数据栈如何溢出,控制线都不受影响,缺点是该法一样不能防御所有的缓冲溢出攻击。(本文来源于《电脑开发与应用》期刊2005年09期)
高攀[10](2004)在《C语言安全编译器研究》一文中研究指出随着计算机的应用越来越广泛以及互联网的不断扩大,信息安全也越来越重要。互联网众多的系统面临着越来越多的安全挑战,其最大的挑战源于缓冲溢出攻击,而此类攻击的主要形式就是堆栈溢出攻击。缓冲溢出攻击原因在于C/C++程序缺乏相应的安全机制和程序的漏洞。堆栈溢出在缓冲溢出中相对出现的较多,而且堆栈溢出攻击程序也比较容易实现,所以尤其需要要重点关注。堆栈溢出利用程序中边界条件检查的不严谨,在修改某个堆栈上的局部变量的过程中,同时完成注入攻击代码和更改程序运行流程的任务。缓冲溢出攻击可能得到远程访问的系统管理员权限,在众多攻击方式中尤为危险。目前已有众多的方法用来防御堆栈溢出攻击,大致从程序编译角度,操作系统内核,cpu 体系结构等方面着手。影响较大的如Stackguard,通过在堆栈中放置Canary 来检测堆栈是否被溢出;如stackshield 通过保存堆栈中的返回地址保证程序流程正确;如libsafe 通过提供安全的库替换标准的不安全的库;soloaris 和linux 使用的不可执行堆栈;等等。这些方式方法,为后续的研究开拓了思路。我们的方案试图从编译角度着手,使用了开源软件GCC 作为试验起点。所以简要介绍了GCC 的前端的内容。GCC 前端目的是根据源代码生成AST 语法分析树,再根据AST 树,生成RTL 中间表示。最后把RTL 中间表示交给GCC 后端进一步处理。最后,作为本文的最终目的,我们提出了两种分离数据和控制的堆栈程序运行时环境。并进一步分析了这种结构的安全性,兼容性等问题。最后,简要说明了GCC 中如何修改并实现这样的分离堆栈的程序运行时环境。(本文来源于《电子科技大学》期刊2004-12-01)
编译器安全论文开题报告
(1)论文研究背景及目的
此处内容要求:
首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。
写法范例:
操作系统是计算机软件与硬件资源的管理者,控制着整个计算机系统的运行。它直接和硬件交互并为用户提供接口,是计算机软件的运行核心和基础。因此,操作系统安全是整个计算机系统安全的基本前提和保障。而内核作为操作系统最核心部分,更成为操作系统安全乃至整个计算机系统安全的关键所在。然而,内核漏洞的不断发现和频繁利用,却给系统安全带来了巨大威胁。所以,对内核安全加固方法进行研究非常必要且具有重要的应用价值。论文工作主要包括以下叁方面:(1)分析了内核安全威胁和内核加固方法。首先,研究讨论了缓冲区溢出漏洞、本地权限提升漏洞、空指针引用漏洞的原理及攻击方法,分析比较了每类漏洞的防护方法,针对每类漏洞提出有效且可实施的防护方法。其次,通过分析比较现有的内核安全加固方法,确定了基于编译器技术进行内核安全加固。最后,根据GCC编译器强大的兼容性和可移植性的特点,选取GCC编译器作为实现内核安全加固的技术手段。根据GCC编译器的整体结构及优化过程,确定了在GCC后端的优化过程作为执行内核加固的时期。(2)设计了基于GCC编译器插件的内核安全加固方法。针对内核安全威胁的严重性,提出了采用控制流边界检查和栈完整性检查的设计方法,达到有效防护漏洞攻击,加固内核的目的。特别地,针对控制流边界检查,提出了通过将转移指令的目标地址与用户空间和内核空间的边界值比较,判断转移指令的目标地址在合法的范围内的方法。针对栈完整性检查,提出通过函数调用前加入检测字节,在函数返回前验证检测字节,判断栈中返回地址完整性的方法。(3)实现了基于GCC编译器插件的内核安全加固方法。利用GCC编译器插件技术实现了控制流边界检查和栈完整性检查的设计方法。在Linux操作系统下,使用C语言编写融入安全检查功能的GCC插件,加以编译后生成共享库并加载到GCC编译器中使之生效。在此基础上,利用嵌入安全检查功能插件的GCC编译器重新编译内核,从而实现内核加固。对安全加固后的内核原型系统进行功能测试和微/宏观性能测试,结果表明该内核加固系统能有效防护漏洞,并且相对于其它的防护系统性能开销较小。
(2)本文研究方法
调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。
观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。
实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。
文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。
实证研究法:依据现有的科学理论和实践的需要提出设计。
定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。
定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。
跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。
功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。
模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。
编译器安全论文参考文献
[1].刘睿博.Linux系统下基于clang编译器的安全防护机制的研究[D].北京邮电大学.2019
[2].王曼丽.基于GCC编译器插件的内核安全加固方法研究[D].北京交通大学.2015
[3].王蕾,石刚,董渊,白晓颖,王生原.一个C语言安全子集的可信编译器[J].计算机科学.2013
[4].王秀丽.汽车电子控制领域编译器安全验证策略[J].上海交通大学学报.2011
[5].李刚,丁佳,梁盟磊,薛小平,王小平.安全编码预编译器的设计与实现[J].计算机工程.2011
[6].俞甲子.GCC编译器安全验证方法研究[D].浙江大学.2008
[7].申瑞芬.高可信安全编译器的设计与实现[D].国防科学技术大学.2007
[8].周天凌,黄连生.Hlpsl2Cpp——一个安全协议编译器[J].计算机应用研究.2007
[9].张得佳.基于双栈结构的安全C编译器的研究[J].电脑开发与应用.2005
[10].高攀.C语言安全编译器研究[D].电子科技大学.2004