본문으로 건너뛰기

© 2026 Molayo

arXiv논문2026. 05. 20. 13:44

OverrideFuzz: 스크립트 런타임 취약점을 위한 의미론 인지 문법 퍼징 (Semantic-Aware Grammar Fuzzing)

요약

OverrideFuzz는 Python, Lua, JavaScript와 같은 스크립트 언어 런타임의 취약점을 탐지하기 위해 설계된 2단계 의미론 인지 문법 퍼저입니다. 이 퍼저는 선언 단계에서 오버라이드 메서드를 가진 객체를 구축하고, 실행 단계에서 해당 훅을 통해 경로가 지정되는 연산을 생성합니다. 능동적/수동적 리플렉션 기법을 활용하여 API 명세 없이도 의미론적 정확성을 확보하며, CPython, Lua, QuickJS 등 다양한 런타임에서 효과적인 커버리지 증가를 입증했습니다.

핵심 포인트

  • OverrideFuzz는 스크립트 언어의 복잡한 동작(오버라이드 훅, 동적 재바인딩 등)을 모델링하여 취약점을 탐지합니다.
  • 2단계 접근 방식을 통해 객체 구축(선언 단계)과 연산 생성(실행 단계)을 분리하여 의미론적 정확성을 높입니다.
  • 능동적/수동적 리플렉션을 결합하여 API 명세 없이도 런타임 타입 추적 및 유효성 검사를 수행합니다.
  • CPython, Lua, QuickJS 등 다양한 스크립트 런타임에서 효과적인 커버리지 증가를 보였으며, 특히 Lua의 메타메서드 디스패치에 강점을 보였습니다.

Python, Lua, JavaScript와 같은 스크립트 언어 런타임 (runtimes)은 보안에 민감한 환경에서 널리 배포되고 있지만, 유효한 입력이 구문 (syntax), 동적 타입 제약 조건 (dynamic type constraints), 그리고 객체 수준의 의미론 (object-level semantics)을 모두 충족해야 하기 때문에 테스트하기가 여전히 어렵습니다. 기존의 문법 기반 (grammar-based) 및 리플렉션 기반 (reflection-based) 퍼저 (fuzzers)들은 구문적 유효성과 인터페이스 도달 가능성 (interface reachability)을 개선하지만, 스크립트와 네이티브 경계 (script-native boundary)를 가로질러 내장된 연산을 재지정하고 Use-after-free 또는 Type-confusion 버그를 유발할 수 있는 오버라이드 훅 (override hooks), 동적 재바인딩 (dynamic rebinding), 속성 해석 (attribute-resolution) 동작을 모델링하는 경우는 드뭅니다.

본 논문에서는 스크립트 언어 런타임을 위한 2단계 의미론 인지 문법 퍼저인 OverrideFuzz를 제안합니다. 선언 단계 (declaration phase)에서는 오버라이드 메서드 (overriding methods)를 가진 객체를 구축하며, 실행 단계 (execution phase)에서는 해당 훅 (hooks)을 통해 경로가 지정되는 연산들을 생성합니다. 능동적 리플렉션 (Active reflection)은 런타임 타입 (runtime types)을 추적하고, 수동적 리플렉션 (passive reflection)은 에러 메시지로부터 학습하여 유효하지 않은 연산 형태를 제거함으로써, 수동적인 API 명세 없이도 생성이 의미론적 정확성 (semantic correctness)에 도달할 수 있도록 합니다.

우리는 CPython, Lua, QuickJS를 대상으로 OverrideFuzz를 평가했습니다. 세 가지 대상 모두 초기에는 급격한 확장 이후 완만한 점진적 이득을 보이는 일관된 커버리지 (coverage) 성장을 보여주었으며, Lua는 널리 퍼져 있는 메타메서드 디스패치 (metamethod dispatch) 메커니즘 덕분에 가장 큰 이점을 얻었습니다. 비록 OverrideFuzz가 제한된 평가 기간 동안 새로운 취약점을 발견하지는 못했지만, 코퍼스 분석 (corpus analysis) 결과 알려진 취약점 패턴과 일치하는 입력을 재구성함을 보여주었으며, 이는 의미론 인지 생성이 의도된 스크립트-네이티브 경계 동작에 도달함을 시사합니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 arXiv cs.PL (Programming Languages)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0