시스템 보안 · 취약점 › H. 방어 회피 · 흔적 삭제 징후 · 10/50편 (전체 360/450)
학습 단계: 로그 삭제·변조
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
전체 삭제(H09)는 눈에 띕니다. 더 은밀한 것은 선택적 삭제·변조로, 공격자가 자신의 활동 라인만 골라 지우거나(sed·grep -v) 내용을 바꿉니다. 로그 파일은 그대로 남아 있어 탐지가 어렵습니다.
선택적 삭제·변조 패턴
선택 삭제: sed -i '/공격자IP/d' /var/log/secure
grep -v "공격자" log > log.tmp; mv log.tmp log
내용 변조: 특정 라인의 IP·계정·시간 수정
특징: 로그 파일은 존재 — 특정 라인만 사라짐
탐지: 중앙 vs 로컬 차이, 시퀀스 끊김, 파일 수정 이벤트
핵심은 "로그 파일은 있는데 특정 구간·라인이 사라지거나 바뀌는 것"입니다. 전체 삭제보다 은밀하지만, 중앙 수집본과 비교하면 드러납니다.
| 변조 방식 | 명령 | 특징 |
|---|---|---|
| 라인 선택 삭제 | sed -i '/x/d' | 특정 라인 제거 |
| 필터 후 덮어쓰기 | grep -v > tmp;mv | 재작성 |
| 내용 수정 | sed 's/old/new/' | IP·계정 변조 |
| 편집기 수정 | vi·편집 | 수동 변조 |
| 중앙 비교 | — | 변조 탐지 |
# 로그 변조·선택적 삭제 탐지 (분석 방법)
# 로그 파일에 대한 편집·재작성 행위
sudo ausearch -k log_tamper -i --start recent 2>/dev/null | grep -E 'comm="(sed|vi|vim|nano|awk)"' | grep '/var/log' | tail
# 로그 파일 수정 시각 vs 마지막 로그 라인 시각 불일치
stat /var/log/secure 2>/dev/null | grep Modify
sudo tail -1 /var/log/secure 2>/dev/null
# 중앙 vs 로컬 라인 수 비교(개념)
echo "중앙 수집 서버의 동일 호스트 로그와 로컬 라인 수·내용 비교"
$ (로그 편집 행위) (없음)
$ (수정 시각) 마지막 로그 라인 시각과 일치(정상 append)
로그 파일에 대한 편집·재작성이 없고, 파일 수정 시각이 마지막 로그 기록 시각과 일치하는(정상 append만) 상태가 정상입니다.
$ (로그 편집 행위)
comm="sed" proctitle="sed -i /203.0.113/d /var/log/secure"
$ (수정 시각 불일치)
파일 Modify: 03:10 / 마지막 로그 라인: 02:30
→ 02:30 이후 로그 없는데 03:10에 수정됨(선택 삭제 흔적)
$ (중앙 vs 로컬) 중앙에 있는 203.0.113 로그가 로컬엔 없음
로그 선택적 변조 분석입니다(가상의 예시).
[로컬 로그] /var/log/secure
02:30 Failed from 203.0.113.9
(03:10 공격자가 sed로 203.0.113 라인 삭제)
↕ (중앙 비교)
[중앙 수집] 삭제 전 전송된 사본
02:30 Failed from 203.0.113.9 (존재)
02:35 Accepted from 203.0.113.9 (존재)
↓
= 로컬엔 없고 중앙엔 있는 라인 → 선택적 삭제 확정·복원
| 단서 | 의미 |
|---|---|
| sed 편집 | 선택 삭제 행위 |
| 수정 시각 불일치 | 비정상 편집 |
| 중앙 vs 로컬 | 삭제된 라인 복원 |
중앙 비교 + 수정 시각 분석이 선택적 변조 탐지의 핵심입니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_h,defense_evasion,">
<rule id="107090" level="13">
<if_sid>107000</if_sid>
<field name="audit.key">log_tamper</field>
<field name="audit.comm" type="pcre2">^(sed|awk|vi|vim|nano|ex)$</field>
<field name="audit.file" type="pcre2">^/var/log/</field>
<description>로그 파일 편집·선택적 삭제(은밀한 변조)</description>
<mitre><id>T1070.002</id><id>T1565.001</id></mitre>
</rule>
</group>
중앙 수집본과 로컬 로그를 라인 단위 비교해 선택적 삭제를 탐지합니다. 파일 수정 시각과 마지막 로그 시각 불일치도 신호입니다.
| 변조 방식 | 명령 |
|---|---|
| 라인 선택 삭제 | sed -i '/x/d' |
| 필터 후 덮어쓰기 | grep -v > tmp;mv |
| 내용 수정 | sed 's/old/new/' |
| 편집기 수정 | vi·편집 |
| 면접 포인트 | "선택적 삭제는 로그를 남기고 특정 라인만 제거 — 중앙 비교로 복원" |
다음 편 361. 방어 회피·흔적 삭제 — 셸 히스토리 삭제·비활성화 탐지 에서는 셸 히스토리 삭제·비활성화를 다루는 셸 히스토리 삭제·비활성화 탐지를 다룹니다.
이전 편: 359. 방어 회피·흔적 삭제 — 로그 파일 삭제 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점