← 아티클 목록

WAF 설정 기초 — 웹 공격을 입구에서 막는 법

2027-11-08#WAF#보안#클라우드

방화벽으로 포트를 막아도 80·443 같은 웹 포트는 열어둘 수밖에 없습니다. 문제는 그 열린 문으로 SQL 인젝션이나 XSS 같은 정상 요청처럼 생긴 공격 이 들어온다는 점입니다. 이걸 거르는 게 WAF(Web Application Firewall)입니다. 일반 방화벽이 IP·포트를 보는 4계층 경비라면, WAF는 HTTP 요청의 URL·헤더·바디 내용을 읽는 7계층 검문소입니다.

일반 방화벽 vs WAF

구분보는 것막는 공격
네트워크 방화벽IP, 포트비정상 포트 접근, 특정 IP
WAFHTTP 요청 내용(URL/헤더/바디)SQL 인젝션, XSS, 경로 탐색

WAF는 보통 로드밸런서나 CDN 앞단에 붙어, 요청이 애플리케이션에 닿기 전에 검사합니다. 통과한 요청만 뒤로 넘어갑니다.

WAF 규칙의 세 갈래

  1. 관리형 규칙(Managed Rules) — 클라우드 제공사가 OWASP Top 10 같은 알려진 공격 패턴을 미리 만들어 둔 규칙 묶음입니다. 가장 먼저 켜야 할 기본기입니다. 예: 공통 위협 규칙, SQL 인젝션 규칙, 알려진 악성 IP 목록.

  2. 커스텀 규칙(Custom Rules) — 우리 서비스에만 필요한 조건을 직접 만듭니다. 예를 들어 관리자 경로는 사내 IP에서만 허용하는 규칙입니다.

JSON
{
  "Name": "admin-path-allow-office-only",
  "Priority": 1,
  "Action": { "Block": {} },
  "Statement": {
    "AndStatement": { "Statements": [
      { "ByteMatchStatement": { "SearchString": "/admin",
        "FieldToMatch": { "UriPath": {} } } },
      { "NotStatement": { "Statement": {
        "IPSetReferenceStatement": { "ARN": "arn:...:office-ips" } } } }
    ] }
  }
}
  1. 레이트 기반 규칙(Rate-based) — 같은 IP가 짧은 시간에 과도하게 요청하면 자동 차단합니다. 로그인 폼 무차별 대입이나 단순 DoS를 막는 데 효과적입니다. 예: 5분에 한 IP당 1000건 초과 시 차단.

적용 순서 — Count 모드부터

규칙을 처음부터 Block으로 켜면 정상 사용자까지 막아버리는 오탐(false positive)으로 장애가 납니다. 안전한 순서는 이렇습니다.

  1. 관리형 규칙을 Count 모드로 먼저 켜고, 어떤 정상 트래픽이 걸리는지 로그로 관찰합니다.
  2. 오탐을 일으키는 규칙은 예외(허용 조건)를 추가하거나 해당 규칙만 끕니다.
  3. 충분히 관찰한 뒤 Block 모드로 전환합니다.
  4. 차단 로그를 대시보드로 모니터링하며 임계치를 조정합니다.

WAF는 한 번 켜고 끝나는 게 아니라, 로그를 보며 규칙을 다듬어가는 운영 대상이라는 점이 핵심입니다.

요점 정리

  • 네트워크 방화벽은 IP·포트를, WAF는 HTTP 요청 내용을 본다.
  • 관리형 규칙(기본기) 커스텀 규칙(우리 서비스용) 레이트 제한(무차별 대입) 순으로 쌓는다.
  • 반드시 Count 모드로 오탐을 걸러낸 뒤 Block으로 전환한다.

WAF 규칙을 직접 만들고 공격 요청이 차단되는 과정을 로그로 확인하는 실습은 클라우드 트랙에서 회원가입 없이 무료로 할 수 있습니다.