Docker에서 프로덕션 수준의 Wazuh SIEM을 구축한 방법 (VMware, AWS, GCP용 커스텀 규칙 포함)
Source: Dev.to
대부분의 Wazuh 설정에서 발생하는 문제
Wazuh를 바로 사용하면 일반적인 Linux 알림을 제공합니다. 유용하지만 잡음이 많습니다. 제가 필요했던 것은:
- Docker 컨테이너 악용(특권 실행, 의심스러운 마운트, 암호화 채굴)에 맞춘 탐지 규칙
- VMware vCenter 모니터링 – 스냅샷 남용, vMotion 이벤트, 인증 무차별 대입
- AWS CloudTrail 및 GCP Audit Log 이상 징후를 Wazuh 규칙에 매핑
- 수십 대의 머신에 하나씩 SSH 접속하지 않고 에이전트를 대규모로 배포할 수 있는 방법
- 실험실(4 GB RAM)과 프로덕션 모두에서 동작하는 솔루션
스택 구성
┌─────────────────────────────────┐
│ Wazuh Manager :1514 / :55000 │
│ Wazuh Indexer :9200 │
│ Wazuh Dashboard :5601 │
│ NGINX (optional reverse proxy)│
└─────────────────────────────────┘
↑ agents on port 1514
Linux servers · Windows servers · Docker hosts · vCenter
↑ log forwarding
AWS CloudTrail (S3) · GCP Pub/Sub
모든 구성은 docker compose 로 실행됩니다. 테스트용으로 리소스 사용량을 줄여주는 docker-compose.lab.yml 오버레이도 포함되어 있습니다.
사용자 정의 탐지 규칙
rules/ 디렉터리에는 각 환경별 규칙 세트가 들어 있습니다.
Docker (rules/docker/)
- 컨테이너 exec 이벤트
- 특권 컨테이너 생성
- 호스트 네임스페이스 남용 (
--pid=host,--network=host) - 의심스러운 바인드 마운트 (
/etc,/var/run/docker.sock) - 암호화 채굴 시그니처
VMware (rules/vmware/)
- VM 전원 상태 변화
- 스냅샷 생성/삭제 (랜섬웨어 지표)
- 호스트 연결 끊김 이벤트
- vCenter 로그인 무차별 대입
AWS (rules/aws/)
- IAM 정책 변경
0.0.0.0/0로 열려 있는 보안 그룹- MFA 없이 콘솔 로그인
- CloudTrail 비활성화 또는 삭제
GCP (rules/gcp/)
- 공개 버킷 생성
0.0.0.0/0로 열려 있는 방화벽 규칙- IAM 정책 변경
- 허용된 지역 외에 Compute 인스턴스 생성
Ansible 에이전트 배포
레포지토리에는 에이전트 설치를 자동화하는 Ansible 플레이북이 포함되어 있습니다.
# 인벤토리 내 모든 Linux 호스트에 배포
ansible-playbook -i inventories/production playbooks/deploy-linux-agent.yml
# Windows 호스트 (WinRM 사용)
ansible-playbook -i inventories/production playbooks/deploy-windows-agent.yml
네트워크 탐지 스크립트가 서브넷을 스캔하고 Ansible 인벤토리를 생성한 뒤 바로 배포 파이프라인에 전달합니다:
make onboard SUBNET=10.0.0.0/24
한 번의 명령: 스캔 → 탐지 → 에이전트 배포 → 검증.
시작하기
git clone https://github.com/GiulioSavini/wazuh-docker-monitoring-platform.git
cd wazuh-docker-monitoring-platform
make preflight # Docker, 커널 파라미터, 디스크, 포트 검증
cp .env.example .env # 비밀번호 등 설정
make init # TLS 인증서 생성
make deploy # 스택 구동
대시보드는 몇 분 후 https://localhost:5601 에서 확인할 수 있습니다.
실험실 모드 vs 프로덕션 모드
RAM이 제한된 홈랩에서 실행 중인가요? 실험실 오버레이를 사용하세요:
docker compose -f docker-compose.yml -f docker-compose.lab.yml up -d
Wazuh Indexer 힙과 매니저 메모리 제한을 8 GB 머신에 맞게 낮춰줍니다.
앞으로의 계획
예정 로드맵:
- Wazuh 클러스터 모드(멀티‑노드 매니저)
- Kubernetes Helm 차트
- SOAR 연동 (Shuffle / TheHive)
- Sigma 규칙 자동 임포트
- 자동화된 컴플라이언스 대시보드(PCI‑DSS, CIS)
VMware, Docker, 혹은 클라우드 인프라를 사용하고 상용 SIEM 없이도 제대로 된 보안 가시성을 원한다면 한 번 시도해 보세요. PR 및 규칙 기여를 환영합니다.
→ https://github.com/GiulioSavini/wazuh-docker-monitoring-platform