디지털 포렌식 - Windows Foernsics

1. 시스템 로그

1.1 $LogFile, $UsnJrnl

  • 파일의 생성, 변경, 삭제 이력을 추적할 수 있음

    ex) 공격자가 컴퓨터의 주요 파일을 모두 암호화해서 저장하고 원본 파일을 삭제 했을 때, 공격 흔적을 $LogFile, $UsnJrnl에서 찾아낼 수 있음

1.2 $LogFile

  • 파일 시스템의 저널링 기능을 위해 존재하는 파일
💡

저널링이란 ?

데이터 변경을 디스크에 반영하기 전에 행위를 기록하여, 오류가 발생했을 때 복구할 수 있도록 하능 기능.

저널링의 단위는 트랜잭션(쪼갤 수 없는 업무의 최소 단위)이고, 파일/디렉토리를 생성하거나 수정, 삭제하는 행위가 각각 트랜잭션에 해당함.

  • $LogFile은 이러한 트랜잭션을 기록하는 파일 !

1.3 $LogFile 수집 및 분석

  • 저장 경로 : root\$Logfile
  • < 개요 >

⑴ FTK Imager로 $LogFile, $MFT 파일 추출

⑵ NTFL Log Tracker로 분석 시작

⑶ DB Browser for SQLite에서 DATABASE 확인

분석 결과 예시
분석 결과 예시

1.4 $LogFile 분석 팁

  • NTFS Log Tracker 도구는 $LogFile을 분석해 Event 항목을 만들어줌.
  • 다만 로그가 $LogFile에 저장되는 시간이 길지 않음(약 한시간)
Event설명
File Creation파일 생성
File Deletion파일 삭제
Writing Content of Resident File파일 데이터 변경 *Resident File: 700 Byte 이하의 파일
Writing Content of Non-Resident File파일 데이터 변경 *Non-Resident File: 700 Byte 이상의 파일
Renaming File파일 이름 변경
Directory Creation디렉토리 생성
Directory Deletion디렉토리 삭제

1.5 $UsnJrnl

  • 응용 프로그램이 특정 파일의 변경 여부를 파악하기 위해 사용하는 로그, NTFS 파일 시스템에서 지원하는 기능 중 하나임.

1.6 $UsnJrnl aka $J 아티팩트 수집 및 분석

  • 저장 경로 : root\$Extend\$UsnJrnl\$J
  • < 개요 >

⑴ FTK Imager로 $UsnJrnl , $MFT 파일 추출

⑵ NTFL Log Tracker로 분석 시작 ( $LogFile, $UsnJrnl, $MFT 파일을 한번에 추출해 분석하는게 일반적)

⑶ DB Browser for SQLite에서 DATABASE 확인

1.7 $UsnJrnl 분석 팁

  • 마찬가지로 NTFS Log Tracker 도구는 $UsnJrnl을 분석해 주요한 이벤트들을 추출해 보여주는 역할을 함.
  • 대략 하루 이상의 기간에 해당하는 로그를 가지고 있음.
Event설명
File_Created파일 생성
File_Deleted파일 삭제
Data_Added파일 데이터 추가
Data_Overwritten파일 데이터 덮어 쓰기
Data_Truncated파일 데이터 축소
Basic_Info_Changed파일/디렉토리의 속성 변경
Access_Right_Changed파일/디렉토리의 접근 권한 변경
File_Closed파일/디렉토리 닫힘
File_Renamed_Old
File_Renamed_New파일 이름 변경(전, 후)

1.8 $LogFile, $UsnJrnl 활용

  • 파일이나 디렉토리의 생성, 수정, 변경 등의 이벤트를 추적하기 좋은 파일 !

⑴ 랜섬웨어 분석 상황 : 랜섬웨어는 컴퓨터의 모든 파일을 암호화한 후 원격서버로 전송하고, 원본 파일은 삭제함. 이 과정에서 파일 암호화, 전송할 파일 임시 생성, 원본 파일 삭제 과정이 로그가 남음. 여기서 트랜잭션을 복구해 파일 되살리는 작업이 가능할 수 있음.

⑵ 자료 유출 분석 상황

⑶ 안티-포렌식 행위 분석 상황 : 디지털 포렌식 분석을 막기 위해 파일을 삭제하거나 훼손하는 행위 적발 가능

1.9 교차 검증

  • 하나의 사건이 여러 아티팩트($LogFile, $UsnJrnl)에 동시에 흔적을 남김
  • 한 행위의 인과관계를 명백히 하기 위해 여러 아티팩트로부터 교차 검증 할 수 있음


2. 이벤트 로그

2.1 이벤트 로그란 ?

  • 이벤트 로그는 사용자 로그인, 시스템 시작/종료 등 윈도우에서 발생하는 다양한 이벤트를 기록한 파일
  • 악성코드의 동작(계정 생성/높은 권한 부여/특정 커맨드를 이용해 프로그램 실행)을 알아내기에 유용함

2.2 이벤트 로그에서 기록하는 시스템 이벤트 예시와 의의

  • 사용자 계정 생성, 암호 변경, 권한 변경
  • 시스템 로그인 성공, 실패
  • 프로세스 시작 및 종료
  • 시스템 원격 로그인
  • 저장장치 연결
  • 시스템에서 발생한 사용자 행위를 파악할 수 있고, 시스템에서 발생한 오류나 보안 결함에 대해서 추적도 가능. 악성코드가 어떻게 침투했는지, 내부에서의 동작 과정도 이벤트 로그로 분석 가능.

2.3 이벤트 로그 분석

  • 윈도우 기본 이벤트 뷰어 사용
    notion image
  • 응용 프로그램 : 시스템 구성 요소를 제외한 응용프로그램에서 발생한 이벤트 기록
  • 보안 : 파일 열기, 만들기와 같은 시스템 리소스 사용 이벤트. 로그인 성공/실패, 시스템 보안 정책과 같은 보안 이벤트로, 유일하게 사용자가 기록할 이벤트 유형을 변경할 수 있음
  • 설치 : 응용프로그램 설치나 설정과 관련된 이벤트 기록
  • 응용프로그램 및 서비스 로그 : Windows 제공 기능(IE, MS Office, Windows defender …)

2.4 이벤트 로그 경로

  • C:\Windows\System32\winevt\Logs
  • 이벤트 뷰어 프로그램은 evtx 파일을 보여주고 검색하는 프로그램임
    notion image
  • evtx 파일에 기록되는 이벤트의 여러 속성들
속성설명
EventID이벤트의 유형을 식별할 수 있는 값
Level이벤트의 심각도를 분류한 값
Security UserID이벤트가 발생한 사용자 계정 SID
TimeCreated SystemTime이벤트가 발생한 시스템 시간
Execution ProcessID/ThreadID이벤트를 발생시킨 프로세스/스레드 ID
SID 1000 이상은 일반 사용자 계정을 의미함.
SID 1000 이상은 일반 사용자 계정을 의미함.

2.5 이벤트 로그 수집

⑴ FTK Imager 에서 Logs 폴더 전체 export

⑵ 이벤트 뷰어 > 동작 > 저장된 로그 열기

notion image

⑶ 이벤트 로그 필터링 : 검색하려는 EventId가 어떤 이벤트 로그에 저장되어있는지 안다면 검색 속도 향상됨

notion image
notion image

2.6 주요 이벤트 로그

EventID설명
4624계정 로그온 성공
4625계정 로그온 실패
4634계정 로그오프
4672특수 로그온 (관리자 권)
4608Windows 시작
1074Window 종료
42시스템 절전 모드
1102, 104이벤트 로그 삭제
10000, 10100장치 드라이버 설치/업데이트
225장치 연결 해제
1006파티션 연결 해제
10000, 10001네트워크 연결, 연결 해제

nb) EventID라고 모두 동일한 내용을 갖는 것은 아님.