이제 시작이야 디지털 포렌식 - 교보문고
디지털 포렌식 입문을 위한 첫걸음『이제 시작이야! 디지털 포렌식』. 이 책은 디지털 포렌식에 새로이 입문하는 사람들에게 탄탄한 기초를 제공하는 입문서이다. 디지털 포렌식이 무엇인지,
www.kyobobook.co.kr
2. 핵심적인 기술 개념
* 디지털 포렌식에서 컴퓨터 내부 환경에 대한 지식은 필수적
* 메모리와 저장장치가 중요한 역할을 함
[비트, 바이트 그리고 수의 체계]
* 컴퓨터 : 1과 0으로만 이루어진 2진수(binary)사용
> 1, 0은 비트(bit) → bit * 8 = 1 byte
> 각 문자(alphabet), 숫자, 스페이스, 특수문자는 하나의 바이트로 할당
(1) 16진수 (hexadecimal)
* 16진수 : 숫자 0~9와 문자 A~F를 사용해서 나타냄
> 숫자 앞에 0x가 붙거나, 숫자 뒤에 h가 붙으면 해당 숫자가 16진수임을 나타냄
(2) ASCII와 유니코드
* 컴퓨터 : 인코딩(encoding)을 통해 2진수를 사람이 읽을 수 있는 문자로 변환, 인코딩 방식 2가지 있다
> ASCII : 영어를 표시하기 위해 사용하는 인코딩 방법. 128개의 문자 정의, 94개의 문자만 실제로 출력 가능.
> 유니코드(unicode) : 전 세계 모든 언어를 표시할 수 있음
(3) 파일 카빙(file carving)
: 특정한 형태가 없는 데이터를 바탕으로, 파일의 위치 확인 및 복원하기 위해 사용
> 잠재적인 파일 식별 → 파일 헤더(header) 있을 경우, 헤더로 파일 식별
> 푸터(footer)를 찾았고 파일이 연속적 → 단순히 복사 붙여넣기로 파일을 축출할 수 있음
> 조각난 파일은 복원하기 훨씬 더 어려움
★2진수와 16진수를 해석할 수 있는 능력이 파일 카빙을 가능하게 함!
[파일 확장자와 파일 시그니처]
(1) 파일 확장자 (.docx, .pptx, .hwp 등)
포렌식의 관점에서, 파일 확장자는 파일의 종류를 안정적으로 식별할 수 있는 방법이 아님
확장자는 누구나 쉽게 타이핑해서 바꿀 수 있기 때문이지요.
(2) 파일 시그니처 분석
포렌식 툴은 확장자가 아니라 파일 헤더로 파일을 식별함
파일 확장자를 word에서 mp3로 직접 바꾸더라도, 포렌식 툴을 이용해 파일 헤더를 확인하면 word/document라고 적혀 있다는 것...
[저장장치와 메모리]
* 데이터가 생성되는 3가지 방법
> 전자기(electromagnetism)
> 극미한 전자 트랜지스터(플래시)
> 빛의 반사(CD, DVD)
(1) 자기 디스크
입자가 자기화 되면 → 1을 나타냄
입자가 자기화 되지 않으면 → 0을 나타냄
▶ 플래터 : 자기 물질로 코팅되어 있고, 하드 드라이브의 속도가 빠를수록 더 빨리 데이터를 수집할 수 있음.
▶ 스핀들 : 플래터가 회전하는 중심이 됨
▶ 엑추어에이터 암 : 플래터 위를 이동하면서 데이터를 읽고 씀. 읽기/쓰기 헤드를 사용해서 플래터에 데이터를 물리적으로 쓰이게 함. 엑추에이터 자체에서 전원을 공급함.
(2) 플래시 메모리
전기가 차단되어도 데이터가 지워지지 않는 비휘발성 메모리
플래시 기반의 하드 드라이브 : SSD, Solid State Drive
(3) 광 저장장치 : CD, DVD, Blu-ray 디스크
광 디스크에 있는 반사 물질과 레이저를 사용해서 데이터를 쓰고 읽음
①레이저가 트랙에 빛을 보낸다
②빛이 디스크의 울퉁불퉁한 표면 사이에 있는 lands라고 불리는 공간에 따라 다른 형태로 반사된다
③컴퓨터는 반사되는 빛의 변화를 데이터로 변환한다
(4) 휘발성, 비휘발성 메모리
> 메모리 : 단기간 데이터를 저장하는 곳에 사용 됨
> 저장장치 : 데이터를 영구적으로 저장하는 곳에 사용 됨
[컴퓨터 환경]
> 독립형 컴퓨터 : 다른 컴퓨터에 연결되어 있지 않음. 아파트나 일반 주택 같은 가정집
> 네트워크 컴퓨터 : 적어도 하나, 그리고 잠재적으로 많은 다른 컴퓨터에 연결되어 있음. 파일이나 흔적이 여러 서버나 다른 컴퓨터에 분산되어 있음. 비즈니스 환경 또는 가정집
> 메인프레임 시스템 : 모든 컴퓨터 능력을 한 위치에 집중시킴. 프로세서, 저장장치 그리고 프로그램 모두가 한 위치에서 집중되어 통제됨
* 클라우드 컴퓨팅
컴퓨터 인프라, 플랫폼 그리고 소프트웨어를 제공하며 사용한만큼만 비용을 지불하는 모델
→ 기술적으로 매우 복잡한 가상 환경을 제공하고, 법적으로 관할권을 빼앗길 수 있기 때문에 포렌식으로는 좋지 않음. 데이터에 국경이 사라지고, 증거가 어디에 있는지 찾기가 쉽지 않음.
[데이터 종류]
(1) 활성 데이터
우리가 매일 컴퓨터에서 사용하는 데이터, 드라이브에 할당된 공간이 있는 파일
→ 표준 포렌식 클로닝 기술로 확보 가능
(2) 숨은 데이터
이미 삭제되었거나 부분적으로 덮어씌워진 데이터. 운영체제에서 더이상 관리하지 않고, 일반 사용자에게 보이지 않음.
→ 비트 스트림이나 포렌식 이미지가 필요
(3) 아카이브 데이터(백업 데이터)
백업 매체의 종류와 연대가 아카이브 데이터를 확보하는 과정의 복잡도를 결정함
>레거시 데이터(legacy data) : 데이터를 생산할 때 사용했던 것과 동일한 툴이 존재하지 않음
[파일 시스템]
드라이브의 사용 가능한 공간과 각 파일의 위치를 관리함
> FAT(File Allocation Table) : 가장 오래된 파일 시스템으로 최신 운영체제에서는 사용되지 않음.
플래시 메모리 같은 매체에서 자주 사용됨.
> NTFS(New Technology File System) : 윈도우 7, 비스타, XP 그리고 서버 제품군에서 사용되고 있음.
자동으로 디스크 관련 오류를 복구할 수 있고 대용량 하드 드라이브를 지원하며 권한과 암호화로 향상된 보안을 제공함.
> HFS+(Hierarchical File System) : 애플 제품에서 사용됨.
개선된 디스크 공간, 플랫폼간의 호환성, 다국적 파일 이름 등 다양한 기능을 제공함.
[할당된 공간과 할당되지 않은 공간]
* 특정 공간이 사용되고 있거나 / 사용되고 있지 않음을 의미
할당되지 않은 공간에 있는 데이터를 볼 수 없음.
그러나 사용되고 있지 않다는 것이 빈 공간이라는 것을 의미하는 것은 아님.
* 데이터의 영속성
파일 시스템의 역할을 모든 파일과 저장공간을 관리하는 것에 있음.
단순히 파일을 삭제하는 것은 책의 인덱스에 있는 항목을 삭제하는 것과 같음. 인덱스에서 특정 용어를 삭제해도 책에는 페이지와 해당 내용이 그대로 남아 있음.
또한 파일은 반드시 한 곳에 저장되는 것이 아니라, 하드 드라이브 플래터에 분산되어 저장됨.
파일 시스템의 임무는 분리된 클러스터를 관리하여 다음에 파일을 열 때 다시 재구성하는 것.
*슬랙 공간(slack space)
덮어 씌워진 파일도 복원이 가능함.
특정 공간을 할당 받은 파일이 그 공간을 다 쓰지 않는 경우, 원본 파일은 일부만 덮어 씌워짐.
덮어 씌워지지 않은 부분은 복원이 가능하며 실제 사용할 수 있는 정보가 담겨 있을 수도 있음.
이러한 공간을 슬랙 공간(slack space)라고 함.
[자기 하드 드라이브의 데이터 저장 방식]
* 컴퓨터는 섹터(sector)라는 정해진 공간에 데이터를 저장
섹터는 컴퓨터가 정보를 저장할 때 사용할 수 있는 최소한의 단위
각 섹터는 최대 512 바이트의 데이터를 저장할 수 있고,
굳이 저장공간을 다 채울 필요는 없지만 데이터 크기를 초과하여 저장할 수는 없다.
① 1024 바이트의 파일 A 저장 → 섹터 2개 사용(512 + 512 = 1024)
② A 삭제 → 여전히 섹터 2개 사용중(512 + 512 = 1024)
③ 780 바이트의 파일 B 저장 → 섹터 2개 사용(512 + 268 = 780)
A 파일의 780 바이트 부분이 덮어 씌워졌지만 여전히 244 바이트는 그대로 남아 있음.
이 244 바이트가 슬랙 공간(slack space)가 되고, 여기서 기존 파일의 조각을 복구할 수 있음.
[페이지 파일(스웝 공간)]
하드 드라이브는 현재 사용하지 않는 데이터와 프로그램을 저장함. 하드드라이브는 느리기 때문에, RAM이 CPU에 모든 명령과 데이터를 전송함.
* 컴퓨터의 메인 메모리인 RAM을 모두 사용했을 때 컴퓨터는 가상 메모리를 사용
> 이러한 가상 메모리는 페이지 파일(page file) 또는 스웝 공간(swap space)이다.
드라이브에 존재하지 않는 파일이나, 파일의 조각이 페이지 파일에 저장될 수 있으므로 증거 데이터가 복원될 수 있다. 페이지 파일에는 특정 시점에 RAM에 있던 데이터가 저장되는데, 지속적으로 사용되지 않기 때문에 오래된 데이터가 있을 수 있다.