File System Forensic Analysis Twitter : @pr0neer Blog : f Email : proneer@gmail.com Kim Jinkook
Outline 1. File System Forensic Analysis (FAT/NTFS) Recovery for Deleted Files (FAT/NTFS) Unallocated Cluster Analysis (FAT/NTFS) Slack Space Analysis (FAT/NTFS) Timestamp Analysis (FAT/NTFS) Signature Analysis (FAT/NTFS) Hidden/Encrypted File Analysis (FAT/NTFS) Boot Sector Analysis (FAT/NTFS) Wasted Area Analysis (NTFS) Metadata File Analysis (NTFS) Log Data Analysis (NTFS) $DATA Analysis
Recovery for Deleted Files 최근삭제된파일이나사건이일어난시점에삭제된파일은우선분석대상 파일시스템에서파일삭제시실제데이터삭제없이메타정보만수정 따라서, 삭제된파일의메타정보구조가덮어써지지않았다면거의완벽하게파일복구 NTFS : 비연속적 / 연속적으로할당된파일모두완벽하게복구가능 FAT : 비연속적으로할당된파일은부분적인복구만가능 (FAT 테이블의초기화로연결정보가사라짐 ) 삭제된파일탐색 FAT12/16/32 : 루트디렉터리부터탐색하면서디렉터리엔트리 (Directory Entry) 첫바이트가 0xE5 인엔트리수집 exfat : 파일디렉터리엔트리 (File Directory Entry) 값이 0x05 인엔트리수집 NTFS :$MFT 의 $BITMAP 속성에서 0x00 값을가지는 MFT 엔트리조사 / MFT 엔트리헤더 Flags 값이 0x00 인 MFT 엔트리수집
Unallocated Cluster Analysis 대용량저장매체의일반적인사용으로많은공간이비할당영역일가능성 비할당클러스터에는이전데이터가남아있을가능성 포맷하기이전데이터 삭제된이후메타정보가삭제된파일 비할당영역이판별될경우해당영역을대상으로문자열추출및데이터카빙수행 비할당클러스터영역수집 FAT12/16/32 : FAT 영역에서 0x00 값을가지는클러스터를순차적으로연결 exfat : 할당비트맵테이블 (Allocation Bitmap Table) 에서 0x00 값을가지는클러스터를순차적으로연결 NTFS : $Bitmap 메타데이터파일에서 0x00 값을가지는클러스터를순차적으로연결
Slack Space Analysis Cluster (2048 Bytes) File Slack RAM Drive Slack Slack sector 1 sector 2 sector 3 sector 4 used area wasted area 슬랙공간에는의도적으로삽입한데이터나이전파일의데이터가남아있을가능성 저장매체용량과각파티션크기의차이가존재하는지확인 볼륨슬랙 슬랙공간 램슬랙 (RAM Slack) 드라이브슬랙 (Drive Slack) 파일시스템슬랙 (File-System Slack) 볼륨슬랙 (Volume Slack)
Timestamp Analysis 파일시스템은파일의생성 / 수정 / 접근시간정보기록 사건발생시점을중심으로데이터분석가능 시간의역전및의도적인조작이발생했는지파악 시간정보위치 FAT12/16/32 : 파일의디렉터리엔트리 (DOS Timestamp) Created Date/Time, Last Written Date/Time, Last Accessed Date exfat : 파일의파일디렉터리엔트리 (DOS Timestamp + Time Zone Offset) Created Date/Time, Last Date/Modified Time, Last Accessed Date/Time NTFS : MFT 엔트리및 $I30 인덱스의속성정보 (Windows 64-Bit Timestamp) $STANDARD_INFORMATION, $FILE_NAME
Signature Analysis 파일시그니처와확장자가일치하는지검사 확장자변경을통해의도적으로파일을은폐할가능성 확장자위치 FAT : 파일의디렉터리엔트리 exfat : 파일의파일이름확장 (File Name Extension) 디렉터리엔트리 NTFS : 파일의 $FILE_NAME 속성
Hidden/Encrypted File Analysis 숨긴파일 (Hidden File) / 암호화된파일 사용자의의도적인행위가포함됐을가능성 숨긴파일탐색 FAT : 디렉터리엔트리의속성값이 0x02 를가지는파일탐색 exfat : 파일디렉터리엔트리의파일속성값이 0x02 를가지는파일탐색 NTFS : $STANDARD_INFORMATION 속성의플래그값이 0x0002 를가지는파일탐색 암호화된파일탐색 NTFS : $STANDARD_INFORMATION 속성의플래그값이 0x4000 를가지는파일탐색 레지스트리의암호화된 private key 복호화 (Brute Force) EFS0.TMP 파일조사
Boot Sector Analysis 부트코드를의도적으로수정가능성 루트킷 방지대책 부트코드분석을통해임의적인흐름변경이있는지분석
Wasted Area Analysis cont. 낭비되는영역은악의적인데이터의은폐목적으로사용될가능성 공통된낭비영역 MBR 사용으로인해 62 섹터의낭비되는영역 (MBR Slack) FAT12/16/32 예약된영역 (Reserved Area) 내의낭비되는섹터 (0,1,2,6,7,8 섹터제외 ) 조사 FSINFO 의사용되지않는영역 (1,7 섹터 ) 조사 예약된영역내의추가적인부트코드영역 (2,8 섹터 ) 조사
Wasted Area Analysis exfat VBR 의확장부트코드영역 (1~8 섹터 ) 및예약된영역 (10 섹터 ) 분석???? 정말로? 백업 VBR 영역조사 NTFS VBR 에서부트섹터와부트로더위치항목이기록된섹터를제외한영역조사 MFT 엔트리 12-1515 번영역조사 HPA(Host Protected Area), DCO(Device Configuration Overlay)??
Metadata File Analysis $Boot 메타데이터파일분석 $Boot 는부트섹터의내용을저장 $Boot 파일의크기는제한없음 크기를늘려데이터은닉 $BadClus 메타데이터파일분석 $BadClus 파일은배드섹터가포함된클러스터관리 정상적인클러스터를 $BadClus 에등록후의도한데이터저장
Log Data Analysis $LogFile 메타데이터파일분석 $LogFile 은메타데이터파일의트랜잭션정보를로그로저장 $LogFile 분석을통해최근사용자의행위재구성 $UsnJrnl 메타데이터파일분석 $UsnJrnl 은파일의변경정보를기록 $UsnJrnl 분석을통해최근사용자의행위재구성
$DATA Analysis ADS (Alternate Data Stream) ADS 를데이터은닉의목적으로이용할가능성 $DATA 속성을두개이상가지는 MFT 엔트리조사 디렉터리의 $DATA 속성 디렉터리의 $DATA 속성은일반적으로사용되지않음 임의의데이터를은닉할가능성 디렉터리의 MFT 엔트리를검사하여 $DATA 속성이존재하는지조사
Question & Answer