콘텐츠로 이동

증거와 해석

디지털 포렌식은 단순히 필드를 읽는 작업이 아닙니다. 해당 필드가 어떤 관찰을 뒷받침하는지, 그 뒷받침이 얼마나 강력한지, 그리고 무엇이 악의 없이 같은 관찰 결과를 만들어 낼 수 있는지를 판단하는 작업입니다.

유용한 네 가지 증거 범주

범주 의미 예시
존재 Windows가 해당 경로나 파일을 알고 있었음 Amcache 파일 레코드, ShimCache 항목, $MFT 레코드
실행 Windows가 프로그램 실행 또는 실행 상태를 기록함 Prefetch 실행 시간, 지원되는 ShimCache 실행 플래그
사용자 상호 작용 사용자 또는 애플리케이션이 항목을 참조하거나 열었음 RecentDocs, Jump List, Recent 폴더의 LNK
시스템 활동 Windows가 리소스 사용 또는 구성을 기록함 SRUM 카운터, 서비스 구성, TaskCache 동작

하나의 아티팩트가 둘 이상의 범주를 뒷받침할 수 있지만, 절대로 자동으로 상위 범주로 격상해서는 안 됩니다. 예를 들어 의심스러운 경로를 가진 Amcache 항목은 존재를 뒷받침합니다. 일치하는 Prefetch 실행 시간이 있으면 더 강력한 실행 증거가 추가됩니다. USN 생성 레코드와 $MFT 경로는 파일이 디스크에 있었음을 보여 줄 수 있으며, Defender 격리 데이터는 파일이 사라진 이유를 설명할 수 있습니다.

타임스탬프는 진술일 뿐, 보편적인 진실이 아닙니다

각 타임스탬프가 무엇에 의해 생겼는지 확인하십시오.

  • $STANDARD_INFORMATION과 $FILE_NAME의 시간은 NTFS 메타데이터를 나타내며 서로 다를 수 있습니다.
  • Prefetch 실행 시간은 기록된 실행을 나타내지만, 최근 실행 시간만 남아 있습니다.
  • ShimCache의 시간은 일반적으로 캐시된 파일의 마지막 수정 시간이며, 실행 시간이 아닙니다.
  • 레지스트리 키의 마지막 쓰기 시간은 개별 값이 아니라 키 전체에 적용됩니다.
  • RecentDocs는 키의 시간을 가장 최근 항목에 부여합니다. 오래된 항목에는 순서는 있지만 대개 열린 시간이 없습니다.
  • SRUM 타임스탬프는 정확한 네트워크 작업이 아니라 집계 구간을 나타내는 경우가 많습니다.

분석 중에는 UTC를 사용하고, 가능하면 원래 값을 보존하며, 모든 변환 내용을 문서화하십시오.

긍정적 증거와 부정적 증거

잘 알려진 레코드가 존재한다는 것은 강력한 긍정적 증거가 될 수 있습니다. 반면 부재는 대개 더 약한 증거입니다. 아티팩트는 순환되어 덮어쓰이고, 캐시에는 상한이 있으며, 수집이 불완전할 수 있고, 설정이 다양하며, 정리 도구도 존재하기 때문입니다. "발생하지 않았다" 대신 "수집된 아티팩트에서 관찰되지 않았다"라고 표현하십시오.

확증 단계

  1. 원본 파일과 수집 경로를 검증하십시오.
  2. 파서가 관련 손상이나 적용되지 않은 트랜잭션 로그를 보고하지 않았는지 확인하십시오.
  3. 아티팩트 페이지에 따라 필드를 해석하십시오.
  4. 같은 행위를 뒷받침하는 독립적인 아티팩트를 찾으십시오.
  5. 가능하면 이벤트 로그, 네트워크 텔레메트리, 메모리 또는 파일 내용을 확인하십시오.
  6. 정확한 Juntei 버전, 명령어, 필터 및 원본 해시를 기록하십시오.

증거의 강도에 맞게 결론을 작성하십시오

"공격자가 정확히 10:02:11Z에 악성 코드를 실행했다"보다 "Prefetch는 tool.exe가 10:02:11Z에 실행되었음을 기록하고 있다"라고 표현하십시오. 앞의 진술은 Prefetch만으로는 입증할 수 없는 신원과 의도를 덧붙이고 있습니다.