147. Linux 정보 수집 — Wazuh 기반 Linux 정보 수집 탐지

changseop lee·6일 전

시스템 보안 · 취약점

목록 보기
147/310

시스템 보안 · 취약점 › C. Linux 정보 노출 및 수집 · 47/50편 (전체 147/450)
학습 단계: SOC 탐지 연계
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

C영역 상관분석(C46)을 Wazuh로 자동화합니다. 핵심은 auditd의 recon 키를 Wazuh가 받아, 세션 기준으로 상관하는 것입니다. C영역 룰은 102000번대를 씁니다.

탐지 파이프라인
 auditd 규칙(recon_*)        → audit.log
    ↓ Wazuh audit 디코더
 Wazuh manager (룰 매칭)      → recon 단건 룰 + 세션 상관 룰
    ↓
 Alert (102000대) → 대시보드(148편)

룰 계층
 단건  : recon_* 키별 조회 (낮은 레벨)
 세션 상관: 다영역 결합 (높은 레벨, 102450)
 유스케이스: 정찰→다음단계 (E·F·G 연계)

A영역 47편(룰셋 관리)의 방식을 C영역에 적용합니다.

2. 왜 중요한가

  • 수동 상관분석(C46)은 사고 후 분석엔 좋지만, 상시 탐지는 자동화가 필요합니다.
  • auditd -p r(읽기) 규칙은 이벤트가 많아, 사람 세션(auid)·키·빈도로 좁히지 않으면 로그가 폭증합니다.
  • 룰은 반드시 wazuh-logtest로 검증하고 테스트 환경에서 오탐을 튜닝한 뒤 배포합니다.

3. 핵심 명령어 / 설정

요소내용
auditd 연동recon_* 키 규칙(C01~45)
Wazuh 디코더audit → data.audit.key·session·auid
단건 룰102000~102440(키별)
상관 룰102450(세션 다영역)
검증wazuh-logtest
튜닝사람 세션·빈도·예외

4. 실습 (실습 예시)

# 1) auditd recon 규칙이 Wazuh로 수집되는지 확인 (실습 예시)
sudo tail -f /var/ossec/logs/alerts/alerts.log | grep -E 'recon_|102[0-9]{3}'

# 2) 샘플 정찰 로그로 룰 매칭 검증
sudo /var/ossec/bin/wazuh-logtest
# 입력: type=SYSCALL ... auid=1002 ses=12 comm="uname" key="recon_sysinfo"
# 출력: id '102000'(또는 상관 102450) 확인

# 3) 오탐 튜닝: 관리자 계정·백업 스크립트 세션 예외 (좁게)
# local_rules.xml 에 특정 auid/프로그램 예외 룰 추가

5. 정상 상태

**Phase 3: Completed filtering (rules).
	id: '102450'
	level: '12'
	description: '단일 세션의 전방위 정보 수집(다영역 정찰 상관)'
	groups: '[..., syssec_c, recon]'

샘플 정찰 로그가 상관 룰(102450)에 매칭되고, 관리자 정상 세션은 단건 낮은 레벨에 그치는 상태가 정상입니다.

6. 이상 상태

$ sudo tail /var/ossec/logs/ossec.log
wazuh-analysisd: ERROR: Invalid regex at rule '102440'
 또는
(recon_log 단건 Alert 폭증 — tail/cat 정상 작업까지 탐지)
  • 정규식 오류로 룰 로딩 실패 → 해당 파일 미적용(A영역 47편과 동일 위험)
  • -p r 읽기 규칙이 너무 넓어 정상 로그 열람까지 Alert 폭증 → 사람 세션·빈도로 좁혀야 함
  • 배포 전 wazuh-logtest·테스트 환경 검증 필수

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

Wazuh 탐지 결과의 구조입니다(가상의 예시).

rule.id: 102450  level: 12
rule.description: 단일 세션의 전방위 정보 수집
data.audit.auid: 1002   data.audit.session: 12
agent.name: rocky9-web01   timestamp: 2026-10-02T02:17:00
rule.mitre.id: ["T1082","T1016","T1087"]
필드활용
audit.session세션 상관
audit.auid행위자
rule.mitre.idATT&CK 매핑
agent.name호스트

8. SOC 관제 포인트

  • C영역 룰은 102000 대역 + recon 그룹으로 통일하고 세션 상관을 핵심으로 둡니다.
  • -p r 읽기 규칙은 사람 세션·빈도·예외로 좁혀 폭증을 막습니다.
  • 모든 룰은 wazuh-logtest·테스트 환경 검증 후 배포합니다(실습 예시 명시).

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_c,recon,">
  <!-- 정상 백업 스크립트 세션 예외(좁게) -->
  <rule id="102460" level="2">
    <if_sid>102000,102440</if_sid>
    <field name="audit.auid">^991$</field>  <!-- backup 계정 UID 예시 -->
    <description>백업 계정의 정보 조회(정상) - 집계용</description>
  </rule>
</group>

예외는 계정·프로그램을 좁게 지정합니다(A영역 48편 원칙). 넓은 예외는 공격자가 그 계정을 악용하는 통로가 됩니다.

10. 대응 방법

  1. 초기 확인 — recon 룰의 매칭·오탐·폭증을 wazuh-logtest·대시보드로 점검합니다.
  2. 범위 확인 — 상관 룰(102450)이 세션을 올바로 묶는지 검증합니다.
  3. 증거 확보 — 룰 파일(git)·검증 결과를 보존합니다.
  4. 차단/조치 — 오류 룰 수정·예외 튜닝 후 재배포합니다.
  5. 재발 방지 — 102000 대역 룰셋과 세션 상관을 운영 기준으로 둡니다.

11. 핵심 정리

구분핵심 내용
ID 대역C영역 102000~102999
파이프라인auditd(recon_*) → Wazuh → 상관 Alert
핵심 룰102450 세션 다영역 상관
주의-p r 규칙 폭증 → 사람 세션·빈도로 제한
면접 포인트"읽기 감사는 폭증하기 쉬워 세션·빈도로 좁히고 검증 후 배포"

12. 다음 편 예고

다음 편 148. Linux 정보 수집 — ELK/SIEM 기반 정보 수집 탐지와 정탐·오탐 판단 에서는 ELK/SIEM 기반 탐지와 정탐·오탐 판단을 다룹니다.


이전 편: 146. Linux 정보 수집 — Linux 정보 수집 행위의 이벤트 상관분석
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글