362. 방어 회피·흔적 삭제 — auditd 감사 로그 조작 탐지

changseop lee·5일 전

시스템 보안 · 취약점

목록 보기
362/450

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

선행 학습

1. 개념

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 저널로 교차 탐지합니다.

2. 왜 중요한가

  • auditd는 전체 탐지의 근간이라, 무력화되면 핵심 이벤트가 전부 사라집니다.
  • auditd 중지·규칙 삭제(auditctl -D)·로그 삭제가 핵심 무력화 수단입니다.
  • auditd가 멈추면 자기 자신을 못 보므로 중앙 수집·systemd 저널 교차가 필수입니다.

3. 핵심 명령어 / 설정

무력화명령영향
서비스 중지systemctl stop auditd전체 감사 중단
규칙 삭제auditctl -D탐지 규칙 제거
로그 삭제rm audit.log흔적 제거
설정 변조auditd.conf 수정수집 약화
전송 차단audisp 중단중앙 수집 차단

4. 실습 (실습 예시)

# 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

5. 정상 상태

$ (auditd 상태) enabled 1, 규칙 다수 적재
$ (저널) stopped 없음(지속 가동)

auditd가 enabled 상태로 규칙이 적재되어 지속 가동되고, 중지·규칙 삭제 이력이 없는 상태가 정상입니다.

6. 이상 상태

$ (저널) auditd.service: Deactivated (03:05 중지)
$ (규칙) auditctl -l → 규칙 없음(삭제됨)
$ (명령 흔적)
proctitle="auditctl -D" (규칙 전체 삭제)
proctitle="systemctl stop auditd" (서비스 중지)
  • auditctl -D로 전체 규칙 삭제 → 탐지 무력화
  • systemctl stop auditd → 감사 중단(핵심 이벤트 소멸)
  • auditd 무력화 → 가장 강한 방어 회피 → 정탐(중앙·저널로 포착)

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

auditd 무력화 분석입니다(가상의 예시).

[공격 진행] 권한 상승·측면 이동
   ↓ (감사 무력화 — 핵심 흔적 차단)
auditctl -D (규칙 삭제) → 이후 이벤트 안 남음
systemctl stop auditd (서비스 중지)
      ↕ (교차 탐지)
 ① systemd 저널: auditd Deactivated 기록
 ② 중앙 수집: 중지 직전까지 이벤트 보존
 ③ Wazuh: auditd 연결 끊김 경보
   ↓
= auditd가 멈춰도 저널·중앙·Wazuh가 포착 → 정탐
교차 채널포착
systemd 저널중지 이력
중앙 수집중지 전 이벤트
Wazuh 연결끊김 경보

auditd 외부 채널 교차가 자기 무력화 탐지의 핵심입니다.

8. SOC 관제 포인트

  • auditd 무력화는 전체 탐지 근간을 차단하는 가장 강력한 방어 회피입니다.
  • 서비스 중지·규칙 삭제(auditctl -D)·로그 삭제·전송 차단이 핵심 수단입니다.
  • auditd가 자기를 못 보므로 systemd 저널·중앙 수집·Wazuh 연결 끊김으로 교차 탐지합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 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 저널·중앙 수집과 상관해 자기 무력화를 포착합니다.

10. 대응 방법

  1. 초기 확인 — auditd 서비스 상태·규칙 적재·설정을 systemd 저널·중앙 수집으로 교차 확인합니다.
  2. 범위 확인 — 서비스 중지·규칙 삭제·로그 삭제·전송 차단을 확인합니다.
  3. 증거 확보 — 저널·중앙 수집본·중지 직전 이벤트를 보존합니다.
  4. 차단/조치 — auditd 무력화 정탐이면 감사 복구·중지 구간 은폐 활동 분석을 진행합니다.
  5. 재발 방지 — auditd 감사 무력화 탐지를 운영합니다.

11. 핵심 정리

무력화명령
서비스 중지systemctl stop auditd
규칙 삭제auditctl -D
로그 삭제rm audit.log
전송 차단audisp 중단
면접 포인트"auditd 무력화는 탐지 근간 차단 — 저널·중앙·Wazuh 연결로 교차 탐지"

12. 다음 편 예고

다음 편 363. 방어 회피·흔적 삭제 — syslog·journald 조작 탐지 에서는 syslog·journald 조작을 다루는 syslog·journald 조작 탐지를 다룹니다.


이전 편: 361. 방어 회피·흔적 삭제 — 셸 히스토리 삭제·비활성화 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글