Skip to main content
QUICK REVIEW

[논문 리뷰] Taint Tracking for WebAssembly

Aron Szanto, Timothy Tamm|arXiv (Cornell University)|2018. 07. 22.
Advanced Malware Detection Techniques참고 문헌 4인용 수 13
한 줄 요약

이 논문은 탐지 가능한 데이터 흐름을 캡처하기 위해 간접 탐지 추적을 도입한, 처음으로 자바스크립트 기반의 WebAssembly 가상 머신을 제안한다. 이는 신뢰할 수 없는 WebAssembly 코드에서 민감한 데이터 흐름을 미세하게 모니터링할 수 있도록 한다. 실질적으로 정확성, 보안성, 선형 성능 오버헤드를 입증한다.

ABSTRACT

WebAssembly seeks to provide an alternative to running large and untrusted binaries within web browsers by implementing a portable, performant, and secure bytecode format for native web computation. However, WebAssembly is largely unstudied from a security perspective. In this work, we build the first WebAssembly virtual machine that runs in native JavaScript, and implement a novel taint tracking system that allows a user to run untrusted WebAssembly code while monitoring the flow of sensitive data through the application. We also introduce indirect taint, a label that denotes the implicit flow of sensitive information between local variables. Through rigorous testing and validation, we show that our system is correct, secure, and relatively efficient, benefiting from the native performance of WebAssembly while retaining precise security guarantees of more mature software paradigms.

연구 동기 및 목표

  • 클라이언트 측 실행 환경에서 WebAssembly에 대한 런타임 보안 분석 도구, 특히 탐지 추적 기능의 부족을 해결하기 위해.
  • 클라이언트 측 실행 및 분석을 위해 자바스크립트로 구현된 완전 기능을 갖춘 WebAssembly 가상 머신을 구축하기 위해.
  • 바이너리 코드 수준에서 작동하고 직접 및 간접 탐지 전파를 모두 지원하는 탐지 추적 시스템을 설계하고 구현하기 위해.
  • 포괄적인 테스트와 벤치마크를 통해 탐지 추적 시스템의 정확성, 보안성, 성능 특성을 검증하기 위해.
  • 향후 브라우저 확장 프로그램 등을 통한 개인정보 보호 및 보안 감사와 같은 실제 환경에 탐지 추적을 구현할 수 있도록 하기 위해.

제안 방법

  • 샌드박스 환경에서 WebAssembly 바이너리 코드를 해석하고 실행할 수 있도록 맞춤형 자바스크립트 기반 WebAssembly 가상 머신을 개발했다.
  • 명령어 수준에서 탐지 추적을 구현하여, 스택 연산과 메모리 접근에서 강력한 타입 보장을 갖는 탐지 레이블을 전파했다.
  • 타인의 입력에 의해 영향을 받는 변수이지만 직접 할당을 받지 않는 변수에 대해 간접 탐지 레이블을 도입하여 암묵적 데이터 흐름을 캡처했다.
  • C에서 WebAssembly로의 컴파일, 탐지 전파 검증, 성능 벤치마크를 포함한 포괄적인 테스트 세트를 설계하고 실행했다.
  • 각 명령어 단계에서 스택과 메모리 상태를 검사할 수 있도록 디버깅 툴세트를 사용하여 탐지 전파의 정밀한 검증을 가능하게 했다.
  • 루프와 오일러의 타우 함수와 같은 복잡한 함수를 포함한 다양한 워크로드에서 탐지 추적의 시간 및 메모리 오버헤드를 측정했다.

실험 결과

연구 질문

  • RQ1자바스크립트로 구현된 완전 기능을 갖춘 WebAssembly 가상 머신을 개발하여 신뢰할 수 없는 코드의 런타임 분석을 가능하게 할 수 있는가?
  • RQ2어떻게 미세한 제어 수준에서 데이터 흐름을 제어할 수 있는 WebAssembly 실행 환경에 탐지 추적을 효과적으로 통합할 수 있는가?
  • RQ3실제 워크로드에 적용했을 때 탐지 추적의 실행 시간 및 메모리 사용량 측면에서 성능 오버헤드는 어느 정도인가?
  • RQ4간접 탐지가 어떻게 모델링되고 탐지되어야 하며, 직접 탐지 추적만으로는 포착되지 않는 암묵적 데이터 흐름을 어떻게 캡처할 수 있는가?
  • RQ5재귀나 반복 알고리즘을 포함한 복잡한 제어 흐름을 거쳐도 탐지 추적 시스템이 민감한 데이터를 정확하고 안전하게 추적할 수 있는가?

주요 결과

  • 제안된 자바스크립트 기반 WebAssembly 가상 머신은 오일러의 타우 함수의 재귀적 및 반복적 구현과 같은 복잡한 함수를 정확히 실행한다.
  • 탐지 추적 시스템은 직접 할당을 통해 탐지 전파를 정확히 수행하며, 간접 탐지도 캡처하여, 직접 할당이 없는 변수의 값이 탐지된 입력에 의해 영향을 받는 경우를 포괄한다.
  • 탐지 추적은 변수 할당 수에 비례하는 선형 시간 오버헤드를 유발하며, 단순 루프에서는 측정 가능하고 관리 가능한 성능 비용을 유발한다.
  • 간접 탐지 전파의 성능 비용은 직접 탐지 추적보다 높으며, 특히 타우 함수와 같은 계산적으로 집약적인 함수에서는 더욱 두드러지지만, 점근적으로 선형 유지된다.
  • 탐지 가능 변수 수에 비례하여 탐지 추적으로 인한 메모리 오버헤드는 예상대로 선형적으로 증가하며, 할당된 탐지 레이블 수에 비례하여 힙 사용량이 증가한다.
  • 데이터 양에 관계없이 탐지 전달 시간이 일정하므로, 어떤 프로그램의 점근적 효율성도 탐지 추적을 적용해도 유지된다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.