#control-flow-integrity

共收录 12 条相关安全情报。

← 返回所有主题
👥 作者: Mohannad Ismail, Jinwoo Yom, Christopher Jelesnianski, Yeongjin Jang, Changwoo Min

本文提出一种新的安全属性——值不变属性(Value Invariant Property, VIP),并基于该属性设计了原型系统 HyperSpace,用于防御因内存破坏(memory corruption)导致的安全关键数据(如函数指针)被篡改的攻击。与传统的控制流完整性(CFI)或数据流完整性(DFI)机制不同,HyperSpace 直接保护“数据值”的完整性,而不是强制约束控制流或数据流,从而以极低的运行时开销有效阻断关键攻击。作者基于 HyperSpace 实现了四种代表性安全策略:控制流完整性(VIP-CFI)、代码指针完整性(VIP-CPI)、虚函数表指针保护(VIP-VTPtr)以及堆元数据保护。评估使用 SPEC CPU2006 基准测试和真实应用(NGINX、PostgreSQL),并测试了针对内存破坏攻击的防御效果,包括三个真实世界漏洞利用和六个能绕过现有防御的攻击(如 COOP 面向返回编程、堆利用等)。实验结果表明,HyperSpace 成功阻止了所有测试攻击,且运行时开销较低:VIP-CFI 平均性能开销为 0.88%,VIP-CPI 为 6.18%,VIP-CPI 在 SPEC CPU2006 上的内存开销约为 13.18%。该研究为内存安全防御提供了一种新思路,即通过维护安全敏感数据的不变式来有效抵御漏洞利用,同时保持高性能,适合系统安全、漏洞利用防御方向的从业者阅读。

💡 推荐理由: 该研究提出了一种兼顾安全性和性能的内存防御新范式,可替代或补充现有 CFI/CPI 机制,适合评估其对真实应用(如 Web 服务器、数据库)的加固价值,是蓝队理解前沿防御技术的重要参考。

🎯 建议动作: 研究跟进

排序因子: 来自网络安全顶级会议 (+8) | Community 数据源 (+1) | LLM 评分加成 (+0.6)
推荐 9.6
Conf: 50%
👥 作者: Yufei Du, Vasileios P. Kemerlis, Michalis Polychronakis, Fabian Monrose

该论文是一篇系统化知识(SoK)研究,聚焦于真实世界场景下的多层间接调用分析。间接调用(如通过函数指针、虚函数表或跳转表进行的调用)是现代二进制程序(尤其是C/C++代码)中控制流完整性问题的主要来源,也是攻击者篡改控制流、实施面向返回编程(ROP)等攻击的重要目标。现有研究提出了大量间接调用分析技术,但大多在理想化基准或受限环境中评估,缺乏对真实软件生态中复杂性的系统考量。本文首次系统性地梳理并比较了多层间接调用分析技术(包括静态分析、动态分析、混合分析以及基于类型推导、值集分析、指针分析等不同原理的方法),重点讨论各技术在面对真实世界二进制程序——如编译器优化产生的间接跳转、内联汇编、动态生成代码、虚拟调用、异常处理中的跳转表等——时的准确性、召回率与性能开销。论文还构建了涵盖常见真实开源项目的评测基准,对多种代表性分析工具(如CodeSonar、SVF、Andersen指针分析等)进行了统一评估,揭示了现有方法在精度与可扩展性之间的显著权衡。此外,作者提出了多层分析框架的概念:结合粗粒度的类型匹配与细粒度的流敏感分析,通过分层过滤来降低误报率同时保持可接受的召回率。实验结果表明,单纯依赖单一层次的分析在真实世界二进制上往往失效,而多层协同能够显著提升可用性。该文提供了亲历性的实践指南,包括如何选择分析策略、如何处理不透明谓词与混淆代码,以及如何将分析结果集成到控制流完整性(CFI)加固流程中。适合从事二进制分析、漏洞挖掘、编译器安全与CFI研究的学者和工程师阅读。

💡 推荐理由: 间接调用分析是CFI、漏洞检测与逆向工程的核心基础;真实世界二进制复杂度常使传统分析失效,该SoK系统化对比了现有方法的优劣,为蓝队选择合适的分析工具与加固策略提供了重要参考依据。

🎯 建议动作: 研究跟进

排序因子: 来自网络安全顶级会议 (+8) | Community 数据源 (+1) | LLM 评分加成 (+0.6)
推荐 9.5
Conf: 50%
👥 作者: Tommaso Frassetto, Patrick Jauernig, David Koisser, Ahmad-Reza Sadeghi

本文针对控制流完整性(CFI)策略的安全评估问题展开研究。现有防御机制(如 CFI)在缓解内存破坏漏洞利用方面发挥着重要作用,但不同实现的防护能力难以比较。既有度量指标(如 AIR)仅关注控制流图的边或基本块的覆盖情况,却未考虑不同基本块对攻击者的利用价值,导致评估结果无法真实反映策略的安全强度。为此,作者提出了两种新型度量指标:BLOCKINSULATION 和 CFGINSULATION。它们通过模拟攻击者在控制流图中遍历时可利用的基本块价值,来衡量 CFI 策略对攻击路径的阻断能力,克服了传统指标的局限性。在此基础上,论文进一步提出了一种新颖的 CFI 策略生成器 NumCFI,其设计目标是与现有策略生成器正交,能够阻止攻击者从易受攻击的代码段直接跳转到系统调用指令,从而切断利用链中的‘捷径’。作者使用 BLOCKINSULATION、CFGINSULATION 以及现有指标对 NumCFI 和其他多种 CFI 策略生成器进行了系统性评估。最后,论文描述了 L+TCFI——一种将 NumCFI 与基于标签的现有策略相结合的完整实现,其性能开销仅为 1.27%,展示了所提方法在实际部署中的可行性。该研究为 CFI 领域提供了更精细的安全评估工具和一种新的策略设计思路,适合系统安全研究人员、编译器开发者以及负责CFI机制选型的蓝队工程师阅读。

💡 推荐理由: 为安全从业者提供了更贴近攻击者视角的CFI有效性评估方法,帮助更准确地比较不同CFI实现的安全强度,并为设计更强防护策略提供新方向。

🎯 建议动作: 研究跟进

排序因子: 来自网络安全顶级会议 (+8) | Community 数据源 (+1) | LLM 评分加成 (+0.5)
👥 作者: Yufei Du, Zhuojia Shen, Komail Dharsee, Jie Zhou 0022, Robert J. Walls, John Criswell

该论文提出了一种名为 Kage 的全面控制流保护方案,专门针对实时嵌入式系统。实时嵌入式系统在航空航天、汽车、医疗等安全关键领域广泛应用,但其资源受限和实时性要求使得传统控制流完整性(CFI)机制难以直接部署。现有方案要么仅保护部分控制流(如函数返回地址),要么引入过高的性能开销破坏实时约束。Kage 通过软硬件协同设计,在保持系统实时性的同时提供全栈控制流保护:覆盖进程间通信、系统调用、异常处理、任务调度等所有控制流转换点。论文详细介绍了 Kage 的设计,包括一个轻量级的硬件监控单元(HMU)以及配套的软件运行时和编译器支持。HMU 在硬件层面实时验证控制流转移的合法性,而软件层负责建立合法的控制流图(CFG)并提供策略。实验在两款主流嵌入式处理器(ARM Cortex-M4 和 RISC-V)上实现,评估了性能开销和保护覆盖率。结果显示,Kage 引入了平均约 2% 的运行时开销,且成功防御了针对真实漏洞的控制流劫持攻击。该工作为在资源受限且实时性严格的环境下实现 CFI 提供了可行方案,对嵌入式安全研究具有重要参考价值。

💡 推荐理由: 实时嵌入式系统的安全漏洞可能导致物理灾难,但现有 CFI 方案因性能开销不适用。Kage 首次实现了低开销的全栈控制流保护,填补了该领域空白,对安全关键系统有直接指导意义。

🎯 建议动作: 研究跟进

排序因子: 来自网络安全顶级会议 (+8) | Community 数据源 (+1) | LLM 评分加成 (+0.5)
👥 作者: Lucas Becker, Matthias Hollick, Jiska Classen

本文是一篇关于控制流完整性(CFI)在实际环境中有效性的系统化知识(SoK)综述。研究背景:CFI 被广泛视为一种重要的防御技术,旨在通过限制程序控制流来遏制控制流劫持攻击。然而,随着攻击技术的演进,尤其是面向返回编程(ROP)和面向跳转编程(JOP)的复杂化,CFI 的实际效果受到质疑。核心问题:现有 CFI 实现在面对现实世界攻击者时,其保护能力究竟如何?是否存在普遍性的局限性?方法:作者系统回顾了近年来 CFI 相关的学术文献、实际部署案例以及已知绕过技术,构建了一个分类框架来评估不同 CFI 策略(如粗粒度、细粒度、运行时 CFI)的强度与弱点。主要贡献:1)总结了 CFI 的常见攻击面,包括间接跳转/调用的覆盖不全、状态图不完备、性能支出与安全的权衡等;2)揭示了细粒度 CFI 虽增强了安全性,但仍可能被特定攻击模式(如后向边利用、运行时信息泄露)绕过;3)指出实际部署中的 CFI 方案往往因兼容性需求而降低保证级别;4)提出了未来 CFI 研究应关注动态完整性检查、基于硬件的辅助以及与程序语言级安全的结合。本文适合安全研究人员、系统软件开发者及防御技术评估者阅读,帮助理解 CFI 的现状与局限。

💡 推荐理由: CFI 是底层防御技术核心,本文系统梳理了其实际效力与绕过方式,对评估依赖 CFI 的现有防护体系有直接指导价值。

🎯 建议动作: 研究跟进

排序因子: 来自网络安全顶级会议 (+8) | Community 数据源 (+1) | LLM 评分加成 (+0.5)
👥 作者: Ziyi Lin, Jinku Li, Bowen Li, Haoyu Ma, Debin Gao, Jianfeng Ma 0001

该论文针对二进制程序在控制流完整性(CFI)中前向边保护的难题,提出了一种结合静态与动态分析的方法TypeSqueezer,用于更精确地恢复函数签名。传统基于类型的间接调用目标匹配在二进制层面面临类型信息缺失的困境,静态分析只能采用宽松的arity/宽度边界假设,导致过拟合,易被高级攻击绕过。TypeSqueezer通过动态分析获取运行时函数参数的实际宽度和个数,进而约束静态推断,显著缩小间接调用目标的候选集。实验证明,该方法在减少误报的同时保持了高覆盖率,有效提升了二进制级CFI的安全性。核心贡献在于提出了一个混合分析框架,能够在不依赖源代码的情况下,以较高精度推断函数签名,适用于COTS二进制程序。该工作适合二进制安全、CFI机制和逆向工程领域的研究人员及安全工程师阅读。

💡 推荐理由: 该研究提出了一种新颖的静态与动态分析结合的方法,解决了二进制CFI中前向边保护的关键瓶颈,可提升现有CFI防御的精确性和安全性。

🎯 建议动作: 研究跟进

排序因子: 影响边界/网络设备 (+5) | 来自网络安全顶级会议 (+8) | Community 数据源 (+1) | LLM 评分加成 (+0.5)
推荐 9.5
Conf: 50%
👥 作者: Hans Liljestrand, Thomas Nyman, Lachlan J. Gunn, Jan-Erik Ekberg, N. Asokan

论文提出了一种新的控制流完整性保护机制——认证调用栈(ACS),通过链式消息认证码(MAC)验证函数返回地址的完整性,从而防御返回导向编程(ROP)等运行时攻击。传统影子栈需要在受保护内存中维护返回地址副本,存在性能开销大或需要专用硬件支持的问题。ACS利用连续的MAC值链,每个函数调用时更新栈上的认证标签,无需独立影子栈。作者基于ARMv8.3-A的指针认证(PA)硬件指令实现了原型系统PACStack。指针认证是为函数指针等设计的硬件安全特性,PACStack将其扩展应用于返回地址保护。安全性分析表明,PACStack在面对代码执行、任意内存写入等常见攻击模型时,能达到与硬件辅助影子栈同等的安全强度,且无需额外硬件支持。性能评估显示,PACStack在SPEC CPU2006基准测试中平均开销仅约3%,远低于软件影子栈方案。该工作适合系统安全、编译器安全和硬件安全领域的研究者阅读。

💡 推荐理由: 提供了一种无需专用硬件即可实现硬件级安全性的返回地址保护方案,对移动端和嵌入式Arm设备的控制流完整性加固具有直接参考价值。

🎯 建议动作: 研究跟进

排序因子: 来自网络安全顶级会议 (+8) | Community 数据源 (+1) | LLM 评分加成 (+0.5)
👥 作者: Igor Santos-Grueiro

本文提出 WarpGuard,据作者所知这是首个在已执行 SASS(Shader Assembly)层面为 CUDA 设备二进制实现受保护站点控制流完整性(CFI)的系统。近年来 CUDA 利用研究显示,GPU 内存漏洞可升级为设备端控制流破坏,因为内核后续会使用被破坏的返回延续、函数指针、调度表项或分支目标。对于已部署的 CUDA 二进制,安全边界是实际执行的 NVIDIA SASS(经过 PTX 降级、内联、ABI 决策、寄存器分配、溢出、预测和 SIMT 执行后),而源代码或 PTX 级别的策略无法捕获此边界。WarpGuard 在受保护站点实施强制:恢复消耗控制流状态的 SASS 指令或序列,提供足够二进制证据以推导策略,在释放前进行检查,并在违反时失败关闭。它向后边缘认证已检测返回的延续状态,每站点验证可恢复的前向目标,并报告固定边缘、不支持、配置文件排除、回退和无表面结果。在 77 个 CUDA 工件上,WarpGuard 分类了 51,621 个 SASS 控制流站点,包括 1,343 个返回和 154 个支持的前向目标集条目,并记录了 5220 万次动态检查。在代表性后向和前向边缘破坏攻击中,原生执行到达攻击者选择的行为,仅检测模式记录预期违规,而强制模式在释放无效受保护转移前失败关闭。公开代码证据表明,相同的 SASS 消费模式出现在真实 CUDA 系统中,包括运行时调度表、cuFFT 回调、生成的可调用表和上传的设备函数指针。WarpGuard 为 CUDA SASS 提供了可审计的受保护站点 CFI,并将动态检测强制与无回调 SASS 定时和补丁缓存可行性分离。

💡 推荐理由: 本工作填补了 GPU 二进制级别 CFI 的空白,直接针对实际执行的 SASS 代码,解决了现有 PTX/源码策略无法覆盖的安全边界,为部署 CUDA 应用程序的防御者提供了可审计的运行时防护手段。

🎯 建议动作: 研究跟进

排序因子: 有可用补丁/修复方案 (+3) | 影响边界/网络设备 (+5) | 来自 arXiv 其他板块 (+2) | Community 数据源 (+1) | LLM 评分加成 (+0.6)
推荐 9.4
Conf: 50%
👥 作者: Sashidhar Jakkamsetti, Youngil Kim, Andrew Searles, Gene Tsudik

该论文聚焦于低端嵌入式设备(如IoT设备)的控制流完整性(CFI)保护问题。这类设备因成本限制极少具备安全机制,成为攻击者的目标。作者针对资源极度受限的微控制器提出了轻量级CFI方案。通过分析程序控制流图,在函数调用和返回点插入验证机制,确保控制流不被恶意篡改。实验基于常见低端MCU(如ARM Cortex-M系列)实现,评估了性能开销(平均<10%)、内存占用和功耗。结果表明,该方案能有效防御返回地址劫持和跳转定向攻击,且对实时性影响极小。主要贡献在于证明了在低端设备上实现CFI的可行性,并提供了开源实现供社区验证。

💡 推荐理由: 低端嵌入式设备是物联网安全链中最薄弱的环节,但现有CFI方案因资源需求过高无法应用。该研究为这些设备提供了可行的内存攻击防御手段,可显著提升IoT生态的整体安全性。

🎯 建议动作: 研究跟进

排序因子: 来自网络安全顶级会议 (+8) | Community 数据源 (+1) | LLM 评分加成 (+0.4)
👥 作者: Ciyan Ouyang, Peinan Li, Yubiao Huang, Dan Meng, Rui Hou

本文提出 Janus,一个基于编译器的安全框架,旨在缓解 ARM64 平台上的瞬态执行攻击(如 Spectre)和控制流劫持。Janus 利用 ARM 的硬件原语——指针认证(PA)和分支目标识别(BTI),通过修改指针认证修饰符(PA modifiers)来整合推测执行和/或控制流依赖,从而防止控制流推测攻击。它通过现有的控制流完整性机制同时保护控制流和推测执行。为了优化性能,Janus 采用修饰符融合(modifier fusion)技术合并不同防御层的操作,以及载体重用(carrier reuse)技术重用受保护变量的寄存器,从而降低开销,同时保持强大的安全保证。在 SPEC CPU2017 基准测试上,平均性能开销仅为 3.85%;实际应用(如 nginx、redis)的开销在 2.97% 到 7.80% 之间。Janus 有效提供了推测执行安全性,且性能和代码大小开销较低,是 ARM 系统的稳健解决方案。本文适合编译器开发者、系统安全研究人员以及 ARM 平台的安全架构师阅读。

💡 推荐理由: 瞬态执行攻击(如 Spectre)至今仍是现代处理器的严重威胁。Janus 通过编译器自动利用 ARM 硬件原语,提供了一种低开销、强安全的缓解方案,对 ARM 生态的防御实践具有重要参考价值。

🎯 建议动作: 研究跟进

排序因子: 来自 arXiv 其他板块 (+2) | Community 数据源 (+1) | LLM 评分加成 (+0.5)
👥 作者: Katharina Ceesay-Seitz, Flavien Solt, Kaveh Razavi

该论文提出了一种名为μCFI(微架构控制流完整性)的形式化验证方法,旨在解决现有控制流完整性(CFI)机制在微架构层面的安全漏洞。传统的CFI仅在软件或ISA(指令集架构)层面保证控制流安全,但无法抵御利用微架构侧信道或瞬态执行攻击(如Spectre、Meltdown)的控制流劫持。作者通过形式化建模微架构状态(如分支预测器、缓存、乱序执行单元)与控制流之间的关系,定义了微架构层面的安全策略。μCFI基于模型检验技术,能够验证处理器设计是否满足该策略,从而确保即使在微架构优化(如预测执行)下,控制流也不会被恶意操纵。实验在RISC-V处理器核心上实现,验证了多个已知攻击变种(如Spectre v1、v2)的缓解效果,并发现了新的潜在攻击路径。该工作首次将形式化验证应用于微架构CFI,为安全处理器设计提供了理论保证。

💡 推荐理由: 当前硬件侧信道和瞬态执行攻击频发,纯软件CFI已不足以保证安全。μCFI填补了微架构层面形式化验证的空白,有助于设计从根本上免疫此类攻击的处理器,对芯片安全、云计算和机密计算场景意义重大。

🎯 建议动作: 研究跟进

排序因子: 来自网络安全顶级会议 (+8) | Community 数据源 (+1) | LLM 评分加成 (+0.5)
👥 作者: Zhechang Zhang, Hengkai Ye, Song Liu, Hong Hu 0004

本文提出 SACK(Systematic Generation of Function Substitution Attacks Against Control-Flow Integrity),一种系统化生成函数替换攻击的方法,旨在绕过控制流完整性(CFI)保护机制。CFI 通过限制程序执行路径为预期合法路径来防御控制流劫持攻击,但近年研究表明攻击者仍可通过合法间接调用函数来绕过 CFI,例如通过替换函数指针或虚函数表。SACK 自动分析目标二进制程序,识别可被利用的合法间接调用点,并生成能够将控制流转移到攻击者选定函数的输入。该方法利用污点分析和符号执行技术,在 CFI 策略允许的范围内构造满足条件的函数替换 payload,从而实现对程序行为的恶意篡改。实验在多个真实世界程序(如 Web 服务器、文本编辑器等)上进行,证明了 SACK 能够有效生成绕过现有 CFI 实现的攻击,并揭示了当前 CFI 策略在细粒度上的不足。

💡 推荐理由: 揭示现有 CFI 实现的盲区,为防御方改进 CFI 策略提供攻击面视角,推动更精细的控制流防护设计。

🎯 建议动作: 研究跟进

排序因子: 来自网络安全顶级会议 (+8) | Community 数据源 (+1) | LLM 评分加成 (+0.5)