이전 글에서 다룬 find 명령어의 기본 활용법에 이어, 침해사고분석에서 매우 중요한 MAC Time의 개념과 find 명령어 사용 시 주의해야 할 사항들에 대해 자세히 알아보겠습니다.

◎ MAC Time의 개념과 침해사고분석에서의 중요성

 - MAC Time이란?

  > MAC Time은 파일 시스템 메타데이터의 일종으로, 컴퓨터 파일과 관련된 특정 이벤트가 가장 최근에 발생한 시점을 기록합니다.

  > MAC은 다음 세 가지 시간 정보의 약어입니다:

  • M (Modified Time, mtime): 파일의 내용이 마지막으로 수정된 시간
  • A (Access Time, atime): 파일에 마지막으로 접근한 시간
  • C (Change Time, ctime): 파일의 메타데이터가 마지막으로 변경된 시간

  > 일부 파일 시스템에서는 B (Birth Time, btime) 또는 crtime이라고 불리는 파일 생성 시간도 추가로 기록하여 MACB Time이라고 부르기도 합니다.

 - 각 시간 정보의 정확한 의미

  > 많은 사람들이 ctime을 "Create Time(생성 시간)"으로 잘못 이해하고 있으나, 이는 정확하지 않습니다. 리눅스/유닉스 시스템에서 각 시간의 정확한 의미는 다음과 같습니다:

 

 - mtime (Modify Time)

  > 파일의 데이터가 수정되었을 때 갱신됩니다

  > 파일 내용을 변경하면 mtime이 변경되며, 동시에 ctime도 변경됩니다

  > 파일 크기가 변경되면 이는 메타데이터 변경에 해당하므로 ctime도 함께 갱신됩니다

 

 - atime (Access Time)

  > 파일이 읽혀지거나 실행될 때마다 갱신됩니다

  > cat, tail, vi, grep 등의 명령어로 파일에 접근할 경우 갱신됩니다

  > 성능상의 이유로 많은 시스템에서 atime 갱신을 비활성화하는 경우가 많습니다

 

 - ctime (Change Time)

  > 파일의 inode 정보(메타데이터)가 변경될 때 갱신됩니다

  > 권한 변경(chmod), 소유자 변경(chown), 파일 내용 수정 등이 발생할 때 갱신됩니다

  > 주의: ctime은 파일 생성 시간이 아닙니다

침해사고분석에서 MAC Time의 활용
 - 침해사고분석에서 MAC Time은 공격자의 행동 패턴을 시간순으로 재구성하는 타임라인 분석의 핵심 요소입니다. 이를 통해 다음과 같은 분석이 가능합니다:

  > 공격 시점 추정: 특정 시점에 수정되거나 생성된 파일들을 분석하여 공격 발생 시점을 파악

  > 악성코드 활동 추적: 악성코드가 생성하거나 수정한 파일들의 시간 정보를 통한 감염 경로 추적

  > 공격자 행위 재구성: 파일 접근, 수정, 권한 변경 등의 시간 순서를 통한 공격 과정 재현

◎ find 명령어 사용 시 주의사항: ctime과 atime의 관계
 - ctime 사용 시 주의사항

  > 침해사고분석에서 find 명령어를 사용할 때 가장 주의해야 할 점은 ctime을 이용한 검색이 atime을 변경시킬 수 있다는 것입니다. 이는 다음과 같은 이유 때문입니다:

  • 파일 접근에 의한 atime 변경: find 명령어가 파일의 메타데이터를 읽기 위해 파일에 접근하면서 atime이 변경될 수 있습니다
  • 증거 훼손 위험: 원본 파일의 시간 정보가 변경되면 forensic evidence의 무결성이 손상됩니다
  • 타임라인 분석 오류: 변경된 atime으로 인해 잘못된 타임라인이 구성될 수 있습니다

 

 - 실제 예제를 통한 설명
다음은 find 명령어 사용 시 시간 정보 변경을 보여주는 예제입니다:

1. 테스트 파일 생성
# echo "test content" > test_file.txt

2. 초기 MAC Time 확인
#stat test_file.txt


출력 결과:

Access: 2023-12-15 10:30:15.123456789 +0900
Modify: 2023-12-15 10:30:15.123456789 +0900
Change: 2023-12-15 10:30:15.123456789 +0900

 

3. find 명령어로 ctime 기반 검색 실행
# find . -name "test_file.txt" -ctime -1

4. 검색 후 MAC Time 재확인
# stat test_file.txt


출력 결과:

Access: 2023-12-15 10:35:22.987654321 +0900  # atime이 변경됨!
Modify: 2023-12-15 10:30:15.123456789 +0900
Change: 2023-12-15 10:30:15.123456789 +0900



 - 침해사고분석을 위한 안전한 find 사용법
1. mtime 우선 사용
ctime 대신 mtime을 사용하여 파일 접근을 최소화합니다:

위험한 방법 (ctime 사용)
# find /var/log -ctime -7  # atime 변경 위험

안전한 방법 (mtime 사용)
# find /var/log -mtime -7  # 파일 내용 수정 시간 기준


2. noatime 옵션 활용
파일 시스템을 noatime 옵션으로 마운트하여 atime 갱신을 방지합니다:

파일 시스템을 noatime으로 마운트
# mount -o remount,noatime /evidence_partition

또는 특정 디렉토리를 바인드 마운트
# mount --bind -o noatime /evidence /mnt/safe_evidence


3. 읽기 전용 모드 활용
증거 보전을 위해 읽기 전용으로 마운트합니다:

읽기 전용으로 마운트
# mount -o ro,noatime /dev/sdb1 /mnt/evidence

find 명령어 실행
# find /mnt/evidence -name "*.log" -mtime -5


4. 포렌식 이미징 후 분석
원본 시스템 대신 포렌식 이미지에서 분석을 수행합니다:

dd를 이용한 포렌식 이미징
# dd if=/dev/sdb of=/case/evidence.img bs=64K conv=noerror,sync

이미지 마운트 후 분석
# mount -o ro,loop,noatime /case/evidence.img /mnt/analysis
# find /mnt/analysis -type f -mtime -3


 - 침해사고분석을 위한 MAC Time 검색 예제
1. 안전한 최근 수정 파일 검색

최근 3일간 수정된 실행 파일 검색 (atime 보호)
# mount -o remount,noatime /
# find /usr/bin /usr/sbin -type f -executable -mtime -3 > recent_binaries.txt


2. 특정 시점 전후 파일 분석

침해 의심 시점(2023-12-10) 전후 파일 검색
# find /var/www -type f -newermt '2025-04-09' ! -newermt '2025-04-11' -exec ls -la {} \; > suspicious_files.txt


3. 웹쉘 탐지를 위한 안전한 검색

웹 디렉토리의 최근 수정 파일 중 PHP 파일 검색
# find /var/www -name "*.php" -mtime -7 -exec grep -l "eval\|base64_decode\|system" {} \; 2>/dev/null


4. 시스템 파일 무결성 검사

시스템 바이너리의 최근 변경 사항 검색
# find /bin /sbin /usr/bin /usr/sbin -type f -mtime -30 -exec stat --format="%n %Y %y" {} \; | sort -k2


 - MAC Time 분석 도구 활용
  > 침해사고분석에서는 전문적인 MAC Time 분석 도구를 활용하는 것이 좋습니다:

mactime 도구를 이용한 타임라인 생성 (Sleuth Kit)
# fls -r -m / /dev/sdb1 > body_file.txt
# mactime -b body_file.txt -d > timeline.csv

특정 기간의 타임라인 추출
# mactime -b body_file.txt -d 2023-12-10..2023-12-15 > incident_timeline.csv

 

◎ 결론
침해사고분석에서 MAC Time은 공격자의 행위를 시간순으로 재구성하는 핵심 정보입니다. 그러나 find 명령어를 부주의하게 사용할 경우 atime이 변경되어 중요한 증거가 훼손될 수 있습니다.

따라서 침해사고분석 시에는 다음 원칙을 반드시 준수해야 합니다:

  • ctime 대신 mtime 우선 사용: 파일 접근을 최소화하여 atime 변경 방지
  • noatime 옵션 활용: 파일 시스템 마운트 시 atime 갱신 비활성화
  • 읽기 전용 모드: 증거 보전을 위한 읽기 전용 마운트
  • 포렌식 이미징: 원본 대신 복사본에서 분석 수행

이러한 주의사항을 준수하면서 find 명령어와 MAC Time 분석을 적절히 활용한다면, 더욱 정확하고 신뢰할 수 있는 침해사고 분석이 가능할 것입니다.

+ Recent posts