Proving full-system security properties under multiple attacker models on capability machines

Thomas Van Strydonck, Aïna Linn Georges, Armaël Guéneau, Alix Trieu, Amin Timany, F. Piessens, L. Birkedal, Dominique Devriese
{"title":"Proving full-system security properties under multiple attacker models on capability machines","authors":"Thomas Van Strydonck, Aïna Linn Georges, Armaël Guéneau, Alix Trieu, Amin Timany, F. Piessens, L. Birkedal, Dominique Devriese","doi":"10.1109/CSF54842.2022.9919645","DOIUrl":null,"url":null,"abstract":"Assembly-level protection mechanisms (virtual mem-ory, trusted execution environments, virtualization) make it possible to guarantee security properties of a full system in the presence of arbitrary attacker provided code. However, they typically only support a single trust boundary: code is either trusted or untrusted, and protection cannot be nested. Capability machines provide protection mechanisms that are more fine-grained and that do support arbitrary nesting of protection. We show in this paper how this enables the formal verification of full-system security properties under multiple attacker models: differ-ent security objectives of the full system can be verified under a different choice of trust boundary (i.e. under a different attacker model). The verification approach we propose is modular, and is robust: code outside the trust boundary for a given security objective can be arbitrary, unverified attacker-provided code. It is based on the use of universal contracts for untrusted adversarial code: sound, conservative contracts which can be combined with manual verification of trusted components in a compositional program logic. Compositionality of the program logic also allows us to reuse common parts in the analyses for different attacker models. We instantiate the approach concretely by extending an existing capability machine model with support for memory-mapped 1/0 and we obtain full system, machine-verified security properties about external effect traces while limiting the manual verification effort to a small trusted computing base relevant for the specific property under study.","PeriodicalId":412553,"journal":{"name":"2022 IEEE 35th Computer Security Foundations Symposium (CSF)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"4","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2022 IEEE 35th Computer Security Foundations Symposium (CSF)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CSF54842.2022.9919645","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 4

Abstract

Assembly-level protection mechanisms (virtual mem-ory, trusted execution environments, virtualization) make it possible to guarantee security properties of a full system in the presence of arbitrary attacker provided code. However, they typically only support a single trust boundary: code is either trusted or untrusted, and protection cannot be nested. Capability machines provide protection mechanisms that are more fine-grained and that do support arbitrary nesting of protection. We show in this paper how this enables the formal verification of full-system security properties under multiple attacker models: differ-ent security objectives of the full system can be verified under a different choice of trust boundary (i.e. under a different attacker model). The verification approach we propose is modular, and is robust: code outside the trust boundary for a given security objective can be arbitrary, unverified attacker-provided code. It is based on the use of universal contracts for untrusted adversarial code: sound, conservative contracts which can be combined with manual verification of trusted components in a compositional program logic. Compositionality of the program logic also allows us to reuse common parts in the analyses for different attacker models. We instantiate the approach concretely by extending an existing capability machine model with support for memory-mapped 1/0 and we obtain full system, machine-verified security properties about external effect traces while limiting the manual verification effort to a small trusted computing base relevant for the specific property under study.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
在功能机器上验证多个攻击者模型下的全系统安全属性
程序集级保护机制(虚拟内存、可信执行环境、虚拟化)使得在任意攻击者提供代码的情况下保证整个系统的安全属性成为可能。但是,它们通常只支持单一信任边界:代码要么受信任,要么不受信任,并且不能嵌套保护。功能机器提供了更细粒度的保护机制,并且支持任意嵌套的保护。我们在本文中展示了如何在多个攻击者模型下实现对完整系统安全属性的形式化验证:可以在不同的信任边界选择下(即在不同的攻击者模型下)验证完整系统的不同安全目标。我们提出的验证方法是模块化的,并且是健壮的:给定安全目标的信任边界之外的代码可以是任意的,未经验证的攻击者提供的代码。它基于对不可信对抗性代码的通用契约的使用:可靠,保守的契约,可以与组合程序逻辑中可信组件的手动验证相结合。程序逻辑的组合性还允许我们在针对不同攻击者模型的分析中重用公共部分。我们通过扩展支持内存映射1/0的现有能力机器模型来具体实例化该方法,并且我们获得了关于外部影响轨迹的完整系统,机器验证的安全属性,同时将人工验证工作限制在与所研究的特定属性相关的小型可信计算基础上。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Cracking the Stateful Nut: Computational Proofs of Stateful Security Protocols using the Squirrel Proof Assistant N-Tube: Formally Verified Secure Bandwidth Reservation in Path-Aware Internet Architectures How Efficient are Replay Attacks against Vote Privacy? A Formal Quantitative Analysis Conditional Observational Equivalence and Off-line Guessing Attacks in Multiset Rewriting Machine-Checked Proofs of Privacy Against Malicious Boards for Selene & Co
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1