Transparent pointer safety: Rust to Lua to OS Components
透明指针安全:Rust 到 Lua 到 OS 组件
基本信息
- 批准号:EP/X021173/1
- 负责人:
- 金额:$ 63.04万
- 依托单位:
- 依托单位国家:英国
- 项目类别:Research Grant
- 财政年份:2022
- 资助国家:英国
- 起止时间:2022 至 无数据
- 项目状态:未结题
- 来源:
- 关键词:
项目摘要
The Digital Security by Design (DSbD) challenge builds a software ecosystem atop Morello, an ARM processor extended with capabilities. Capabilities combine a pointer to memory with permissions and bounds information that Morello processors use to enforce memory safety at run time, halting programs in error when safety is violated. This project develops a vertical stack in the DSbD ecosystem in three parts: a Rust compiler, an implementation of Lua in Rust, and integration of this Lua interpreter into FreeBSD, replacing a core component of the FreeBSD bootloader with software built in DSbD tech.Rust maximises the guarantees provided by capabilities with a memory-saftey-first design, and Lua is a high-level language used for joining systems components together, with the details of memory management safely automated. We will support this vertical with a theoretical development. In our Lua interpreter, we anticipate allocation and reclamation requiring unsafe Rust code, and we will verify that these components cannot produce capability errors. We will raise this to memory safety of the whole interpreter by proving that safe Rust code should never exhibit capability errors.Rust is a systems language from academia with substantial industrial use. Rust is proposed as the second language of the Linux kernel after C, with support from the creator of Linux. Rust excludes the vast majority of pointer misuse - ensuring memory safety - with a static (compile time) check, and a fall-back run-time check for complex cases. Our Rust compiler port will, as a consequence, port all safe Rust code to Morello, and typical Rust programmers may target Morello with no change to their working practices.Sometimes a Rust programmer must subvert the type system, e.g. to interface with hardware or C OS components. These regions of code must be declared as unsafe, enabling a limited set of additional operations that the compiler cannot check, forgoing the automatic guarantees afforded to safe code. This segregation of unsafe code offers a model for programming capability hardware: Rust ensures safe code cannot exhibit capability errors, and unsafe code highlights regions where verification tools can be targeted.Lua is a safe managed language that is used to set up the FreeBSD bootloader. We will port the Lua interpreter to Rust, integrate it into FreeBSD and establish that the garbage collector cannot capability fault.We offer Rust, memory-safe Lua and OS components, together with a theoretical case study that demonstrates scalable security reasoning enabled by the new capability features.
数字设计安全 (DSbD) 挑战赛在 Morello(一款功能扩展的 ARM 处理器)之上构建了一个软件生态系统。这些功能将指向内存的指针与权限和边界信息相结合,Morello 处理器使用这些信息在运行时强制执行内存安全,从而在违反安全性时停止错误的程序。该项目在 DSbD 生态系统中开发了一个垂直堆栈,分为三个部分:Rust 编译器、Rust 中 Lua 的实现以及将此 Lua 解释器集成到 FreeBSD 中,用 DSbD 技术中内置的软件替换 FreeBSD 引导加载程序的核心组件。Rust通过内存安全优先的设计最大限度地保证了功能所提供的保证,Lua 是一种高级语言,用于将系统组件连接在一起,并安全地自动化内存管理的细节。我们将通过理论发展来支持这一垂直领域。在我们的 Lua 解释器中,我们预计分配和回收需要不安全的 Rust 代码,并且我们将验证这些组件不会产生功能错误。我们将通过证明安全的 Rust 代码永远不会出现功能错误,将其提升到整个解释器的内存安全性。Rust 是一种来自学术界的系统语言,具有大量的工业用途。在 Linux 创建者的支持下,Rust 被提议作为继 C 之后的 Linux 内核的第二语言。 Rust 通过静态(编译时)检查和针对复杂情况的回退运行时检查来排除绝大多数指针误用,从而确保内存安全。因此,我们的 Rust 编译器端口将把所有安全的 Rust 代码移植到 Morello,典型的 Rust 程序员可能会以 Morello 为目标,而不改变他们的工作实践。有时,Rust 程序员必须颠覆类型系统,例如与硬件或 C OS 组件连接。这些代码区域必须声明为不安全,从而启用编译器无法检查的一组有限的附加操作,从而放弃为安全代码提供的自动保证。这种不安全代码的隔离为编程能力硬件提供了一个模型:Rust 确保安全代码不会出现能力错误,而不安全代码则突出显示验证工具可以瞄准的区域。Lua 是一种安全托管语言,用于设置 FreeBSD 引导加载程序。我们将把 Lua 解释器移植到 Rust,将其集成到 FreeBSD 中,并确保垃圾收集器无法处理故障。我们提供 Rust、内存安全的 Lua 和操作系统组件,以及理论案例研究,展示新的可扩展安全推理功能。能力特征。
项目成果
期刊论文数量(1)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)
Software Engineering and Formal Methods - 21st International Conference, SEFM 2023, Eindhoven, The Netherlands, November 6-10, 2023, Proceedings
软件工程和形式化方法 - 第 21 届国际会议,SEFM 2023,荷兰埃因霍温,2023 年 11 月 6-10 日,会议记录
- DOI:10.1007/978-3-031-47115-5_17
- 发表时间:2023
- 期刊:
- 影响因子:0
- 作者:Semenyuk M
- 通讯作者:Semenyuk M
{{
item.title }}
{{ item.translation_title }}
- DOI:
{{ item.doi }} - 发表时间:
{{ item.publish_year }} - 期刊:
- 影响因子:{{ item.factor }}
- 作者:
{{ item.authors }} - 通讯作者:
{{ item.author }}
数据更新时间:{{ journalArticles.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ monograph.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ sciAawards.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ conferencePapers.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ patent.updateTime }}
Mark Batty其他文献
The C11 and C++11 concurrency model
C11 和 C 11 并发模型
- DOI:
- 发表时间:
2015 - 期刊:
- 影响因子:0
- 作者:
Mark Batty - 通讯作者:
Mark Batty
Library Abstraction for C / C + + Concurrency — extended version —
C/C++ 并发的库抽象 — 扩展版本 —
- DOI:
- 发表时间:
2012 - 期刊:
- 影响因子:0
- 作者:
Mark Batty;Mike Dodds - 通讯作者:
Mike Dodds
PrideMM: A Solver for Relaxed Memory Models
PrideMM:松弛内存模型的求解器
- DOI:
- 发表时间:
2018 - 期刊:
- 影响因子:0
- 作者:
Simon Cooksey;Sarah Harris;Mark Batty;Radu Grigore;Mikoláš Janota - 通讯作者:
Mikoláš Janota
Rust for Morello: Always-On Memory Safety, Even in Unsafe Code (Artifact)
Rust for Morello:即使在不安全的代码中也始终保持内存安全(Artifact)
- DOI:
10.4230/darts.9.2.25 - 发表时间:
2023 - 期刊:
- 影响因子:0
- 作者:
Sarah Harris;Simon Cooksey;M. Vollmer;Mark Batty - 通讯作者:
Mark Batty
Mark Batty的其他文献
{{
item.title }}
{{ item.translation_title }}
- DOI:
{{ item.doi }} - 发表时间:
{{ item.publish_year }} - 期刊:
- 影响因子:{{ item.factor }}
- 作者:
{{ item.authors }} - 通讯作者:
{{ item.author }}
{{ truncateString('Mark Batty', 18)}}的其他基金
Safe and secure COncurrent programming for adVancEd aRchiTectures (COVERT)
安全可靠的高级架构并发编程 (COVERT)
- 批准号:
EP/X015076/1 - 财政年份:2023
- 资助金额:
$ 63.04万 - 项目类别:
Research Grant
CapC: Capability C semantics, tools and reasoning
CapC:Capability C 语义、工具和推理
- 批准号:
EP/V000470/1 - 财政年份:2020
- 资助金额:
$ 63.04万 - 项目类别:
Research Grant
Compositional, dependency-aware C++ concurrency
组合的、依赖感知的 C 并发
- 批准号:
EP/R020566/1 - 财政年份:2018
- 资助金额:
$ 63.04万 - 项目类别:
Research Grant
相似国自然基金
基于miR-130a-3p靶向AMPK介导ICC线粒体自噬及焦亡探讨背俞指针疗法干预GERD大鼠的效应机制研究
- 批准号:82260900
- 批准年份:2022
- 资助金额:34 万元
- 项目类别:地区科学基金项目
基于元学习和指针网络的面向自然语言引导的视频定位模型研究
- 批准号:
- 批准年份:2021
- 资助金额:30 万元
- 项目类别:青年科学基金项目
基于ARM Pointer Authentication的操作系统内核数据保护研究
- 批准号:62002317
- 批准年份:2020
- 资助金额:24 万元
- 项目类别:青年科学基金项目
指针式灌溉对半干旱区草地景观多功能性的影响
- 批准号:41807525
- 批准年份:2018
- 资助金额:23.0 万元
- 项目类别:青年科学基金项目
背俞指针疗法对GERD大鼠内质网Ca2+-mTOR/Caspase-12介导ICC自噬与凋亡的影响
- 批准号:81573914
- 批准年份:2015
- 资助金额:57.0 万元
- 项目类别:面上项目
相似海外基金
Efficient Compiler-Driven Pointer Compression
高效的编译器驱动的指针压缩
- 批准号:
543706-2019 - 财政年份:2021
- 资助金额:
$ 63.04万 - 项目类别:
Collaborative Research and Development Grants
PWID Opportunities to Improve TrEat and Retain (POINTER)
注射吸毒者改善治疗和保留的机会 (POINTER)
- 批准号:
10237849 - 财政年份:2020
- 资助金额:
$ 63.04万 - 项目类别:
PWID Opportunities to Improve TrEat and Retain (POINTER)
注射吸毒者改善治疗和保留的机会 (POINTER)
- 批准号:
10633056 - 财政年份:2020
- 资助金额:
$ 63.04万 - 项目类别:
Efficient Compiler-Driven Pointer Compression
高效的编译器驱动的指针压缩
- 批准号:
543706-2019 - 财政年份:2020
- 资助金额:
$ 63.04万 - 项目类别:
Collaborative Research and Development Grants