SIEM · 보안관제 › A. SIEM 구조와 로그 수집 · 37/50편
학습 단계: 저장·파이프라인
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Wazuh 4.x 올인원 / Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
파이프라인 뒤쪽이 느려지면 앞쪽에 이벤트가 쌓입니다. 이를 백프레셔(backpressure)라고 하며, 버퍼가 가득 차면 결국 이벤트가 버려집니다. 공격으로 로그가 폭증할 때 가장 중요한 로그가 사라질 수 있다는 뜻입니다.
단계별 버퍼와 드롭 지점
[agent] client_buffer(queue_size, events_per_second)
→ 가득 차면 에이전트 측 이벤트 유실(버퍼 경고 기본 룰 202~204 계열, 버전 확인)
[manager] analysisd 큐
→ wazuh-analysisd.state 의 events_dropped 증가
[filebeat] 내부 큐 → 인덱서 응답 지연 시 대기
[indexer] 디스크 워터마크 초과 → 쓰기 차단(read_only)
예: 스캔 공격으로 web01 로그 폭증
agent 초당 전송 상한(events_per_second) 도달 → 버퍼 누적 → 포화 → 유실
핵심: 공격 순간이 로그가 가장 많은 순간 — 드롭 지표를 상시 본다
에이전트의 events_per_second는 매니저 보호를 위한 상한입니다. 너무 낮으면 폭증 시 유실이 생기고, 너무 높으면 매니저가 과부하됩니다. 실측 EPS를 기준으로 조정합니다.
| 지점 | 지표 | 정상 |
|---|---|---|
| 에이전트 | 버퍼 경고 Alert | 없음 |
| analysisd | events_dropped | 0 |
| filebeat | 큐·재시도 로그 | 재시도 드묾 |
| indexer | 디스크 사용률·쓰기 거부 | 워터마크 미만 |
# 단계별 드롭·적체 지표 (실습 예시)
sudo grep -E "^(events_received|events_dropped|event_queue_usage)" /var/ossec/var/run/wazuh-analysisd.state 2>/dev/null
sudo jq -r 'select(.rule.id|test("^20[234]$")) | [.timestamp,.agent.name,.rule.description] | @tsv' /var/ossec/logs/alerts/alerts.json | tail -3
curl -sk -u 'admin:<비밀번호>' "https://localhost:9200/_cat/allocation?v&h=node,disk.percent"
events_dropped='0'
버퍼 경고 Alert 없음
disk.percent 41
분석 엔진 드롭이 0이고, 에이전트 버퍼 경고가 없으며, 인덱서 디스크가 워터마크 아래인 상태가 정상입니다.
03:20 web01 "Agent event queue is full. Events may be lost."
events_dropped='18234'
같은 시각: 웹 스캔 Alert 급증(31101 × 9,000)
백프레셔 분석 흐름입니다(가상의 예시).
[드롭 신호] 버퍼 경고 · events_dropped 증가
↓
[시점·호스트] 폭증 원인(공격·장애·설정 변경)
↓
[유실 범위] 해당 시간대 호스트 로컬 로그와 대조
↓
[조정] events_per_second · 매니저 자원 · 노이즈 필터(046편)
↓
[재발 감시] 폭증 시뮬레이션 후 드롭 0 확인
| 원인 | 조치 |
|---|---|
| 공격성 폭증 | 노이즈 필터·출발지 차단 |
| 상한 과소 | events_per_second 상향 |
| 매니저 자원 부족 | 증설·분산 |
유실 구간의 판단은 "탐지 못함"이 아니라 "볼 수 없었음"으로 기록하고, 로컬 로그로 메운 결과를 함께 남겨야 사고 보고서가 정확해집니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,siem_a,">
<rule id="110360" level="12">
<if_sid>203</if_sid>
<description>에이전트 이벤트 큐 포화(로그 유실 발생 가능)</description>
</rule>
</group>
에이전트 버퍼 포화를 알리는 기본 룰(203, 버전별 ID 확인 필요)을 상위로 두고 레벨을 높여 즉시 확인하도록 하는 예시입니다.
| 지점 | 지표 |
|---|---|
| 에이전트 | 버퍼 포화 경고 |
| 매니저 | events_dropped |
| 인덱서 | 디스크 워터마크 |
| 원칙 | 유실은 볼 수 없었음으로 기록 |
| 면접 포인트 | "공격 순간이 로그가 가장 많은 순간 — 버퍼가 차면 가장 중요한 로그부터 사라질 수 있다" |
다음 편 038. SIEM·로그 수집 — 로그 전송 보안 — TLS와 인증 에서는 에이전트↔매니저, 매니저↔인덱서, syslog 전송 구간의 암호화·인증 상태를 점검하고 평문 전송·인증서 만료 위험을 다룹니다.
이전 편: 036. SIEM·로그 수집 — Logstash 필터 — grok·mutate·date
📚 시리즈 전체 보기: SIEM · 보안관제