2014년 10월 26일 일요일

파일 시스템 아티팩트(Filesystem Artifact)

Page info



파일 시스템과 NTFS 아티팩트 

파일 시스템은 컴퓨터가 보조저장장치를 사용함에 있어, 파일이나 자료를 쉽게 찾거나 접근하여 활용할 수 있도록 내용을 조직하는 체계를 말한다. 데이터를 저장하기 위한 저장 공간에는 모두 그 형태에 알맞는 파일 시스템이 존재한다고 보아도 무방하며, 운영체제에 따라 사용(지원)하는 파일시스템의 종류가 다르다.

※운영체제별 파일 시스템은 대표적으로 Unix, Linux계열의 UFS, EXT Series와 Apple社의 HFS, HFS+, 윈도우계열이 주로 사용하는 NTFS, FAT 등이 있다. 이 밖에도 분산형 파일 시스템이나 최근 운영체제 트렌드에 맞게 새로이 개발되고 있는 것, 모바일 전용의 파일 시스템 등 수많은 파일 시스템이 존재한다. 파일 시스템에 대해서는 추후 따로 자세히 다뤄야할만큼 내용이 많고 중요하므로, 여기서는 간단한 소개 정도로 넘어가고자 한다. 

이와 같이, 파일 시스템은 저장장치와 운영체제의 구성에 그 특성이 기인하므로, 디스크의 구조에 관한 분석 내용과 함께 조금 더 자세하게 다뤄지는 것이 맞다. 하지만, 윈도우 계열에서 운영체제 파티션에 주로 사용되는 NTFS는 그 특징 때문에, 윈도우 아티팩트를 분석할 때 함께 분석되는 경우가 많다. 

일반적으로 파일 시스템은 메타데이터 영역과 실제 파일 데이터 영역을 분리하여 관리를 하는데, NTFS는 기본적으로 메타데이터 역시도 파일 데이터의 형태로 관리를 하여, 메타 데이터와 실제 데이터 영역의 구분이 다소 모호한 면이 있다. 

이는 단순히 NTFS에서 조금 더 효율적인 관리를 위하여 파일 형태의 메타데이터 관리 방법을 채택한 것으로 기본적인 파일 시스템의 구성 관점과는 크게 다르지 않지만, 메타 데이터를 파일 형태로 관리함으로 인해서, 다른 아티팩트를 수집할 때에 보다 편리하게 파일 시스템의 메타 데이터까지 수집할 수 있다는 특징을 제공해 준다. 

또한, 앞서 계속 언급된 파일 시스템의 메타 데이터는 파일 시스템의 계층 구조나 파일의 시간 정보를 비롯한 여러가지 속성 정보, 파티션의 사용 상태 및 파일의 존재(삭제) 여부 등 파일 시스템의 운용를 위한 모든 정보를 상대적으로 작은 영역에 한꺼번에 관리하고 있기때문에 시스템 분석에 엄청난 정보를 제공해 준다. 

NTFS에서 역시 몇 가지 메타데이터를 수집함으로써 파일시스템에 관한 일련의 사용 과정을 정확하게 그려낼 수 있기에, 분석 대상 시스템이 NTFS를 사용한다면 반드시 메타데이터를 수집하여 분석에 임할 수 있도록 하자.

※물론 나머지 파일 시스템에 관해서도 메타데이터의 분석은 필수이다. 하지만, 대부분은 디스크 이미지를 수집하여 통합 분석 도구를 통해 파일 시스템의 메타데이터를 확인해야하는 반면, NTFS에서는 보다 쉽게 메타데이터를 수집할 수 있다는 차이를 기억하자. 


NTFS의 속성 정보 파일

$MFT(Master File Table)파일은 파일 시스템 내부의 각 파일의 속성 정보를 포함하는 NTFS 파일 시스템의 핵심 메타 파일이다. 여기서 재미있는 것은 $MFT파일의 속성 정보 역시 $MFT 파일에 포함되어 있다는 것이다. 

따라서 운영체제는 로딩 시 필요한 파일에 접근하기 위하여 $MFT의 해석을 최 우선적으로 진행한다. 그렇다는 것은 포렌식 분석가 역시 파일 시스템의 전체 구성 및 파일의 속성 정보를 확인하기 위해서 $MFT파일을 필수적으로 수집해야함을 의미한다. 

$MFT파일에서 분석 시 중요하게 다뤄지는 정보는 아래와 같다.

  • 파일의 시간 정보 : $MFT파일은 각 파일의 정보를 기록하는 단위인 MFT Entry의 나열로 이루어져 있다. MFT Entry에는 연결되는 파일의 MAC(수정,접근,생성)시간을 비롯하여 MFT Entry 자체를 수정한 시간(Entry Modified)도 기록을 하고 있다.
    MFT Entry는 파일의 정보를 기록하기 위해 여러가지 속성을 활용하는데, 이 때 시간 정보를 기록하는 속성은 $STANDARD_INFORMATION 속성과 $FILE_NAME 속성이다. 정확한 분석을 위해서는 두 가지 속성에 기록된 시간을 모두 확인하여야 한다.
    초기 파일이 생성되며, 관련된 MFT Entry가 생성될때는 $STANDARD_INFORMATION 속성과 $FILE_NAME에 기록된 시간이 동일하지만, 운영체제의 정책과 운용 목적에 따라 각각의 시간이 달라질 수 있으므로 염두에 두고 분석에 임할 수 있도록 하자. 
    .
  • ADS(Alternative Data Stream) : MFT Entry는 $DATA라는 속성으로 실제 데이터 영역에 존재하는 파일의 위치 정보를 관리한다. 일반적으로는 하나의 파일에 하나의 MFT Entry가 생성되므로 $DATA 속성도 한개만 존재하지만, 실제로 $DATA속성의 개수에는 제한이 없다.
    이에 따라 $DATA 속성을 2개 이상 가지고 있는 MFT Entry도 존재하며, 이와 같은 추가적인 $DATA 속성을 ADS라 한다.
    ASD는 운영체제가 시스템 관리의 목적으로 직접 생성하는 경우도 있지만, 악의적 의도가 있는 사용자나 프로그램이 데이터 은닉을 위해 사용하기도 한다. 따라서 $DATA 속성이 2개 이상 존재하는 MFT Entry는 특별히 유심히 살펴 보아야 할 것이다. 
    .
  • Extended Attribute : 과거 OS/2 운영체제가 사용되던 시절에 사용된 HPFS파일 시스템과의 호환성을 유지하기 위해 사용되는 속성을 Extended Attribute라고 부른다. $EA, $EA_INFORMATION 두 가지 속성이 이에 해당하며, 실제 분석에서 거의 발견되지 않지만, ZeroAccess류의 악성코드가 이 속성에 스스로를 은닉하면서 많은 분석가들에게 정체가 알려진 속성이다.
    중요한 것은, 평소에 잘 발견되지 않는 속성을 발견했을 때 조사에 임하는 태도일 것이다. 익숙한 것에서 흔적을 빠르게 찾아내는 것도 중요하지만, 숙련된 분석가라면 평소 보지 못했던 것에 더욱 집중할 필요도 있음을 잊지 말자. 
    .
  • ZoneIdentifier : ADS 일종인 ZoneIdentifier는 윈도우 운영체제가 파일의 출처를 관리하기 위해 최소한으로 기록하는 데이터 스트립으로, 디지털포렌식 분석에서는 해당 파일을 인터넷으로부터 다운로드한 것인지 여부를 판단하기 위해 활용되는 경우가 많다. 파일의 MFT Entry가 ZoneIdentifier를 포함하며, ZoneId3으로 저장되어 있을 경우 해당 파일은 인터넷으로 부터 다운로드 받은 파일인 것으로 판단 가능한 것이다.
    또한 인터넷 사용 흔적 분석 과정에서 다운로드 된 것으로 추정되는 실행 파일 발견하였지만 ZoneIdentifier가 존재하지 않는 경우에 대해서도 파일의 진위성을 의심해 볼 필요가 있다. 

NTFS 로그 파일

NTFS는 
안정적인 시스템의 운용을 위하여 $LogFile과 $UsnJrnl이라는 메타파일을 이용해, 파일 시스템의 운용에 관련된 정보를 기록한다. 이렇게 기록된 정보는 디지털포렌식 분석과정에서 매우 유용하게 사용된다. 이는 $MFT에 존재하는 흔적만으로는 알 수 없었던 파일의 운용 상태와 기록까지도 파악할 수 있는 정보를 제공해 주기 때문으로, 타임라인 분석 과정에서 로그파일의 내용은 꼭 확인해 볼 필요가 있다. 

  • $LogFile : NTFS 트랜잭션 로그 파일이라 불리는 $LogFile은 시스템 오류나 갑작스런 전원 차단 발생시, 작업 중이던 파일의 복구를 위해 사용한다. 모든 트랜젝션 작업을 레코드 단위로 기록하며, MFT Entry 번호, 변경된 속성, 수정된 위치, 변경 전, 후의 모든 정보를 상세하기 기록하므로 이를 분석하여 파일 시스템의 사용 이력을 비교적 정확하게 그려낼 수 있다. 
    ※ $LogFile의 각 작업 레코드는 순차적으로 증가하는 식별 값(LSN - LogFile Sequence Number)을 가지며, 이을 해석하기 위해서는 최종적으로 $MFT
    교차하여 파일 단위 이벤트(생성, 삭제, 수정, 이름변경)해석이 필요하다. 이 과정을 잘 해석해 주는 도구로 NTFS Log Tracker가 있으니, 필요 시아래 경로를 통해 활용해보자.
    https://sites.google.com/site/forensicnote/ntfs-log-tracker.
  • $UsnJrnl : $UsnJrnl역시 보다 안정적인 파일 시스템의 사용을 위하여 Windows 7이상에서 사용하는 파일 변경 이벤트 관리 로그 파일이다. 응용 프로그램이 특정 파일의 변경 여부를 파악하기 위해 사용하며, 레코드 단위로 순차적으로 저장하여 관리한다. (식별  사용 - USN(Update Sequence Number))
    레코드에는 아래의 내용 중 파일에 어떠한 변화가 일어났는지에 관한 정보가 담겨 있기에 정확하게 분석한다면 $LogFile을 통해 얻은 정보와 조합하여 강력한 데이터의 흐름 정보를 얻을 수 있게 된다. 
    • 기본 $Data 속성에 데이터가 Overwrite
    • 기본 $Data 속성에 데이터가 추가
    • 기본 $Data 속성에 데이터가 삭제
    • 이름 있는 $Data 속성에 데이터가 Overwrite
    • 이름 있는 $Data 속성에 데이터가 추가
    • 이름 있는 $Data 속성에 데이터가 삭제
    • 파일이나 디렉터리가 생성
    • 파일이나 디렉터리가 삭제
    • 파일의 확장된 속성이 변경
    • 접근 권한이 변경
    • 객체명 변경시, 변경 전 이름
    • 객체명 변경시, 변경 후 이름
    • 인덱스 상태가 변경
    • 파일이나 디렉터리의 속성이 변경
    • 하드 링크가 생성되었거나 삭제
    • 압축 상태가 변경(압축됨 or 압축이 풀림)
    • 암호화 상태가 변경(암호화됨 or 복호화됨)
    • 객체 ID가 변경
    • Reparse 지점값이 변경
    • 이름 있는 $Data 속성의 생성 or 삭제 or 변경
    • 파일 또는 디렉터리가 닫힘
    .
※$LogFile과 $UsnJrnl의 구조 분석에 관한 자세한 정보는 아래 경로에서 확인이 가능하다.(무료로 좋은 도구를 배포해주고 계신 Blueangel님의 노고에 감사를 표한다.)http://forensicinsight.org/wp-content/uploads/2013/06/F-INSIGHT-NTFS-Log-TrackerKorean.pdf



분석 대상(Target)

※ 아래의 내용은 PFP-List와 연동되는 정보로, PFP에서 확인 및 분석에 직접적인 활용이 가능합니다.
   (PFP ManualPFP DownloadPFP home)


NTFS Meta Files
Target Path(Location)
%SystemDrive%\$MFT
%SystemDrive%\$LogFile
%SystemDrive%\$Extend\$UsnJrnl
Check List
FileSystem Structure
FileSystem MetaData
Deleted file
File time check and analysis
TimeLine extraction and analysis
Related Tools
[Public] File System
[Public] System TimeLine Analysis(NTFS Log Tracker, Log2TimeLine)

앞서 설명한 NTFS 메타 파일은 위 표와 같은 경로를 고정적으로 사용한다. $MFT, $LogFile, $UsnJrnl 의 수집은 타임라인의 생성과 분석에 결정적인 역할을 한다. 



댓글 2개:

  1. Try This application

    http://www.purchase-software.org/free/ntfs-log-tracker.html

    답글삭제

질문이나 조언은 언제든 환영입니다.
악의적 댓글이나 무조건적인 비방은 삼가주세요.