论文标题

向内存安全python飞地,以进行安全敏感计算

Towards Memory Safe Python Enclave for Security Sensitive Computation

论文作者

Wang, Huibo, Sun, Mingshen, Feng, Qian, Wang, Pei, Li, Tongxin, Ding, Yu

论文摘要

Intel SGX Guard Extensions(SGX)是一个由硬件支持的可信执行环境(TEE),旨在保护对安全敏感的应用程序。但是,由于使用不安全语言(例如C/C ++)开发了飞地应用程序,因此在SGX中未消除传统内存损坏。 Rust-SGX是第一个为飞地开发人员提供内存语言的工具包。但是,RUST被认为是一种系统语言,已成为并发应用程序和Web浏览器的正确选择。在Python编程语言中,许多应用程序域,例如大数据,机器学习,机器人技术,计算机视觉更常见。因此,Python应用程序开发人员无法从Intel SGX和Rust-SGX等安全飞地中受益。为了填补这一空白,我们提出了Python-SGX,这是一种存储器安全的SGX SDK,为Enclave开发人员提供了存储器安全的Python开发环境。关键思想是通过求解以下关键挑战来启用SGX中的内存安全性Python语言:(1)定义一个存储器安全的Python解释器(2)用安全的python解释器替换Python解释器的不安全元素,(3)将可比较的性能实现到非安装python应用程序,并将其介绍到任何codile not(4)codile seg codile seg seg seg segs;我们建议用Rpython撰写的Python解释器Pypy构建Python-SGX,该解释器是Python的一个子集,并且通过正式验证,安全性硬化和记忆安全语言来构建Python的子集,而Tame不安全的零件。我们已经实施了Python-SGX,并通过一系列基准计划对其进行了测试。我们的评估结果表明,Python-SGX不会引起明显的开销。

Intel SGX Guard eXtensions (SGX), a hardware-supported trusted execution environment (TEE), is designed to protect security-sensitive applications. However, since enclave applications are developed with memory unsafe languages such as C/C++, traditional memory corruption is not eliminated in SGX. Rust-SGX is the first toolkit providing enclave developers with a memory-language. However, Rust is considered a Systems language and has become the right choice for concurrent applications and web browsers. Many application domains such as Big Data, Machine Learning, Robotics, Computer Vision are more commonly developed in the python programming language. Therefore, Python application developers cannot benefit from secure enclaves like Intel SGX and rust-SGX. To fill this gap, we propose Python-SGX, which is a memory-safe SGX SDK providing enclave developers a memory-safe Python development environment. The key idea is to enable memory-safe Python language in SGX by solving the following key challenges: (1) defining a memory-safe Python interpreter (2)replacing unsafe elements of Python interpreter with safe ones,(3) achieving comparable performance to non-enclave Python applications, and (4) not introducing any unsafe new code or libraries into SGX. We propose to build Python-SGX with PyPy, a Python interpreter written by RPython, which is a subset of Python, and tame unsafe parts in PyPy by formal verification, security hardening, and memory safe language. We have implemented python-SGX and tested it with a series of benchmarks programs. Our evaluation results show that Python-SGX does not cause significant overhead.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源