Room1 (E1-4)

16:10~17:00

컴파일러 규칙 기반 웹어셈블리 런타임 퍼징

Tech
#취약점 탐지 연구 #WASM
박준영KAIST해킹랩 박사과정

현재 카이스트 윤인수 교수님 연구실 박사과정 학생입니다. 소프트웨어 보안에 관심이 많으며, 주로 퍼징과 같은 자동화된 취약점 탐지 연구를 진행하고 있습니다. 소프트웨어의 경우 하이퍼바이저, 브라우저, 윈도우, 안티바이러스 등 다양하게 관심을 가지고 있습니다.

웹 어셈블리(WebAssembly) 런타임은 프로그램 실행 속도를 극대화하기 위해 내부에 컴파일러를 탑재하고 있습니다. 이 컴파일러는 코드를 기계어로 변환하며, 변환 과정에서 다양한 컴파일러 규칙을 사용해 최적화를 수행합니다. 그러나 기존 테스트 도구들은 이러한 규칙의 복잡성을 충분히 다루지 못하고, 제한된 기능으로 인해 다양한 테스트 케이스를 생성하는데 한계가 있습니다. 그 결과, 런타임의 버그를 발견하지 못하는 사례가 다수 발생합니다. 본 발표에서는 이러한 한계를 극복하기 위한 연구를 소개합니다. 연구에서는 규칙 기반 퍼징(Rule-guided fuzzing)과 역 스택 기반 생성(Reverse stack-based generation)이라는 두 가지 새로운 기술을 제안합니다. 이 기술들은 복잡한 컴파일러 규칙을 효과적으로 탐색하고, 보다 다양한 테스트 케이스를 생성하여 웹 어셈블리 런타임을 정밀하게 테스트할 수 있도록 돕습니다. 실제로 이 기술들을 브라우저 엔진 3종을 포함한 총 6개의 런타임에 적용한 결과, CVE 하나를 포함한 20개의 새로운 버그를 발견하는 성과를 거두었습니다. 결론적으로 발표에서는 해당 기술들의 설계, 구현, 그리고 이를 통해 새롭게 발견한 버그 사례를 중심으로 연구의 전반적인 과정을 상세히 다룰 예정입니다.