하드디스크의 데이터 수집은 여러가지 방법이있다. 이러한 방법들에 대하여 설명 하겠다.
1. 컨트롤러의 직접 접근
하드디스크의 컨트롤러는 하드디스크와 연결되어 있고 리본케이블(SATA)로 하드디스크에 명령을 내린다. 소프트웨어는 하드디스크 컨트롤러를 통해 디스크 데이터에 접근할 수 있다. 이렇게 하기 위해서는 하드디스크 컨트롤러의 주소지정, 데이터를 읽고 쓰기 위한 명령어 등 세부적인 사항을 알아야 하는 번거로움이 있다.
2. 컨트롤러의 BIOS 접근
BIOS를 통해 디스크 데이터에 접근하게 되면 컨트롤러의 직접 접근법에서 필요한 하드디스크의 모든 세부사항을 소프트웨어가 인식하고 있지 않아도 된다. 소프트웨어가 BIOS 하드디스크 서비스들을 사용하기 위해서는 섹터 주소와 섹터 크기 같은 데이터를 CPU레지스터 내부로 적재하고, 소프트웨어 인터럽트 명령어 0x13(INT13h)를 실행하면 된다.
※INT13h : 데이터를 읽고 쓰기 위한 질의들을 포함하는 명령어
기존의 INT13h의 경우 CHS 방식에서 사용하던 명령어 여서 8.1GB 까지만 읽고 쓸 수 있다. 그래서 LBA방식에는 맞지 않아 '확장 INT13h' 라는 것이 새로 추가 되었다.
BIOS의 접근법은 BIOS가 확장 INT13h를 사용하지 않고 기존 CHS 방식의 INT13h를 쓸 경우 원래 디스크의 크기가 10GB일 경우 최대 8.1GB로 인식하기 때문에 10GB크기의 디스크지만 결과로는 8.1GB크기를 돌려 줄 것이다. 하지만 직접 접근 법의 경우 BIOS에 상관없이 LBA 형식의 확장 INT13h를 사용하면 결과 값으로 10GB전체를 얻을 수 있다. 그림으로 쉽게 확인해보자.
※CHS 저장 방식 : 실린더, 헤드, 섹터에 번호를 할당해 그 주소를 이용하여 데이터를 찾아 읽고 쓰는 방식. 용량이 커지면서 일반 하드에 쓰이지 않는다. 하지만 임베디드 하드디스크들은 아직 이방식을 사용한다.
※LBA 저장 방식 : CHS방식의 한계로 인해 모든 섹터에 논리적인 고유번호를 할당하여 읽고 쓰는 방식이다.
그림1. BIOS접근법과 직접 접근법
만약 디스크의 모든 내용을 복사하려고 할때 BIOS가 INT13h를 사용할 경우 8.1GB만 복사할 것이기 때문에 BIOS 접근법을 사용한다면 자신의 BIOS가 어떤 INT13h 명령을 사용하는지 알아야 할 것이다.
3. 동적 수집
동적 수집은 분석 대상시스템의 운영체제가 동작하는 상태에서 데이터를 수집하는 것이다. 만약 악의적인 공격이나, 루트킷 등으로 운영체제가 변조될 가능성이 있기 때문에 운영체제를 통해 수집된 데이터가 엉뚱한 데이터 및 증거가 없을 수도 있으므로 신뢰성이 떨어진다.
4. 정적 수집
정적 수집은 이동장치(이동식 디스크 , 외부장치로 인식)로 부팅하여 대상 시스템의 데이터를 수집하는 것을 말한다. 다른 운영체제에서 분석대상의 데이터를 수집 하는 것이므로 분석대상의 운영체제 도움없이 시스템 데이터를 수집하는 것이다.
그리고 데이터를 수집할때는 HPA영역과 DCO영역도 잊지말고 수집해야 한다.
HPA영역과 DCO영역의 내용은 'http://babu1447.tistory.com/8' 을 참조.
'Forensic' 카테고리의 다른 글
FAT File System - 예약영역 (0) | 2015.01.26 |
---|---|
볼륨과 파티션-도스파티션 (0) | 2015.01.13 |
하드 디스크 숨김 영역 (0) | 2015.01.12 |
가상 메모리 구조 (0) | 2015.01.05 |
PE(Portable Executable)구조 분석-1 (0) | 2014.12.25 |