본문으로 건너뛰기

© 2026 Molayo

arXiv논문2026. 06. 09. 10:53

Windows IOCTL Census: 드라이버 제어 코드 표면(Control-Code Surface)에 대한 코퍼스 규모의 멀티 아키텍처

요약

Windows 드라이버의 IOCTL 제어 코드 표면을 체계적으로 지도화한 Windows IOCTL Census를 소개합니다. 심볼릭 실행 없이 중간 표현을 분석하여 27,087개 드라이버의 디스패치 표면을 복구하고 대규모 데이터셋을 구축했습니다.

핵심 포인트

  • 27,087개 서명된 Windows 드라이버의 제어 코드 데이터베이스 구축
  • 심볼릭 실행 없이 아키텍처 중립적인 방식으로 표면 복구
  • x86 및 x64 전반에 걸쳐 코퍼스의 80% 분석 성공
  • LLM을 활용한 도달 가능한 핸들러의 분류 및 우선순위 지정
  • 수천만 행 규모의 공개 데이터셋 제공

Windows 드라이버는 I/O 제어 (IOCTL) 코드를 통해 커널을 노출하며, 단 하나의 버퍼 길이 미검증(unchecked length)만으로도 권한이 없는 호출이 커널 쓰기(kernel write)로 이어질 수 있습니다. 연구 커뮤니티는 이러한 표면(surface)을 탐지하기 위한 강력한 스캐너와 알려진 악성 드라이버 목록을 보유하고 있지만, 표면 자체에 대한 지도는 가지고 있지 않습니다. 우리는 그 지도를 구축합니다. Windows IOCTL Census는 심볼릭 실행 (symbolic execution) 없이 결정론적이고 아키텍처 중립적인 단 한 번의 패스로 복구된 27,087개의 서명된 Windows 드라이버의 제어 코드 디스패치 표면 (control-code dispatch surface)에 대한 쿼리 가능한 데이터베이스입니다. 심볼릭 엔진 (symbolic engine)을 실행하는 대신 리프팅된 중간 표현 (lifted intermediate representation)을 읽음으로써, 기존 스캐너가 중단되는 32비트 영역을 포함하여 x86 및 x64 전반에 걸쳐 코퍼스(corpus)의 80%에 대한 디스패치 표면을 복구할 수 있었습니다. 64비트 경로에서는 핸들러 도달 가능성 (handler reachability), 오염 (taint), 그리고 호출 그래프 (call graph)를 추가합니다. LLM은 분류 (triage)를 위해 도달 가능한 핸들러의 순위를 매깁니다. 우리는 수천만 행으로 구성된 공개 데이터셋으로 이 센서스를 공개합니다: 27,087개의 바이너리, 310만 개의 디코딩된 제어 코드, 818만 개의 함수, 그리고 1,595만 개의 호출 엣지 (call edges)를 포함합니다.

AI 자동 생성 콘텐츠

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

원문 바로가기
0

댓글

0