一句话:提出渐进式隔离方法,允许按组件逐步迁移到对象能力模型,并在类型中追踪对象权限以持续获得安全保障。
现代软件细粒度的进程内隔离需求日益迫切,供应链攻击使得依赖成百上千库的应用面临风险。对象能力(object capabilities)是一种重要的隔离方案,但其前提是程序整体不存在环境权限(ambient authority),而已有代码大多并非如此,因此采用对象能力往往需要“重写世界”式迁移。本文提出渐进式隔离(gradual compartmentalization),允许应用按任意顺序逐个组件迁移到对象能力模型,并在整个迁移过程中持续享有安全保证。该方法依赖运行时权限强制,并在类型系统中追踪对象的权限。作者实现了 Gradient——面向 Scala 的渐进式隔离概念验证扩展,其关键组件为 Enclosures 与 Capture Tracking。评估通过将 Scala 标准 XML 库迁移到 Gradient 来完成。
Modern software needs fine-grained compartmentalization, i.e., intra-process isolation. A particularly important reason for it are supply-chain attacks, the need for which is aggravated by modern applications depending on hundreds or even thousands of libraries. Object capabilities are a particularly salient approach to compartmentalization, but they require the entire program to assume a lack of ambient authority. Most of existing code was written under no such assumption; effectively, existing applications need to undergo a rewrite-the-world migration to reap the advantages of ocap. We propose gradual compartmentalization , an approach which allows gradually migrating an application to object capabilities, component by component in arbitrary order, all the while continuously enjoying security guarantees. The approach relies on runtime authority enforcement and tracking the authority of objects the type system. We present Gradient, a proof-of- concept gradual compartmentalization extension to Scala which uses Enclosures and Capture Tracking as its key components. We evaluate our proposal by migrating the standard XML library of Scala to Gradient.
@article{Boruch-Gruszecki24,
title = {Gradient: Gradual Compartmentalization via Object Capabilities Tracked in Types},
author = {Aleksander Boruch-Gruszecki and Adrien Ghosn and Mathias Payer and Clément Pit-Claudel},
journal = {Proceedings of the ACM on Programming Languages},
volume = {8},
number = {OOPSLA2},
year = {2024},
doi = {10.1145/3689751}
}