论文标题

polytope:C ++应用程序的实用内存访问控制

Polytope: Practical Memory Access Control for C++ Applications

论文作者

Agadakos, Ioannis, Egele, Manuel, Robertson, William

论文摘要

设计和实施安全软件比以往任何时候都重要。但是,尽管经过多年的特权分离计划的研究,但实际上仍然很难做到这一点,这种努力可能需要多年的劳动密集型工程才能实现。同时,从性能的角度来看,新的进程内隔离原始原始原始原料使强大的数据隔离和特权隔离更具吸引力。然而,将过程内安全边界代替时间考验的过程边界为微妙但破坏性的特权泄漏打开了大门。在这项工作中,我们介绍了Polytope,这是C ++的语言扩展,旨在使更多受众群体可以访问有效的特权分离。 Polytope定义了编码为C ++ 11属性的策略语言,该属性将代码和数据分为不同的程序分区。修改后的曲线前端嵌入源级策略作为LLVM IR中的元数据节点。 LLVM Pass解释了嵌入式策略和IR仪器与代码使用Intel MPK执行源级别策略的IR。运行时支持库管理分区,保护密钥,动态内存操作和间接呼叫目标特权。评估表明,多层人士为较低注释负担和可比性能开销的先前系统提供了同等的保护。多层人士还使特权泄漏与不可能表达的预期政策相矛盾。

Designing and implementing secure software is inarguably more important than ever. However, despite years of research into privilege separating programs, it remains difficult to actually do so and such efforts can take years of labor-intensive engineering to reach fruition. At the same time, new intra-process isolation primitives make strong data isolation and privilege separation more attractive from a performance perspective. Yet, substituting intra-process security boundaries for time-tested process boundaries opens the door to subtle but devastating privilege leaks. In this work, we present Polytope, a language extension to C++ that aims to make efficient privilege separation accessible to a wider audience of developers. Polytope defines a policy language encoded as C++11 attributes that separate code and data into distinct program partitions. A modified Clang front-end embeds source-level policy as metadata nodes in the LLVM IR. An LLVM pass interprets embedded policy and instruments an IR with code to enforce the source-level policy using Intel MPK. A run-time support library manages partitions, protection keys, dynamic memory operations, and indirect call target privileges. An evaluation demonstrates that Polytope provides equivalent protection to prior systems with a low annotation burden and comparable performance overhead. Polytope also renders privilege leaks that contradict intended policy impossible to express.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源