카테고리 없음
[Linux] Graylog 슬랙 웹훅 설정
tech-record
2026. 7. 27. 20:52
raylog를 운영하다 보면 “로그는 쌓이는데, 언제 이상 징후를 잡아내지?”라는 고민을 한 번쯤 하게 됩니다.
이번 글에서는 VPN 로그인 실패(브루트포스 공격) 탐지를 기준으로, Graylog에서 Slack으로 실시간 알람을 보내는 전체 과정을 처음부터 끝까지 정리합니다.
이 가이드는 한 번만 제대로 만들어두면, 이후에는 검색어와 조건만 바꿔 다양한 보안 알람으로 확장할 수 있습니다.
○ 전체 흐름 한눈에 보기
- Event Definition 생성
- 탐지 조건(Filter & Aggregation) 설정
- Slack에 전달할 필드 가공
- 알람 메시지 및 발송 정책 구성
경로:
Graylog → Alerts → Event Definitions → Create Event Definition
경로:
Graylog → Alerts → Event Definitions → Create Event Definition
📍 1단계: Event Details (기본 정보 설정)
- Title: [경고] VPN 로그인 실패 임계치 초과 (브루트포스)
- Description: 1시간 내 동일 IP/계정 5회 이상 로그인 실패 시 탐지 (선택)
설정 후 Next 클릭
📍 2단계: Condition (탐지 조건 설정) ⭐ 핵심
“누가, 언제, 어떤 기준으로 공격으로 판단할 것인가”를 정의하는 단계입니다.
- Condition Type: Filter & Aggregation
- Search Query:
act:"Failed Log In" - Search within the last: 1 hours
- Execute search every: 1 minutes
- Create Events 조건:
Aggregation of results reaches a threshold - Group by Fields:
src, src_country, duser
(공격 IP + 국가 + 계정 기준으로 묶음) - Condition:
count() ≥ 5
즉,
같은 IP/국가/계정 조합에서 1시간 동안 5번 이상 실패하면 알람 발생
설정 후 Next
📍 3단계: Fields (Slack 전송용 변수 가공)
Slack 메시지에서 보기 좋게 출력하기 위해 필드를 가공합니다.
모두 Set Value From: Template 방식 사용
- attacker_ip → ${source.src}
- attacker_country → ${source.src_country}
- target_user → ${source.duser}
설정 후 Next
📍 4단계: Notifications (Slack 알람 설정)
알람 품질을 좌우하는 중요한 단계입니다.
✔ Grace Period (알람 폭탄 방지)
- 60 minutes 권장
→ 동일 공격에 대해 반복 알림 차단
✔ Message Backlog (상세 로그 포함)
- 체크 + 10 입력
→ 최근 시도 로그를 함께 전송
✔ Slack 메시지 템플릿
아래 내용을 그대로 사용하면 실무에서 바로 활용 가능합니다.
text
🚨 *[보안 경고] VPN 로그인 실패 임계치 초과 탐지* 🚨
${event.message}
🛑 *공격자 IP:* ${event.fields.attacker_ip}
🌍 *공격자 국가:* ${event.fields.attacker_country}
👤 *타겟 계정명:* ${event.fields.target_user}
🕒 *탐지 구간:* ${event.timerange_start} ~ ${event.timerange_end}
🔥 *최근 로그인 실패 시도 내역:*
${if backlog}
${foreach backlog message}
• [${message.timestamp}] 타겟 계정: ${message.fields.duser} / 출발지: ${message.fields.src}
${end}
${else}
상세 로그를 불러오지 못했습니다.
${end}
📍 5단계: Summary (최종 확인)
설정 내용을 최종 검토 후
Done 버튼 클릭으로 저장 완료
🔄 활용 팁 (실무 응용)
이 구조를 그대로 유지한 채 아래만 바꾸면 다양한 보안 알람으로 확장 가능합니다.
- 포트 스캔 탐지 → 검색어 + 포트 필드 기준 변경
- 트래픽 급증 → bytes, packets 기반 threshold 설정
- 계정 탈취 시도 → 로그인 성공/실패 패턴 조합
핵심은 단 하나입니다.
“Aggregation + Grouping + Threshold” 구조를 이해하는 것