Fidelius Charm: Isolating Unsafe Rust Code

被引:10
|
作者
Almohri, Hussain M. J. [1 ,2 ]
Evans, David [2 ]
机构
[1] Kuwait Univ, Dept Comp Sci, Kuwait, Kuwait
[2] Univ Virginia, Dept Comp Sci, Charlottesville, VA 22903 USA
基金
美国国家科学基金会;
关键词
Isolation; Rust; Compartmentalization; Sandboxing;
D O I
10.1145/3176258.3176330
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
The Rust programming language has a safe memory model that promises to eliminate critical memory bugs. While the language is strong in doing so, its memory guarantees are lost when any unsafe blocks are used. Unsafe code is often needed to call library functions written in an unsafe language inside a Rust program. We present Fidelius Charm (FC), a system that protects a programmer-specified subset of data in memory from unauthorized access through vulnerable unsafe libraries. FC does this by limiting access to the program's memory while executing unsafe libraries. FC uses standard features of Rust and utilizes the Linux kernel as a trusted base for splitting the address space into a trusted privileged region under the control of functions written in Rust and a region available to unsafe external libraries. This paper presents our design and implementation of FC, presents two case studies for using FC in Rust TLS libraries, and reports on experiments showing its performance overhead is low for typical uses.
引用
收藏
页码:248 / 255
页数:8
相关论文
共 32 条
  • [21] MSWasm: Soundly Enforcing Memory-Safe Execution of Unsafe Code
    Michael, Alexandra E.
    Gollamudi, Anitha
    Bosamiya, Jay
    Johnson, Evan
    Denlinger, Aidan
    Disselkoen, Craig
    Watt, Conrad
    Parno, Bryan
    Patrignani, Marco
    Vassena, Marco
    Stefan, Deian
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2023, 7 (POPL): : 425 - 454
  • [22] Friend or Foe Inside? Exploring In-Process Isolation to Maintain Memory Safety for Unsafe Rust
    Gulmez, Merve
    Nyman, Thomas
    Baumann, Christoph
    Muhlberg, Jan Tobias
    [J]. 2023 IEEE SECURE DEVELOPMENT CONFERENCE, SECDEV, 2023, : 54 - 66
  • [23] rust-code-analysis: A Rust library to analyze and extract maintainability information from source codes
    Ardito, Luca
    Barbato, Luca
    Castelluccio, Marco
    Coppola, Riccardo
    Denizet, Calixte
    Ledru, Sylvestre
    Valsesia, Michele
    [J]. SOFTWAREX, 2020, 12
  • [24] 'R: Towards Detecting and Understanding Code-Document Violations in Rust
    Ouyang, Wanrong
    Hua, Baojian
    [J]. 2021 IEEE INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING WORKSHOPS (ISSREW 2021), 2021, : 189 - 197
  • [25] Safe Rust Code Recommendation Based on Siamese Graph Neural Network
    Lu, Xiuwen
    Zhang, Zhicong
    Xu, Hui
    [J]. 2022 IEEE 27TH PACIFIC RIM INTERNATIONAL SYMPOSIUM ON DEPENDABLE COMPUTING (PRDC), 2022, : 1 - 11
  • [26] PLINER: Isolating Lines of Floating-Point Code for Compiler-Induced Variability
    Guo, Hui
    Laguna, Ignacio
    Rubio-Gonzalez, Cindy
    [J]. PROCEEDINGS OF SC20: THE INTERNATIONAL CONFERENCE FOR HIGH PERFORMANCE COMPUTING, NETWORKING, STORAGE AND ANALYSIS (SC20), 2020,
  • [27] JAVA']JAVA APPLICATION FAULT TOLERANCE TOWARDS UNSAFE NATIVE CODE INVOCATION USING PROCESSBUILDER
    Hooi, Yew Kwang
    Oxley, Alan
    [J]. PROCEEDINGS OF THE 2011 3RD INTERNATIONAL CONFERENCE ON SOFTWARE TECHNOLOGY AND ENGINEERING (ICSTE 2011), 2011, : 115 - 120
  • [28] The necessity of the law and the charm of the transgression. The triangulation of Alberto Pisani and Carlo Dossi of the civil code in the literature
    Buffaria, Perette-Cecile
    [J]. LABORATOIRE ITALIEN-POLITIQUE ET SOCIETE, 2005, (05): : 105 - 123
  • [29] Cosmic expansion history from SNe Ia data via information field theory: the charm code
    Porqueres, Natalia
    Ensslin, Torsten A.
    Greiner, Maksim
    Boehm, Vanessa
    Dorn, Sebastian
    Ruiz-Lapuente, Pilar
    Manrique, Alberto
    [J]. ASTRONOMY & ASTROPHYSICS, 2017, 599
  • [30] TRUST: A Compilation Framework for In-process Isolation to Protect Safe Rust against Untrusted Code
    Bang, Inyoung
    Kayondo, Martin
    Moon, Hyungon
    Paek, Yunheung
    [J]. PROCEEDINGS OF THE 32ND USENIX SECURITY SYMPOSIUM, 2023, : 6947 - 6964