본문 바로가기

[+] Forensic

Exif 포맷의 사진 데이터 조작 여부 판단 방법

요즘은 휴대용 기기에 카메라가 거의 필수적으로 부착되어 사용되고 있다. 이 사진들은 대부분 JPEG 파일로 저장되며 그 사진 정보의 형태는 Exif 라는 포맷으로 사진 내부에 저장 된다. Exif 포맷에는 사진의 기본정보부터 시작하여, 사진을 찍은 기기의 모델명, 날짜, 렌즈 종류, GPS 등의 많은 정보가 저장되어 있다. 만약 어떤 사진이 수사나 어떤 사고에서 중요한 역할을 할 때 대부분의 조사관들은 Exif 포맷의 정보를 분석 해 이미지의 전반적인 정보를 알아내어 자신이 현재 진행하고 있는 업무에 적용하곤 한다.(해커그룹 체포에 도움이 된 Exif GPS 정보에 관한 기사 : http://www.zdnet.co.kr/news/news_view.asp?artice_id=20120416153845)

하지만 Exif 정보 또한 디지털 데이터이므로 수정 또한 간단하다. 예를 들어 증거의 인멸이나 훼손이 일어났다면? 수사 과정이라고 생각한다면 데이터의 수정은 수사과정의 혼선과 자신의 알리바이 입증, 데이터 은폐등이 목적일 것이다. 과연 이렇게 수정이 쉬운 디지털 데이터를 어디까지 믿고 어디까지 믿지 말아야 할까? 이 글에서는 글쓴이가 생각한 사진 파일의 조작 여부 방법을 언급해보고자 한다.


1. Exif 간단한 소개

Exif 포맷은 JEIDA(일본전자산업진흥협회)에서 개발한 포맷으로 JPEG, TIFF 6.0, WAV 등의 파일 포맷에 적용 할 수 있는 포맷으로 현재 일반적으로 디지털 카메라에서는 JPEF와 TIFF 6.0 포맷을 사용하고 Exif 포맷도 함께 사용해 여러 정보를 저장하고 있다.

Exif의 포맷을 이 글에서 모두 설명하고 분석하면 좋겠지만 그 구조가 생각보다 커 Exif의 포맷을 상세히 설명해 놓은 문서를 링크 하여 두겠다. 이 문서를 참고 해 Exif의 구조를 살펴보기 바란다.


 - Exif 구조 : http://www.exif.org/Exif2-2.pdf


2. 수정 여부 판별 방법

처음 사진 파일을 접했을 때 그 누구도 어떠한 검증 방법을 거치지 않는 이상 그 사진 파일의 데이터가 수정되지 않았다거나 수정되었다고는 확언 할 수 없다. 글쓴이는 그 검증 방법으로 타임라인 분석을 생각 해 보았다. Exif에는 3 개의 타임스탬프 값이 저장 된다.


 - DateTime(Tag ID : 132) : 디지털 카메라 디바이스 내에서의 사진 파일 생성 시각을 나타낸다.

 - DateTimeOriginal(Tag ID : 9003) : 사진을 찍힌 대상이 촬영 된 시각을 나타낸다.

 - DateTimeDigitized(Tag ID : 9004) : 사진을 찍힌 대상이 디지털 이미지로 처리 된 시각을 나타낸다.


위 3개 필드의 타임스탬프 값은 기본적으로 동일한 시간 정보를 갖게 된다. 아래는 샘플 사진을 Exif Viewer로 열어 각 정보를 확인 해 본 모습이다.


[그림 1 - Exif Viewer로 본 Exif 정보]


빨간 박스로 하이라이트 되어 있는 부분들은 위에서 언급한 타임스탬프 필드들인데 동일한 시간 값을 볼 수 있을 것이다. Exif 파일의 사진 정보를 수정하기 위해서는 첫 번째 단계로 자신의 PC나 또 어떠한 PC로 사진 파일을 옴기는 행위이다. 이 행위에서 이 시간 값들은 부동적이다. 첫 번째 단계를 진행하게 되면 NTFS에서는 사진 파일에 대한 MFT 엔트리를 생성하고 MFT 엔트리에 시간 정보를 저장하게 되는데 이 때 수정 날짜만 Exif 내에 저장되어 있는 시간 값을 따라 저장되고 나머지 시간 정보인 생성 시간과 접근 시간은 파일이 복사되거나 옴겨온 시간을 참고해 저장되게 된다.


[그림 2 - 사진 파일을 컴퓨터로 옴겼을 때의 시간 정보]


즉, Exif 데이터가 들어있는 사진 파일을 컴퓨터로 옴겨 사진 파일의 열어 보기만 하거나 수정을 하지 않는다면 사진 파일의 시간 정보는 수정 시간이 생성 시간과 접근 시간보다 무조건 몇분이나 몇 시간 전이어야하고 생성 시간과 접근시간이 동일하여야 한다.

현재 상태에서 사진 파일의 데이터를 조작 하면 수정 시간만 업데이트 되게 된다. 다음은 사진 파일에 0x00이란 데이터를 추가 했을 때의 시간 정보이다.(크기를 보면 918,977 바이트에서 918,978 바이트로 1바이트 추가 된 것을 확인 할 수 있다.)


[그림 3 - 사진 파일 데이터 수정 시]


사진 파일 데이터가 조작 되었을 때에는 조작을 수행한 시간이 저장되는데 일단 이 정보를 Exif에 저장 된 정보와 비교를 해 동일하지 않다면 해당 사진 파일이 수정되었다고 판단 할 수 있다.(속성에서 보이는 시간 값은 MFT 메타데이터이기 때문에 업데이트가 되지만 Exif의 시간 정보는 파일 구조에 저장되어 있는 값이기 때문에 인위적으로 조작하지 않는 이상 변하지 않는다.)


그런데 Exif에 시간 값 자체가 수정 되었다면 어떻게 확인을 할 수 있을까? 사진을 수정한 사용자가 Exif 구조를 알고 있어 모두 똑같은 임의의 시간으로 변경하였다면? 여기에는 까다로운 조건이 걸리기 때문에 쉽사리 시간 값을 조작하지 못한다. 

Exif의 시간 값을 조작하면 계속해서 파일시스템의 해당 파일의 메타데이터에 포함되어 있는 수정 시간이 업데이트 된다. 여기서 더 한번 사용자가 머리를 써 파일시스템의 수정 시간을 예측 해 Exif 포맷의 시간 값을 파일시스템의 수정 시간과 동일하게 수정한다면 이 때는 MFT 엔트리에 FNA 시간 값을 참고하면 된다. 그러나 파일시스템의 수정 시간을 예측 해 수정 하는 방법에는 한가지 문제점이 존재한다. 바로 자신의 알리바이이다. 자신의 알리바이 시간까지 고려 해 수정을 해야만 파일의 수정하지 않았다는 것을 정확히 증명 할 수 있다.(cron과 같은 예약 프로그램을 쓰면 되지 않을까? 라는 사람도 있을 것이다. 프로그램을 쓰면 그 흔적 또한 남기 때문에 적절한 방법이 아니다.)만약 시간 값을 수정한 사용자는 어떠한 시간에 누구와 같이 있었거나 컴퓨터를 만지지 않았음에도 불구하고 파일의 시간이 그 때의 시간을 가리키고 있다면 이는 수정 된 시간으로 볼 수 있다. 즉 사용자는 시간을 수정하기 위해서는 여러가지 제한 사항을 고려해야만 하기 때문에 섣불리 시간을 조작해서도 안되고 조작하더라도 여러가지 난관에 부딪혀 결국 시간 조작에 실패하고 말 것이다. 


정리를 해보면 사진 파일의 데이터가 수정 되지 않은 파일들의 시간적 특징은 다음과 같다.(디지털 카메라 디바이스에서 NTFS 파일시스템으로 파일을 복사하거나 이동했다고 가정 했을 때)


 - Exif의 3 개 필드 시간 값이 동일하다.

 - 파일시스템의 파일 생성 시간과 접근 시간이 동일하며 수정 시간은 Exif의 3개 필드 시간 값과 동일하다.

 - 파일시스템의 파일 생성 시간과 접근 시간이 수정 시간보다 느리다.


위 3 개의 조건이 공개 된 지금 사진 파일 데이터를 수정하던 사용자는 위 조건에 맞는 시간 값을 생각 해 파일시스템과 Exif의 시간 값도 수정하려고 할지 모른다. 하지만, 시간 값 수정에는 많은 조건이 따르기 때문에 자신의 상황을 생각 해 수정하려 할 때 많은 생각을 하게 되며 섣불리 시간 값을 수정하지 못할 것이다. 또 수정한다고 하더라도 파일시스템 메타데이터 시간 값이 존재하기 때문에 그 시간 값을 또 생각해야 하며 생각한 파일시스템 메타데이터 시간 값을 수정하기 위해서는 파일시스템 레벨의 도구를 사용 해 수정해야만 한다. 하지만 이 또한 프리패치 등의 흔적으로 발견되며, 프리패치를 지운다고 하여도 복구가 가능하고 하기 때문에 여러가지 면들을 생각한다면 결국 수정을 포기하게 되고 만다.


이러한 방법으로 사진 조작 여부를 판별하고 해당 사진의 분석을 진행 할 것인지, 아니면 조작 되었으므로 분석을 진행하지 않거나 해당 파일의 조작 여부 자체를 증거로 제출 한 것인지 판단 할 수 있다.


p.s - 이 글을 보는 사진 파일 데이터 수정 사용자는 괜한 힘 빼지 말고 그대로 사진 파일을 두기 바란다. 아마 이것이 서로서로 현재 진행되고 있는 상황을 쉽게 가는 길 일 것이다. 하나의 파일 수정으로 인해 또 하나의 죄를 짓지 말기 바란다. ^^

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

Torrent Forensic Artifact  (0) 2012.10.07
N Drive Forensic Artifact  (6) 2012.09.16
Internet Explorer 10 Forensic  (0) 2012.09.09
iOS Forensic - (4)  (0) 2012.08.16