1. Description
It appears that the suspect modified a file(s) after changing the system time tampering
2. Write up
What file(s) did the suspect modify after changing the system time? Describe the basis your judgment.
공격자가 시스템 시간을 변조하여 파일을 수정한 것으로 추정되는 이미지 파일을 분석하는 문제이다.
문제는 시스템 시간을 변경한 후 용의자가 수정한 파일이 무엇인지 찾는 문제이며, 판단의 근거를 제시하는 것이 조건이다.
이미지 파일을 분석하기 위한 도구 FTK Imager를 이용하여 TimeFaker.E01 파일을 확인한다.
여러 파일들이 확인이 되는데, 시스템 시간이 변경된 로그가 존재하는 이벤트로그는 Windows 폴더가 없어 Export 할 수 없다.
다른 방법으로는 최상위 경로인 [root]에 존재하는 $MFT, $LogFile과 $Extend 경로에 존재하는 $UsnJrnl 까지 3개의 파일을 Export하여 분석하는 방법이 있다.
그 중에서도 $UsnJrnl 파일이 핵심이다. $UsnJrnl 파일은 아래와 같이 $Max 속성과 $J 속성으로 총 2가지 구성으로 존재한다.
$Max는 $UsnJrnl의 기본 메타데이터를 저장하며, $J 는 실제 $UsnJrnl의 레코드가 저장되어있다. 둘 중에서 $J 파일을 Export를 한다.
그 후 최상위 경로인 [root]에서 아래의 $MFT, $LogFile을 Export 한다.
※ 3개의 파일을 모두 Export 완료한 모습
그 후 NTFS Log Tracker 도구를 사용해 csv로 추출하여 NTL_UsnJrnl_xxxx-xx-xx xx-xx-xx.csv 를 확인한다.
CSV 파일에서 TimeStamp(UTC+9) 값과 USN 값을 확인할 수 있다.
여기서 USN은 Update Sequence Number의 약자로 모든 파일이 변경(Create, Delete, Closed 등)될 때마다 순서대로 부여되는 번호이다.
즉 시간이 뒤로 가는 로그일 수록 USN의 값은 순차적으로 커지는 구조를 가지고 있다.
USN을 오름차순으로 정렬한 후 분석을 하면 아래와 같이 TimeStamp 값에 이상이 있는 것을 확인할 수 있다.
확인해보면 USN의 값은 이상 없이 순서대로 증가한 것을 확인할 수 있다.
여기서 주목할 내용은 TimeStamp 값이 2020-04-20 16:29 에서 2020-04-22 17:41 로 한번에 이동했다는 것이다.
물론 4월 20일에 마지막으로 사용 후 4월 22일에 다시 사용을 했다고 추측할 수 있다.
하지만 USN 값 순으로 더 분석하다 보면 아래와 같은 결과를 확인할 수 있다.
USN의 값은 이상 없이 순서대로 증가하였다.
하지만 TimeStamp의 값은 2020-04-22 16:29 부터 2020-04-23 10:54 까지 흐르다가 다시 4월 20일로 역행한 것을 확인할 수 있다.
USN 값은 파일이 변경이 된 순서대로 부여되기 때문에 함께 증가하는 TimeStamp 값은 임의로 변조하지 않는 이상 시간이 다시 되돌아갈 수 없다.
공격자는 2020-04-20 16:29 경부터 2020-04-20 16:30 까지 약 1분간 시간을 변조하고 파일을 수정하였다.
그 사이에 수정된 파일들은 아래와 같다. (중복 및 tmp 파일 제거)
Show All
Search