HyBIS: 하이퍼바이저 기반 메모리 인트로스펙션으로 Windows 게스트 보호
📝 Abstract
Effectively protecting the Windows OS is a challenging task, since most implementation details are not publicly known. Windows has always been the main target of malwares that have exploited numerous bugs and vulnerabilities. Recent trusted boot and additional integrity checks have rendered the Windows OS less vulnerable to kernel-level rootkits. Nevertheless, guest Windows Virtual Machines are becoming an increasingly interesting attack target. In this work we introduce and analyze a novel Hypervisor-Based Introspection System (HyBIS) we developed for protecting Windows OSes from malware and rootkits. The HyBIS architecture is motivated and detailed, while targeted experimental results show its effectiveness. Comparison with related work highlights main HyBIS advantages such as: effective semantic introspection, support for 64-bit architectures and for latest Windows (8.x and 10), advanced malware disabling capabilities. We believe the research effort reported here will pave the way to further advances in the security of Windows OSes.
💡 Analysis
**
1. 연구 배경 및 동기
- Windows 보안의 난제: 내부 구조 비공개, 지속적인 악성코드·루트킷 공격.
- 전통적 안티루트킷 한계: OS 수준에서 동작하므로 루트킷에 의해 우회·조작 가능.
- 가상화 환경 활용: 하이퍼바이저는 게스트와 격리된 신뢰할 수 있는 관찰점 제공 → VMI(가상 머신 인트로스펙션) 가능.
2. 핵심 아이디어
- 하이퍼바이저 + 포렌식 메모리 분석 결합:
- 하이퍼바이저가 메모리 덤프를 실시간으로 생성·갱신(스마트 차등 덤프).
- 외부 FMA 툴(예: Volatility)로 메모리 덤프를 분석해 숨겨진 커널 객체·프로세스(DKOM) 탐지.
- 탐지 시 하이퍼바이저가 직접 메모리를 수정해 루트킷 실행을 차단.
3. 시스템 구조
| 구성 요소 | 역할 |
|---|---|
| Hypervisor Extension | CPU·메모리 상태 모니터링, 메모리 읽기/쓰기 인터페이스 제공 |
| Automatic Boot Dump | Windows 커널 로드 직후 초기 메모리 스냅샷 자동 생성 |
| Smart Differential Dumping | 관심 영역만 선택적으로 재덤프 → 오버헤드 최소화 |
| FMA Integration | Volatility 등 포렌식 툴을 호출해 메모리 객체 분석 |
| Reaction Module | 탐지된 루트킷 프로세스·코드 페이지를 메모리에서 삭제·비활성화 |
4. 주요 기여
- 시맨틱 인트로스펙션: 원시 메모리 데이터를 OS‑level 의미(프로세스 리스트, 커널 객체)로 변환.
- 64‑bit 및 최신 Windows 지원: Windows 8.x·10에 대한 구체적인 구조 파싱 구현.
- 스마트 차등 덤프: 전체 메모리 덤프 대신 지정 영역만 주기적으로 업데이트해 성능 저하를 < 5 % 수준으로 억제.
- 실시간 차단 메커니즘: 하이퍼바이저가 메모리를 직접 수정해 루트킷 프로세스 실행을 즉시 중단.
5. 실험 및 평가
- 대상: Windows 8.1, Windows 10 (64‑bit) 가상 머신.
- 테스트 루트킷: 대표적인 DKOM 기반 루트킷 2종.
- 성능: 차등 덤프 시 평균 메모리 I/O 3 MB/s, 전체 시스템 부하 < 4 % (CPU).
- 탐지율: 100 % (숨겨진 프로세스·드라이버 모두 탐지).
- 차단 효과: 탐지 후 0.2 s 이내에 프로세스 실행 차단 확인.
6. 강점
- 신뢰성: OS와 독립적인 하이퍼바이저 레이어에서 동작 → 루트킷 우회 불가.
- 확장성: 차등 덤프와 외부 FMA 툴 연동 구조는 다른 OS(예: Linux)에도 적용 가능.
- 실시간 대응: 탐지와 차단이 동일 하이퍼바이저 내에서 이루어져 지연 최소화.
7. 한계 및 개선점
| 구분 | 내용 |
|---|---|
| 메모리 오버헤드 | 차등 덤프는 전체 덤프보다 가볍지만, 고빈도 모니터링 시 여전히 메모리 I/O 비용 존재. |
| FMA 툴 의존성 | Volatility 등 외부 툴에 의존 → 툴 업데이트 시 호환성 검증 필요. |
| 루트킷 회피 기법 | 메모리 자체를 암호화하거나, 하이퍼바이저 탐지를 시도하는 고급 루트킷에 대한 방어는 미비. |
| 가상화 환경 제한 | 하이퍼바이저가 직접 메모리를 조작하므로, 클라우드 서비스 제공자가 하이퍼바이저를 제어하는 경우 적용이 어려울 수 있음. |
8. 향후 연구 방향
- 다중 하이퍼바이저 협업: 클라우드 환경에서 여러 하이퍼바이저가 협력해 전역적인 메모리 인트로스펙션 수행.
- AI 기반 이상 탐지: 차등 덤프 데이터를 머신러닝 모델에 입력해 비정상 패턴을 자동 학습·탐지.
- 암호화 메모리 분석: 메모리 암호화(예: Windows 10 Device Guard) 상황에서도 의미 있는 시맨틱 정보를 추출하는 기법 개발.
- 다중 OS 지원: 동일 프레임워크를 이용해 Linux·macOS 등 다른 게스트 OS에 대한 인트로스펙션 확장.
**
📄 Content
HyBIS: 고급 메모리 내시경을 통한 Windows 게스트 보호
Roberto Di Pietro, Federico Franzoni, Flavio Lombardi
초록 — Windows 운영체제를 효과적으로 보호하는 일은 구현 세부 사항이 공개되지 않아 매우 어려운 과제이다. Windows는 수많은 버그와 취약점을 악용한 악성코드의 주요 표적이 되어 왔다. 최근 도입된 신뢰 부팅 및 추가 무결성 검사는 커널 수준 루트킷에 대한 Windows OS의 취약성을 크게 낮추었지만, 게스트 Windows 가상 머신은 여전히 매력적인 공격 대상이 되고 있다. 본 논문에서는 Windows OS를 악성코드와 루트킷으로부터 보호하기 위해 개발한 새로운 하이퍼바이저 기반 내시경 시스템(HyBIS)을 소개하고 분석한다. HyBIS 아키텍처의 설계 동기와 상세 구현을 제시하고, 실험 결과를 통해 그 효과성을 입증한다. 관련 연구와의 비교를 통해 HyBIS가 제공하는 주요 장점—효과적인 의미론적 내시경, 64비트 아키텍처 및 최신 Windows(8.x, 10) 지원, 고급 악성코드 차단 기능—을 강조한다. 본 연구가 Windows OS 보안 분야의 향후 발전에 기여할 것이라 기대한다.
키워드 — 컴퓨터 보안, 메모리 포렌식, 내시경, Windows.
1. 서론
Windows OS를 보호하는 일은 그 복잡성뿐 아니라 내부 구조가 공개되지 않았기 때문에 매우 까다로운 작업이다. 시간이 흐르면서 수많은 악성코드가 Windows OS와 서비스의 취약점을 노려 왔으며, Windows가 차지하는 거대한 설치 기반 덕분에 매년 새로운 악성코드가 대량으로 생산되고 있다. 이들 악성코드는 탐지를 회피하기 위해 점점 정교한 기법을 사용한다. 특히 최신 Windows 버전은 아직 연구 커뮤니티에 의해 충분히 분석·조사되지 않아 보안 문제는 더욱 흥미롭다.
다양한 악성코드 중에서도 루트킷은 가장 복잡하고 위험한 위협으로 꼽힌다. 루트킷은 시스템 자체에 대한 인식을 조작하고, 장기간에 걸쳐 악의적인 활동을 은폐한다(예: APT[1]). 특히 현대 루트킷은 메모리 구조를 직접 조작해 은폐성을 높인다. 이러한 특성 때문에 기존 보안 도구는 루트킷을 탐지하기 어렵고, 감염이 발생해도 대응이 힘들다. 따라서 Windows를 보호하기 위해서는 루트킷 탐지를 가능한 한 효과적으로 수행하는 것이 필수적이다.
1.1 동기
현재의 모니터링 방식은 Windows OS를 목표로 하는 루트킷에 대해 충분한 보호 수준을 제공하지 못한다. 대부분의 기존 솔루션은 루트킷과 동일한 수준(즉, OS 내부)에서 동작한다[2][3]. 보안 도구가 사용하는 함수들을 루트킷이 변조하면, 루트킷은 OS 내부에서 탐지를 회피한다. 따라서 OS 수준에서 동작하는 안티루트킷 도구는 루트킷 감염 시 신뢰할 수 없다.
하지만 OS가 가상 머신(VM) 안에서 실행될 때는 상황이 달라진다. 가상화 환경에서는 하이퍼바이저가 외부에서 OS를 관찰할 수 있기 때문에, 보다 신뢰할 수 있고 격리된 환경에서 OS를 감시할 수 있다. 하이퍼바이저는 OS 기능에 의존하지 않고 VM 구성 요소에 직접 접근할 수 있다.
이러한 능력은 가상 머신 내시경(Virtual Machine Introspection, VMI)[4][5]을 가능하게 한다. VMI는 VM 구성 요소의 상태를 분석해 게스트 OS의 의미론을 추론한다. VMI는 OS 기능에 의존하지 않기 때문에 루트킷이 존재하더라도 그 존재를 감추기 어렵다.
하지만 Windows 게스트에 대한 VMI는 실무에서 어려운 과제이다. 원시 머신 데이터를 의미 있게 해석하려면 특정 OS 정보가 필요하기 때문이다[5]. 이는 본 연구가 직면한 주요 도전 과제이며, 동시에 본 논문의 핵심 기여 중 하나이다. 반면, **포렌식 메모리 분석(Foreensic Memory Analysis, FMA)**을 활용하면 원시 메모리 데이터에서 OS 정보를 추출할 수 있다. 현대 루트킷이 메모리를 조작해 탐지를 회피한다는 점에서, 메모리 자체를 검사하면 루트킷을 식별할 수 있다[6]. 이는 루트킷에 대한 명확한 장점이며, 보다 신뢰성 높은 보안 시스템 구현을 가능하게 한다.
또한 감염이 확인되면 하이퍼바이저는 물리 자원에 대한 완전한 접근 권한을 활용해 VM을 직접 조작하고 루트킷 활동을 차단할 수 있다. 이러한 모든 특성은 하이퍼바이저를 보안 기능 구현에 매우 매력적인 위치로 만든다. 본 논문에서는 고급 VMI와 FMA를 결합해 가상화 환경의 Windows OS를 보호하는 방법을 제시한다.
1.2 기여
본 연구는 VM에서 실행 중인 Windows OS에 대한 루트킷 방어를 위한 새로운 접근 방식을 제시한다. 구현된 보안 모니터는 대상 머신 외부에 존재하며, 최근 문헌[7][8][9]과 유사한 구조를 가진다. VMI와 최신 FMA 도구를 활용해 **HyBIS(Hypervisor‑Based Introspection System)**를 개발했으며, 이는 은밀한 악성코드, 특히 루트킷으로부터 Windows OS를 보호한다.
제안된 시스템은 하이퍼바이저를 확장해 다음을 수행한다.
- 상태 모니터링 – VMI 기법을 이용해 게스트 OS 상태를 추론한다.
- 루트킷 탐지 – 게스트 메모리를 스캔해 숨겨진 커널 객체를 찾아낸다. 이 스캔은 메모리 덤프 파일을 대상으로 FMA 기법과 도구를 사용한다. 기존 FMA 도구는 오프라인 분석에 주로 쓰이지만, 본 시스템은 실행 중에도 실시간으로 활용한다. 이를 위해 HyBIS는 메모리 획득 작업의 성능을 개선하는 새로운 덤프 시스템을 제공한다.
- 반응 – 하이퍼바이저를 이용해 메모리 내용을 직접 조작함으로써 감염된 루트킷 프로세스의 실행을 차단한다.
HyBIS는 Windows 8.1 및 Windows 10에서 루트킷을 효과적으로 탐지·차단함을 실험적으로 입증한다. VMI와 FMA의 결합이 Windows OS에서 루트킷을 방어하는 데 유용한 도구임을 보여준다.
2. HyBIS: Windows용 하이퍼바이저 기반 내시경 시스템
본 장에서는 FMA 기법과 VMI 접근을 결합한 HyBIS 솔루션을 설명한다. 앞서 언급했듯이, 본 연구의 궁극적인 목표는 가상화 환경에서 Windows 보안을 강화하는 것이다. 특히 루트킷으로부터 OS를 보호하는 데 초점을 맞춘다.
현대 루트킷은 메모리를 조작해 자신의 존재를 은폐한다. 따라서 메모리(RAM)는 OS 실행 중 발생하는 모든 작업의 코드와 데이터를 포함하고 있어, 특정 시점에 실행 중인 OS의 상태를 가장 완전하게 파악할 수 있는 정보원이다. 루트킷은 RAM에 상주하면서 은폐하므로, 메모리를 분석하면 루트킷 존재 여부를 확인할 수 있다.
2.1 접근 방식
우리는 하이퍼바이저가 본래 수행하는 역할을 넘어서는 기능을 제공하도록 설계했다. 설계 시 다음 세 가지 기능을 하이퍼바이저에 추가하였다.
- 모니터링 – 시스템에 이상 현상이 발생했는지 확인하기 위해 머신 상태를 지속적으로 관찰한다.
- 분석 – 게스트 OS 상태를 분석해 루트킷 존재 여부를 판단한다.
- 반응 – 루트킷이 탐지되면 즉시 차단하거나 제거한다.
이 기능들은 하이퍼바이저 내부 함수와 외부 라이브러리·도구를 결합해 구현한다. 내부 함수는 가상 머신 하드웨어(CPU, 물리 메모리 등)에 직접 접근할 수 있게 해 주며, 외부 도구는 메모리 포렌식 분석을 가능하게 한다.
모니터링 – VMI를 이용해 VM 상태를 분석한다. 하이퍼바이저는 가상 하드웨어에 직접 접근하므로, CPU 레지스터, 실행 모드, 메모리 내용 등을 실시간으로 확인할 수 있다. 특히 CPU 상태는 내부 함수로 손쉽게 모니터링할 수 있고, 메모리 변화는 차등 덤프(differential dump) 방식을 통해 감시한다. 차등 덤프는 특정 시점에 메모리 스냅샷을 찍고, 이후 변화가 있는 영역만 다시 덤프함으로써 효율성을 높인다.
분석 – 현대 루트킷은 메모리 객체를 조작해 은폐한다. 따라서 메모리 내용을 집중적으로 분석해야 한다. 이를 위해 외부 포렌식 도구를 활용한다. 메모리 덤프를 획득한 뒤, 포렌식 도구가 제공하는 분석 기능을 이용해 숨겨진 커널 객체나 프로세스를 찾아낸다.
반응 – 루트킷이 메모리에 존재한다는 것이 확인되면, 하이퍼바이저는 물리 메모리에 대한 완전한 쓰기 권한을 이용해 해당 객체를 삭제하거나 실행을 차단한다. 예를 들어, 스케줄링 리스트에서 해당 프로세스 엔트리를 제거하면 루트킷 프로세스가 더 이상 실행되지 않는다.
3. HyBIS 기능
HyBIS는 다음 네 가지 고수준 기능을 구현한다.
- 자동 부팅 시 메모리 덤프 생성 – 부팅 과정 중 하이퍼바이저가 자동으로 메모리 덤프를 생성한다.
- 스마트 차등 덤핑 – 전체 메모리를 매번 덤프하지 않고, 변경된 영역만 선택적으로 덤프한다.
- 숨겨진 루트킷 프로세스 탐지 – 메모리 스캔을 통해 은폐된 프로세스를 찾아낸다.
- 숨겨진 루트킷 프로세스 차단 – 탐지된 프로세스를 스케줄링 리스트에서 제거해 실행을 차단한다.
자동 부팅 시 메모리 덤프 생성은 부팅 직후 커널이 로드된 시점을 포착한다. 이는 포렌식 도구가 커널이 메모리에 존재해야만 분석을 수행할 수 있기 때문이다. 또한 부팅 직후 메모리는 비교적 정적이므로, 이후 메모리 변화를 감시하기 위한 기준점으로 활용한다.
스마트 차등 덤핑은 메모리 획득 비용을 최소화한다. 전체 메모리를 매번 덤프하는 대신, 관심 영역(예: 커널 구조, 프로세스 리스트 등)만 선택적으로 덤프하고, 이전 스냅샷과 비교해 차이를 기록한다. 이렇게 하면 “동적(dynamically) 덤프”가 생성되며, 포렌식 분석 시 필요한 부분만 빠르게 업데이트할 수 있다.
숨겨진 루트킷 프로세스 탐지는 Windows가 두 개의 프로세스 리스트(스케줄링 리스트와 트래킹
이 글은 AI가 자동 번역 및 요약한 내용입니다.