본문 바로가기

[+] Forensic

데이터 수집

하드디스크에서 데이터를 분석하기 위한 단계 중 이 데이터 수집 단계가 빠져서는 안된다.

이건 너무나 당연한 말이지만, 이 단계에서도 유의하고 알아야 할 부분들이 꽤 있다.

이제부터 그 부분들에 대해 알아보도록 한다.

디스크에서 데이터를 수집할 경우 제일 아래 레벨에서부터 수집을 수행하는 것이 좋다.

만약 제일 아래 레벨이 아닌 조금 위 레벨에서 수집을 시도 할 경우를 생각해보자.

예를 들어 볼륨 레벨에서의 데이터 수집을 수행 할 경우 파티션에 할당되지 않은 영역은 수집이 되지 않는다.

할당되지 않은 영역에 증거는 아니지만 중요한 정보가 들어있을 수도 있기에 제일 아래 레벨에서부터 수집을 수행하는 것이 좋다. 

하지만 모든 시스템에서 적용하는 사항은 아니다. 침해사고가 아닌 침해사고가 의심되는 경우라면 굳이 제일 아래 레벨에서 수행하지 않아도 방화벽 등에 로그만을 분석하면 되는 것으로 파일 복사만 수행하면 된다.

데이터 수집은 대부분 소프트웨어로 이루어지는데 소프트웨어가 데이터를 수집하기 위해서는 디스크 데이터에 접근을 해야 한다.

디스크 데이터에 접근하는 방법은 직접 접근 방법과 BIOS를 통한 방법이 있다.

아래에서 이 두가지 방법에 대해 간단히 알아보자.

[컨트롤러의 직접 접근]
하드디스크의 컨트롤러는 하드디스크와 연결되어 있고 리본케이블로 하드디스크에 명령을 내린다.
소프트웨어는 하드디스크 컨트롤러를 통해 디스크 데이터에 접근 할 수 있는데 이때 소프트웨어는 하드디스크 컨트롤러의 주소지정, 데이터를 읽고 쓰기위한 명령어 등의 세부적인 사항을 모두 알고 있어야 한다. 속도면에서는 좋지만 소프트웨어 개발시 부담이 많이 가는 접근법이다.

 

[컨트롤러의 BIOS 접근]
BIOS를 통해 디스크 데이터에 접근하게 되면 컨트롤러 직접 접근법에서 알아야 했던 하드디스크의 모든 세부사항을 소프트웨어가 인식하고 있지 않아도 된다. 소프트웨어는 BIOS 하드디스크 서비스들을 사용하기 위해서 섹터 주소와 섹터 크기 같은 데이터를 CPU 레지스터 내부로 적재하고, 소프트웨어 인터럽트 명령어 0x13(INT13h)을 실행하면 된다.
 - INT13h : 데이터를 읽고 쓰고 하기 위한 질의들을 포함하는 명령어

원래 INT13h의 경우 CHS 방식에서 사용하던 명령어여서 8.1GB까지만 읽고 쓸수 있어 LBA 방식에는 맞지 않아 "확장 INT13h" 라는 것이 새로 추가되었다. 


설명을 보면 소프트웨어 입장에서는 BIOS를 통한 접근법이 좋아보인다.

하지만 조사관의 입장에서는 시스템과 도구에 따라 다르게 보일 수 있다.

그 이유는 아래와 같다.

[접근법의 차이]
결론부터 말하면 BIOS의 접근법은 시스템과 도구에 따라 정확한 결과를 얻지 못할 수 있다.
BIOS에서 확장 INT13를 사용하지 않고 기존 CHS 방식의 INT13h를 사용한다면 위와 같은 현상이 발생한다.
소프트웨어는 BIOS를 통해 디스크의 크기가 몇이냐고 명령을 내렸으며 대상은 10GB의 디스크일 때 INT13h를 사용하는 BIOS일 경우 최대 8.1GB로 인식하기 때문에 결과값을 8.1GB로 돌려줄 것이다. 만약 이 명령이 모든 디스크의 데이터를 복사하라는 명령이었다면 10GB에서 8.1GB 크기의 데이터만 복사해 올 것이다. 이렇게 되면 약 2GB의 데이터를 수집하지 못하는 것이다.
직접접근법의 경우 BIOS 상관 없이 LBA 형식의 확장 INT13h를 사용 해 디스크의 크기를 정확하게 알아 낼 수 있다.

[그림 1 - BIOS 접근법과 직접접근법 도식화]


위와 같은 문제로 자신이 사용하는 도구가 어떤 접근법을 가지고 데이터를 수집하는지 파악해 놓고 있어야 하며, 만약 BIOS를 사용한다면 어떤 INT13h 명령어를 사용하는지 알아야 한다.

이번에는 수집방법인 동적수집과 정적 수집에 대해서 알아보도록 하겠다.

[동적수집]
동적수집은 분석대상 시스템의 운영체제가 동작하는 상태에서 데이터를 수집하는 것이다.
이 방법은 매우 신뢰성이 떨어진다. 그 이유는 악의적인 공격자나, 루트킷등에 의해 운영체제가 변조되었을 가능성이 있기 때문에 변조된 운영체제를 통해 수집된 데이터 또한 엉뚱한 데이터나 증거가 남이있지 않을 수도 있기 때문이다.


[정적수집]
정적수집은 분석 대상 시스템의 운영체제 도움 없이 데이터 수집 하는 것을 말한다.
신뢰성이 높은 이동저장장치를 이용하여 부팅한 후 대상 시스템에서 데이터를 수집한다.
악의적인 공격자나 루트킷등이 하드웨어를 변조했을 가능성도 있지만 운영체제 변조 가능성보다는 낮다. 


이번에는 데이터 수집 도중 생길 수 있는 도구의 오류에 대한 일반적인 대응방법을 알아보도록 하겠다.

분석대상 시스템의 디스크 섹터 중 불량섹터가 존재하여 도구가 불량섹터를 읽는 도중 오류가 발생하면 데이터 수집에 차질이 생길 수 있다. 모든 수집 도구는 이러한 상황을 대처 할 줄 알아야 하며 일반적인 방법으로는 불량섹터를 0으로 덮어 버리는 것이다.
이렇게 함으로써 오류발생 요인 제거와 불량섹터 위치를 정확하게 판별 할 수 있게 된다.

[그림 2 - 오류처리]

데이터 수집 시 유의사항이 있다. HPA영역과 DCO 영역이다. 이 부분들을 탐지 하지 못한다면 중요한 데이터를 얻지 못할 수도 있다.

HPA영역을 탐지할 수 있는 수집도구는 다음과 같다.

 - BXDR
 - diskstat
 - DRIVEID
 - hpa


DCO 영역을 탐지하는 도구로는 Image MASSter Solo 2 가 있다.

데이터 수집시 저장하는 영역은 디스크와 파일로 나뉠 수 있다.

하지만 디스크에 저장하는 방식에는 문제점이 있어 요즘은 대부분 CD-ROM이나 이동 저장장치에 분석 대상 디스크를 파일로 저장한다.

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

File System - Volume (2)  (0) 2012.01.17
File System - Volume (1)  (0) 2012.01.17
하드디스크의 숨겨진 영역  (2) 2012.01.15
Web Browser  (0) 2012.01.13