시스템 보안 · 취약점 › F. 비정상 프로세스 · 지속성 징후 · 35/50편 (전체 285/450)
학습 단계: 백도어·C2·은닉 징후
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
공격자는 흔적을 지워 탐지·포렌식을 방해합니다(anti-forensic). 로그 삭제·셸 히스토리 제거·감사(auditd) 무력화가 대표적입니다. "증거는 거짓말하지 않는다" — 흔적 삭제 자체가 침해의 강한 신호이며, 원격 수집으로 원본을 보존해야 합니다.
anti-forensic 기법
로그 삭제/비우기: rm /var/log/*, > /var/log/secure (D17)
히스토리 제거: history -c, rm ~/.bash_history, unset HISTFILE
감사 무력화: auditctl -e 0, systemctl stop auditd
타임스탬프 변조: touch로 시각 조작(F36)
셸 로깅 회피: export HISTSIZE=0
핵심: 흔적 삭제 행위 자체가 침해 신호 + 원격 원본 보존
로컬 로그를 지워도 원격 수집된 로그는 남습니다. anti-forensic 대비의 핵심은 로그 원격 전송과 삭제 행위 자체의 탐지입니다.
| anti-forensic | 기법 | 위험 |
|---|---|---|
| 로그 삭제·비우기 | rm·> redirect | 높음 |
| 히스토리 제거 | history -c·rm | 중간 |
| 감사 무력화 | auditctl -e 0·stop | 매우 높음 |
| 타임스탬프 변조 | touch(F36) | 중간 |
| 로깅 회피 | HISTSIZE=0 | 중간 |
# 로그·흔적 삭제 탐지 (분석 방법)
# 로그 삭제·감사 무력화 명령
sudo ausearch -k proc_exec -i --start recent 2>/dev/null | grep -E 'proctitle=.*(rm .*/var/log|> */var/log|history -c|auditctl -e 0|systemctl stop auditd|shred)' | tail
# 감사 상태 변경(무력화)
sudo ausearch -k proc_exec -i --start recent 2>/dev/null | grep -E 'auditctl|systemctl.*auditd'
# 원격 수집 로그 vs 로컬(불일치 = 로컬 삭제)
$ (흔적 삭제 명령) (없음)
$ (감사 변경) (없음)
로그 삭제·히스토리 제거·감사 무력화 명령이 없고, 감사가 정상 동작하는 상태가 정상입니다.
$ (흔적 삭제 명령)
04:20 proctitle="rm -f /var/log/secure /var/log/wtmp"
04:21 proctitle="history -c"
$ (감사 변경)
04:22 proctitle="auditctl -e 0" (감사 비활성화)
anti-forensic 분석입니다(가상의 예시).
[공격 마무리 단계]
rm /var/log/secure (인증 흔적)
history -c (명령 이력)
auditctl -e 0 (감사 무력화)
↓ (로컬 로그 삭제돼도)
[원격 수집 로그] Wazuh/ELK에 원본 보존
↓
[탐지] 삭제 행위 자체(원격 로그) + 로컬-원격 불일치
→ "증거는 거짓말하지 않는다": 원격 원본으로 재구성
| 삭제 행위 | 대비 |
|---|---|
| 로그 rm | 원격 원본 |
| history -c | 원격 명령 로그 |
| auditctl -e 0 | 무력화 전 전송 |
원격 수집이 로컬 삭제를 무력화하고, 삭제 행위 자체가 경보가 됩니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_f,anti_forensic,">
<rule id="105340" level="13">
<if_sid>105010</if_sid>
<field name="audit.proctitle" type="pcre2">(rm\s+.*(/var/log|wtmp|btmp|lastlog)|>\s*/var/log|history\s+-c|auditctl\s+-e\s+0|systemctl\s+stop\s+auditd|shred\s+.*/var/log)</field>
<description>로그·흔적 삭제·감사 무력화(anti-forensic)</description>
<mitre><id>T1070</id><id>T1562.001</id></mitre>
</rule>
</group>
로그는 Wazuh/ELK로 실시간 원격 전송해 로컬 삭제 전에 원본을 보존합니다. 감사 무력화는 최우선 경보로 둡니다.
| anti-forensic | 기법 |
|---|---|
| 로그 삭제·비우기 | rm·> redirect |
| 히스토리 제거 | history -c·rm |
| 감사 무력화 | auditctl -e 0·stop |
| 타임스탬프 변조 | touch(F36) |
| 면접 포인트 | "흔적 삭제는 행위 자체가 신호 — 원격 수집으로 원본 보존이 핵심 대비" |
다음 편 286. 프로세스·지속성 — 타임스탬프 변조(timestomping) 탐지 에서는 타임스탬프 변조를 다루는 타임스탬프 변조(timestomping) 탐지를 다룹니다.
이전 편: 284. 프로세스·지속성 — 프로세스 은닉(rootkit·hiding) 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점