티스토리 뷰

파일의 변경 사항과 해시값의 관계

Anonymice 2014. 4. 14. 11:10

디지털 포렌식 문제를 풀다가 흥미로운 문제를 발견하여 이것저것 해보고 결과를 적으려 한다.


문제는 아래와 같은 느낌이다.


'파일의 파일명을 변경하였을 때, 파일의 해시값은 변경되는가?'


메타데이터가 변경될 때의 해시값이 변경되는지 물어보는 문제이다.


파일명 변경만 하면 재미 없으니까, 이것저것 변경하여 해시값이 변경되는지 보고자 한다.



그림1. fsutil을 사용하여 테스트를 진행할 파일 생성



일단 해시값을 구할 파일은 그림1과 같이 fsutil을 사용하여 생성하였다.



그림2. 해시코드를 산출해주는 프로그램인 해쉬 코드



다음으로, 해시값을 산출해주는 프로그램은 그림2와 같이 Moo0에서 개발한 프리웨어인 해쉬 코드 프로그램을 사용한다.


그림2에서 보듯이, testfile의 MD5 해시값은 '6d0bb00954ceb7fbee436bb55a8397a9' 로 산출되었다. 따라서, 이 해시값은 원본 해시값이라고 둔다.


변경할 정보는 아래 목록과 같다.


 - 파일명

 - 파일 수정 날짜

 - 파일 액세스 날짜

 - 파일 특성(읽기 전용, 숨김, 보관, 내용압축, 암호화)

 - 파일 권한

 - 파일 속성 및 개인정보


파일 특성이나 속성을 수정해야 하므로, 운영체제는 Windows 8.1 Pro K 를 사용함을 미리 밝혀둔다.


각 목록에 대한 실험 방법은 아래와 같이 한다.



구분 

방법

파일명 

 파일 사본 생성 후 변경

파일 수정 날짜

 파일명 변경 후, 해시값 변동이 없으면 생성된 사본을 수정

파일 액세스 날짜

 파일명 변경 후, 해시값 변동이 없으면 생성된 사본을 수정

파일 특성

 파일명 변경 후, 해시값 변동이 없으면 생성된 사본을 수정

파일 권한

 파일명 변경 후, 해시값 변동이 없으면 생성된 사본을 수정

파일 속성 및 개인정보

 음악파일 1개의 원본 해시값[각주:1]과 속성 및 정보가 제거된 파일의 해시값을 비교



스크린샷은 찍으나 마나 상관 없으므로, 결과만 적어둔다.



구분 

변경 방법

해시값 

파일명

 testfile → testfile_filename modified

 6d0bb00954ceb7fbee436bb55a8397a9

파일 수정 날짜

 Attribute Changer를 사용하여 무작위 값으로 변경

 6d0bb00954ceb7fbee436bb55a8397a9

파일 액세스 날짜

 Attribute Changer를 사용하여 무작위 값으로 변경

 6d0bb00954ceb7fbee436bb55a8397a9

파일 특성

 Attribute Changer를 사용하여 무작위 값으로 변경

 6d0bb00954ceb7fbee436bb55a8397a9

파일 권한

 Administrator 계정의 모든 권한을 '거부'로 변경

 d41d8cd98f00b204e9800998ecf8427e

파일 속성 및 개인정보

 속성 → 자세히 → '속성 및 개인 정보 제거'

 67525434b335bf2a42b90726eac4ab56

* 볼드로 굵게 처리된 항목이 해시값이 변경되었음을 표시함


파일 권한은 어떤 값이 변경되었는지 Hex 에디터로 확인해보려 했으나, 정상적인 확인은 권한이 없기 때문에 불가능했다.


모든 권한을 거부로 변경한 뒤에, 읽기, 쓰기 권한을 각각 거부로 하여 확인해봤는데, 읽기 권한을 거부로 하였을 때 해시값이 변경되는 것을 발견하였다. 쓰기 권한은 거부해도 해시값이 변경되지 않는다.


파일 속성 및 정보는 당연한 결과로 보인다. 음악 파일의 메타데이터가 파일 헤더 아래에 바로 붙기 때문에 수정을 가하면 해시값이 변경될 수 밖에 없다.





  1. 39b3853c1d3bd1c2b8faf2aafaf5c0e1 [본문으로]
댓글