보안공학연구논문지 Journal of Security Engineering Vol.12, No.4 (2015), pp.379-396 http://dx.doi.org/10.14257/jse.2015.08.02 윈도우즈파일시스템에서파일명령구별을위한 디지털포렌식방법 조규상 1) ADigitalForensicMethodforaDistinctionofFileCommandsin WindowsFileSystem Gyu-SangCho 1) 요약 이논문에서는윈도우즈 NTFS 파일시스템에서파일명령을구분할수있는새로운디지털포렌식방법을제안한다. 제안한방법은파일명령을수행할때타임스탬프의변화가생기는것을이용하여어떤파일명령이실행되었는지구분하는기능을수행한다. 이것을구현하기위하여 TCC & CC(TimestampChangeCheck& CodeConversion) 함수,B2D(BinarytoDecimal) 변환함수, FDD(ForensicDecisionDecoder) 함수등의 3 가지함수를구현한다.TCC& CC 는 $SI 와 $FN 속성에들어있는각 4 개씩모두 8 개의타임스탬프의변화에대해각각 2 비트를할당하여전체 16 비트코드를만드는기능을하고,B2D 변환함수는이것을 10 진수로변환하여해당값을 FDD 함수에입력하여디코드된포렌식을위한출력값을만든다. 제안된방법을파일생성, 파일복사, 파일덮어쓰기 - 소스남김사례에적용하여타임스탬프의변화에의해서어떤파일명령이수행되었는지구분한결과를보이기로한다. 핵심어 : 디지털포렌식, 타임스탬프변화패턴, 명령어구분함수, 이벤트재구성,NTFS 파일시스템 Abstract This research proposes a new digital forensic method for a distinction of file commands in Windows NTFS file system. The proposed method is to distinct what command is executed only by comparing timestamp change pattern before and after a file command execution. The proposed method is composed of three parts, i.e. TCC & CC(Timestamp Change Check & Code Conversion) function, B2D(Binary to Decimal) conversion function, and FDD(Forensic Decision Decoder) function. Each input of the TCC & CC for timestamps of 8 timestamps in $SI and $FN is assigned 2 bits respectively and it produces 16 bit code. The code is converted into a decimal value by the B2D conversion function. The decimal value is decoded into a forensic output by the FDD function. The proposed method gives a forensic way to distinct executed file command. With three forensic cases, i.e. a file creation, a file copy and a file overwrite-a source file left command, the proposed forensic method is verified for its usefulness. Keywords : Digital forensics, Timestamp change pattern, Command distinction function, NTFS filesystem 접수일 (2015 년 07 월 03 일 ), 심사의뢰일 (2015 년 07 월 04 일 ), 심사완료일 (1 차 :2015 년 07 월 21 일 ) 게재확정일 (2015 년 08 월 05 일 ), 게재일 (2015 년 08 월 31 일 ) 1 750-711 경북영주시풍기읍교촌 1 동양대학교컴퓨터정보전학과. email:cho@dyu.ac.kr * 이논문은 2013 년도정부 ( 교육부 ) 의재원으로한국연구재단의지원을받아수행된기초연구사업임.(NRF-2013R1A1A2064426) ISSN: 1738-7531 JSE Copyright c 2015 SERSC 379
윈도우즈파일시스템에서파일명령구별을위한디지털포렌식방법 1. 서론 일반적으로파일시스템에서관리하는파일들에는작업이실행된시간을기준으로타임스탬프를기록한다 [1][2]. 디지털포렌식의관점에서는이런타임스탬프가어떤작업을언제했는지추정하는데매우중요한요소로작용한다. 타임스탬프들을활용하여어떤이벤트를중심으로발생된상황을추정하여시간대별로재구축하여포렌식에활용할수있기때문이다 [3]. 타임스탬프를이용한디지털포렌식방법에관한연구가많이수행되었다. 그중에서 Boyd 와 Poster[4] 는컴퓨터에기록된시간이잘못다뤄져서생기는문제와마이크로스프트사의인터넷익 스플로러웹브라우저에서지역시간과 UTC 시간간의변환문제, 그리고시간관련증거를확증하기위해필요한 6 가지검토사항에대한문제를다뤘다.Stevens[5] 는그의연구에서시간모델을 제시하였는데이것은컴퓨터의자체클럭과여러전자장비의디지털시간의동작에영향을줄수 있는여러요소들을설명한것이다. 이연구는 NTFS 뿐아니라다른파일시스템에서도시스템 시간에발생하는시간차이문제에대해서적용할수있는방법이다.Willassen[6] 은타임스탬프에오류가포함되어서문제가야기되는경우에대해서디지털포렌식을위한해결방법을제시하였다. 그는타임스탬프를다루는데있어서타임스탬프의조작과클럭에오류또는부적절한설정을하였을경우에대해서가설기반조사방법으로문제를해결하기위한방법을제안하였다. 이방법은클럭에히스토리적인조절을위한클럭가설을설정하고대상타임스탬프가이것에일치하는지테스트하는방식이다. 윈도우즈의 NTFS 파일시스템에서의타임스탬프의분석에관한연구사례중에서 Chow[3] 등은 MAC 시간의발생순서를근거로파일또는폴더의복사, 이동, 갱신등의동작을추론할수있는 7 가지규칙을세우고이것을파일생성, 복사, 압축파일에서해제, 윈도우즈탐색기내에서의프리뷰, 폴더내에서의개별적인파일접근등의시나리오에적용한연구결과를제시하였다. 이방법은 일관된규칙과논리를바탕을근거로하고있지는않지만 NTFS 파일시스템에서어떤이벤트에대한타임스탬프의선후관계를분석하여 MAC 시간의동작특성으로합리적인규칙을제공하고몇가지가설적인규칙을세워실험적으로증명함으로써시간순으로벌어지는사건들에대해타임스탬프를근거로신뢰성있는분석을할수있게되었음에의미가있다. 김 [7] 등은 WindowsNTFS 의 $LogFile 에들어있는로그레코드를역공학적인방법으로로그레코 드의구조를분석하였고조 [8] 는로그레코드에기록된내용이어떤파일과연관된것이지를분석한연구를수행하였는데이연구들은파일작업이남긴많은 NTFS 의로그레코드들을포렌식활용할수있는근거를마련하였다. 이연구를바탕으로 Cho[9] 는파일명령마다타임스탬프의변화패턴을분석하여각명령마다상이한패턴을갖는다는점을이용하여포렌식분석에적용할수있는방법에대한연구를수행하였다.NTFS 의 MFTEntry 의속성인 $STANDARD_INFORMATION 속성과 $FILE_NAME 속성에들 380 Copyright c 2015 SERSC
보안공학연구논문지 Journal of Security Engineering Vol.12, No.4 (2015) 어있는생성시간, 수정시간,MFTEntry 수정시간, 접근시간등의타임스탬프에서의변화가생성, 복사, 삭제, 갱신, 이동, 이름변경등의파일연산에따라서로상이한패턴으로분류가된다는것 을조사하였고, 타임스탬프도구를사용하여타임스탬프를변경과조작한사례를탐지하였다. 이 연구의후속연구 [10] 에서는폴더에대한타임스탬프의변화패턴을분석하고그것을제 1 평가함수 와제 2 평가함수의두가지평가함수를사용하여포렌식에활용하는방법이다. 이평가함수들의 입력에타임스탬프값을인가하여파일이나폴더에어떤연산이수행되었는지를판단한다. 최근의 연구 [11] 에서는 B-tree 구조를사용하는윈도우즈의디렉토리인덱스에서파일이생성, 삭제등의 각종연산에따라인덱스목록들에생기는변화의흔적에서얻을수있는포렌식정보에관한연 구를수행하였다. 이논문에서는파일명령을실행한후에타임스탬프의변화패턴을이용하여어떤파일명령이 수행되었는지판별하여그것을포렌식의증거로사용하기위한방법을제안한다. 이방법은파일 명령실행전의타임스탬프와명령실행후의변경된타임스탬프정보를입력으로사용하여두자 리의비트코드로변환한다. 각두자리비트코드는 $SI 의 4 가지와 $FN 의 4 가지타임스탬프등 모두 8 개의타임스탬프변화값에의한것이다. 이것은전체 16 비트로구성되며이것을십진수 값으로변환한다. 이값은포렌식판별을위한디코더를통해서어떤명령이실행되었는지 판별된다. 이정수값들은입력인수에주어진패턴에따라서로다른고유한값을갖게되어서어떤명령이 수행되었는지알수있게된다. 이논문의 2 장에서는 9 가지의파일명령이실행될때타임스탬프에생기는변화패턴에대하여 논하고 3 장에서는이연구에서제안한타임스탬프의변화를이용하여어떤파일명령이수행되었는 지구별할수있는디지털포렌식방법을설명한다. 제안한방법은 TimestampChangeCheck& CodeConversion(TCC & CC) 기능,BinarytoDecimalConversion 기능, 그리고 Forensic DecisionDecoder 기능의 3 부분으로구성된것에대하여각기능별로설명하기로 한다.4 장에서는 이연구에서제안한방법을 3 가지사례에적용하기로하며 5 장의결론에서이방법의의미와 함께추후과제에대해언급하기로한다. 2. 타임스탬프변화패턴의분석 11 기호표기법 이절에서는논문에서사용하는기호들에대한의미를설명한다. 그내용은다음과같다 [9] t op : 파일명령이실행된시간을의미한다. t c,t w,t E, t A :4 가지위첨자에서 C 는생성 (Creation),W 는쓰기 (Write),E 는 MFT 엔트리 수정시간 (MFTEntrymodification),A 는접근시간 (Access) 을나타낸다.
Copyright c 2015 SERSC 381
윈도우즈파일시스템에서파일명령구별을위한디지털포렌식방법 tsre: 소스파일의타임스탬프 tsisre: 소스파일의 $STANDARD_INFORMATION 속성의타임스탬프 u: 변경되지않은타임스탬프의총칭, 각필드별로는 u c, u w, u E, u A 로표기한다. $Si:$STANDARD_INFORMATION 속성의약칭 $Fc :$FILE_NAME 속성의약칭 A : 델타시간 -이것은파일의연산시간에추가적으로소요된파일처리시간을의미한다. 이값은대체로작아서무시할수있다. 이연구에서는 0 으로놓는다. [ 표 1] 명령실행에대한타임스탬프변화 [9] [Table1]TimestampChangesbyFileCommand[9] 22 파일명령실행후의타임스탬프변화 이절에서는파일명령실행전후의타임스탬프의변화를조사한다. 이타임스탬프의변화에대한 조사는기존의연구 [9] 에서수행된것을본연구에서인용한다. 기존연구에서는타임스탬프의변화 패턴을이용하여타임스탬프조작을구별하는데응용하고있다. 본논문에서는이타임스탬프변화패턴의상이함을근거로어떤파일명령이수행되었는지판별할수있는기능을구현하여디지털포렌식의방법으로사용하는것을제안한다. 파일연산은 생성, 복사, 갱신, 이동-드라이브내, 이동-드라이브밖, 덮어쓰기-소스남김, 덮어쓰기-소스삭제, 파일명변경, 파일속성변경 등 9 가지연산으로구분된다. 기존연구에서는 MSOffice 에서의갱신 을다루고있지만이것은파일명령이아니므로이연구에서는이명령을제외한다. 이조사는 WindowsXP 에서수행된것이다. 382 Copyright c 2015 SERSC
보안공학연구논문지 Journal of Security Engineering Vol.12, No.4 (2015) 3. 디지털포렌식을위한파일명령구별함수의설계 3.1 파일명령구별함수의개요 많은파일의타임스탬프를일일이분석가에의존하여분석하는데는많은시간이걸린다. 전문적인지식을갖춘많은인력이소요가된다. 타임스탬프의변화패턴만을근거로어떤명령이실행되었는지알수있고그것을자동화된방식으로구현할수있다면포렌식분석작업이매우수월해질것이다. 이논문에서타임스탬프의변화패턴을이용하여파일에적용된명령이어떤명령인지구별할수있는기능을갖춘함수를설계한다. 본논문에서제안한방법은 3 부분으로구성된다.Timestamp ChangeCheck & Code Conversion(TCC & CC) 기능,BinarytoDecimalConversion 기능, 그리고 ForensicDecision Decoder 기능으로구성된다 [ 그림 1 과 2]. TimestampChangeChecker 는어떤명령을실행했을때명령실행이전의것과명령실행이후의것을비교하여달라진타임스탬프의부분을체크한다.CodeConversion 은 타임스탬프의변화된형태에따라서두비트의이진코드를할당하는역할을한다 [ 그림 1]. BinarytoDecimalConversion 은타임스탬프변화코드를십진수값으로변환하여세번째 단계의입력으로작용한다. ForensicDecisionDecoder 는입력된 Decimal 값에따라출력을선택하는기능을수행한다. 입력값에따라정해진출력을선택하는디코더기능이다. 이과정까지수행하고나면입력된타임스탬프값들을근거로어떤 NTFS 의파일명령이실행되었는지구별할수있게된다. 함수의출력으로발생된값은명령들마다고유한정수값을가진다. 이값을근거로어떤파일명령이수행되었는지알수있다. 이함수의출력을구별의근거로삼기위해서는중복된결과를 만들지않는논리적인방법으로설계되어야한다.3.2~3.4 절에서이부분에대한방법을제시한다. 3.2TimestampChangeCheck& CodeConversionFunction 함수의정의 파일시스템에서실행된파일명령어가어떤종류인지분류하기위해서첫단계로타임스탬프 의변화를 2 비트의코드로변환하는기능을수행한다. 파일명령이수행되기이전의타임스탬프와명령이수행된이후의타임스탬프에발생된변화를 2 비트코드로변환한다.$SI 의 4 개의타임스탬프즉, c c c c c c,$fn 의 4 개의타임스탬프즉, c c c c c c, 모두 8 개의 TCC 함수에의하여타임스탬프마다각각 2 비트의코드로변환되어전체변환되는비트의수는 16 비트가된다 [ 그림 1].[ 그림 1] 에서 에서 x 의의미는 C,W,E,A 를대표하는표식으로사용한것이다. 그러므로 c c c c c c 중의한가지또는 c c c c c c 의한가지를말한다.
Copyright c 2015 SERSC 383
윈도우즈파일시스템에서파일명령구별을위한디지털포렌식방법 각타임스탬프마다발생하는변화패턴은 4 종류가존재한다. 이것들을각각 2 비트코드로할당하여코드화하여표현한다. 그종류들은식 (2) 에서와같이 c,,, c c 로변환된다. 다음은 TCC 함수에대한프로토타입, 기능, 인수, 출력에대한설명이다. 함수의프로토타입 : c c c c c c c c (1) 함수의기능 : 명령수행전의타임스탬프값과명령수행후의타임스탬프값을입력으로인가하여비교한후에변화된형태에따라 2 비트의코드로출력하는기능을한다. 인수 : 한개의 TCC 에는 $SI 의 4 개의타임스탬프 c c c c c c 와 $FN 의 4 개의타임스탬프 c c c c c c, 즉전체 8 개의 타임스탬프를각각인수로지정한다. 각타임스탬프들은명령수행전의것과 명령수행후의것을동시에입력한다. 전체의 8 개타임스탬프들은각각 TCC 의입력으로인가된다. 출력 : 함수의출력 (i=0~15 중짝수 ) 는입력으로인가된타임스탬프의 명령실행전의것과명령실행후의것의변화에따라다음과같이두비트의값을출력한다. (2)
[ 그림 1]TCC& CodeConversion 함수 [Fig.1]TCC& CodeConversionFunction 384 Copyright c 2015 SERSC
보안공학연구논문지 Journal of Security Engineering Vol.12, No.4 (2015) 3.3BinarytoDecimalConversion 8 개의 TCCbox 에서출력된 16 비트를 B2D(BinarytoDecimal) 의입력으로인가한다. 이값들은이진비트이며 B2D 변환기에서 10 진수값으로변환한다 [ 그림 2].9 개의명령실행후의타임스탬프의변화를식 (2) 에적용시키고그것을 B2D 로변환한결과는각각식 (3)-(11) 같이나타낼 수있다. [ 표 1] 의 (1) 항 파일의생성 연산을적용하여계산을하면다음과같이된다. (3) 다음은 [ 표 1] 의 (2) 항 파일의복사 연산을적용한결과를식 (4) 와같이나타낼수있다 (4) 다음은 [ 표 1] 의 (3) 항 파일의갱신 연산을적용한결과이다 (5) 다음은 [ 표 1] 의 (4) 항 파일의이동 - 드라이브내 는같은드라이브내에서파일의이동연산이 다. 이것을적용한결과는다음과같다. (6) 다음은 [ 표 1] 의 (5) 항 파일의이동 - 드라이브밖 은파일이들어있지않은다른드라이브로파 일을이동하는것을말한다. 이것을적용한결과는식 (7) 과같다. Copyright c 2015 SERSC 385
윈도우즈파일시스템에서파일명령구별을위한디지털포렌식방법 (7) 다음은 [ 표 1] 의 (6) 항 파일의덮어쓰기 - 소스파일남김 은소스파일을타겟파일에덮어쓰기 하는것으로소스파일이그대로있는경우를말한다. 이연산의결과는다음과같다. (8) 다음은 [ 표 1] 의 (7) 항 파일의덮어쓰기 - 소스파일지움 은소스파일을타겟파일에덮어쓰기 하는것으로소스파일은명령실행후삭제되는경우이다. 이경우의연산의결과는다음과같다. (9) 다음은 [ 표 1] 의 (8) 항 파일명변경 연산을적용한결과이다 (10) 다음은 [ 표 1] 의 (9) 항 파일속성변경 연산을적용한것이다 (11) 3.4FDD(ForensicDecision Decoder) 의기능 FDD(ForensicDecisionDecoder) 는 B2D 박스 [ 그림 2] 에서출력된 10 진수값이함수의입력으로 사용한다. 이값에따라명령어가분류되어디코더의출력으로선택된다. 이단계에서는 9 가지명 386 Copyright c 2015 SERSC
령중에서어떤파일명령이수행되었는지최종적인판단을하는과정이다. 보안공학연구논문지 Journal of Security Engineering Vol.12, No.4 (2015) FDD 는 B2D 에서출력된 10 진수를 3 자리의이진코드로변환하는작업을한다.[ 표 2] 는 9 개 명령의 B2D 의십진출력에해당하는이진코드를할당한표이다.B2D 의출력값이 21,845 인 경우는 000 으로할당하고디코더를통해서파일생성출력을선택하여최종적인포렌식판별을 하게된다 21,861 에는 001 로코드를할당하였다. 이것이디코더의출력으로파일복사를 선택한다. 출력이 20 인경우는 010 이할당되고디코더가파일갱신으로판별한다.B2D 출력이 65,284 인경우는 011 로코드를할당한다. 이것은드라이브내에서의이동의경우와파일명 변경의경우가동일하게나타난다. 두경우를구분하기위해서는타임스탬프의변화이외의다른 요소가필요하다.21,925 의경우는 100 으로코드를할당한다. 디코더를통해서드라이브내의 파일이동으로판별하게된다.36 의경우는 101 로코드를할당하고디코더를통해서덮어쓰기 - 소스남김으로판별한다.164 의경우는 110 으로판별하고덮어쓰기 - 소스지움으로판별한다.4 의 경우는 111 로코드를할당하고이것의디코더를통한출력은파일속성변경으로판별한다. [ 그림 2] 파일명령구별함수의구조 [Fig.2]Schematicdiagram ofafilecommanddistinctionfunction [ 표 2] 에서 B2D 에해당하는정수값을 FDD 의코드값으로변환하는것에대한선택은다양할수있다. 즉,21845 를 000 으로할당할수도있고,21,861 또는 20 을 000 으로도할당할수도 있다. Copyright c 2015 SERSC 387
윈도우즈파일시스템에서파일명령구별을위한디지털포렌식방법 그선택은별로중요하지않다. 어떤 B2D 의 10 진수에해당하는 FDD 의출력의의미가 올바르게해석될수있으면어떤다른선택에의하여만들어진조합도가능한것으로인정할수 있다. [ 표 2] 각명령에해당하는 B2D 변환값 [Table2]B2D ConversionValuesbyFileCommand B2D 변환값 FDD 코드 FDD 디코더출력 21,845 000 생성 21,861 001 복사 20 010 갱신 65,284 011 이동-드라이브내, 파일명변경 21,925 100 이동-드라이브밖 36 101 덮어쓰기-소스남김 164 110 덮어쓰기-소스지움 65,284 011 파일명변경 4 111 파일속성변경 4. 사례분석 4.1 작업환경 사례분석을위한작업환경은다음과같이구성되어있다 운영체제 :Windows7UltimateKServicePack1 디스크포맷 :NTFSv3.1 저장매체 :SSD 외장 usb 드라이브 저장공간 :1TB 디스크할당클러스터크기 :4,096 바이트 작업디렉토리명 :d:\workingdir,d:\srcdir 4.2 사례 1: 파일생성의경우 Windows7 에서 d: 드라이브에 WorkingDir 디렉토리에새로운텍스트파일을생성한다. 탐색기창에서우측마우스를눌러서 새로만들기-텍스트문서 메뉴를선택하여파일을생성한다. 이파일은내용이들어있지않은빈파일이다. 이파일에내용을기록하게되면생성명령후에내용수정명령이추가적으로실행된다. 또한파일명을 새텍스트문서.txt 로생성한후에다른 것으로변경하게되면파일명변경이추가적으로실행된다는점에주의해야한다. 파일연산 : 파일생성 - 탐색기창에서파일생성 388 Copyright c 2015 SERSC
보안공학연구논문지 Journal of Security Engineering Vol.12, No.4 (2015 ) 생성파일명 : 새텍스트문서.txt 작업디렉토리 :d:\workingdir 연산일시 :2015-06-3010:33:07 작업후파일의타임스탬프 [ 그림 3]: 새텍스트문서.txt $STANDARD_INFORMATION C:2015-06-3010:33:07W:2015-06-3010:33:07 E:2015-06-3010:33:07A:2015-06-3010:33:07 $FILE_NAME C:2015-06-3010:33:07W:2015-06-3010:33:07 E:2015-06-3010:33:07A:2015-06-3010:33:07 [ 그림 3] 은위의타임스탬프가 MFT 엔트리에저장되어있는모습이다. a 부분에는 $STANDARD_ INFORMATION 속성의 4 가지타임스탬프를나타낸것이고, b 부분은 $FILE_NAME 속성의 4 가지타임스탬프를나타낸것이다. 각타임스탬프는 16 진수 8 바이트로구성되며이것은 Windows64 비트 FILETIME 포맷을사용하고있다.1601 년 1 월 1 일부터표시되며 100ns 단위로표시할수있다 [12]. TCC&CC 에입력타임스탬프를인가한다. 파일생성의경우는과거의타임스탬프가존재하지않기때문에식 (12) 에는현재의타임스탬프만입력으로인가하고과거의타임스탬프는입력되지않는다. [ 그림 3] 파일생성명령후의타임스탬프 [Fig.3]Timestampsafterafilecreationcommand Copyright c 2015 SERSC 389
윈도우즈파일시스템에서파일명령구별을위한디지털포렌식방법 식 (12) 을적용한후에각 TCC& CC 기능의출력은식 (2) 에의하여식 (13) 과같이된다. 식 (13) 의 B2D 는 [ 표 2] 의첫번째행에따라서식 (14) 와같은결과를얻는다. 000),DD 는포렌식디코더의출력을나타내며식 (12) 에주어진타임스탬프에의한것을포렌식구별함수에인가하면 파일생성 이라고구별한다. (12) (13) (14) 4.3 사례 2: 파일복사의경우 d: 드라이브의 WorkingDir 디렉토리에서명령프롬프트에서 copy 명령으로파일을복사한다 파일연산 : 파일복사 - 명령프롬프트에서 copy 명령 원본파일명 :CpSource.jpg 사본파일명 :CpTarget.jpg 작업디렉토리 :d:\workingdir 연산일시 :2015-07-0106:21:54 작업후파일의타임스탬프 : CpSource.jpg:[ 그림 4-(a)] $STANDARD_INFORMATION C:2015-07-0104:08:53W:2015-06-3010:16:36 E:2015-07-0104:08:53A:2015-07-0104:08:53 $FILE_NAME C:2015-07-0104:08:53W:2015-07-0104:08:53 390 Copyright c 2015 SERSC
보안공학연구논문지 Journal of Security Engineering Vol.12, No.4 (2015) E:2015-07-0104:08:53A:2015-07-0104:08:53 CpTarget.jpg:[ 그림 4-(b)] $STANDARD_INFORMATION C:2015-07-0106:21:54W:2015-06-3010:16:36 E:2015-07-0106:21:54A:2015-07-0106:21:54 $FILE_NAME C:2015-07-0106:21:54W:2015-07-0106:21:54 E:2015-07-0106:21:54A:2015-07-0106:21:54 [ 그림 4-(a)] 복사명령 - 소스파일의타임스탬프 [Fig.4- (a)]filecopycommand Timestampsforasourcefile [ 그림 4-(b)] 복사명령 - 타겟파일의타임스탬프 [Fig.4- (b)]filecopycommand Timestampsforatargefile Copyright c 2015 SERSC 391
윈도우즈파일시스템에서파일명령구별을위한디지털포렌식방법 [ 그림 4-(a)] 에서 a 부분에들어있는 LittleEndian 방식으로저장된타임스탬프 BB6AA0A4 B3B3D001 생성시간과접근시간에는이타임스탬프는 MFT 엔트리수정시간 FBA79BA4B3 B3D001 과시분초까지동일하지만수백나노초의시간차이가있다. 파일복사가수행된시각과 MFT 엔트리에기록하는데미세한지연시간차를의미하고 1 초이하의시간이므로복사수행시간에서크게차이가나지않는다 [12]. TCC&CC 에입력타임스탬프를인가하면식 (15) 와같이된다 (15) 식 (15) 를적용한후에각 TCC& CC 기능의출력은식 (2) 에의하여식 (16) 과같이된다. 식 (16) 의 OB2D 는 [ 표 2] 의두번째행에따라서식 (17) 과같은결과를얻는다.(001)FDD 는포렌식디코더의출력을나타내며식 (15) 에서와같이주어진타임스탬프를포렌식구별함수에인가하면 파일복사 라고구별한다. (16) (17) 4.4 사례 3: 파일덮어쓰기 - 소스남김의경우 d: 드라이브의 SrcDir 디렉토리에들어있는파일과 WorkingDir 디렉토리에들어있는파일명이동일한경우에파일을이동하여덮어쓰기를하는경우이다. 덮어쓰기-소스남김 명령은파일탐색기창에서마우스로파일을 Ctrl+Drag&Drop 을한다. 파일연산 : 파일덮어쓰기-소스남김명령소스파일명 :d:\srcdir\fstudy.exe 타겟파일명 :d:\workingdir\fstudy.exe 392 Copyright c 2015 SERSC
보안공학연구논문지 Journal of Security Engineering Vol.12, No.4 (201 5) 연산일시 :2015-07-0206:50:16 명령전파일의타임스탬프 : d:\srcdir\fstudy.exe:[ 그림 5-(a)] $STANDARD_INFORMATION C:2015-07-0204:44:39W:2014-03-0614:53:26 E:2015-07-0204:51:08A:2015-07-0204:50:54 $FILE_NAME C:2015-07-0204:50:54W:2014-03-0614:53:26 E:2015-07-0204:50:54A:2015-07-0204:50:54 d:\workingdir\fstudy.exe:[ 그림 5-(b)] $STANDARD_INFORMATION C:2015-07-0111:45:05W:2015-05-2006:06:25 E:2015-07-0204:47:12A:2015-07-0111:45:05 $FILE_NAME C:2015-07-0111:45:05W:2015-06-2903:32:00 E:2015-07-0111:45:05A:2015-07-0111:45:05 명령후파일의타임스탬프 : d:\workingdir\fstudy.exe:[ 그림 5-(c)] $STANDARD_INFORMATION C:2015-07-0111:45:05W:2014-03-0614:53:26 E:2015-07-0206:50:16A:2015-07-0111:45:05 $FILE_NAME C:2015-07-0111:45:05W:2015-06-2903:32:00 E:2015-07-0111:45:05A:2015-07-0111:45:05 TCC&CC 에입력타임스탬프를인가하면식 (18) 과같이되고식 (18) 을적용한후에각 TCC& CC 기능의출력은식 (2) 에의하여식 (19) 와같이된다. 식 (19) 의 c c D 는 [ 표 2] 의두번째행에따라서식 (20) 과같은결과를얻는다.( o ) c DD 는포렌식디코더의출력을나타내며식 (18) 에서와같이주어진타임스탬프를포렌식구별함수에인가하면 파일덮어쓰기-소스남김 이라고구별한다. Copyright c 2015 SERSC 393
윈도우즈파일시스템에서파일명령구별을위한디지털포렌식방법 (18) (19) (20) [ 그림 5-(a)] 파일덮어쓰기 - 원본남김, 소스파일타임스탬프 [Fig.5-(a)]Fileoverwrite-sourceleft,timestampsforasourcefile [ 그림 5-(b)] 파일덮어쓰기 - 원본남김, 타겟파일타임스탬프 [Fig.5-(b)]Fileoverwrite-sourceleft,timestampsforatargetfile 394 Copyright c 2015 SERSC
보안공학연구논문지 Journal of Security Engineering Vol.12, No.4 (2015) [ 그림 5-(c)] 파일덮어쓰기 - 원본남김, 명령후타겟파일타임스탬프 [Fig.5-(c)]Fileoverwrite-sourceleft,timestampsforatargefileaftercommand 5. 결론 이연구에서는파일명령을실행한후에타임스탬프의변화패턴을이용하여어떤파일명령이수행되었는지판별하여포렌식의증거로사용하기위한방법을제안하였다. 본논문에서제안한 방법은 TimestampChangeCheck& CodeConversion(TCC& CC) 기능,BinarytoDecimal Conversion 기능, 그리고 ForensicDecisionDecoder 기능등의 3 부분으로구성하여어떤 명령을실행했을때명령실행이전과이후의달라진타임스탬프를비트들로변환한후에십진수값으로바꾼다음디코더로어떤명령이실행되었는지구분하는기능을수행한다. 타임스탬프의변화를이용하여어떤명령이수행되었는지분석할수있는방법이다. 이방법을구현하는데있어서주안점은타임스탬프의고유한변화패턴을중복되지않는형태로파일명령의실행을구별할수 있는기능을만들어내는것이다. 파일의생성, 복사, 파일덮어쓰기 - 원본남김등의사례를통하여 제안된방법을적용하여포렌식을위한어떤명령이실행되었는지구별의과정을보였다. [ 표 1] 에제시된생성, 복사, 이동등의 9 종의파일명령의타임스탬프변화패턴에관한조사는선행연구 [9] 의결과를인용한것이다. 드라이브내의이동과파일명변경명령의타임스탬프변화패턴은같은패턴이발생한다. 이경우는두명령을구분하는추가적인고려사항이필요하다. 이것은선행연구 [7-9] 에서 $LogFile 을이용한방법을도입하면어렵지않게해결될수있을것으로 생각된다. 본연구의방법은자동화된포렌식을구현하기위한목적으로설계되었다. 기존의포렌식툴의경우는포렌식분석가의경험과직관에의한수작업에많이의존한다. 자동화된방식은많은대상파일에적용하여분석시간을줄일수있다는의미에서필요하다. 이것을실현하기위해서는완성도높은포렌식툴을개발할필요성이있다. 그툴을사용하여자동적으로어떤명령이파일에적용되었는지알수있으면침해사실에대한분석이수월해지기때문이다. Copyright c 2015 SERSC 395
윈도우즈파일시스템에서파일명령구별을위한디지털포렌식방법 References [1] Wikipedia, MAC times, http://en.wikipedia.org/wiki/mac_times (2015). [2] B. Carrier, File System Forensic Analysis, Addison-Wesley. (2005), pp. 340-341. [3] K. P. Chow, Frank Y. W. Law, Michael Y. K. Kwan and K. Y. Lai, The Rules of Time on NTFS File System. SADFE 07, (2007) March, pp. 71-85. [4] C. Boyd and P. Forster, Time and Date Issues in Forensic Computing - A Case Study. (2004), Digital Investigation, Vol. 1, No. 1, pp. 18-23. [5] M. W. Stevens, Unification of relative time frames for digital forensics. (2004), Digital Investigation. Vol. 1, No.1 pp. 225-239. [6] S. Willasen, Hypothesis-based Investigation of Digital Timestamps. IFIP Internation Federation for Information Processing. (2008), Vol. 285, pp. 75-86. [7] Taehan Kim and Gyu-Sang Cho, A Digital Forensic Method for File Creation using Journal File of NTFS File System. (2010), Journal of KSDIM(ISSN:1738-6667), Vol. 6, No. 2, pp. 107-118. [8] Gyu-Sang Cho, Method for Finding Related Object File for a Computer Forensics in a Log Record of $LogFile of NTFS File System. (2012), Journal of the Institute of Electronics Eng. of Korea, Vol. 49-CI, No. 4, pp.1~8. [9] Gyu-Sang Cho, A Computer Forensic Method for Detecting Timestamp Forgery in NTFS. (2013), Computer & Security, Vol. 34, pp. 36-46.9 [10]Gyu-Sang Cho, A Digital Forensic Method by an Evaluation Function Based on Timestamp Changing Patterns. (2014), Journal of KSDIM(ISSN:1738-6667), Vol. 10, No. 2, pp. 91-105. [11]Gyu-Sang Cho, A Digital Forensic Analysis for Directory in Windows File System. (2015), Journal of KSDIM(ISSN:1738-6667), Vol. 11, No. 2, pp. 73-89. [12] Microsoft Developer Network, File Times, https://msdn.microsoft.com/en-us/library/ms724290(vs.85, loband).aspx0 (2015). Author 조규상 (Gyu-SangCho) 1996 년 3 월 ~ 현재 : 동양대학교컴퓨터정보전학과교수 1997 년 2 월 : 한양대학교전자공학과 ( 공학박사 ) 2010 년 9 월 ~2011 년 8 월미국 Purdue 대학교,Dept.ofComputerInformation Technology,CyberForensicLab,Visitingscholar 관심분야 : 디지털포렌식, 시스템보안 396 Copyright c 2015 SERSC