366. 방어 회피·흔적 삭제 — 타임스탬프 변조(timestomping) 탐지

changseop lee·7일 전

시스템 보안 · 취약점

목록 보기
366/450

시스템 보안 · 취약점 › H. 방어 회피 · 흔적 삭제 징후 · 16/50편 (전체 366/450)
학습 단계: 로그 삭제·변조
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

타임스탬프 변조(timestomping)는 파일의 시각 정보(mtime·atime·ctime)를 위조해 포렌식 타임라인을 왜곡하는 안티포렌식 기법입니다. 공격자가 심은 악성 파일의 시각을 오래된 정상 파일과 똑같이 맞춰 "오래전부터 있던 정상 파일"처럼 위장합니다.

타임스탬프 변조(timestomping)
 touch -t 202301010000 /tmp/.x (임의 시각 지정)
 touch -r /bin/ls /tmp/.x (정상 파일 시각 복사)
 특징: mtime/atime은 touch로 쉽게 변조 가능
   ctime(inode 변경 시각)은 touch로 못 바꿈 → 단서!

탐지: ctime vs mtime 불일치, 시각 역전, touch -r/-t 명령

핵심 단서는 ctime입니다. touch로 mtime·atime은 바꿔도 ctime(inode 변경 시각)은 변조 시점으로 갱신되므로, mtime은 과거인데 ctime은 최근이면 변조입니다.

2. 왜 중요한가

  • 타임스탬프 변조는 포렌식 타임라인을 왜곡해 악성 파일을 정상처럼 위장합니다.
  • touch -r/-t로 mtime·atime은 쉽게 바꾸지만 ctime은 변조 시점으로 남습니다.
  • mtime < ctime(수정보다 inode 변경이 나중) 불일치가 변조의 직접 단서입니다.

3. 핵심 명령어 / 설정

요소변조 가능성단서
mtimetouch로 변조과거로 위조
atimetouch로 변조과거로 위조
ctimetouch로 불가변조 시점 노출
touch -r정상 파일 복사명령 흔적
불일치mtime<ctime변조 증거

4. 실습 (실습 예시)

# 타임스탬프 변조 탐지 (분석 방법)
# touch로 시각 변조하는 명령
sudo ausearch -k proc_exec -i --start recent 2>/dev/null | grep -E 'comm="touch".*(-t|-r|-d)' | tail
# mtime vs ctime 불일치(변조 의심 파일)
sudo find /tmp /dev/shm /usr/bin -type f -newerct '1 hour ago' ! -newermt '1 hour ago' 2>/dev/null | head
# stat으로 시각 교차 확인
stat /tmp/.x 2>/dev/null | grep -E 'Modify|Change'

5. 정상 상태

$ (touch 변조) (없음)
$ (mtime/ctime) 일치 또는 정상 순서(ctime≈mtime)

파일 시각을 위조하는 touch 사용이 없고, mtime과 ctime이 일관된(변조 없음) 상태가 정상입니다.

6. 이상 상태

$ (touch 변조)
comm="touch" proctitle="touch -r /bin/bash /tmp/.sshd"
$ (mtime/ctime 불일치)
/tmp/.sshd: Modify 2022-01-01(과거) / Change 2026-10-08(오늘)
→ mtime은 과거, ctime은 오늘 = 타임스탬프 변조
  • touch -r로 정상 파일(/bin/bash) 시각 복사 → 악성 파일 위장
  • mtime 과거 vs ctime 오늘 → inode 변경은 오늘(변조 노출)
  • 타임스탬프 변조 → 포렌식 타임라인 왜곡 → 정탐(ctime이 단서)

7. 로그 분석 (분석 방법)

타임스탬프 변조 분석입니다(가상의 예시).

[공격자] /tmp/.sshd 악성 파일 생성(오늘)
   ↓ (위장)
touch -r /bin/bash /tmp/.sshd (bash의 과거 시각 복사)
   → mtime: 2022(과거), atime: 2022
   ↓ (분석가)
stat /tmp/.sshd:
   Modify(mtime): 2022-01-01 ← 위조됨
   Change(ctime): 2026-10-08 ← 변조 못 함(실제)
   ↓
= mtime 과거 vs ctime 오늘 불일치 → 변조 확정
시각값의미
mtime2022(위조)오래된 척
ctime2026(실제)변조 노출
불일치mtime<ctime변조 증거

ctime vs mtime 불일치가 타임스탬프 변조 탐지의 핵심 단서입니다.

8. SOC 관제 포인트

  • 타임스탬프 변조(timestomping)는 파일 시각을 위조해 포렌식 타임라인을 왜곡하는 안티포렌식입니다.
  • touch -r/-t로 mtime·atime은 바꿔도 ctime(inode 변경)은 변조 시점으로 남습니다.
  • mtime < ctime 불일치가 변조의 직접 단서이며, touch -r/-t 명령도 신호입니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_h,defense_evasion,">
  <rule id="107150" level="12">
    <if_sid>107000</if_sid>
    <field name="audit.comm">touch</field>
    <field name="audit.proctitle" type="pcre2">touch\s+.*(-t\s|-r\s|-d\s)|-[acm]*t</field>
    <description>타임스탬프 변조 시도(touch -t/-r, timestomping)</description>
    <mitre><id>T1070.006</id></mitre>
  </rule>
</group>

FIM에서 mtime과 ctime 불일치를 탐지 조건으로 추가합니다. 민감 디렉터리(/tmp·/usr/bin)의 touch -r/-t는 경보합니다.

10. 대응 방법

  1. 초기 확인 — touch -r/-t 시각 변조 명령과 대상 파일을 확인합니다.
  2. 범위 확인 — mtime·atime vs ctime 불일치·시각 역전을 확인합니다.
  3. 증거 확보 — 변조 파일의 stat·명령 이벤트·중앙 수집 시각을 보존합니다.
  4. 차단/조치 — 타임스탬프 변조 정탐이면 ctime·중앙 로그로 실제 생성 시각 복원·분석을 진행합니다.
  5. 재발 방지 — 타임스탬프 변조 탐지를 운영합니다.

11. 핵심 정리

요소단서
mtime과거로 위조
atime과거로 위조
ctime변조 시점 노출
touch -r/-t명령 흔적
면접 포인트"timestomping은 mtime 위조 — ctime은 못 바꿈, mtime<ctime이 변조 단서"

12. 다음 편 예고

다음 편 367. 방어 회피·흔적 삭제 — 파일 무결성 모니터링 우회 탐지 에서는 파일 무결성 모니터링 우회를 다루는 파일 무결성 모니터링 우회 탐지를 다룹니다.


이전 편: 365. 방어 회피·흔적 삭제 — 로그 전송 차단·중단 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글