paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Enforcing C/C++ Type and Scope at Runtime for Control-Flow and Data-Flow Integrity

在运行时强制 C/C++ 类型与作用域以实现控制流和数据流完整性
ASPLOS Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 32024匹配度 2/10 · 论文聚焦于利用 ARM 指针认证在运行时强制 C/C++ 指针的类型与作用域完整性,属于系统安全领域的运行时防御机制,与用户关注的静态分析、LLM/Agent 交叉、浮点程序分析或贝叶斯程序分析等核心方向无直接关联。虽然涉及程序语言中的类型和作用域概念,但既非静态分析,也未与 AI/LLM 结合,因此匹配度很低。引用 3 inbox
Mohannad Ismail, Christopher Jelesnianski, Yeongjin Jang, Changwoo Min, Wenjie Xiong
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出 STI 策略及基于 ARM 指针认证的 RSTI 机制,在运行时约束指针的类型与作用域以防御控制流与数据流攻击。

控制流劫持与面向数据攻击日益复杂,其中面向数据攻击可导致 SSL 密钥泄露等严重威胁;由于数据指针数量庞大,防御代价高。其根源在于指针被以非预期方式使用,违反原作用域或声明类型。本文提出 Scope Type Integrity (STI) 策略,要求所有代码与数据指针符合程序员意图,并设计 Runtime Scope Type Integrity (RSTI) 机制,利用 ARM Pointer Authentication 在运行时强制执行 STI:STI 收集指针的作用域、类型与权限信息,RSTI 据此验证指针使用的合法性。作者实现三种 RSTI 防御机制,在安全与性能间提供不同权衡,并在多种基准和真实应用上评估;三者开销分别为 5.29%、2.97% 和 11.12%。

问题
控制流劫持和面向数据攻击可通过滥用代码/数据指针来违反其原始作用域或声明类型,尤其数据指针数量巨大导致防御困难。本文研究如何在运行时按程序员意图约束指针使用,以同时保障控制流和数据流完整性。
方法
提出 STI 防御策略,要求所有指针符合原作用域、类型与权限;并基于 ARM Pointer Authentication 实现 RSTI,在运行时收集并检查指针的作用域、类型和权限信息。实现三种不同安全/性能权衡的 RSTI 机制。
评估
在多种基准和真实应用上对三种 RSTI 变体进行完整安全与性能评估,报告运行时开销分别为 5.29%、2.97% 和 11.12%。
原文摘要(Abstract)

Control-flow hijacking and data-oriented attacks are becoming more sophisticated. These attacks, especially data-oriented attacks, can result in critical security threats, such as leaking an SSL key. Data-oriented attacks are hard to defend against with acceptable performance due to the sheer amount of data pointers present. The root cause of such attacks is using pointers in unintended ways; fundamentally, these attacks rely on abusing pointers to violate the original scope they were used in or the original types that they were declared as. This paper proposes Scope Type Integrity (STI), a new defense policy that enforces all pointers (both code and data pointers) to conform to the original programmer's intent, as well as Runtime Scope Type Integrity (RSTI) mechanisms to enforce STI at runtime leveraging ARM Pointer Authentication. STI gathers information about the scope, type, and permissions of pointers. This information is then leveraged by RSTI to ensure pointers are legitimately utilized at runtime. We implemented three defense mechanisms of RSTI, with varying levels of security and performance tradeoffs to showcase the versatility of RSTI. We employ these three variants on a variety of benchmarks and real-world applications for a full security and performance evaluation of these mechanisms. Our results show that they have overheads of 5.29%, 2.97%, and 11.12%, respectively.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@inproceedings{IsmailJJMX24,
  title = {Enforcing C/C++ Type and Scope at Runtime for Control-Flow and Data-Flow Integrity},
  author = {Mohannad Ismail and Christopher Jelesnianski and Yeongjin Jang and Changwoo Min and Wenjie Xiong},
  booktitle = {ASPLOS},
  year = {2024},
  doi = {10.1145/3620666.3651342}
}