## 개요
특정 이미지 파일을 분석할 때 타임라인을 구성해본 적이 있을 것이다. 타임라인은 특정 사건이나 사용자 행위를 기반으로 하기도 하지만, 주요 파일의 생성/ 수정 시각을 기준으로 작성되기도 한다.
정말로 분석하면서 시간 값에 의문을 가져본 적이 없는가? 만약 없다면 이번 기회에 의문을 가져보도록 하자. 본인의 파일들을 쭉 훑어 보면서 시간값이 이상하거나 특징적인 부분이 없는지 돌아보길 바란다. 분명 오류가 아닌 특정 행위를 통해 야기된 경우이기 때문이다. 적어도 시간 값에 오류가 생기는 경우는 거의 보지 못했다.
오늘은 파일 복사 시 시간 값이 어떻게 유지되고, 변경되는지 확인해 볼 예정이다. 뻔하게 예상하는 것과 결과가 다른 경우가 몇가지 있기 때문에 이번 글을 통해 시간 값이 특수하게 변경되는 경우를 소개해 보려 한다.
주로 소개할 경우는 다음과 같다
- 같은 볼륨 내 복사
- 다른 파일시스템 간 복사
## 복사 전 원본 파일
- - -
> [!Warning] 실험 환경
> 기본 파일시스템 : NTFS
> 기본 운영체제 : Windows 10
일단 하나의 파일을 만들었다.
`Forensic-Cheatsheet.txt` 파일이며,
`I:₩` 볼륨하위에 에 있는 `Test` 디렉토리에 위치해 있는 514 바이트 크기의 파일이다.
오늘 집중해서 보아야 할 시간 정보들도 보자.
```
C-Time (Creation Time) : 2023-11-26 14:30:12
M-Time (Modification Time) : 2023-11-26 14:31:39
A-Time (Access Time) : 2023-11-26 14:31:39
```
![[Pasted image 20231126143305.jpg]]
이제 앞서 소개된 `Forensic-Cheatsheet.txt` 파일을 다른 곳들로 복사할 것이다.
복사하면서 시간값들이 어떻게 변경되는지 알아보도록 하자.
## 같은 볼륨 내 복사
첫번째로, 우린 타겟 파일을 같은 볼륨 내에 있는 다른 경로로 복사할 것이다.
어떻게 될지 일단은 지켜보자.
복사를 수행한 시간은 `2023-11-26 14:43:17` 이다.
![[Pasted image 20231126144350.png]]
```
C-Time : 2023-11-26 14:43:17
M-Time : 2023-11-26 14:31:39
A-Time : 2023-11-26 14:43:17
```
파일을 복사했더니 생성 시간이랑, 액세스 시간이 복사한 시간 기준으로 변경되었다.
즉 여기서 보았을 때 파일을 복사하는 행위 자체는 새로운 파일을 복사로 만드는 과정에서 파일에 접근하기 때문에 `C-Time`과 `A-Time` 두개만 변경되는 것을 확인할 수 있었다.
이상한 점은 발견하지 못했는가?
발견했다면 눈썰미가 좋다고 할 수 있겠다. 바로 `M-Time` 이다. 수정 시간 자체는 원본 파일과 동일하기 때문에 아무 문제가 없어 보인다. 다만 새롭게 생성된 시간과의 관계가 문제다.
생성 시간은 상식적인 논리로 접근했을 때 그 파일에 대한 모든 시간 정보보다 빨라야 한다. 생성 이후에 기타 작업들이 이루어질 수 있기 때문이다. 하지만 복사된 파일을 보면 수정 시각이 생성 시각보다 과거 시점에 존재하므로 파일을 만들기도 전에 수정했다는 역설적인 논리가 도출된다. 우리는 이런 현상을 ==파일 복사시 일어나는 시간 역전 현상==이라고 부른다.
아무것도 모른 상태에서 이런 파일을 접근했을 때 분석관은 생각하곤 할것이다. “ 아 이 파일은 시간값에 오류가 있군. 이 파일은 사건 보고서에서 배제해야겠어.” 이렇게 이어지면 큰일나는 것이다. 시간 역전 현상이 일어났다는 것은 필히 해당 파일이 어디선가로부터 복사되었다는 것을 시사하므로, 원본 파일의 존재 그리고 해당 파일이 어디론가 복사되었다는 점을 시사한다.
복사하는 행위 자체는 동일하기 때문에, 디스크 단위를 넘어가거나, 다른 볼륨으로 복사할 때도 지금 설명한 것과 동일한 결과를 볼 수 있다.
## 다른 파일시스템 간 복사
이번에는 파일을 다른 볼륨으로 복사해 볼 것이다. J:₩ 드라이브의 파일시스템은 FAT이다.
복사 시간은 `2023-11-26 14:57:45` 이다.
![[Pasted image 20231126145904.png]]
이번에도 비슷하지만 사뭇 다른 모습이 보인다. 만든 날짜는 복사 시간과 동일하게 수정되었는데,
액세스한 날짜가 시간 정보 없이 날짜만 표시된 것이다. 복사로 인한 시간 역전 현상은 동일하게 나타나므로 자세한 설명은 생략하도록 하겠다.
이는 윈도우 UI 상으로 표시를 생략해준 것인지, 아니면 시스템 자체가 시간 값을 저장할 때 날짜만 저장하는 것인지 확인해야 한다. [[FAT#Directory Entry]] 부분을 참고해 보면 FAT 파일시스템은 자체적으로 A-Time을 날짜만 저장하는 것을 알 수 있다. 따라서 액세스한 날짜가 표시되지 않는 것이다.
이렇게 파일 시스템 종류가 다르면 시간의 특정 값이 생략되어 나타날 수 있음도 유의해야 한다.
비슷한 용례로 FAT 파일시스템과 EXT파일시스템과 같은 경우는 Timestamp로 4바이트 구조를 사용하기 때문에 FAT,EXT 에서 NTFS나 exFAT로 오는 경우, 세밀한 시간값이 생략되어 나타날 수 있음을 알면 좋겠다.
NTFS나 exFAT 같은 경우 Timestamp를 저장할 때 8바이트를 사용하기 때문이다.
운영체제가 변경되는 경우도 동일하게 만약 다른 파일시스템을 사용한다면 시간 값에 변화가 생길 것이다.
이를 주의깊게 바라보면 좋겠다.
## 결론
파일을 복사할 때 일어나는 다양한 현상에 대해서 알아보았다. 그중 중요하게 봐야할 것은 파일을 복사하는 과정에서 발생하는 시간 역전 현상과, 파일시스템이 지원하는 양식이 변경되는 경우 발생하는 시간 오차의 손실이 있었다.
사소하게 바라볼 수는 있지만 어떤 파일을 복사하는 행위에 대한 근간을 제공해 줄 수 있는 내용이기 때문에 반드시 알아놔야 하는 부분이라고 생각된다. 앞으로는 분석할 때 이상한 논리 구조의 시간값을 발견한다면 배제하기보다는 분석을 통해 왜 시간값이 역설적으로 나타났는지 알아볼 필요가 있겠다.