2006년 가을, International Journal of Digital Evidence에 HPA, DCO와 관련한 논문인 "Hidden Disk Areas : HPA and DCO" 발표되었다. HPA, DCO는 ATA 표준에 의해 이전에 추가되었지만 디지털포렌식 관점에서 재해석한 논문이었다. 이 논문을 올해 여름에서야 보았다. 그 동안 디스크, 파일시스템, 파일 포맷 분석 등을 해왔지만 이런 내용을 모르고 있었다는 것이 조금 분했다.
[FP]_Hidden_Disk_Areas_HPA_and_DCO
논문의 내용은 HPA, DCO를 소개한 후 디지털포렌식 도구에서 해당 영역을 고려하는지에 대한 테스트 결과를 보여준다. HPA, DCO가 보안적인 문제에서 이슈가 되는 것은 BIOS에서 접근이 불가능하기 때문에 OS를 통해 접근할 수 없다는 점이다. 그럼 지금부터 HPA, DCO에 대해서 살펴보자.
HPA (Host Protected Area)
HPA는 Host Protected Area로 Hidden Protected Area라고도 부른다. 하지만 후자는 일부에서만 사용하고 거의 사용되지 않는 용어이다. HPA는 ATA(Advanced Technology Attachment)-4 표준에서 추가된 기능이다. 앞서 설명했듯이 해당 영역은 HDD에 의해 미리 예약된 영역으로 BIOS를 통해 접근할 수 없다. 즉, OS에서는 보이지 않는 영역이다.
해당 영역이 나온 배경은 일반 사용자에 의해 수정되지 않는 HDD의 영역이 필요했던 것이다. 현재 HPA 영역을 사용하는 경우는 다음과 같다.
- 시스템 부팅이나 진단 유틸리티 (Phoenix FirstBIOS의 BEER, PARTIES)
- CD, DVD 없이 시스템 복구를 위해 사용 (IBM, LG 노트북)
- 노트북 보안 유틸리티 (Computrace)
- 루트킷에 의해 악의적인 용도
HPA가 ATA-4에 의해 처음 발표된 이후 시스템 벤더업체들에게 편의가 제공되었다. 노트북의 경우 이전에는 제품과 함께 복구시디를 함께 제공했다. 복구시디를 잃어버린 경우라면 서비스 기간내에 서비스를 해줘야 했다. 하지만 현재의 대부분의 노트북은 HPA 영역에 복구를 위한 소프트웨어를 저장한 후 OS가 로드되기 전에 복구를 진행할 수 있도록 지원한다. 일부 사용자는 해당 영역을 강제로 지워 용량을 더 사용하기도 한다.
하지만 BIOS를 통해 접근이 불가능하기 때문에 루트킷으로 악용될 수 있다는 점이다. 불과 몇 년전만해도 HPA를 이용하는 루트킷으로 인해 문제가 되었던 적이 있었지만 최근에는 Anti-Virus 업체에서 해당 영역도 탐지하기 때문에 기본적으로 보호되는 강점이 없어졌다.
그렇다면 BIOS를 통해 볼 수 없는 영역을 어떡해 접근한단 말인가? HPA 영역은 표준과 함께 추가된 ATA 명령어를 통해 가능하다. 직접 HDD 컨트롤러에 명령을 통해 실제 사용할 영역을 늘려주면 BIOS를 통해 접근이 가능하다. HPA와 관련된 ATA 명령어는 다음과 같다.
- IDENTIFY DEVICE : 현재 BIOS를 통해 접근 가능한 영역 리턴
- SET MAX ADDRESS(EXT) : BIOS를 통해 접근 가능한 영역 설정 (HPA 생성)
- READ NATIVE MAX ADDRESS(EXT) : 실제 디스크 전체 영역을 리턴
다음은 명령어의 역할을 그림으로 쉽게 보여준다.

(http://en.wikipedia.org/wiki/File:Hpacreate.png)
IDENTIFY DEVICE 명령은 BIOS를 통해 사용가능한 영역을 보여준다. 그리고 SET MAX ADDRESS 명령은 BIOS를 통해 접근 가능한 영역을 설정해 준다. 위 그림 2번에서 SET MAX ADDRESS 명령을 통해 HPA 영역을 생성한 것이다. READ NATIVE MAX ADDRESS는 HPA 영역과 관계없이 항상 전체 하드디스크의 영역을 보여준다.
현재 EnCase의 경우에도 Windows 버전은 HPA를 지원하지 못한다. 따라서 DOS 용이나 LinEn을 통해야만 HPA 영역을 제거한 후 전체 영역을 이미징할 수 있다. HPA를 지원하는 소프트웨어들은 READ NATIVE MAX ADDRESS 로 전체 영역을 읽은 후 SET MAX ADDRESS로 다시 BIOS에 의해 접근가능한 공간을 전체로 세팅한 후 해당 동작을 수행하게 된다.
DCO (Device Configuration Overlay)
DCO는 ATA-6부터 추가된 기능이다. 이것의 역할은 제조한 HDD를 같은 섹터를 가지는 고정된 크기의 HDD로 구성이 가능하다. HDD 제조사들은 60GB, 100GB, 200GB, 500GB, 1TB 등 수많은 용량의 제품을 생산한다. 쉽게 생각해 이러한 용량이 모두 같은 공정을 사용하지는 않을 것이다. 따라서 가장 보편적인 (예를 들어, 500GB) 공정을 돌려 대량생산한 후 디스크 용량을 제한하게 되면 여러개의 공정을 거칠 필요 없이 원하는 용량의 HDD를 출시 할 수 있을 것이다. 이러한 목적 외에 중간 밴더들에 의해서도 제조회사로부터 구입한 HDD를 고정된 크기의 HDD로 변환할 필요가 있다.
DCO도 BIOS를 통해 확인되지 않기 때문에 특별한 ATA 명령을 통해 접근해야 한다. 다음은 DCO와 관련한 ATA 명령어이다.
- DEVICE CONFIGURATION SET : DCO 설정
- DEVICE CONFIGURATION IDENTITY : DCO 접근
- DEVICE CONFIGURATION RESTORE : DCO 제거
DEVICE CONFIGURATION SET 명령은 DCO 영역을 설정하기 위한 명령어이다. 그리고 DEVICE CONFIGURATION IDENTITY는 DCO 영역을 포함한 HDD 전체 영역을 보여주고 DEVICE CONFIGURATION RESTORE 명령은 DCO 영역을 제거하는 기능이다.
HPA and DCO
HPA 영역과 DCO 영역은 동일한 HDD 내에 존재할 수 있다. 동일한 HDD에 HPA와 DCO를 동시에 구성하기 위해서는 먼저 DEVICE CONFIGURATION SET 명령을 통해 DCO를 설정한 후 SET MAX ADDRESS 명령을 통해 HPA를 구성해야 한다. HAP와 DCO가 모두 설정된 HDD에서 해당 영역들이 존재하는지는 다음과 같이 확인할 수 있다.
각 ATA 명령어를 통해 얻은 값들을 비교해 보면 해당 HDD에서 HPA, DCO의 존재여부를 파악할 수 있다.
HPA and DCO from Digital Forensic View of Point
그렇다면 HPA와 DCO는 디지털포렌식적으로 무슨 의미를 가질까?
앞서 설명했듯이 HPA와 DCO 영역은 BIOS에 의해 확인되지 않기 때문에 용의자가 의도적으로 증거를 은폐하기 위한 목적으로 사용될 수 있다. 따라서 증거 수집 단계에서 HPA와 DCO 영역이 제외된 채 증거 수집이 이루어질 수 있다.
증거 수집은 크게 디스크 복제와 이미징으로 나눠볼 수 있다. 디스크 복제의 경우 물리적인 복사이므로 문제될 것이 없겠지만 디스크 이미징의 경우에는 OS 상에서 BIOS를 통해 수집할 경우 HPA와 DCO 영역이 제외된 채 수집될 수 있다. 따라서 디스크 이미징 도구에서는 HPA와 DCO 영역을 고려하는 노력이 필요하다.
EnCase의 경우 Windows 버전에서는 HPA와 DCO를 고려하지 않기 때문에 Windows 버전을 사용할 경우 증거 수집 전에 HPA와 DCO 영역이 존재하는지 확인하라고 권고하고 있다. HPA와 DCO가 발견되면 DOS 용 버전을 사용하거나 라이브 시디를 이용한 LinEn을 사용해야 하는 것이다. 하지만 최근 버전의 EnCase에서는 DOS 버전은 지원하지 않으므로 라이브 시디를 이용하는 것이 쉽고 확실한 방법일 것이다.
그렇다면 HPA와 DCO 영역은 어떡해 확인할까? 가장 쉬운 방법은 해당 HDD의 모델이 가지는 제조회사의 스펙을 확인하여 출고 당시 정해진 용량과 해당 소프트웨어에서 확인되는 용량이 틀리다면 HPA와 DCO를 의심해봐야 한다.
HPA and DCO Tools
HPA와 DCO를 확인할 수 있는 도구도 존재하는데 다음과 같다.
- The ATA Forensics Tool (TAFT) by Arne Vidstrom.
- EnCase for DOS by Guidance Software
- FTK (Forensic Toolkit) by AccessData
- HD Tune Pro
그리고 리눅스의 경우에는 부팅 메시지를 살펴보면 다음과 같이 HPA 영역을 확인해볼 수 있다.

더 자세한 내용을 원한다면 다음의 내용을 참고하기 바란다.
http://en.wikipedia.org/wiki/Host_Protected_Area
http://en.wikipedia.org/wiki/Device_configuration_overlay
-
http://notepad.textcube.com forensist
Categories
- 0×01 News (14)
- 0×02 Fundamentals (11)
- 0×03 Data Forensics (8)
- 0×04 Storage Forensics (12)
- 0×05 File System Forensics (31)
- 0×06 Windows Forensics (17)
- 0×07 *nix Forensics (1)
- 0×09 Web Forensics (5)
- 0x0A Virtual Forensics (5)
- 0x0B Forensic Challenges (15)
- 0x0C Forensic Education (8)
- 0x0D EnCase (12)
- 0x0E Forensic Tools (8)
- 0x0F Slides (24)
addressing artifacts BIOS boot code boot process challenge Cluster Codegate cookie Data Carving Data recovery DC3 DCO defcon ENCASE EnCE encoding EnScript exFAT FAT File System Forensic Challenge FTK GUID hardware hidden partition history imaging Live Forensics mbr network ntfs padocon process RAID Recycle Bin SCSI signature Slack slide timeline timestamp virtual forensics WDFS writeup
WP Cumulus Flash tag cloud by Roy Tanck requires Flash Player 9 or better.
What I'm Doing...
- Google Analytics Cookies Forensics http://t.co/3Gl8Rt3a 6 hrs ago
- 블랙백에서 맥 OS 포렌식 분석용으로 멋진 도구가 나왔네요. https://t.co/Sk2cAElc 6 hrs ago
- 태블릿 시장이 커지면서 포렌식 분석 도구도 태블릿 형태가 나왔네요. 얼마나 유용할지는 모르겠지만, 신선하네요. AccessData MPE+ Tablet - http://t.co/Zfj7gd2s 6 hrs ago
- More updates...


