윈도우 설치 시간과 타임라인(Windows Install Date & Timeline)
윈도우 설치 시간과 타임라인에 대해 한번 이야기해보자. 윈도우의 다양한 버전이 존재하지만 대표적으로 XP와 7만을 대상으로 설명하려고 한다.
디지털포렌식 분석에서 타임라인 분석을 빼놓을 수 없다. 악성코드와 관련된 사건이라면 악성코드를 인지한 날짜로부터 다양한 시스템 아티팩스(Artifact)의 시간 정보를 분석하여 악성코드의 생성 시간이나 유입 경로, 그리고 실행된 이후의 행위를 파악할 수 있다.
정보 유출이나 정보 은닉을 목적으로 한 경우 용의자에 의해 저장매체가 포맷 혹은 완전삭제 되었을 수도 있다. 이때 주로 윈도우 설치 시간과 생성되어 있는 파일간의 관계를 비교해보게 된다. 윈도우 설치 시간은 레지스트리 키나 wmic 명령을 통해 확인할 수 있다.
- 레지스트리 키 : HKLM\SOFTWARE\Microsoft\Windows NT\CurrrentVersion\InstallDate(UNIX date format)
- wmic 명령 : wmic:root\cli> os get installdate
윈도우 설치 시간과 비교하여 시스템을 조사하다 보면 많은 시스템 파일의 생성시간이 윈도우 설치 시간보다 이전이라는 사실을 알 수 있다. 상식적으로 생각해볼 때, 레지스트리에 설치 시간을 기록하기 전에 파일이 생성되었을 것이므로 생성 시간은 설치 시간보다 약간 빠르거나 거의 차이가 없어야 한다.
다음은 현재 윈도우의 설치 시간을 확인한 것이다.
설치 시간은 “2011년 10월 7일 20시 46분” 이다. 하지만 “C:\Windows\” 하위의 폴더 및 파일들의 생성 시간을 살펴보면 이보다 이전에 쓰여진 파일들이 다수 존재한다.
이러한 현상은 정상적인 윈도우 설치 결과이다. 우선 이러한 결과가 나오는 이유를 살펴보기 전에 윈도우 설치 과정을 살펴보자.
윈도우 XP 설치
윈도우 XP를 새로 설치한다면 일반적으로 다음과 같은 과정을 거칠 것이다.
- 기본 드라이버를 로드한다. 이때, 기본 설치 CD에 포함하지 않는 추가적인 드라이버의 로딩이 가능하다. (예, RAID Controller 등)
- 키보드 선택과 같은 기본 설정 작업을 수행한다.
- 기존에 나눠진 파티션 정보가 나온다. 새로 산 저장매체라면 전체 영역이 비할당 영역으로 나온다. 적절하게 자신이 원하는 대로 파티션을 나눠주고 윈도우를 설치할 파티션을 선택한다.
- 포맷 옵션을 선택한다. (빠른 포맷, 일반 포맷)
- 포맷이 완료되면 자동으로 윈도우 설치 파일이 복사되고, 복사가 완료되면 재부팅된다.
- 재부팅하면서 복사된 설치파일에 의해 윈도우 설정작업이 수행되고 설치가 완료된다.
위 과정에서 윈도우 설치 시 생성되는 기본 파일들은 5번 작업에서 포맷한 파일시스템(보통 NTFS)에 복사가 된다.
이 때 CD에 존재하는 파일들이 복사되는 것이기 때문에 생성 시간이 복사하는 시점이 되어야 하지만 CD의 생성시간을 그대로 유지하면서 복사가 된다. 이 때문에 윈도우 기본 파일들의 생성 시간이 윈도우 설치시간보다 한참 전으로 나오는 것이다. 일반적으로 공식적인 설치 CD를 사용한다면 설치 CD가 제작된 시점의 시간이 될 것이다.
윈도우 XP의 경우 CD를 마운트 한 후 내용을 살펴보면, 설치 시 복사되는 파일의 대부분은 캐비넷 파일(.CAB, Cabinet) 로 구성되어 있다. 캐비넷 파일은 압축 파일의 일종으로 마이크로소프트에서 프로그램 배포 시 주로 사용된다. 다음은 윈도우 XP SP3의 CD 내용이다.
다음은 위 CD로 VMware에서 설치한 후 마운트한 내용이다. explorer.exe를 살펴보면 알 수 있듯이 설치 CD에 기록된 파일의 시간 정보가 윈도우 설치 후에도 그대로 유지되는 것을 알 수 있다. 단, 설치 CD에는 파일만 존재하기 때문에 기본적인 구성 폴더들은 새로 생성한다. 이로 인해 설치 파일에 존재하지 않는 폴더는 생성 시간이 설치 시간과 유사하게 나온다.
윈도우 7 설치
윈도우 7의 설치 과정은 XP와 크게 다르지 않다. 파일시스템을 포맷하거나 파티션을 나누는 인터페이스가 조금 바꼈을 뿐이다. 다만, 큰 차이는 XP에서는 윈도우 구성 파일들을 윈도우 포맷 후 파란 화면에서 진행하는 반면 윈도우 7은 설치 파일만 복사하고, 재부팅 후 설치 파일이 로드되어 로드된 파일에 의해 윈도우 구성 파일이 복사된다는 점이다.
윈도우 7을 설치하면 다음과 같이 파일 확장 중이라는 메뉴가 가장 많은 시간을 소비하는 것을 경험할 수 있다. 이때 윈도우를 설치한 후 볼 수 있는 기본 구성 파일들이 복사된다.
윈도우 7에서는 XP와 다르게 캐비넷 파일을 이용하는 것이 아니라 “\sources\install.wim” 파일을 이용한다. WIM(Windows Image) 파일은 윈도우의 파일 기반 디스크 이미지 파일로 Vista 이후부터 지원하고 있다. (http://technet.microsoft.com/ko-kr/library/cc749478(WS.10).aspx)
WIM 파일은 ImageX나 윈도우 7의 기본 명령이 DISM(Deployment Image Servicing and Managemen) 명령을 통해 마운트 할 수 있다. ImageX는 Windows Automated Installation Kit (AIK)(http://www.microsoft.com/download/en/details.aspx?id=10333) 패키지에 포함되어 있다.
간단히 윈도우 7의 기본 명령인 DISM을 통해 마운트해보자.
- dism /Mount-Wim /WimFile:파일경로 /index:1 /MountDir:마운트경로 (option: /ReadOnly)
마운트가 완료된 후 마운트된 폴더로 이동해보자. 윈도우가 설치되면 기본적으로 설치되는 구성 파일 및 폴더를 확인할 수 있다. install.wim 이미지 파일에도 각 파일 및 폴더마다 시간 정보가 저장되어 있다. 이 시간 정보는 윈도우 설치 시 파일 복사 후에도 동일하게 유지된다.
다음은 윈도우 설치 시 파일 확장 후 볼륨의 내용을 확인한 것이다. install.wim 이미지 파일의 내용이 모두 복사된 것을 알 수 있다. 그리고 파일 뿐만아니라 폴더의 시간도 생성 시간이 동일한 것을 확인할 수 있다. XP에서는 기본 구성 폴더를 윈도우 설치 시 생성하기 때문에 윈도우 설치 시간과 유사하지만, 7에서는 install.wim 파일에 폴더도 존재하기 때문에 폴더의 생성 시간도 동일하게 유지된다.
마운트된 이미지 파일을 언마운트 하기 위해서는 다음의 명령을 사용한다.
- 변경 내용 반영(읽기/쓰기 모드 마운트 시) : dism /Unmount-Wim /WimDir:마운트경로 /commit
- 변경 내용 미반영(읽기 모드 마운트 시) : dism /Unmount-Wim /WimDir:마운트경로 /discard
생성 시간이 변하지 않는 이유
운영체제가 설치된 이후에 파일의 생성, 이동, 복사는 대부분 미리 정의된 파일시스템 드라이버에 의해 수행된다. 파일시스템 드라이버를 따라가보면 파일에 특정 행위를 한 이후 파일의 시간도 자동으로 변경시키는 작업을 수행할 것이다.
하지만, 윈도우 설치는 운영체제가 정상적으로 설치되기 이전이다. 따라서, 단지 파일시스템 해석을 위한 ntfs 관련 드라이버만 올린 후 파일을 복사하기 때문일 것이다. 그리고 앞서 살펴본 wim 파일 내부에는 파일의 메타 정보도 저장되어 있기 때문에 설치 시간의 단축을 위해 메타정보를 직접 복사했을 것이라고 추정해볼 수 있다.
포렌식 분석 시 고려사항
먼저 윈도우 설치 볼륨의 파일들이 윈도우 설치 시간보다 이전의 생성 시간을 갖고 있더라도 놀라지 말자. 설치 시간보다 생성 시간이 이전인 파일들은 윈도우가 설치된 이후 파일이 변경되지 않는 파일들이다. 따라서, 조사에서 제외할 수도 있을 것이다.
다만, 주의할 것은 최근 악성코드들은 자신의 파일을 은닉하기 위해 “Windows” 또는 “Windows\System32″의 폴더에서 변경이 잘 일어나지 않는 파일들을 선택하여 시간 정보를 얻은 후 자신의 시간 정보를 갱신한다. 이럴 경우, 무작정 설치 시간 이전의 파일을 제외한다면 자신의 시간 정보를 조작한 악성코드는 찾기 어려울 수 있다.
그리고 설치 시간 이전의 파일들의 시간 정보를 분석하면 어떤 CD/DVD를 통해 설치했는지도 알 수 있을 것이다. 물론, 공식적인 설치 CD/DVD라면 동일한 시간정보를 가지겠지만 최근에는 서비스팩이나 업데이트가 포함될 때마다 설치 CD/DVD를 재배포하거나 커스터마이징된 설치 CD/DVD를 사용하는 경우도 많으므로 유용할 수도 있을 것이다.
또한 XP가 설치된 환경일 경우, 기본 구성 폴더나 파일(pagefile.sys, boot.ini, config.sys, io.sys, msdos.sys 등) 시간은 설치 시간과 유사하게 나타나므로 서로 비교해보는 작업도 유용할 수 있을 것이다.
Categories
- 0×01 News (15)
- 0×02 Fundamentals (11)
- 0×03 Data Forensics (9)
- 0×04 Storage Forensics (13)
- 0×05 File System Forensics (31)
- 0×06 Windows Forensics (17)
- 0×07 *nix Forensics (1)
- 0×09 Web Forensics (5)
- 0x0A Virtual Forensics (5)
- 0x0B Forensic Challenges (15)
- 0x0C Forensic Education (8)
- 0x0D EnCase (12)
- 0x0E Forensic Tools (8)
- 0x0F Slides (24)
addressing artifacts BIOS boot code boot process challenge Cluster Codegate cookie Data Carving Data recovery DC3 DCO defcon ENCASE EnCE encoding EnScript exFAT FAT File System firmware Forensic Challenge FTK GUID hardware imaging Live Forensics mbr network ntfs padocon process RAID Recycle Bin SCSI signature Slack slide steganography timeline timestamp virtual forensics WDFS writeup
WP Cumulus Flash tag cloud by Roy Tanck requires Flash Player 9 or better.
What I'm Doing...
- 1월말부터 작성하던 VSC(볼륨 섀도우 복사본)에 대한 정리를 마쳤네요. 한번 시간내서 6개의 포스팅을 정리해보는 것도 좋을듯.... http://t.co/8J6PgJTi 8 hrs ago
- 마그네틱 vs RFID 카드 분석 Deconstructing a Credit Card's Data - http://t.co/5nzy7gJ2 1 day ago
- 인사이트 세미나 발표 자료 업데이트 - http://t.co/J9BSRsII 자세한 내용은 http://t.co/GMZiXAJh을 참고하세요. 3 days ago
- More updates...










