SAFEJ: An Efficient Infrastructure for Securing Julia Programs

Hao Zhu, Baojian Hua · 2023

Julia is an emerging programming language designed for high-performance and parallel computing. However, its simple-designed foreign function interface, ccall, lacks necessary security checks, making multilingual Julia applications vulnerable to exploitation. This paper introduces SAFEJ, an infrastructure developed to enhance Julia FFI security. SAFEJ includes two key components: 1) privilege separation to protect Julia by isolating the memory of Julia and native code and 2) pointer sanitization to filter and check memory accesses from unsafe native code to provide more flexible protection. We conducted extensive experiments to evaluate the effectiveness and performance of SAFEJ. The results demonstrate that SAFEJ effectively protects Julia from common memory attacks, and its efficiency tests indicate that pointer sanitization is on par with prior studies, while privilege separation achieves a maximum reduction of 85% in runtime performance overhead.

Read the paper · More papers on PaperTik