발로란트의 보호 지역에 대한 심층 분석
**가드된 영역(Guarded Regions)**은 PE 파일의 제어 흐름 보호 메커니즘으로, RFG(Return Flow Guard)와 함께 동작하여 악성코드의 ROP/JOP 공격을 방지합니다.
가드된 영역의 구조
가드된 영역은 PE 파일의 Load Configuration Directory에서 정의되며, 다음과 같은 구조를 가집니다:
- GuardedRegionTable: 가드된 영역들의 테이블을 가리키는 포인터
- GuardedRegionCount: 가드된 영역의 개수
- 각 영역은 시작 주소와 크기로 정의됨
동작 원리
- 컴파일 시점: 컴파일러가 중요한 코드 섹션들을 가드된 영역으로 표시
- 런타임: OS 로더가 이 정보를 읽어 해당 영역들에 대한 특별한 보호 적용
- 실행 중: 제어 흐름이 가드된 영역으로 이동할 때 유효성 검사 수행
보호 메커니즘
- 간접 호출 검증: 함수 포인터를 통한 호출 시 대상 주소가 유효한지 확인
- 반환 주소 검증: 함수 반환 시 스택의 반환 주소가 조작되지 않았는지 확인
- 점프 대상 검증: 간접 점프의 목적지가 허용된 위치인지 검사
우회 기법 분석
연구자들이 발견한 주요 우회 방법들:
- 가드되지 않은 영역 활용: 가드 보호가 적용되지 않은 코드 섹션 이용
- API 후킹: 가드 검증 함수 자체를 후킹하여 무력화
- 메타데이터 조작: PE 파일의 가드 관련 메타데이터 수정
이러한 분석은 보안 연구와 방어 메커니즘 개선에 중요한 통찰을 제공합니다.