Collaborative Research: SaTC: CORE: Medium: Refine the Gap: Establishing Safety for Modern Foreign Function Interfaces
Collaborative Research: SaTC: CORE: Medium: Refine the Gap: Establishing Safety for Modern Foreign Function Interfaces
批准号:
2327338
负责人:
Caleb Stanford
金额:
$30.0万
依托单位国家:
美国
项目类别:
Continuing Grant
财政年份:
2023
资助国家:
美国
项目状态:
未结题
起止时间:
2023-10-01 至 2027-09-30
中文摘要
Firefox、Chrome和Linux等广泛使用的软件基础设施的开发人员正在用Rust编写的组件替换用不安全但快速的语言(如C/C++)编写的组件。Rust承诺消除C/C++代码库特有的安全漏洞,而不会影响性能。唉,完全重写现实世界的软件系统是不切实际的:Firefox、Chrome和Linux都是数千万的C/C++代码。相反,Rust组件必须继续与现有的C/C++代码交互。实际上,这需要开发人员编写将Rust和C/C++粘合在一起的代码。不幸的是,这种粘合代码非常难以正确编写:语言边界的代码既可以在以前安全的代码中引入错误,又可以强加新的未经检查的要求,从而威胁到Rust代码和包含的C/ C++生态系统的安全性。该项目将通过构建新的抽象、技术和工具来解决这些挑战,这些抽象、技术和工具将帮助开发人员在C/C++应用程序中安全地集成Rust组件(反之亦然)。这项研究将跨越从新的理论和正式的想法,以部署和在现实世界的软件中集成这项技术的频谱。该项目有可能直接提高数十亿用户使用的软件基础设施的安全性,包括Firefox、Chrome和Linux。该项目还将为研究生、本科生和高中课程做出贡献,向未来的开发人员介绍构建安全软件的技术和工具。该项目通过保护C/C++和Rust之间的粘合层以及用于编写粘合代码的外部函数接口(FFI)开发人员,采取原则性和实用性的方法来构建安全系统软件。为了实现这些目标,该项目将(1)为Rust生态系统构建新的静态分析工具,这些工具与人工审计协同工作,以检测、分类和分类现有FFI中的主要弱点;(2)基于精化类型为FFI层构建新颖的抽象,以描述并自动检查FFI层处的存储器安全和类型安全属性,并消除FFI层的ad-hoc胶水代码;(3)构建一个轻量级的沙箱层,用于从Rust调用C/C++代码,利用先前的沙箱机制,但将其抽象与Rust的所有权类型系统相结合。这项研究将对现代多语言系统中的安全性和安全性差距产生新的见解;有助于理解精化类型如何与现代内存安全类型系统和可变性约束集成;并发展我们对现代安全技术的理解--包括静态分析,类型系统,该奖项反映了NSF的法定使命,并通过使用基金会的知识价值和更广泛的影响审查标准进行评估,被认为值得支持。
英文摘要
Developers of widely used software infrastructure like the Firefox, Chrome, and Linux are replacing components written in unsafe but fast languages like C/C++ with components written in Rust. Rust promises to eliminate the security vulnerabilities endemic to C/C++ codebases without compromising on performance. Alas, completely rewriting real-world software systems is not practical: Firefox, Chrome, and Linux are tens of millions of C/C++ code. Instead, Rust components must continue to interact with existing C/C++ code. In practice, this requires developers to write code that glues Rust and C/C++. Unfortunately, this glue code is notoriously difficult to write correctly: code at the language boundary can both introduce errors in previously safe code and impose new unchecked requirements, threatening the security of both the Rust code and the containing C/ C++ ecosystem. This project will address these challenges by building new abstractions, techniques, and tools that will help developers securely integrate Rust components within C/C++ applications (and vice versa). This research will span the spectrum from new theoretical and formal ideas to the deployment and integration of this technology in real-world software. The project has the potential to directly improve the security of software infrastructure used by billions of users, including Firefox, Chrome, and Linux. The project will also contribute to the graduate, undergraduate, and high school curriculum, introducing future developers to techniques and tools for building secure software.This project takes a principled and practical approach to building secure systems software by securing the glue layer between C/C++ and Rust and the foreign function interface (FFI) developers used to write this glue code. To accomplish these goals, this project will (1) build novel static analysis tools for the Rust ecosystem, which work in tandem with human auditing to detect, triage, and classify major weaknesses in existing FFIs; (2) build novel abstractions for the FFI layer based on refinement types to describe and automatically check memory safety and type safety properties at the FFI layer, and eliminate the ad-hoc glue code at the FFI layer; (3) build a lightweight sandboxing layer for calling C/C++ code from Rust, leveraging prior sandboxing mechanisms but marrying their abstractions with Rust's ownership type system. This research will yield new insights into the safety and security gaps in modern multi-language systems; contribute to the understanding of how refinement types can integrate with a modern memory-safe type system and mutability constraints; and develop our understanding of how modern security techniques -- including static analysis, type systems, and sandboxing -- are applicable to the Rust ecosystem and ownership model.This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
EAGER: Proof-Carrying Code Completions
-
批准号:2403762
-
项目类别:Standard Grant
-
资助金额:$30.0万
-
财政年份:2024
-
负责人:Caleb Stanford
-
依托单位:
国内基金
海外基金
登录
查看更多内容
Research on Quantum Field Theory without a Lagrangian Description
-
批准号:24ZR1403900
-
项目类别:省市级项目
-
资助金额:--
-
批准年份:2024
-
负责人:SATOSHI NAWATA
-
依托单位:
Cell Research
-
批准号:31224802
-
项目类别:专项基金项目
-
资助金额:24.0万元
-
批准年份:2012
-
负责人:程磊
-
依托单位:
Cell Research
-
批准号:31024804
-
项目类别:专项基金项目
-
资助金额:24.0万元
-
批准年份:2010
-
负责人:程磊
-
依托单位:
Cell Research (细胞研究)
-
批准号:30824808
-
项目类别:专项基金项目
-
资助金额:24.0万元
-
批准年份:2008
-
负责人:张爱兰
-
依托单位:
Research on the Rapid Growth Mechanism of KDP Crystal
-
批准号:10774081
-
项目类别:面上项目
-
资助金额:45.0万元
-
批准年份:2007
-
负责人:滕冰
-
依托单位: