NTFS 파일 시스템 변경 유무 체크

NTFS 파일 시스템은 파일시스템에 생성되어 있는 모든 파일 및 디렉터리에 대한 메타데이터를 $MFT에 저장하고 있습니다. 메타데이터에 해당되는 시간 정보도 포함되어 있습니다.

시간 정보는 크게 두개 속성에 저장되어 있는데, 하나는 STD_INFO이며, 또 하는 FILE_NAME이다. 일반적으로 시간 조작 툴 등을 사용하여 시간 값을 변경하게 되면, STD_INFO 속성에 있는 시간 값이 변경이 된다. FILE_NAME에 있는 시간 값은 변경되지 않는다.

그래서 일반적으로 특정 파일의 시간 값이 조작되었는지에 대해서 확인하기 위하여 STD_INFO에 있는 시간 정보와 FILE_NAME에 있는 시간 정보를 비교를 하며, 조작 유무를 식별할 수 있다. 또한 이러한 정보는 하나의 아티팩트로써 사용되게 된다.

관련 글 인용(출처: http://journeyintoir.blogspot.kr/2013/01/re-introducing-usnjrnl.html)

Comparing the FNA timestamps to the SIA timestamps is an effective way to determine if timestamps have been altered. To illustrate the following are the timestamps from the file /Users/lab/AppData/Local/{5da39e95-8007-4308-c6cf-bcce61795d0d}/n

Standard Information Attribute

Creation:       7/13/2009 23:11:59 UTC
Access:         7/13/2009 23:11:59 UTC
Modification:  7/14/2009 1:17:52 UTC

Filename Attribute

Creation:       12/6/2012 22:18:00 UTC
Access:         12/6/2012 22:18:00 UTC
Modification:  12/6/2012 22:18:00 UTC

하지만, 윈도우에서 제공하는 파일시스템 터널링 기법을 이용하면, FILE_NAME 시간 값마저도 변경이 될 수 있다. 이는 윈도우에서 제공하는 기능이다. 이럴 경우, 위에서 언급한 STD_INFO와 FILE_NAME의 시간 속성 값을 비교해서는 파일 시간 변조 유무를 확인할 수 없다.

이를 확인하기 위해서는 $USNJRNL 파일에서 특정 파일의 생성 시간 값을확인해야 한다. $USNJRNL는 파일시스템 변경정보를 기록해 두기 때문에, 정확히 생성된 시간 값을 확인할 수 있다.

관련 글 인용(출처: http://journeyintoir.blogspot.kr/2013/01/re-introducing-usnjrnl.html)

File system tunneling means if a file is renamed or deleted and then if a file with the same name is created in the same directory then the new file will retain the timestamps from the old file. The $UsnJrnl file contains entries showing file system tunneling was used and this is what became clear after Harlan told me what he saw.

The entries show that the original services.exe file was renamed and within a fraction of a second a new services.exe file was created in the same directory. As shown below the new services.exe file retained the timestamps from the original:

Standard Information Attribute

Creation:       7/13/2009 23:11:26 UTC
Access:         7/13/2009 23:11:26 UTC
Modification:  7/14/2009 1:14:36 UTC

Filename Attribute

Creation:       7/13/2009 23:11:26 UTC
Access:         12/6/2012 22:18:06 UTC
Modification:  12/6/2012 22:18:06 UTC

Both the SIA and FNA timestamps indicate the services.exe file was created back in 2009 but the entries in the $J file shows otherwise. The services.exe was actually created on 12/6/2012 and file system tunneling was used to alter its timestamps.

즉, 파일에 대한 시간 조작 유무를 확인하기 위해서는 $USNJRNL의 파일 시스템 생성 시간까지 확인을 해야 한다.

파일 시스템 터널링 관련 글: http://dfstream.blogspot.kr/2012/02/file-system-tunneling-in-windows.html

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

%d 블로거가 이것을 좋아합니다: