WAF 운영 6주 분석: 4,157건 공격, 90% 차단

운영 기간: 2026-01-29 ~ 2026-03-12 (43일)
WAF 스택: Caddy 2.11 + Coraza (OWASP CRS)
모니터링: PostgreSQL + FastAPI Dashboard


📊 전체 통계

총 요청:       4,157건
차단:          3,744건 (90.1%)
규칙 트리거:   4,157건 (100%)
고유 공격자:   68개 IP
기간:          43일

주요 지표

  • 차단률: 90.1% (매우 우수)
  • 허니팟 효과: 493건 감지 (288개 IP)
  • 자동차단: 평균 10회 block → 자동 차단
  • 국가별: 한국 34.2%, 대만 22.8%, 미국 14.0%

🎯 Top 5 공격 패턴

순위공격 유형규칙 ID횟수고유 IP심각도
1Banned IP 재접근990001,0279Emergency
2SQL Injection9421006083Critical
3Anomaly Score 209491105254Emergency
4Anomaly Score 594911031237Emergency
5Restricted File Access93013025922Critical

상세 분석

1️⃣ SQL Injection (942100)

  • libinjection 라이브러리 활용
  • 1.221.16.187 (KR): 단일 IP에서 554건
  • 집중 시간: 2026-03-11 10:15~10:17 (2분간 집중 공격)
  • 타겟: yeonghoon.kim 메인 도메인만
  • 차단 조치: 7일 차단 완료 ✅

2️⃣ Restricted File Access (930130)

  • 민감 파일 접근 시도: .env, .git/config, wp-config.php
  • 156.146.57.177 (SG): 229건 (단일 IP)
  • 34.234.167.16 (US): 156건
  • 차단 조치: 모두 7일 차단 완료 ✅

3️⃣ JavaScript Prototype Pollution (934130)

  • Node.js 취약점 공격
  • 147건 감지 (52개 고유 IP)
  • money.yeonghoon.kim 타겟 (API 서비스)

4️⃣ Remote Command Execution (932130, 932260)

  • Unix Shell Expression: 117건
  • Direct Command Execution: 90건
  • 특징: /index.php 경로 집중 타겟

🌍 국가별 공격 분포

국가요청 수고유 IP비율
🇰🇷 한국1,423834.2%
🇹🇼 대만949322.8%
🇺🇸 미국5822114.0%
🇸🇬 싱가포르29167.0%
🇫🇷 프랑스221155.3%
🇧🇬 불가리아14453.5%
기타5472813.2%

주목할 점

  • 한국 1위: 34.2% (1.221.16.187 집중 공격)
  • 대만 2위: 22.8% (3개 IP에서 집중)
  • 미국 3위: 21개 IP로 분산 공격

🎯 도메인별 공격 타겟

도메인공격 수고유 IP
yeonghoon.kim2,39741
money.yeonghoon.kim51120
www.yeonghoon.kim4288
bing2.yeonghoon.kim17414
japan.yeonghoon.kim15812
chloe.ai.kr11612

공격 패턴

  • 메인 도메인 집중: yeonghoon.kim (57.7%)
  • API 서비스: money.yeonghoon.kim (Node.js Injection)
  • WordPress 타겟: wp-login.php 93건 감지

🍯 허니팟 효과 분석

총 493건 (288개 고유 공격자)

경로히트 수고유 IP
/.env11665
/wp-login.php9380
/.git/config7052
/info.php3530
/xmlrpc.php2926
/phpinfo.php1410
/shell.php88
/.aws/credentials54

허니팟 전략

  1. 환경 파일: .env 계열 (가장 인기)
  2. WordPress: wp-login.php, xmlrpc.php
  3. Git 설정: .git/config (소스코드 유출 시도)
  4. 클라우드 자격증명: .aws/credentials

🚨 Top 공격자 IP

IP공격 수규칙국가차단 상태
1.221.16.1871,1884🇰🇷 KR✅ 7일 차단
172.245.155.9723023🇺🇸 US✅ 7일 차단
156.146.57.1772294🇸🇬 SG✅ 7일 차단
34.234.167.161562🇺🇸 US✅ 7일 차단
124.60.145.3712516🇰🇷 KR만료 (1개월 전)

📅 일별 트렌드

날짜로그 수SQL InjectionFile AccessRCE
03-111,4905541118
03-12890010
03-1041004
03-0927207812
03-08920110

🔥 특이사항: 03-11 SQL Injection 급증

  • 평소 대비 500배 증가
  • 1.221.16.187 (KR) 단일 IP
  • 2분간 집중 공격 (10:15~10:17)
  • 대응: libinjection으로 모두 차단 + 7일 차단

🔒 차단 시스템 효과

1️⃣ 자동차단 (Autoban)

  • 규칙: 60분 내 10회 block → 자동 차단
  • 최대 기록: 35.178.175.243 (GB) - 18회 block
  • 평균: 10~15회 block 시 차단

2️⃣ 허니팟 차단

  • /.env 접근: 즉시 1일 차단
  • VPN/데이터센터: 7일 강화 차단
  • 악성 봇 UA: Scrapy, sqlmap 등 즉시 차단

3️⃣ 수동 차단 (이번 조치)

1.221.16.187   → 7일 차단 (SQL Injection 1,188건)
172.245.155.97 → 7일 차단 (다종 공격 230건)
34.234.167.16  → 7일 차단 (File Access 156건)

📈 WAF 효과성 평가

✅ 강점

  1. 높은 차단률: 90.1% (3,744/4,157)
  2. OWASP CRS 효과: libinjection으로 SQL Injection 100% 차단
  3. 허니팟 성공: 493건 감지 (조기 탐지)
  4. 자동화: 자동차단 시스템 정상 작동

⚠️ 개선 필요

  1. False Positive: 일부 정상 요청 차단 가능성
  2. VPN 우회: VPN 사용 시 국가 기반 차단 무력화
  3. API 보호: PUT/PATCH/DELETE 메서드는 WAF 우회 중

🎯 향후 계획

즉시 조치

  • Top 3 공격 IP 차단 (완료)
  • SQL Injection 대응 강화
  • 허니팟 확장 (/admin, /backup 추가)

중기 계획

  1. GeoIP 차단: 특정 국가 선택 차단
  2. Rate Limiting: IP당 요청 제한 강화
  3. Machine Learning: 패턴 기반 자동 차단

장기 계획

  1. SIEM 통합: Splunk/ELK 연동
  2. 위협 인텔리전스: 외부 IP 블랙리스트 연동
  3. 자동 보고서: 주간/월간 리포트 자동 생성

📌 결론

Caddy + Coraza WAF는 6주간 4,157건의 공격을 90.1% 차단하며 매우 우수한 성능을 보였습니다.

특히 OWASP CRS의 libinjection은 SQL Injection 공격을 100% 차단했으며, 허니팟 시스템은 493건의 공격을 조기 탐지했습니다.

자동차단 시스템은 반복 공격자를 효과적으로 차단했으며, 수동 차단으로 Top 3 공격 IP를 추가로 차단했습니다.

앞으로도 지속적인 모니터링과 개선을 통해 보안 수준을 한 단계 더 높일 예정입니다.


🔗 관련 글

📊 데이터 출처

  • WAF 로그: PostgreSQL (waf_logs 테이블)
  • 허니팟: waf_honeypot_hits 테이블
  • 차단 이력: waf_bans 테이블
  • 기간: 2026-01-29 ~ 2026-03-12