HPA & DCO
■ HPA (Host Protected Area)
- HPA는 Host Protected Area로 Hiddn Proteced Area라고도 부른다. 하지만 후자는 일부에서만 사용하고 거의 사용되지 않는 용어 이다. HPA는 ATA(Advanced Technology Attachment)-4 표준에서 추가된 기능이다. 앞서 설명했듯이 해당 영역은 HDD에 의해 미리 에약된 영역으로 BISO를 통해 접근 할 수 없다. 즉, OS에서는 보이지 않는 영역이다. 해당 영역이 나온 배경은 일반 사용자에 의해 수정되지 않는 HDD의 영역이 필요했던 것이다. 현재 HPA 영역을 사용하는 경우는 다음과 같다.
* 시스템 부팅이나 진단 유틸리티(Phoenix FirsBIOS의 BEER, PARTIES)
* CD, DVD 없이 시스템 복구를 위해 사용(IBM, LG 노트북)
* 노트북 보안 유틸리티(Computrace)
* 루트킷에 의한 악의적인 용도
HPA가 ATA-4에 의해 처음 발표된 이후 시스템 벤더업체들에게 편의가 제공되었다. 노트북의 경우 이전에는 제품과 함께 복구시디를 함께 제공했다. 복구시디를 잃어버린 경우라면 서비스 기간내에 서비스를 해줘야 했다. 하지만 현재의 대부분의 노트북은 HPA 영역에 복구를 위한 소프트웨어를 저장한 후 OS가 로드되기 전에 복구를 진행할 수 있도록 지원한다. 일부 사용자는 해당 영역을 강제로 지워 용량을 더 사용하기도 한다. 하지만 BISO를 통해 접근이 불가능하기 때문에 루트킷으로 악용될 수 있다는 점이다. HPA를 이용하는 루트킷으로 이해 문제가 되었던 적이 있었지만, Anti-Virus 업체에서 해당 영역도 탐지하기 때문에 기본적으로 보호되는 강점이 없어졌다. BIOS를 통해 볼 수 없는 영역을 어떻게 접근해야 할까? HPA 영역은 표준과 함께 추가된 ATA 명령어를 통해 가능하다. 직접 HDD 컨트롤러에 명령을 통해 실제 사용할 영역을 늘려주면 BIOS를 통해 접근이 가능하다.
HPA와 관련된 ATA 명령어
* IDENTIFY DEVICE: 현재 BIOS를 통해 접근 가능한 영역 리턴
* SET MAX ADDRESS(EXT): BIOS를 통해 접근 가능한 영역 설정(HPA 생성)
* READ NATIVE MAX ADDRESS(EXT): 실제 디스트 전체 영역을 리턴
IDENTIFY DEVICE 명령은 BIOS를 통해 사용 가능한 영역을 보여준다. 그리고 SET MAX ADDRESS 명령은 BIOS를 통해 접근 가능한 영역을 설정해준다. 위 그림 2번에서 SET MAX ADDRESS 명령을 통해 HPA 영역을 생성한 것이다. READ NATIVE MAX ADDRESS는 HPS 영역과 관계없이 항상 전체 하드디스크의 영역을 보여준다.
■ 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 제거
■ HPA & DCO
- HPA 영역과 DCO 영역은 동일한 HDD 내에 존재할 수 있다. 동일한 HDD에 HPA와 DCO를 동시에 구성하기 위해서는 먼저 DEVICE CONFIGURATION SET 명령을 통해 DCO를 설정한 후 SET MAX ADDRESS 명령을 통해 HPA를 구성해야 한다. HAP와 DCO가 모두 설정된 HDD에서 해당 영역들이 존재하는지는 아래 그림과 같이 확인 할 수 있다.
각 ATA 명령어를 통해 얻은 값들을 비교해 보면 해당 HDD에서 HPA, DCO의 존재여부를 파악할 수 있다.
■ HPA와 DCO의 포렌식적 의미
- HPA와 DCO 영역은 BIOS에 의해 확인되지 않기 때문에 증거를 은폐하기 위한 목적으로 사용 가능
- 증거 수집 단계에서 HPA와 DCO 영역이 제외된 채 증거 수집이 이루어질 수 있음
- 증거 수집은 크게 디스크 복제와 이미징으로 나눠볼수 있다. 디스크 복제의 경우 물리적인 복사이므로 문제될 것이 없지만, 디스크 이미징의 경우에는 OS 상에서 BIOS를 통해 수집할 경우 HPA와 DCO 영역을 고려하는 노력이 필요하다.