共查询到16条相似文献,搜索用时 78 毫秒
1.
多变体执行(multi-variant execution,MVX)是目前最流行的主动防御技术之一。理想情况下,当未受到攻击时,多变体执行架构提供正常的程序功能。但不幸的是,当多线程程序在多变体执行架构下运行时,由于各个程序变体中共享资源操作的线程执行顺序不一致,不同变体将会产生状态不一致,从而产生攻击误报,该问题导致了多线程程序难以以多变体执行方式运行。基于多变体执行环境,提出了一种编译支持的多线程程序对共享资源操作的同步编译模型,该模型以共享资源操作为同步点,分析确定多线程程序中对共享资源的操作时机和操作方式,保证各程序变体在运行时多线程对共享资源操作的一致性,从而消除了由此而引起的攻击误报。以LLVM 12.0编译框架为基础,设计实现了基于该同步编译模型的原型系统,并对该原型系统进行了仿真实验测试。实验结果显示,经过原型系统处理的多线程程序在多变体执行架构中的误报率显著降低,表明该同步编译模型作为一种通用性的方法,可有效消除多线程程序在多变体执行架构下运行时的攻击误报,提高了多变体执行的可用性。 相似文献
2.
软件和信息系统的高速发展在给人们生活带来诸多便利的同时,也让更多的安全风险来到了我们身边,不法分子可以很方便的利用无处不在的网络和越来越自动化、低门槛的攻击技术去获得非法利益。面对这种现状,传统被动式的安全防御已显得力不从心,更高的防御需求,促进了安全领域不断研究新的主动防御技术。这其中,基于攻击面随机化扰动的移动目标防御技术和基于异构冗余思想的多变体执行架构技术受到了广泛的关注,被认为是有可能改变网络空间游戏规则的安全技术,有望改变攻防双方不平衡的地位。本文对近年来多变体执行架构技术在安全防御方面的研究工作进行归纳总结,梳理了该方向的关键技术及评价体系。在此基础上,分析了多变体执行架构在安全防御方面的有效性,最后指出多变体执行架构技术当前面临的挑战与未来的研究方向。 相似文献
3.
从安全角度出发,多变体执行(multi-variant execution,MVX)被广泛应用于网络安全防御,但多变体执行存在一个共性问题:即各路执行体向裁决器返回内容时,合路产生的误报难以解决。排除机器环境等客观因素,产生误报是因为表决器收到合路信息后开始对非一致变量作安全判断,除真实攻击造成的非一致变量外,还夹杂着正常系统运行产生的非一致变量(如内存描述符、端口号、随机数、代码及进程内的线程调用顺序),从而造成表决器误判,影响多变体系统正常运行。如果能降低多变体执行的误报率,则可以有效地提高系统效率及防御能力。对近年来多变体执行的类型进行归类,并对多变体执行产生的误报问题及解决策略进行归纳总结,分析多变体执行产生裁决误报的原因,选择Pina算法进行同步的策略、编译器模块插桩的策略、缩小表决边界的策略,对三种方案在特定应用场景下进行实验分析,分析每个方法的功能及性能,指出各自策略的优点及缺点。最后讨论现有多变体执行现有技术未解决的难点和未来的研究方向。 相似文献
4.
多变体执行是一种网络安全防御技术,其利用软件多样性生成等价异构的执行体,将程序输入分发至多个执行体并行执行,通过监控和比较执行体的状态来达到攻击检测的目的。相较于传统的补丁式被动防御技术,多变体执行不依赖于具体的攻击威胁特征进行分析,而是通过构建系统的内生安全能力来对大多数已知、甚至未知的漏洞做出有效防御。近年来,多变体执行技术在不断改进和完善,但是误报问题是制约其发展的主要因素。本文针对多变体执行产生误报的原因进行了详细分析,并在此基础上提出利用容器技术实现多变体执行系统在解决误报问题上的优势。为提升多变体执行技术的可用性,本文设计并实现了一种基于容器技术的多变体执行系统CON-MVX,有效解决传统多变体执行系统的误报问题。CON-MVX利用多个经过运行时随机化技术构建的异构容器作为执行体,使用可重构的模块化组件和独立的容器管理工具对容器执行体进行编排管理,建立进程间监控器CGMon,在内核层级实现对多个执行体的输入同步和输出裁决。同时,为满足与客户端良好交互性,建立中继端口策略,保证系统运行状态的正常反馈。实验结果表明,CON-MVX在保证安全能力的前提下,能有效降低多变体执行系统的误报率,在双冗余度执行条件下使用SPEC CPU 2006测试集测试时,系统带来的平均额外性能损耗不超过15%。 相似文献
5.
6.
8.
Ada语言是美国国防部(DoD)在国际范围内组织设计的软件工程语言。它具有实时性、模块性、并行性,在数据抽象,模块结构、并行控制和异常处理等方面提出一整套新概念、新方法,是现代计算机语言的成功代表。该文主要描述由PCx86/UINX平台上的Adz-z编译系统的信息流导致的软件结构、结构内部的接口定义及每个软件元素的功能。 相似文献
9.
分块内存和多地址生成器(AGU)是DSP普遍采用的体系结构.传统的C语言编译器没有针对分块内存和多AGU结构进行代码优化,导致生成代码无法满足性能需求,影响了C语言编译器在数字信号处理领域的应用.为了解决这个问题,提出基于编译指示,与分块内存和多AGU结构相关的编译优化算法.该算法利用定义引用链和引用定义链中的数据流信息,为地址计算指令和访存指令分配AGU,从而提高生成代码的指令级并行度.实验结果表明此算法能够达到较好的优化效果. 相似文献
10.
OpenCL的动态执行模式要求底层平台支持device文件的动态生成、编译和加载运行。对于不具备这些特性的平台,必须从软件层面考虑支持方法。通过采用函数更名技术解决同名函数正确识别问题,基于动态执行流的predo策略可以在静态编译环境下实现OpenCL的动态执行模式。 相似文献
11.
并行化编译系统将串行程序划分成若干个相对独立的模块并行执行。将串行程序转换成并行程序之后,在它们的执行过程中需要进行运行控制。本文主要讨论在并行化编译系统的运行控制中,并行模块的启动以及它们之间的数据通信。 相似文献
12.
针对传统编译器过于抽象复杂的不足,本文提出MiniC实例语言,采用面向对象技术实现该语言的编译器。MiniC编译器可以演示复杂的程序分析过程,给出编译各阶段的详细分析结果,使编译原理中的抽象内容可视化。实际应用表明,MiniC编译器在促进人们对编译理论的理解和提高系统软件开发能力方面能够发挥重要作用。 相似文献
13.
14.
开发并行体系结构--LEAP之上的编译器是验证LEAP正确性和有效性的重要基础。因此,我们设计并实现了LEAP-CC。本文全面介绍了LEAP-CC的设计方案和实现过程,并给出了实现中的一些关键技术。最后,本文还就一个测试程序给出了LEAP-CC的编译结果。测试结果证明,LEAP-CC方案合理,功能无误。 相似文献
15.
16.
软件安全是网络空间安全中最重要的环节。早期的软件安全解决方案大多是发现安全威胁后再逐一解决的被动防御方案。为了有效应对各类安全威胁,防御方法逐渐从被动过渡到主动。在众多的主动防御方法中,从系统执行架构角度出发构建内生防御能力的软件多变体执行架构技术受到了广泛关注,它通过异构、冗余执行体之间的相对正确性检查发现攻击行为,不依赖于具体安全威胁的特征检测,可实时检测并防御大多数已知、甚至未知安全威胁。然而,该方法面向实际应用部署存在较大的性能瓶颈。控制流完整性(CFI)是一种理想的安全解决方案,但由于其性能损失和兼容性问题也未被广泛采用。本文将两者有效结合提出一种基于多变体执行架构的CFI (MVX-CFI)。MVX-CFI是一种基于执行架构的、动态、透明的CFI实施方法,它能够有效捕获软件整个运行时控制流的走向并发现由攻击等恶意行为引起的非法路径转移。MVX-CFI通过MVX可形式化验证的高可信表决机制在运行时动态建立描述应用程序高频执行路径的控制流子图(Sub-CFG),并作为检测模型正向反馈到MVX用于辅助检测,减少了传统MVX大量重复的表决工作,提高了MVX的执行性能。Sub-CFG具有在线分离软件执行过程中高频路径和低频路径的能力,这一特性为软件预置后门的检测提供了一种思路。实验评估表明,本文的改进方法提高了原架构的执行效率,同时保证了在安全防御方面的有效性。 相似文献