arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2005.05996cs.CR
收藏

面向安全敏感计算的内存安全Python飞地

Towards Memory Safe Python Enclave for Security Sensitive Computation

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

摘要:

英特尔SGX Guard eXtensions(SGX)是一种硬件支持的可信执行环境(TEE),旨在保护安全敏感型应用程序。然而,由于安全区应用程序是用内存不安全的语言(如C/C++)开发的,因此SGX中没有消除传统的内存损坏。Rust-SGX是第一个为飞地开发人员提供内存语言的工具包。然而,Rust被认为是一种系统语言,并已成为并发应用程序和Web浏览器的正确选择。许多应用领域,如大数据,机器学习,机器人,计算机视觉,更常用Python程序设计语言开发。因此,Python应用程序开发人员无法从Intel SGX和rust-SGX等安全飞地中受益。为了填补这一空白,我们提出了Python-SGX,这是一个内存安全的SGX SDK,为飞地开发人员提供了一个内存安全的Python开发环境。其核心思想是通过解决以下关键挑战来在SGX中启用内存安全的Python语言:(1)定义内存安全的Python解释器(2)用安全的Python解释器替换Python解释器的不安全元素,(3)实现与非飞地Python应用程序相当的性能,以及(4)不向SGX中引入任何不安全的新代码或库。我们建议使用RPython编写的Python解释器PyPy构建Python-SGX,PyPy是Python的一个子集,并通过形式化验证,安全加固和内存安全语言来驯服PyPy中的不安全部分。我们已经实现了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.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑