시스템 보안 · 취약점 › H. 방어 회피 · 흔적 삭제 징후 · 12/50편 (전체 362/450)
학습 단계: 로그 삭제·변조
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
auditd(리눅스 감사 시스템)는 이 시리즈 전체 탐지의 근간입니다. 공격자는 auditd 자체를 중지·규칙 삭제·로그 삭제해 가장 중요한 감사 흔적을 차단합니다. auditd가 멈추면 execve·connect 등 핵심 이벤트가 사라집니다.
auditd 감사 무력화 패턴
서비스 중지: systemctl stop auditd, service auditd stop
규칙 삭제: auditctl -D (전체 규칙 삭제)
로그 삭제: rm /var/log/audit/audit.log
설정 변조: auditd.conf·rules 파일 수정
플러그인 차단: 중앙 전송(audisp) 중단
탐지: auditd 자체를 감사(서비스·규칙·설정 watch) + 중앙 수집
핵심 역설은 "auditd를 멈추면 auditd가 못 본다"입니다. 따라서 auditd 중지 직전 이벤트·중앙 수집·systemd 저널로 교차 탐지합니다.
| 무력화 | 명령 | 영향 |
|---|---|---|
| 서비스 중지 | systemctl stop auditd | 전체 감사 중단 |
| 규칙 삭제 | auditctl -D | 탐지 규칙 제거 |
| 로그 삭제 | rm audit.log | 흔적 제거 |
| 설정 변조 | auditd.conf 수정 | 수집 약화 |
| 전송 차단 | audisp 중단 | 중앙 수집 차단 |
# auditd 감사 무력화 탐지 (분석 방법)
# auditd 서비스 상태·중지 이력(systemd 저널로 교차)
sudo journalctl -u auditd --no-pager 2>/dev/null | grep -iE 'stopped|deactivat' | tail
# 감사 규칙 삭제·상태
sudo auditctl -l 2>/dev/null | head # 규칙이 비었으면 삭제 의심
sudo auditctl -s 2>/dev/null | grep -E 'enabled'
# auditd 중지·규칙 삭제 명령 흔적(중지 직전 기록)
sudo ausearch -k proc_exec -i --start recent 2>/dev/null | grep -E 'comm="auditctl".*-D|systemctl.*auditd' | tail
$ (auditd 상태) enabled 1, 규칙 다수 적재
$ (저널) stopped 없음(지속 가동)
auditd가 enabled 상태로 규칙이 적재되어 지속 가동되고, 중지·규칙 삭제 이력이 없는 상태가 정상입니다.
$ (저널) auditd.service: Deactivated (03:05 중지)
$ (규칙) auditctl -l → 규칙 없음(삭제됨)
$ (명령 흔적)
proctitle="auditctl -D" (규칙 전체 삭제)
proctitle="systemctl stop auditd" (서비스 중지)
auditd 무력화 분석입니다(가상의 예시).
[공격 진행] 권한 상승·측면 이동
↓ (감사 무력화 — 핵심 흔적 차단)
auditctl -D (규칙 삭제) → 이후 이벤트 안 남음
systemctl stop auditd (서비스 중지)
↕ (교차 탐지)
① systemd 저널: auditd Deactivated 기록
② 중앙 수집: 중지 직전까지 이벤트 보존
③ Wazuh: auditd 연결 끊김 경보
↓
= auditd가 멈춰도 저널·중앙·Wazuh가 포착 → 정탐
| 교차 채널 | 포착 |
|---|---|
| systemd 저널 | 중지 이력 |
| 중앙 수집 | 중지 전 이벤트 |
| Wazuh 연결 | 끊김 경보 |
auditd 외부 채널 교차가 자기 무력화 탐지의 핵심입니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_h,defense_evasion,">
<rule id="107110" level="14">
<if_sid>107000</if_sid>
<field name="audit.proctitle" type="pcre2">auditctl\s+-D|systemctl\s+(stop|disable)\s+auditd|service\s+auditd\s+stop</field>
<description>auditd 감사 시스템 무력화(규칙 삭제·서비스 중지)</description>
<mitre><id>T1562.001</id></mitre>
</rule>
</group>
Wazuh에서 에이전트(auditd) 연결 끊김을 별도 경보합니다. systemd 저널·중앙 수집과 상관해 자기 무력화를 포착합니다.
| 무력화 | 명령 |
|---|---|
| 서비스 중지 | systemctl stop auditd |
| 규칙 삭제 | auditctl -D |
| 로그 삭제 | rm audit.log |
| 전송 차단 | audisp 중단 |
| 면접 포인트 | "auditd 무력화는 탐지 근간 차단 — 저널·중앙·Wazuh 연결로 교차 탐지" |
다음 편 363. 방어 회피·흔적 삭제 — syslog·journald 조작 탐지 에서는 syslog·journald 조작을 다루는 syslog·journald 조작 탐지를 다룹니다.
이전 편: 361. 방어 회피·흔적 삭제 — 셸 히스토리 삭제·비활성화 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점