본문 바로가기
KERD
논문KCI 등재

무작위 메모리 보호 키 할당을 통한웹어셈블리 JIT 컴파일된 코드 보호

Protection on WebAssembly JIT-Compiled Code with Randomized Memory Protection Key

0

조회

0

다운로드

0

인용

0

참고문헌

키워드

주제분류컴퓨터학

초록

웹어셈블리(Wasm)는 다양한 프로그래밍 언어에서 컴파일되어 웹 브라우저와 다양한 런타임 환경에서 실행될 수 있는 강력한 이진 언어이다. 특히 많은 Wasm 런타임에서 지원하고 있는 Just-in-Time (JIT) 컴파일은 성능 면에서 뛰어나지만, 메모리 보안 측면에서 W^X 정책을 위반하여새로운 보안 위협을 유발한다. 이에 본 연구에서는 Intel MPK를 활용하여 JIT 컴파일된 코드의 메모리 보호를 개선하는 기법을 제안한다. 우리는보호 키의 다양화와 메모리 접근 제어를 통해 코드스페이스를 안전하게 관리하는 코드스페이스 보호 알고리즘을 설계하였다. 또한 이를 WasmMicro Runtime(WAMR)에 구현하여 실험을 진행하였다. CoreMark와 PolyBench로 성능을 측정한 결과, CoreMark에서는 프로토타입이 기존WAMR에 비해 약 1.59% 성능 향상을 보였으며, PolyBench에서는 기존 WAMR에 비해 평균적으로 약 12%의 성능 향상을 보였다.

Abstract

WebAssembly(Wasm) is a powerful platform that enables compiled code in various programming languages to be executed in webbrowser and in varied runtime environments. Specifically, for performance optimization, Wasm runtime provides Just-in-Time (JIT)compilation, but this poses a new security threat that violates the W^X policy in terms of memory security. In this study, we proposeda technique to improve the memory protection of JIT compiled code using Intel MPK and applied it to Wasm Micro Runtime (WAMR)to conduct experiments. We designed a code space protection algorithm that safely manages code space through diversification andrandomization of protection keys and memory access control. As a result of benchmarking with CoreMark and PolyBench, the WAMRwith memory protection showed performance improvement of about 1.59% in CoreMark and performance improvement of about 12%in PolyBench compared to the WAMR without memory protection.

참고문헌 (12)

  1. "WebAssembly: Bringing the web up to speed" (2024)[URL]
  2. W. De Groef, "JITSec: Just-in-time Security for Code Injection Attacks", IBBT-DistriNet, Katholieke Universiteit Leuven
  3. "V8 Documentation"[URL]
  4. "JavaScriptCore"[URL]
  5. Intel Corporation, "Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 3 (3A, 3B, 3C, &3D): System Programming Guide, Order No. 325384-084US", 136~ (2024)
  6. T. Park, "NOJITSU: Locking down JavaScript engines", Network and Distributed System Security Symposium (2020)
  7. "Pkeys(7) linux programmer’s manual" (2018)[URL]
  8. "Linux Programmer's Manual, “pkey_mprotect,”"[URL]
  9. "EEMBC’s CoreMark" (2022)[URL]
  10. M. Bai, "OmniWasm : Efficient, Granular Fault Isolation and Control-Flow Integrity for Arm Microcontrollers", Proc. 2024 IEEE 30th Real-Time and Embedded Technology and Applications Symposium (RTAS), pp.9~ (2024)
  11. "Performance" (2021)[URL]
  12. "Polybench"[URL]

관련 논문AI추천

이 간행물의 다른 논문 (9건)