[논문 리뷰] Automatic Techniques to Systematically Discover New Heap Exploitation Primitives
ArcHeap는 현대 힙 할당기의 일반적인 설계 패턴인 binning, 인라인 메타데이터, 카디널 데이터를 모델링하고, 힙 연산의 시퀀스를 탐색하여 새로운 힙 악용 원리를 체계적으로 발견하는 자동화된 퍼저 유사 도구이다. 이 도구는 ptmalloc에서 5개의 이전에 알려지지 않은 원리를 발견하였고, 다른 할당기들에서도 여러 개를 발견하였으며, 이를 증명하기 위해 작동 가능한 개념 증명(PoC) 악용 코드를 생성하였다.
Heap exploitation techniques to abuse the metadata of allocators have been widely studied since they are application independent and can be used in restricted environments that corrupt only metadata. Although prior work has found several interesting exploitation techniques, they are ad-hoc and manual, which cannot effectively handle changes or a variety of allocators. In this paper, we present a new naming scheme for heap exploitation techniques that systematically organizes them to discover the unexplored space in finding the techniques and ArcHeap, the tool that finds heap exploitation techniques automatically and systematically regardless of their underlying implementations. For that, ArcHeap generates a set of heap actions (e.g. allocation or deallocation) by leveraging fuzzing, which exploits common designs of modern heap allocators. Then, ArcHeap checks whether the actions result in impact of exploitations such as arbitrary write or overlapped chunks that efficiently determine if the actions can be converted into the exploitation technique. Finally, from these actions, ArcHeap generates Proof-of-Concept code automatically for an exploitation technique. We evaluated ArcHeap with real-world allocators --- ptmalloc, jemalloc, and tcmalloc --- and custom allocators from the DARPA Cyber Grand Challenge. ArcHeap successfully found 14 out of 16 known exploitation techniques and found five new exploitation techniques in ptmalloc. Moreover, ArcHeap found several exploitation techniques for jemalloc, tcmalloc, and even for the custom allocators. Further, ArcHeap can automatically show changes in exploitation techniques along with version change in ptmalloc using differential testing.
연구 동기 및 목표
- 힙 악용 원리 발견이 수작업, 비체계적이고 할당기별로 특화되어 있어 시간과 시스템 간 지식 공유가 어렵다는 문제를 해결하기 위해.
- 기본 할당기 구현에 의존하지 않고 체계적이고 자동화된 방식으로 새로운 힙 악용 원리를 발견할 수 있도록 하기 위해.
- 현대 힙 할당기에서 공통적인 설계 아이디오마(예: binning, 인라인 메타데이터, 카디널 데이터)를 추상화하여 악용 원리 발견의 검색 공간을 줄이기 위해.
- 각 발견된 원리를 공식적으로 증명하기 위해 최소 크기이면서 작동 가능한 개념 증명(PoC) 악용 코드를 생성하기 위해.
- 보안 점검 및 회귀 테스트를 위한 테스트 케이스를 제공함으로써 취약점 연구와 보안 대응 기술 개발을 동시에 지원하기 위해.
제안 방법
- ArcHeap는 검색 공간을 줄이기 위해 힙 할당기의 세 가지 핵심 추상화인 binning, 인라인 메타데이터, 카디널 데이터를 사용하여 현대 힙 할당기를 모델링한다.
- 퍼저 유사 탐색을 수행하기 위해 할당, 해제, 청크 조작 등의 힙 연산 시퀀스를 생성하고 변형한다.
- 테스트 케이스가 임의의 왁은 쓰기 또는 겹치는 청크와 같은 악용 가능한 결과를 유도할 수 있는지 평가하는 새로운 '영향 평가' 메커니즘을 도입한다.
- 발견된 테스트 케이스를 최소화하고 동일한 기능을 가지는 최소 크기의 PoC로 축소하기 위해 델타 디버깅을 사용한다.
- 실제 할당기(ptmalloc, tcmalloc, jemalloc)와 DARPA 사이버 그랜드 챌린지에서 제공한 커스텀 할당기를 대상으로 프레임워크를 평가한다.
- 새로운 모델을 정의함으로써 비표준 할당기에도 쉽게 적용 가능한 확장 가능한 아키텍처로 설계되어 있다.
실험 결과
연구 질문
- RQ1수작업 역설계 없이 다양한 힙 할당기 구현 간에 체계적으로 새로운 힙 악용 원리를 자동으로 발견할 수 있는가?
- RQ2신규로 악용 가능한 행동을 유지하면서도, 힙 악용 원리 발견의 검색 공간을 효과적으로 줄일 수 있는 방법은 무엇인가?
- RQ3일반적인 할당기 설계 패턴(예: binning, 인라인 메타데이터, 카디널 데이터)의 추상 모델이 이전에 알려지지 않은 원리를 발견하는 데 얼마나 기여할 수 있는가?
- RQ4프레임워크는 발견된 원리를 검증하기 위해 최소 크기이면서 작동 가능한 개념 증명(PoC) 악용 코드를 생성할 수 있는가?
- RQ5tcache와 같은 고도의 보안 기능을 갖춘 할당기에서 이 기법이 악용 가능한 원리를 식별하는 데 얼마나 효과적인가?
주요 결과
- ArcHeap는 널리 사용되는 할당기인 ptmalloc에서 이전에 알려지지 않은 5개의 힙 악용 원리를 발견하여, 자동화된 발견의 가능성을 입증하였다.
- jemalloc과 tcmalloc에서도 여러 악용 가능한 기법을 발견하였으며, 이는 이전에 알려지지 않은 공격 벡터를 포함하고 있었다.
- ArcHeap는 각 발견된 원리에 대해 작동 가능한 개념 증명(PoC) 악용 코드를 성공적으로 생성하여 그 실용성을 확인하였다.
- ArcHeap는 일부 악용 기법이 ptmalloc의 다양한 버전에서도 여전히 유효하다는 점을 드러내어, 보안 강화에도 불구하고 지속적인 위협임을 시사하였다.
- 프레임워크는 ptmalloc의 tcache가 기존 보안 체크를 우회하여 많은 전통적 악용 기법을 무력화시키고 새로운 공격 표면을 드러내는 것으로 밝혀졌다.
- 이 방법은 보안 기능의 진화와 그에 따른 악용 가능성에 미치는 영향을 체계적으로 분석할 수 있도록 하여, 보안 대응 기술 개발과 회귀 테스트를 지원한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.