364. 방어 회피·흔적 삭제 — wtmp·utmp·lastlog 조작 탐지

changseop lee·7일 전

시스템 보안 · 취약점

목록 보기
364/450

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

선행 학습

1. 개념

wtmp·utmp·lastlog는 로그인 기록을 담는 바이너리 로그입니다. who·last·lastlog 명령의 근거이며, 공격자는 이를 변조·삭제해 접속 흔적을 지웁니다. 텍스트가 아닌 바이너리라 전용 도구로 조작됩니다.

로그인 기록 로그 조작
 utmp(/var/run/utmp): 현재 로그인 세션
 wtmp(/var/log/wtmp): 로그인·로그아웃 이력(last)
 lastlog(/var/log/lastlog): 계정별 마지막 로그인
 조작: 삭제·비우기, 특정 세션 제거(utmpdump 편집),
   안티포렌식 도구로 자기 세션만 제거

탐지: 파일 변경(FIM)·크기 급변·last 기록 끊김·중앙 비교

핵심은 "로그인 기록 바이너리의 변조·삭제"입니다. FIM으로 변경을 감시하고, last 기록 끊김·중앙 수집 인증 로그 비교로 탐지합니다.

2. 왜 중요한가

  • wtmp·utmp·lastlog는 접속 흔적의 근거라, 변조되면 last·who 결과가 왜곡됩니다.
  • 바이너리 로그라 utmpdump 등 전용 도구로 특정 세션만 제거하는 변조가 가능합니다.
  • 인증 로그(secure)·중앙 수집과 교차하면 바이너리 로그 변조가 드러납니다.

3. 핵심 명령어 / 설정

로그역할조작
utmp현재 세션자기 세션 제거
wtmp로그인 이력last 왜곡·삭제
lastlog마지막 로그인기록 변조
전용 도구utmpdump·편집선택 제거
교차secure 로그변조 탐지

4. 실습 (실습 예시)

# wtmp·utmp·lastlog 조작 탐지 (분석 방법)
# 로그인 기록 로그 변경(FIM·auditd watch)
sudo ausearch -k log_tamper -i --start recent 2>/dev/null | grep -E 'wtmp|utmp|lastlog' | tail
# 로그 크기 급변·0(삭제·비우기)
ls -la /var/log/wtmp /var/run/utmp /var/log/lastlog 2>/dev/null
# last 기록 vs secure 로그 교차(불일치=변조)
last -a 2>/dev/null | head; echo '---'; sudo grep Accepted /var/log/secure 2>/dev/null | tail

5. 정상 상태

$ (로그 변경) 정상 로그인·로그아웃만
$ (크기) 정상 증가
$ (last vs secure) 일치

로그인 기록 로그가 정상적으로 갱신되고, last 기록과 secure 인증 로그가 일치하는(변조 없음) 상태가 정상입니다.

6. 이상 상태

$ (로그 변경)
comm="truncate" /var/log/wtmp (로그인 이력 비우기)
proctitle="utmpdump ... | 편집 | utmpdump -r" (세션 선택 제거)
$ (last vs secure)
last: 203.0.113.9 기록 없음
secure: Accepted from 203.0.113.9 존재
→ wtmp에서 공격자 세션만 제거(변조)
  • wtmp 비우기·utmpdump 편집 → 로그인 흔적 제거
  • last엔 없고 secure엔 있는 접속 → 바이너리 로그 선택 변조
  • 로그인 기록 변조 → 접속 흔적 제거 → 정탐

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

로그인 기록 로그 조작 분석입니다(가상의 예시).

[접속 흔적] 203.0.113.9 로그인
 ├ wtmp/utmp (바이너리) — 공격자가 변조
 └ secure (텍스트) + 중앙 수집 — 변조 안 됨
      ↕ (교차 비교)
[탐지] last(wtmp 기반): 203.0.113.9 없음
      secure/중앙: 203.0.113.9 로그인 존재
   ↓
= wtmp 변조로 last는 속였으나 secure·중앙엔 흔적 → 정탐
로그변조 여부역할
wtmp/utmp변조됨last 왜곡
secure그대로교차 근거
중앙 수집그대로복원

여러 로그 소스 교차가 바이너리 로그 변조 탐지의 핵심입니다.

8. SOC 관제 포인트

  • wtmp·utmp·lastlog는 로그인 기록 바이너리 로그로, 변조·삭제 시 last·who가 왜곡됩니다.
  • 전용 도구(utmpdump)로 특정 세션만 제거하는 선택적 변조가 가능합니다.
  • 인증 로그(secure)·중앙 수집과 교차 비교하면 바이너리 로그 변조가 드러납니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_h,defense_evasion,">
  <rule id="107130" level="13">
    <if_sid>107000</if_sid>
    <field name="audit.file" type="pcre2">/var/log/wtmp|/var/run/utmp|/var/log/lastlog</field>
    <field name="audit.comm" type="pcre2">^(rm|truncate|shred|utmpdump|dd)$</field>
    <description>로그인 기록 로그(wtmp·utmp·lastlog) 변조·삭제</description>
    <mitre><id>T1070.002</id><id>T1070.006</id></mitre>
  </rule>
</group>

wtmp·utmp·lastlog를 FIM 감시 대상에 포함합니다. last와 secure/중앙 인증 로그를 교차 비교해 변조를 탐지합니다.

10. 대응 방법

  1. 초기 확인 — 로그인 기록 로그(wtmp·utmp·lastlog) 변경·크기 급변을 확인합니다.
  2. 범위 확인 — 전용 도구 편집·선택적 세션 제거·삭제를 확인합니다.
  3. 증거 확보 — last 기록과 secure·중앙 인증 로그를 교차 비교해 보존합니다.
  4. 차단/조치 — 로그인 기록 변조 정탐이면 중앙 로그로 접속 복원·은폐 세션 분석을 진행합니다.
  5. 재발 방지 — wtmp·utmp·lastlog 조작 탐지를 운영합니다.

11. 핵심 정리

로그역할
utmp현재 세션
wtmp로그인 이력(last)
lastlog마지막 로그인
전용 도구utmpdump·편집
면접 포인트"로그인 기록은 바이너리 — last vs secure/중앙 교차로 변조 탐지"

12. 다음 편 예고

다음 편 365. 방어 회피·흔적 삭제 — 로그 전송 차단·중단 탐지 에서는 로그 전송 차단·중단을 다루는 로그 전송 차단·중단 탐지를 다룹니다.


이전 편: 363. 방어 회피·흔적 삭제 — syslog·journald 조작 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글