본문 바로가기

[+] Forensic

하드디스크의 숨겨진 영역

이번 글에서는 하드디스크의 데이터 숨김 영역에 대해서 알아 볼 것이다.

영역의 종류로는 HPA와 DCO가 있는데 이 두가지에 대해서 알아보자.

[HPA(Host Protected Area)]
HPA는 데이터를 저장할 수 있는 영역이기는 하나 일반 사용자가 볼 수 없는 영역이다. 즉 숨겨진 영역이며, 이 영역의 설정은 ATA 명령으로 가능하다.(default value= 0)
HPA는 ATA-4에서 추가되었으며, 사용자가 하드디스크를 포맷하거나 삭제했을때도 데이터를 보존 할 수 있는 영역이다.
HPA는 하드디스크 끝에 위치 해 있으며 하드디스크 재설정에 의해서만 접근이 가능하다.
HPA는 어떠한 두 명령어의 결과값 차이를 보고 존재유/무를 파악 할 수 있는데 명령어는 다음과 같다.

 - READ_NATIVE_MAX_ADDRESS : 물리적 주소의 최대값을 반환하여 주는 명령어(항상 이런 결과는 아님)
 - IDENTIFY_DEVICE : 사용자 영역(HPA 영역의 앞 부분) 끝을 반환하여 주는 명령어


HPA 영역 설정은 SET_MAX_ADDRESS 명령어를 통해 이루어지는데 해당 명령어는 다음과 같은 기능을 한다.

 - SET_MAX_ADDRESS : 사용자가 접근 할 수 있는 최대 주소를 설정하는 명령어

HPA 영역 제거는 READ_NATIVE_MAC_ADDRESS의 결과를 SET_MAC_ADDRESS의 입력값으로 이용하면 된다.

이 과정들을 도식화 하면 다음과 같다.

[그림 1 - HPA 생성, 삭제 도식화]

HPA 제거할 때에는 완전제거와 임시제거가 있는데 완전제거의 경우 말그대로 완전 제거되는 것이고, 임시제거는 SET_MAC_ADDRESS 명령어 설정을 휘발성 비트 설정으로 하여 하드디스크가 재설정되거나 전원이 재공급된 이후에 HPA 영역이 다시 복구 되게끔 하는 것이다.

 

[DCO(Device Configuration Overlay)]
ATA-6에서 추가된 기능이며 HPA와 동일한 기능을 하는 영역이다. 컴퓨터는 하드디스크에서 어떠한 기능을 제공하는지 IDENTIFY_DEVICE 명령어를 통해 확인하는데 DCO 기능은 자신의 기능을 IDENTIFY_DEVICE 명령어 결과값에 추가하지 않아 기능이 존재하지 않는 것처럼 보이게 한다. 또 지원기능 목록말고도 디스크의 크기도 보여주는데 여기서 DCO 영역이 제외된 크기가 보여진다.(HPA 영역도 있다면 HPA 영역도 제외 됨)
그렇다면 DCO는 어떻게 탐지하는 것일까? 명령어 중 DEVICE_CONFIGURATION_IDENTIFY 명령어가 있는데 이 명령어의 기능은 다음과 같다.

 - DEVICE_CONFIGURATION_IDENTIFY : 디스크의 크기와 실제 명령어 목록을 반환하여 준다.

위 명령어와 IDENTIFY_DEVICE 명령어를 비교하여 DCO를 탐지할 수 있다.
또 READ_NATIVE_MAX_ADDRESS 결과와 DEVICE_CONFIGURATION_IDENTIFY의 결과를 비교하여 DCO 영역을 찾아 낼 수 있다.
DCO 영역의 생성은 DEVICE_CONFIGURATION_SET 명령어로 하며, 삭제는 DEVICE_CONFIGURATION_RESET 명령어로 할 수 있다.
만약 HPA 영역까지 존재한다면 디스크의 논리적 구조는 다음과 같을 것이며 각 명령어들이 출력하는 결과물들이 있는 곳은 다음과 같을 것이다.
 

[그림 2 - DCO 설정 도식화]





 

'[+] Forensic' 카테고리의 다른 글

File System - Volume (1)  (0) 2012.01.17
데이터 수집  (0) 2012.01.15
하드디스크의 숨겨진 영역  (2) 2012.01.15
Web Browser  (0) 2012.01.13
썸네일(Thumbnail) 파일 분석  (2) 2012.01.12