Fidelius Charm: Isolating Unsafe Rust Code

被引:14
作者
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
来源
PROCEEDINGS OF THE EIGHTH ACM CONFERENCE ON DATA AND APPLICATION SECURITY AND PRIVACY (CODASPY'18) | 2018年
基金
美国国家科学基金会;
关键词
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
相关论文
共 30 条
  • [21] Provos N., 2003, USENIX SEC S
  • [22] Saltier J. H., 1975, IEEE CSIT NEWSLETTER, V3, P19, DOI [10.1109/CSIT.1975.6498831, DOI 10.1109/CSIT.1975.6498831]
  • [23] Sinha Rohit, 2016, PLDI
  • [24] Song C., 2016, NDSS
  • [25] SoK: Eternal War in Memory
    Szekeres, Laszlo
    Payer, Mathias
    Wei, Tao
    Song, Dawn
    [J]. 2013 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP), 2013, : 48 - 62
  • [26] Wahbe Robert, 1993, SOSP
  • [27] Wang Jun, 2015, USENIX ANN TECHN C M
  • [28] CHERI: A Hybrid Capability-System Architecture for Scalable Software Compartmentalization
    Watson, Robert N. M.
    Woodruff, Jonathan
    Neumann, Peter G.
    Moore, Simon W.
    Anderson, Jonathan
    Chisnall, David
    Dave, Nirav
    Davis, Brooks
    Gudka, Khilan
    Laurie, Ben
    Murdoch, Steven J.
    Norton, Robert
    Roe, Michael
    Son, Stacey
    Vadera, Munraj
    [J]. 2015 IEEE SYMPOSIUM ON SECURITY AND PRIVACY SP 2015, 2015, : 20 - 37
  • [29] Wu Yongzheng, 2012, ESORICS
  • [30] Native Client: A Sandbox for Portable, Untrusted x86 Native Code
    Yee, Bennet
    Sehr, David
    Dardyk, Gregory
    Chen, J. Bradley
    Muth, Robert
    Ormandy, Tavis
    Okasaka, Shiki
    Narula, Neha
    Fullagar, Nicholas
    [J]. PROCEEDINGS OF THE 2009 30TH IEEE SYMPOSIUM ON SECURITY AND PRIVACY, 2009, : 79 - 93