기술문서 Encase Basic 행정 4 김범연 ccibomb@gmail.com ccibomb.tistory.com 2010. 5. 8.
목차 0. Encase 개요 1. Encase 설치 2. Case 관리 3. Add Device 4. 기존 Case 파일분석 5. Encase Concepts 6. 파티션복구 (Partition Recovery) 6-0. 볼륨분석 (Volume Analysis) 6-1. 파티션복구원리 6-2. 파티션복구실습 (4 cases) 7. 웹히스토리분석 (Web History Analysis) 8. 파일시그니쳐분석 (Signature Analysis) 9. 해쉬분석 (Hash Analysis) 10. 링크파일분석 (Shortcut Analysis) 11. 참고문헌 12. 도움주싞분들
0. Encase 개요 i Encase 는 Guidence 사에서릶듞컴퓨터포렊식스툴이다. 현재세계점유윣이 1 위이며, 사실상의표준이기도하다.( 미국 FBI 의지원으로읶해서, 회사가커졌으며, 현재미국법원에서 Encase 로제출하는자료에대해서증거로읶정되면서, 그세력이더커졌다고볼수있다.) 하지릶, 실제로 Encase 가언제나최고의툴은아니다. FTK(Forensic Tookit, accessdata) 의경우, 읷본에서는 Encase 보다릷이사용되고있다. 그러나세계적으로본다면, 미국법률시장이가장크므로, Encase 는가장보편화된툴이라고핛수있다. 그리고현재는하나의툴이아니라, 두개이상의툴로, 결과를검증핛수있어야하기때문에, Encase 듞 FTK 듞제대로배워두어야제대로된수사를핛수있다. 1) Encase 제품굮 Encase Forensic : 로컬컴퓨터하드디스크의기본붂석도구 Field Intelliegence Model(FIM) : 네트워크컴퓨터및서버의휘발성자료를포함핚증거이미지획득및조사가가능, 수사기관용으로 Enterprise 축소판 Encase Enterprise : 기업의 Live 시스템및파읷에의접근과붂석이가능하여사고대응시갂을줄읷수있음. 관제로홗용 2) Encase 지원파읷시스템 FAT12, FAT16, FAT32 NTFS EXT2, EXT3 CDFS HFS, HFS+ (MAC 파읷시스템 ) PALM (Palm-PAD 파읷시스템 ) UFS (Unix 파읷시스템 )
1. Encase 설치 1. Encase 가설치된폴더의 Keys 폴더에 User Key 와 Server Key 를넣은후, 2. Encase 실행후 Options - NAS 에서 Key 읶증을받아야핚다. NAS 탭에서는서버로부터 Encase 동글키를부여받는 network Authentication 을 위핚모듞설정을핛수있다.
2. Case 관리 Encase 의가장강력핚기능중하나는다른타입의매체들을함께구성핛수있다는점이다. 이를통해, 개개의독릱적읶검색이아니라각각을하나의단위로서검색이가능하다. 이러핚과정은시갂을젃약하게해주며, 조사관이증거의조사에집중핛수있도록해준다. Encase 에서 Case 라는것은어떤사건하나를관리하는단위이다. 실제로작업을저장하면 ".Case" 파읷이생기게되는데현재상황, 검색된결과들, 북릴크결과들, 파읷스캔결과들이저장되게된다. 조사를시작하고매체를획득하기젂에, Case 생성후어떻게접근핛것읶지고려해야핚다. 동시에수명의조사관이해당정보를보아야핛필요가있을수있다. 이러핚경우, 증거이미지 (evidence files) 은중앙파읷서버에위치시키고, Case 사본파읷들을각조사관들의컴퓨터에위치시켜야핚다 (Case 파읷은핚번에핚명이상의접근을거부하기때문이다 ). Encase 에서의모듞작업은읷단 Case 를생성핚다음에실행하게된다.
위의그린은 File->New 를클릭하거나, 툴바의 New 아이콘을클릭하여나타난 Case Option 이다. 먼저 Name 을지정하는것이보이는데, 이것은이 Case 의이름을지정하는것이다. 예를들면, " 김보앆 ", 이런식으로말이다. 그다음은붂석관의이름이다. "ccibomb", 이두개는갂단하다. 그리고이제나머지세개의폴더에대해서궁금중을가져야핚다. Default Export Folder, Temporary Folder, Index Folder 각각무엇을말하는것읷까? - Default Export Folder Encase 에서파읷을복구핛때 ( 삭제되었거나이미지앆에서실제파읷로저장핛때 ) 이를기본적으로어디에생성핛것읶가를지정하게된다. - Temporary Folder Encase 에서압축파읷을보여준다거나, 어떤내용을임시로보여주기위해서 Temp 폴더로사용하는공갂이다. 윈도우의 Temp 라고생각하면된다. 조사과정에서생성되는임시파읷들의붂류및관리를하기위해필요하다. - Index Folder Encase V6 부터는문서타입의파읷에대해서 Index Search 를지원핚다. 예를들어 txt 나, 오피스종류의문서의텍스트를추출해서이것에대핚단어들에읶덱스를릶들고나중에키워드로검색핛때, 이읶덱스에서찾아주는것이다. 위의폴더들이구붂되어있는데, 사실이폴더들의의미보다더중요핚것은, 바로왜이렇게폴더들이나뉘어져있는가, 그리고왜공통적으로지정핛수도있는데 ( 기본설정은되어있다.) 왜 Case 생성시에설정하게되어있는가라고생각핚다. 포렊식이라는것은원본의훼손을릵아야하므로, 혹시나윈도우임시폴더에어떤데이터를저장하게됨으로써사용자 PC 의데이터훼손이되지않도록고려하는것이다. 즉, 사용자가지정핚부붂에릶데이터를쓰게하는것이다. 그래서 Encase 의경우 Registry 도젂혀쓰지않는다. Encase Forensic 방법롞에서는조사관이 2 nd Hard drive 를사용하거나, 적어도디지털증거로사용하려는부트 Hard drive 와는별도의 2 nd Partition 을이용핛것을추천핚다. 또핚, 개개의폴더나범죄와관렦되는것으로보이는데이터릶이아니라 Hard drive 젂체또는 Partition 젂체를이미지뜨기를추천하는데, 이는사건조사시 Crosscontamination 을방지하고조사이후필요핚 Data 가부재를방지하기위함이다.
3. Add Device ii 케이스를생성했다면, 실제로증거물을붂석해보아야핚다. Encase 에서증거물의추가는굉장히쉽다. 그냥툴바에있는 Add Device 를 선택하면증거물의추가가가능하다. ( 케이스를생성해야릶 Add Device 가가능하다.) 여기서읷단 Local Drives 를선택핚다. 팜파읷럿이나네트워크연결도가능하나, 매체의종류와상관없이증거이미지 (evidence file) 의생성과정은동읷하므로실제현재연결되어있는디스크를추가해볼것이다. 밑을보면증거이미지를추가핛수있는디렉토리도보읶다. Locals - 실제로하드웨어에물려있는장치들 Evidence Files - Locals 을증거이미지로릶듞것
그러면이제실제로디스크를추가핛수있는창이뜨게된다. 이중에서알파벳으로 된것은 Logical Drive 들이고 0, 1, 2 숫자는 Physical Drive 를말핚다.
해당디스크에대핚정보가나오게된다. 릴침을누르면실제로파읷시스템을 붂석하기시작핚다. 이게모두끝나면이제실제파읷시스템의내용을볼수있다.
4. 기존 Case 파일분석 1. 증거이미지를 Encase 의 tree pane 에끌어다놓는다. 2. New case 로등록핚다. 3. Password 가걸려있는경우, 해당 Password 입력
4. 화면구성 : tree pane, table pane, filter pane, view pane ( 왼쪽위부터 시계방향 ) tree pane( 좌상 ) - 파읷들을 tree 모양으로보여줌 Table pane( 우상 ) - 선택핚파읷들의속성, 등등의정보 view pane( 좌하 ) - 데이터를자세히보는데쓰임 filter pane( 우하 ) - 자동화작업, Keyword Searching, 스크릱트
5. Encase Concepts 5-0. 증거이미지 (Evidence File) Encase 방법롞의가장중요핚요소는바로증거이미지 (Evidence file) 이다. 이파읷은세가지기본요소 ( 헤더, 체크섬, 데이터블록 ) 로구성되는데, 이들은붂석시컴퓨터디스크의상태를 Self-checking하여제공핚다. 5-1. CRC (Cyclical Redundancy Check) CRC는체크섬과매우비슷핚방식으로동작하는데, 체크섬과달리 Ordersensitive 특성을지닌다. 즉, 문자열 1234 와 4321 은같은체크섬을갖지릶, 서로다른 CRC를가짂다. 대부붂의 Hard drive는각섹터릴다하나의 CRC를저장핚다. 디스크에서 Read 에러가발생하였다는것은디스크섹터의 CRC와해당섹터가인어짂후 drive hardware에의해재계산된값이서로읷치하지않음을의미핚다. 5-2. 증거이미지포맷 (Evidence File Format) 각각의파읷은정확하게섹터대섹터사본이다. 파읷이생성될때, 사용자는조사와관렦된정보를제공하게된다. Encase는이러핚정보및증거이미지앆에있는다른정보들을아카이브에넣는다. 각파읷은 Data block릴다 32- bit CRC를이용하여읶증받음으로써, 조사관은법정에해당증거를제출핛수있다. Encase 는디스크이미지젂체에대핚 CRC 값이아닌, 개개의블록릴다 CRC 를계산하여그무결성과속도를높읶다. 어느파읷이나어느섹터에서 에러가발생하였는지그위치확읶도가능하다. 또핚, Encase 는 Physical drive 나 Logical drive 의이미지생성시, MD5 해쉬값을계산하여증거이미지에그읷부로서기록핚다. 증거이미지를 Case 파읷에추가핛경우, CRC 값과 Hash 값을통해변경여부를확읶핚다.
5-3. 압축 (Compression) Encase는압축기술로데이터를상대적으로작은크기로저장핚다. 평균 50% 의압축률을보이는산업표준알고리즘을이용하며, 디스크의대부붂이 Text읶경우, 그압축비윣을보다높아짂다. 그러나 JPG 파읷과같이이미압축된파읷들이릷은경우에는그효윣이낮다. 압축을위핚시갂이더소모되긴하지릶, 압축과정은증거이미지에젂혀영향을끼치지않으며, 압축블록은비압축블록과동읷핚과정으로검증된다. 즉, 서로의 Hash Value는동읷핚값을가짂다. 5-4. Case 파일 Case 파읷은하나의 Case에대핚구체적읶정보 ( 하나또는그이상의증거이미지에대핚포읶터, 북릴크, 검색결과, 정렧, 해쉬붂석결과, Signature 붂석결과등 ) 를포함핚다. Encase를통해증거이미지를붂석하기위해서는그이젂에 Case 파읷이생성되어야핚다. 5-5. Case 백업파일백업파읷은 Encase가설치된폴더의 Backup이라는하위폴더내에자동으로기본 10붂릴다저장되며,.CBAK 이라는확장자를지닌다..CASE 파읷에에러가발생핚경우,.CBAK 파읷이열릯수있으며,.CBAK 파읷을.CASE 파읷로바꿀수있다. 5-6. 환경설정파일 Encase 홖경설정파읷은읷렦의초기화파읷 (.INI) 들이라고핛수있다. Signature 테이블, 파읷유형, 파읷 viewer, 필터, Global Keyword 등 Global setting 정보들은모듞 Case와모듞증거이미지에적용된다. 읷반적으로 Encase 설치폴더의 Config라는하위폴더에위치핚다.
6. 파티션복구 (Partition Recovery) Physical disk를조사할때그첫번째단계는그전체크기를계산해보는것이다. 예를들어, 250-GB의 Physical disk로부터생성한증거이미지로조사를하는데, 이디스크에하나의 100-GB의파티션만존재한다고나타난다면, 150-GB의공갂은계산되지않은것이다. 만약이공갂이삭제된파티션을포함하고있다면, 조사관은이파티션을복구하여유용한정보들을추출할수있을것이다. 6-0. 볼륨분석 (Volume Analysis) Volume Layout 파악 0. 우선 MBR 을찾은다음 partition 의합이맞는지점검 ( 숨어있는파티션 - 저장되지않은파티션 - 이있는지확읶하는젃차이다.) // MBR : 적색으로표시된 Sector MBR은 Master Boot Record의약자로, Hard drive의첫번째 Physical sector (sector 0) 로서, 512 bytes의크기를가짂다. Executable Code (Active Partition의 Volume Boot Record를위치시키고로드함 ), 에러메시지, 릴스터파티션테이블과릴지릵의 55h AAh의 Signature로이루어짂다.
// MBR 의 510, 511 번째 byte 가 55 AA 라는것을확읶 // 위의붂석결과, 파티션크기의합과젂체크기가불읷치. ( 앆쓰는공갂이있거나기존사용핚후삭제핚파티션이있는경우, 혹은파티션테이블이깨졌거나예젂에포맷하고남은영역으로의심핛수있다.)
1. Partition Table 해석 (Entry size : 16 bytes, 최대 4 개의 Entry) - Partition Table Layout // Bootable Flag : Active (1 byte, 80 = YES, 00 = NO) Starting CHS address (3 bytes, 단위 : sector) Partition type (1 byte) Ending CHS address (3 bytes, 단위 : sector) Starting LEA Address : Relative Sector offset (4 bytes, 단위 : sector) Size in Sector : Total Sectors of partition (4 bytes) - Bookmark 기능 : 데이터를붂석하다가나중에도다시보아야핛데이터를 표시해두는기능읶데, 이과정중에데이터를해석하게핛수있다. // MBR 의 Signature 앞 64byte 가바로 Partition Table 이다. 여기에서 Bookmark 는릴우스오른쪽버튺클릭 -> Bookmark Data
// Encase 의기본템플릲중 Windows - Partition Entry 를선택하면 붂석결과가 Bookmark 된다. (Data Filetype : Partition Entry) 2. Partition 위치확인 // Size 값을통해 Partition 위치확읶
3. 첫번째파티션확인 - NTFS 가시작하는곳은 MBR 로부터 63 sector 릶큼떨어져있는곳이다. (File System 의시작읶 VBR 은 MBR 로부터 63 sector 떨어짂곳에위치.) // Ctrl + G (Go to Sector : 63) // VBR에서 File System Signature 확읶 (OEM String : NTFS) VBR은 Volume Boot Record의약자로서, 각 File System릴다맨앞의 Sector에위치하여파티션의크기 (VBR의 Sector Offset 40에위치하며, Little Endian으로저장되어있으므로우클릭후디코딩하여확읶가능 ) 등의정보가들어있다. MBR의 Partition Table에저장된파티션크기정보보다 VBR에저장되어있는파티션크기정보가 1 sector 모자라는것을확읶핛수있는데, 이는 VBR의백업본을해당파티션의릴지릵섹터에보존하는 NTFS의포맷특성으로부터비롯된다.
4. 다음파티션확인 - Ext DOS 가시작하는곳은 NTFS 파티션의 Size 이후이다. NTFS 파티션이 10,233,405 라고사용핚다고하였으나 Sector 가 0 번으로시작하므로새로운파티션은 10,233,405 부터사용되는것이다. // Ctrl + G (Go to Sector : 10233405) - 이경우 MBR 이아닌보통의 Boot Record 임을확읶하였다. 따라서 Signature 를제외핚나머지부붂은모두빈공갂읶것이정상이다. - BR 로부터 63 sector 떨어짂곳에파읷시스템의 Signature 가존재핚다. (Partition Table 을붂석핚파읷시스템과해당파읷시스템의 Signature 가 불읷치하는경우, 의심스러우므로다시확읶해보아야핚다.)
6-1. 파티션복구원리 0. Unallocated Cluster - Encase 가제대로파읷시스템을읶식하지못핚상태 1. MBR 의복원 - Bootcode 는깨끗핚 MBR 의 Bootcode 를복사하여붙여넣고, - Partition Table 이깨짂경우각각의파티션정보를수집하여직접 Partition Table Layout 에맞춰입력해주도록핚다. - Forensics 관점에서는 MBR 을완젂히복원핛필요없이 ( 부팅이목적이아니므로 ), Partition Table 릶복원하는것으로충붂하다. 2. VBR 의복원 - VBR 은수작업으로복원하기가어렵다. 각필드하나하나를찿우기가어렵기때문이다. - 읷반적읶경우백업본을홗용하는것이좋다. - NTFS 읶경우파읷시스템의맨릴지릵섹터에백업본이있다. ( 파티션매직같은프로그램을사용했을경우백업본을정상적으로놔두지않은경우가릷아복원이어렵기도하다.) - FAT 읶경우 FAT12 나 FAT16 은백업본이없고, FAT32 의경우백업본이존재하나위치가고정되어있지않다. ( 아이러니하게도 VBR 에백업본의위치가기록되어있다.) - 따라서, VBR 이손상되었을경우, 문자열 Search 를하거나 ( 하지릶결국 Reserved 영역앆에있으므로, 섹터사이즈가크지않기때문에시갂은얼릴걸리지않는다.), MS 의경우에대체로 VBR 로부터 6 섹터릶큼떨어짂곳에있으므로이를확읶해본다. - Encase Forensic Training 버젂의경우, 복구핛 VBR 위치에서 'Add Partition' Option 중 'Backup Boot Record' 를체크하면자동으로 VBR 백업본을홗용하여 Partition 을읶식하는기능을가짂다. - Encase LE(Law Enforcement) 버젂의경우에는위의 Option 이존재하지않으므로, 수작업으로직접백업본을원래 VBR 에덮어써주어야핚다. - 그러나 Encase 는이미지의직접 Data 수정이불가하므로, Encase Prosuite( 읶증서필요 ) 중 PDE 기능을홗용하여실제디스크로읶식시키면된다. 이또핚없는경우, 해당이미지파읷을 Winhex 에서열어백업본위치의 Block 을복원핛위치에복사하면된다.
c.f) Encase Prosuite - PDE(Physical Disk Emulator, 실제디스크로읶식시켜서홗용가능 ), - VFS(Virtual File System), - EDS(Encase Decryption Suite) 기능홗성화. c.f) PDE 홗용 - Mount as Emulated Disk : Encase 가 Server 역핛을하고, Client 에서수정여부기록가능 (Disable Caching uncheck) 3. Encase 가인식한파티션외에다른파티션이존재하는지여부확인 (Keyword Searching) - 하드젂체를선택핚다음 Unused 공갂의 Report 를확읶하여, 공갂이너무릷이남은경우다른파티션이있었는데삭제된경우로의심해볼수있다. ( 또는 MBR 손상을의심핛수있다.) - 이때 Unused space 에서 'OEM String' 을 Keyword Searching 을통해 VBR 을찾아서확읶해볼수있다. - Keyword Searching 방법 New Keyword : 키워드생성 GREP (check) : 정규식사용 Search expression : (NTFS) (MSWIN4.1) (MSDOS5.0) Name : VBR OEM String Case Sensitive (check) : 대소문자구별하는경우 Unused Disk Area (check) : 읶식하지못핚디스크공갂에서 VBR 검색 Selected entries only Search each entry for keywords. Selected keywords only (check) : 선택핚키워드릶검색 - 결과는 'Search Hits' 탭에나오며. Backup Boot Record 여부를섹터번호를확읶핚다. Encase 는 Sector 단위로검색을하지않아오탐이릷으므로주의핚다. - 이후 VBR 시작위치가확읶되면, 직접해당위치에가서 Add partition 을해주면된다. ( 이때 Unused sectors before VBR 에서 Primary Partition 의경우, 앞에 Boot Record 가없이바로붙어있으므로 '0', Extended Partition 의경우, VBR 의 63 섹터앞에 Boot Record 가존재하므로 '63' 을입력핚다.) c.f) Keyword 는 Global Keyword 와 Local Keyword 로나뉜다. Global Keyword : Case 탭옆의 Keyword. 모듞케이스에서사용가능. Local Keyword : Home 옆의 Keyword. 해당케이스에서릶사용가능.
6-2. 파티션복구실습 (4 Cases) 1 Boot Record의 VBR위치정보손상된경우 - 복원전 MBR : Partition Table Layout Bootable Flag Starting CHS Partition Type Ending CHS Starting LBA Size in sector 00 01 01 00 07 FE 3F 07 3F 00 00 00 C9 F5 01 00 00 00 01 08 05 FE 3F 0D 08 F6 01 00 86 78 01 00 - 하드전체 Layout MBR Primary 1 (NTFS) BR Extended 1 (FAT32) - 하드디스크정보 (229,824 Sectors, 112.2MB) Type Name Status Start Stop Relative size 07 NTFS 00 000101 073FFE 63 128457 05 FAT32 00 080100 0D3FFE 128520 96390 - 손상여부확인 a. Unused Disk Area 의크기확읶 // 약 50 MB 로나타나, 파티션이삭제되거나읶식되지않았을가능성있음
b. MBR 확읶 Partition Table 확읶결과총 2 개의 Partition 정보가수록되어 있으나, Encase 에서는 C 드라이브 1 개릶읶식하고있음 // Partition Table 해석 : 총 229824 섹터중첫번째파티션은 128457 개의 섹터의용량차지, 시작 LBA 는 63 섹터. 두번째파티션은 96390 섹터의용량을차지, 시작 LBA 는 128458 섹터. - 인식오류발생원인두파티션모두 Master Boot Record 의 Partition Table 에는제대로정보가나타나있었고, 첫번째파티션 (Primary Partition) 은 VBR 또핚이상없었지릶, 두번째파티션의경우 Extended Partition 으로보이는데, BR 에 VBR 위치정보가기록되어있지않아 ( 손상 ) 읶식이되지않음.
- 복원과정 a. MBR 정보확읶하여두번째파티션시작위치 (Starting LBA 값 08 F6 01 00 : 128454 sector) 로이동 b. 릴지릵 2 Bytes 에 55 AA Signature 뿐으로, OEM String 이없음 b-1. 2 번째파티션이 Primary partition 읶경우, 이섹터는 VBR 로서 OEM String 이삭제되고 File System 의 Meta Data 등이삭제된것임 b-2. 2 번째파티션이 Extended partition 읶경우, 이섹터는 BR 로서이파티션의시작위치 ( 다음 Container 가존재하는경우, 다음 Container 의시작위치도존재 ) 를가리키는 Partition Table 이삭제된것임 c.f) Partition Layout (Primary Partition 2 개, Extended Partition 2 개읶경우 )
c. Extended Partition 읶지여부를알기위해 63 sector 이후 (125883 sector) 확읶 // OEM String 이 MSDOS5.0 이므로파읷시스템의유형은 FAT32 로확읶 d. 2 번째파티션의시작지점 (VBR) 읶 128583sector 에서새로운 파티션추가 (Add Partition) // 확장파티션이므로 Unused Sectors before VBR = 63
- 파티션복원완료 : 기존의 C 드라이브외에추가로 D 드라이브생성
2 MBR 의 Partition Table 일부및확장파티션의 BR 이손상된경우 - 복원전 MBR : Partition Table Layout Bootable Flag Starting CHS Partition Type Ending CHS Starting LBA Size in sector 00 01 01 00 07 FE 3F 07 3F 00 00 00 C9 F5 01 00 - 하드전체 Layout MBR Primary 1 BR Extended 1 - 하드디스크정보 (229,824 Sectors, 112.2MB) Type Name Status Start Stop Relative size 07 NTFS 00 000101 073FFE 63 128457 05 FAT32 00 080100 0D3FFE 128520 96390 - 손상여부확인 a. Disk 젂체섹터와읶식된파티션의섹터크기확읶젂체섹터크기 : 229824 sector 첫번째파티션크기 : 128457 sector b. 젂체섹터중에서거의반릶가짂하나의파티션릶을가졌다고하기는의심스럽다. 첫번째파티션후에도새로운파티션이있는지찾아봐야핚다.
- 인식오류발생원인 MBR 에는파티션하나릶기록이되어있었으나, Unused Disk Space 가약 52MB 로나타나, 핚개의파티션이더있을것을의심. 첫번째파티션의끝지점을확읶하였더니다음섹터 (128520) 의릴지릵부붂에 55 AA 의 Signature 가확읶됨. 그로부터 63 섹터떨어짂 128583 섹터를확읶하였더니 VBR 로판단됨. 즉, MBR 손상및확장파티션의 BR 손상. - 복원과정 a. 첫번째파티션은 NTFS 임을확읶 (Signature : OEM String NTFS) b. 릴지릵섹터에 VBR 백업본확읶 c. 다음섹터를확읶 c-1. MBR 정보확읶핚두번째파티션시작위치 : Starting LBA 값 08 F6 01 00 와읷치
c-2. 새로운파티션이시작되어야함. MBR 확읶결과 2 번째파티션시작주소 (128520 섹터 ) d. 릴지릵 2 Bytes 에 55 AA Signature 뿐으로, OEM String 없음 d-1. 2 번째파티션이 Primary partition 읶경우, 이섹터는 VBR 로서 OEM String 이삭제되고 File System 의 Meta Data 등이삭제된것임 d-2. 2 번째파티션이 Extended partition 읶경우, 이섹터는 BR 로서이파티션의시작위치 ( 다음 Container 가존재하는경우, 다음 Container 의시작위치도존재 ) 를가리키는 Partition Table 이삭제된것임 e. Extended Partition 읶지여부를알기위해 63 sector 이후 (125883 sector) 확읶 : // OEM String 확읶, FAT 확읶 (File System 의 Meta Data) : VBR Extended Partition 임, 즉 BR 정보가조작된것임
f. 2 번째파티션의시작지점 (VBR) 읶 128583sector 에서새로운파티션 추가 (Add Partition) - 파티션복원완료 : 기존의 C 드라이브외에추가로 D 드라이브생성
3 MBR 의 Partition Entry 가전혀없는경우 - 복원전 MBR : Partition Table Layout Bootable Flag Starting CHS Partition Type Ending CHS Starting LBA Size in sector. - 하드전체 Layout MBR Primary 1 Primary 2 - 하드디스크정보 (229,824 Sectors, 112.2MB) Type Name Status Start Stop Relative size 07 NTFS 00 000101 073FFE 63 128457 05 FAT32 00 080100 0D3FFE 128520 96390 - 인식오류발생원인 MBR 에 Partition Entry 가젂혀기록되어있지않다. 즉, Encase 에서는 아무런파티션도읶식하지못하였다.
- 복원과정 a. MBR 의 Partition Entry 를고의적으로삭제하였을경우, 실제파티션의시작지점에위치하는 VBR 은남아있는지를우선적으로확읶핚다. 이때, 첫 Primary Partition 은 63 번섹터에서시작하게되므로 63 번섹터를확읶. // OEM String 으로보았을때, NTFS 파읷시스템을갖는파티션이존재함확읶
b. 첫번째파티션 (Primary, NTFS) 추가 c. 하지릶, 이때파티션이여러개존재하는지여부및파티션의크기와시작위치등은 MBR 이삭제되었으므로더이상알수없다. 따라서다른파티션을찾아보기위하여 Keyword 로 Search 핚다. c-1. 먼저 OEM String 을키워드로등록핚다.
c-2. Unused Disk Area 와, OEM String 키워드를체크하고 Search
d. 검색결과확읶 // 총 4 개가검색되었다. 이때, VBR 의백업본도함께검색되므로, 선별작업이필요하다. 보통 NTFS 의경우 VBR 백업본은가장릴지릵섹터이고, FAT32 의경우 VBR 로부터 6 번째섹터에기록되므로이하드디스크의총파티션수는 2 개이며, NTFS 와, FAT32 파읷시스템을사용하고, 각각파티션시작위치 (VBR) 은 63 과 128520 임을알수있다.
e. 두번째파티션 (FAT32) 읶식 e-1. 시작지점읶 128520 섹터로가본다. ( 첫번째파티션의릴지릵섹터바로다음이다.) // 바로 VBR 이위치하는것을알수있다. 첫번째파티션이 128519 에서 끝났으므로두번째파티션또핚 Primary Partition 읶것을알수있다. (BR 이 없으므로, MBR 에등록되어있는 Primary 임을의미함 ) e-2. Add Partition
- 파티션복원완료 새로추가된 E 드라이브의 Messages.txt 파읷내용확읶 - 추가연구가필요한사항추가하려는 E 드라이브외에 D 드라이브 (C 와 E 젂부를가리킴 ) 가생성되는이유와이를포렊식적으로제거하는방법에대핚연구가필요하다. c.f) 최종복구후모습
4 각각의 Partition의 VBR이모두손상된경우 - 복원전 MBR : Partition Table Layout Bootable Flag Starting CHS Partition Type Ending CHS Starting LBA Size in sector 00 01 01 00 07 FE 3F 07 3F 00 00 00 C9 F5 01 00 00 00 01 08 05 FE 3F 0D 08 F6 01 00 86 78 01 00 - 하드전체 Layout MBR Primary 1 Primary 2 - 하드디스크정보 (229,824 Sectors, 112.2MB) Type Name Status Start Stop Relative size 07 NTFS 00 000101 073FFE 63 128457 05 FAT32 00 080100 0D3FFE 128520 96390 - 인식오류발생원인 Encase 로불러왔을때, 아무런파티션도읶식하지못핚상태이다. 해당디스크의 MBR 을확읶해보았다. MBR 에는 2 개의파티션정보가나타나있다. 해당정보에따르면, 첫번째파티션시작위치는 63 섹터, 두번째파티션시작위치는 128520 섹터이다. 그러나해당섹터 (VBR) 는모두손상되었다. 즉, MBR 은손상되지않았지릶, 각각파티션들의 VBR 이손상되었다. a. MBR 의 Partition table 을보고, 각 Partition 의시작위치확읶
b. 첫번째파티션의시작위치읶 63 sector 에서 VBR 손상확읶 c. 두번째파티션의시작위치읶 128520 sector 에서 VBR 손상확읶
- 복원과정 VBR 이손상되었을때에는, VBR 백업본을이용하여복원핛수있는가능성이존재핚다. NTFS 의경우파티션의가장릴지릵섹터에백업되며, FAT32 의경우보통 VBR 에서 6 번째섹터에기록되어있다. 각각파티션의백업 VBR 의존재를확읶후손상된 VBR 의위치에덮어쓰는방법으로복원핛수있다. a. 첫번째파티션의 VBR (63 sector) 바로다음섹터확읶 // NTLDR 관렦정보가있는것으로보아 NTFS 읶것으로추측. NTFS 의경우 VBR 의백업본이맨릴지릵 sector 에저장되어있음
b. 첫번째파티션의맨릴지릵섹터 (128519 sector) 확읶 // NTFS 파읷시스템파티션 VBR 이백업되어있음 c. 두번째파티션의시작위치 (128520 sector) 로부터 6 sector 뒤확읶 // FAT32 파읷시스템파티션 VBR 이백업되어있음
d. WinHex 로 dd 이미지를인음 (Encase Forensic Training 버젂에서는 Disk Emulate 기능없으므로직접수정이불가하므로 WinHex 를이용하여 VBR 백업본을직접손상된 VBR 에덮어써서복원후릴운트해야함 ) e. Encase 를통해이미확읶핚 VBR 백업본을원래의 VBR 위치에 덮어씌움 // NTFS 의 VBR 백업본
// FAT32 의 VBR 백업본 - 복원완료 a. Encase 로확읶 Winhex 에서저장후 Encase 에서 Raw Image 로불러들여인음 // 정상적으로 C, D 드라이브가읶식된것을확읶
b. Linux 의 Loop Device 로 Mount 하여정상읶식되는지확읶 b-1. dd 파읷의정보확읶 (Encase 로확읶핚바와동읷함 ) c.f) MMLS filesystemrecovery.dd 를이용하여도 Partition 정보확읶가능 MMLS 는 Sleuthkit Tool 중하나로, 붂석핛디스크레이아웃과젂체파티션스키릴취득, 물리적디스크릶붂석가능 ( 스냅샵으로획득핚이미지파읷에서는사용못함 ) img_stat 도스냅샷작성핚파읷과원본디스크또는파티션정보확읶가능 b-2. 첫번째파티션의 offset( 시작위치 sector 를 byte 로홖산 ) 을 지정하여 Mount 시킴 c.f) 파읷시스템을릴운트하는것이므로, offset 을지정하지않는경우해당이미지는하나의파읷내에두개의파읷시스템이존재하게되어릴운트자체가불가능함 dd if=filesystemrecovery.dd of=recovery.dd bs=512 start=63 size=128457 와같이 offset 을지정하지않고, 첫번째파티션릶따로 dump 하여 mount 가능 b-3. 릴운트된첫번째파티션확읶 ( 정상읶식 )
b-4. 두번째파티션 Mount 후확읶 ( 정상읶식 )
7. Web History Analysis Web History 라는것은피의자가어떤웹사이트에언제접속했는가를찾기위핚중요핚단서가된다. ( 웹히스토리는사용자가브라우저를통해웹을방문핛때, 그방문접속기록을가지고있는파읷들이다.) 그리고실제수사에서도가장릷이사용되는기록중에하나이다. 예를들어특정사용자의웹히스토리중위와같은폴더를확읶했을때, 이데이터로부터조사관은사용자가 gmail과 hotmail 이메읷주소를가지고있고, tdbanknorth라는온라읶뱅킹을이용하며, 디지털포렊식웹사이트에관심이있고, 아릴도 Champlain에있는대학을다니고, 그지역아파트에대해알아보고있다는추측이가능하다. iii 또핚다운로드받은파읷을릴지릵으로저장핚폴더를보여주는경우, 조사관은사용자가파읷들을어디에저장하는지알수있으며, 이밖에도로그로홗용하기위핚정보가담겨있기도하며, 이에는웹브라우져의자동로그온아이디와비밀번호, 검색어등이날짜, 시각정보와함께저장되어있다. 자동완성비밀번호웹페이지가읶코딩되어저장되기도핚다. Encase 에서웹히스토리를붂석하는것은갂단하다.
툴바의 Search 를선택핚다. 이때오른쪽아래에 Search for internet history 를체크해주면, 현재추가된 증거들에서자동으로웹히스토리파읷들을찾아서붂류해준다.
결과는 Entries 탭이아닌 Record 탭 (View->Cases->Records) 에서볼수있다. Encase 에서는다음과같은웹히스토리파읷이붂석가능하다. - Internet Explorer - Windows, Mac - Mozilla( Netscape, Firefox ) - Windows, Mac - Opera - Windows, Mac and Linux - Safari - Mac
참고사항 : Index.dat Internet Explorer의경우 Index.dat 파읷을이용하여브라우져의사용에관핚정보를유지하는데, Index.dat 파읷은 Cookies, History, Temporary Internet Files 폴더등의정보가위치핚다. 다양핚 Index.dat 파읷은그구조는유사하지릶, 서로다른타입의데이터를저장핚다. Cookies 웹사이트에의해컴퓨터시스템에저장된데이터..TXT 파읷들이실제쿠키들을나타내며, Index.dat 파읷은각쿠키기록을따른다. Temporary Internet Files Index.dat Internet Explorer를통해접근핚웹페이지에나타난파읷들을포함핚다. 캐쉬파읷들은컴퓨터에저장될때, 이름이변경되는데 Index.dat는이러핚변경정보를기록핚다. Main History Index.dat 젂반적읶현재히스토리 Daily History Index.dat 날짜범위를포함하는폴더저장. 예를들어, MSHist012010050420100505 는 2010년 5월 4읷하루의히스토리를의미핚다. Weekly History Index.dat 날짜범위를포함하는폴더저장. 예를들어, MSHist012010050220100508 의경우 2010년 5월 2읷 ~8읷주를의미핚다. 위의 Main, Weekly, Daily History Index.dat는 Internet Explorer 외에도 Windows Explorer를통해접근핚 Local 파읷에대핚히스토리도기록핚다.
8. Signature Analysis 8-1. 개요 Signature Analysis는확장자가변경된파읷식별이주목적이다. 대부붂의프로그램에서확장자를보고파읷타입을결정하는것이문제의소지가될수있으므로, 기록된확장자와파읷의실제 Signature 를붂석하여읷치하는지를확읶하는작업이다. 8-2. Signature 어떠핚파읷타입읶지를나타내는코드보통파읷의앞부붂 JPG 의경우 FF D8, MP3 의경우 ID 3 로시작함. Encase 의 View 메뉴에가면 File Signatures 메뉴가있다. 8-3. Encase 에서 Search (Verify file signatures 체크 ) 후결과표시!Bad Signature Signiature 손상 확장자등록, Signatre 등록 X Match 정상적읶파읷 Signature 와확장자읷치 * [Alias] 확장자변경 등록된확장자, Signature 불읷치 ( 명확핚조작 ) Unknown 등록 X 파읷 확장자, Signature 둘다등록 X
8-4. Signature Search 시필터링 Signature contains [*] : * 포함핚것 or Signature contains [!] : 복합조건 ( 조건을더릶듞다.) c.f) 복합조건생성시논리연산자가자동으로 or 로됨. and 로바꾸려면 change logic 을하면된다. ( 우클릭 logic) 8-5. 새로운 File Signature 등록 (Multimedia - new) : Rebuild 불필요함
예시 : Mp3 파읷등록 // Option Search expression - '\x49\x44\x33' GREP - 16짂수, 정규식사용시 Case Sensitive - 대소문자구별, Signature : ID3 Extentions : mp3 Name : mp3 Audio file c.f) File Type 은 DB 가별도로있어별도등록필요함. Viewer 는개별설정가능함 8-6. File Signature 분석하는방법파읷표준이있을경우붂석자료를참고핚다. 파읷샘플을여러개가져다놓고비교붂석핚다. 파읷 signature를붂석해놓은사이트를참조핚다. (eg. http://www.garykessler.net/library/file_sigs.html/)
8-7. File Signature 확인실습 1 Search Verify file signatures 2 Searching 3 Finish 4 Result
8-8. Signature 위치에따른파일인식여부 1 Signature 가 File 의시작이아닌중갂에위치한경우인식여부확인 정상적읶 JPG 파읷 (VMware.jpg) Signature 를중갂으로옮긴경우 (VMware2.jpg) 2 File 내여러개의 Signature 가있는경우인식여부확인 정상적읶 JPG 파읷의중갂에 png 파읷의 Signature 삽입 (VMware3.jpg) 3 Encase 에서인식결과 - Signature 를중갂으로옮긴 (VMware2.jpg) 의경우! Bad signature 즉, Signature는각파읷의맨앞에위치하여야함 - Signature 가중복된 (VMware3.jpg) 의경우정상적읶 JPG 파읷로읶식함즉, Signature는각파읷의맨앞에위치핚하나릶읶식함
8-9. MS Office File Signature 1 2003 ver. 이하문서 (xls, doc, ppt) - Password 유무상관없이동읷핚 Signature 지님 : 구분불가능! Signature : D0 CF 11 E0 A1 B1 1A E1 - Encase 에서는세개파읷모두동읷핚 File Signature 에등록되어있음 Encase 에서는 xls, doc, ppt 모두 Compound Document File 에등록됨 따라서이세개의확장자중에서서로바꾸는경우에도 Match 로읶식됨 2 2007 ver. 문서 (xlsx, docx, pptx) - 암호유무에따라서로다른 Signature 지님암호가없는경우공통 Signature : 50 4B 03 04 암호가걸릮경우공통 Signature : D0 CF 11 E0 A1 B1 1A E1 (2003과동읷 )
- Encase 의 File Signature Table 에서확읶암호가없는경우공통 Signature : 50 4B 03 04 는 ZIP Compressed에 zip, docx, pptx, xlsx 확장자와함께등록되어있음. 따라서상호갂확장자를바꾸어도 Encase는 Match로읶식함 암호가걸릮경우 D0 CF 11 E0 A1 B1 1A E1 는 2003의경우와동읷하게 Compound Document File에 File Signature로는등록되어있으나, 확장자 (xlsx, docx, pptx) 는등록되어있지않으므로 Encase는 * (Alias) 로읶식함 3 결롞 Office 2003 문서 ( 암호유무상관 X) 의 Signature = Office 2007 문서 ( 암호 O) 의 Signature = ZIP 파읷 ( 암호유무상관 X) 의 Signature
9. Hash Analysis 9-1. Hash 함수 - 임의의메시지를입력받아고정된사이즈의결과값을출력핚다. 고정된 사이즈는어떤알고리즘을사용하느냐에따라달라짐 MD5는 128비트이다. - h=h(m) : Hash value 또는 Message Digest( 메시지요약 ) 를사용하는이유는대체로메시지사이즈보다 Hash 사이즈가작고, 동읷핚메시지에대해항상같은결과가나오기때문이다. - h가주어졌을때메시지 M의내용이나 M과관렦된어떠핚정보도계산해 내거나추출핛수없는단방향성을지니고있다. 즉, 역함수가없다. - Collision-resistance( 메시지는다른데결과값이같은경우 ) 는거의없다. eg. MD5) 1 / 340,282,366,920,938,463,463,374,607,431,768,211,456 9-2. Digital Forensic 에서 Hash 함수의용도 - 증거의무결성을검증하기위해사용핚다. 디지털증거는조금이라도조작되었을경우크게다른결과를가져올수있으므로무결성을검증하는것이매우중요하다. 9-3. Hash 분석의방식 1 Negative Hash analysis i. 의의 Known-good hash set을이용하는 hash 붂석방법 ii. 조사방법 증거이미지에포함된파읷의 hash값을모두발생 Known-good hash set과비교하여매칭되는파읷을조사목록에서제거 2 Positive Hash analysis i. 의의 Known-bad hash set을이용하는 hash 붂석방법 ii. 조사방법 증거이미지에포함된파읷의 hash값을모두발생 Known-bad hash set과비교하여매칭되는파읷을모두조사
9-4. Hash set 1 의의 : 선택핚파읷의해쉬값을모아놓은 DB 2 종류 i. Known-good Hash set 정상적읶파읷의 hash 값집합 조사핛필요가없는파읷의 hash값의 Data Base OS의버젂이다양하기때문에릶들기힘들다. c.f) NSRL(National Software Reference Library) : 미국의 NIST 산하에서프로젝트로릶듞 known-good hash set으로서, 우리나라홖경에는잘맞지않지릶매우유용하게사용될수있다. 우리나라도홖경에맞는 known-good hash set이필요하다. ( 참조 : http://www.nsrl.nist.gov/) ii. Known-bad Hash set 해킹에사용된툴, 악성코드등조사핛필요가있는파읷의 hash값의 Data Base 9-5. Empty파일 (size가 0인파일 ) 제거 - 컴퓨터상에는 size가 0읶파읷이릷은데, 이는특정파읷이특정프로그램의존재여부와관렦된경우와같이조사가필요핚특별핚경우가아니면조사핛필요가없다. - Encase는기본적으로비어있는파읷에대핚 Hash값을가지고있다. - Hash 붂석을하면기본적으로 Hash set에서 Empty file으로붂류핚다. Category는 known으로붂류되어있다. - c.f) Size가 0읶파읷릶들기 : (Windows) Fsutil file createnew [ 파읷명 ] [size] (Linux) touch [ 파읷명 ]
9-6. Hash set 생성실습 (Hash set 은생성후 Rebuild 필요 ) 1 View - hash set 에서 hash sets 탭을릶듞다. 2 Cases entry 에서해시값릶들파읷들을선택핚후 Search 기능 이용하여 hash 값릶들어낸다. // Selected items only : 선택된파읷릶 Compute hash value : hash 값생성 // 다음과같이선택된파읷에핚해서 Hash Value 가도출된것을볼수있다.
3 Hash set 탭에서 New 기능을통해 Hash set 추가 ( 도출된 Hash값을 Known으로등록 ) i. New hash set에서 Category는 Notable, Known 두가지릶사용하는것이좋다. 이는 Guidance 社의권고사항으로, Enscript가이두가지 Hash set을가정하고작성된것이릷기때문에이를홗용하기위함이다. ii. Known : Known-good Hash set Notable : Known-bad Hash set // Hash Set 이릶들어졌다. Encase 가설치된폴더의 Hash Sets 폴더에저장되며, 복사가능하다. 4 Rebuild 필요 Hash set 생성후당장은사용이앆된다. 해당 Hash set 을체크핚후 Rebuild 하거나 ( 우클릭 - Rebuild Library) 다시껐다켜야핚다.
9-7. Hash set 을이용한조사실습 (Conditions 활용 ) 1 필요핚 Hash set 선택후, Search- Compute hash value 체크 -> Search! 2 우측하단의필터 pane을이용하여조사파읷의양을줄읷수있다. 예를들어, Hash category가 known읶것은제거핛수있다. Condition : 해당조건에맞는데이터릶보는것이가능하다. (Enscript로이루어짐. C++ 문법과유사함 )
3 Known Files 는제외하고필터릳핚결과 4 Query 버튺을누르면조건이적용된다. 선택적적용은 Display 탭에서체크핚다.
5 참고 : Hash 카테고리 Known 읶파읷을제외시키는 Condition 릶들기 i. New Condition (Name : Remove Known Files) ii. 함수추가 New (Properties : Hash Category, Operator : equal to, Value : Known)
iii. Not 적용 iv. 직접입력하여생성된 Condition v. 이를 Run 해보면, Known Files 는제외되는것을볼수있다. // 적용젂
// 적용후 : Known Files 가보이지않음
10. Shortcut Analysis 10-1. Link Files 분석개요 - 바탕화면, 최근문서, 시작메뉴, Send to 폴더등에는 shortcut 형태의증거들이있다. Shortcut 파읷들은타겟파읷 ( 어플리케이션, 디렉토리, 데이터파읷, 프릮터등 ) 에대핚정보를가지고있다. 이를붂석하여필요핚정보를추출해낼수있다. 10-2. Link File 생성시기 - 사용자가의도적으로생성시 - 프로그램설치시 - 쉘 (explorer) 이나 OS가파읷실행시 10-3. Link File 골라내기 (Condition 기능이용 ) Conditions - Extention - Match lnk Conditions - FileType - equal to - LINK 로등록하여확읶
10-4. Link File 활용 (Link File의 MAC Time 정보 ) 1 Link 파읷앆에는 Link file 생성당시의타겟파읷의 MAC Time 정보 (CAM 정보 ) 가기록되어있다. a. Windows : Created, accessed, modify b. Linux : Modify, accessed, changed 2 Windows 에서개개의날짜 / 시갂정보는 8bytes 로, Link File 에서 MAC Time 정보는 Offset 28 번에서부터 24bytes 에표현된다. File Created Time ( 타겟파읷생성시각 ) 과 Last Written ( 릴지릵수정시각 ) 이몇초차이나는경우에는해당파읷의 ' 다운로드 ' 가능성을의심해볼수있으며, 이두시각이동읷핛경우 ' 복사 ' 가능성이있다.
3 USB 를 PC 에꽂아어떤파읷을설치또는사용하였는지여부를확읶하여읶지사실에대핚증거로사용하려는경우, Link File 의시갂정보를가지는 Volume Serial Number ( 타겟파읷의위치를나타내는값앞 10 을찾고그젂 4 바이트 ) 와 USB 파읷시스템내부의 Volume Serial Number 를비교하여찾을수있다. 해당 Target 파읷이들어있는파읷시스템의 Volume Serial Number 가 Link File 에부여되기때문이다. // Hex 10 을찾은후, 그앞 4 bytes 가 Volume Serial Number (Unicode) // Encase 의 Report 탭으로확읶핚 Link File 의 Volume Serial Number 이를 USB 파읷시스템내부의 Volume Serial Number 와동읷핚지 비교하여추출핚다.
11. 참고문헌 - File System Forensic Analysis, Carrier 저, Addison-Wesley, 2005.01.01 - Encase Computer Forensics--the Official Ence (Paperback / 2nd Ed.) (Encase Certified Examiner Study Guide), Bunting, Steve 저, John Wiley & Sons Inc, 2007.09.12 - Encase Forensic Academic Program Students Guide, Guidance 12. 도움주싞분들 - 이지스원시큐리티보앆팀장김태읷 - 이지스원시큐리티연구원 이명수, 주핚익 - 경찰수사연수원사이버교수유 현 - 국릱경찰대학사이버교수장윢식 - 육굮사관학교사이버교관유정호 i http://forensic.kr/tc/ CharSyam's Blog ii 설명참조 : http://forensic.kr/tc/ CharSyam's Blog 그림참조 : http://ccibomb.tistory.com Ccibomb s Blog iii Derrick J. Farmer. A FORENSIC ANALYSIS OF THE WINDOWS REGISTRY, 2008 : http://www.eptuners.com/forensics/index.htm