📚 네트워크 · 패킷 분석 › 06. 방화벽 · IDS 기초 — 255편
이전 글: 254. Stateful Firewall · 다음 글: 256. Firewall Rule

1. 개념

Application Firewall(응용 계층 방화벽) 은 IP·포트뿐 아니라 응용 계층의 내용(HTTP 메서드·URL·파라미터, DNS 질의, 애플리케이션 종류 등)을 해석해 허용·차단을 결정하는 방화벽입니다. Stateful 방화벽(254. Stateful Firewall)이 "443 포트로 가는 TCP 연결"까지만 안다면, 응용 계층 방화벽은 "그 연결 안에서 어떤 요청이 오가는가"를 봅니다.

형태에 따라 다음처럼 나눌 수 있습니다.

형태동작 방식주 용도판단 예
프록시 방화벽클라이언트 연결을 종료하고 대신 서버에 새 연결사용자 웹 접속 통제특정 URL 분류 차단
WAF웹 서버 앞에서 HTTP 요청·응답 검사웹 서비스 보호SQL Injection 패턴 차단
NGFW 애플리케이션 식별트래픽 특성으로 앱 종류 식별포트와 무관한 앱 통제"443이지만 원격제어 앱" 차단

2. 동작 원리

WAF를 예로 들면 요청 한 건은 다음 단계를 거칩니다.

클라이언트 HTTPS 요청
   ↓
[TLS 종료 지점: 로드밸런서 또는 WAF]  ← 여기서 복호화되어야 내용 검사 가능
   ↓ 평문 HTTP 요청
[요청 파싱: 메서드, URI, 헤더, 쿠키, 본문]
   ↓
[규칙 비교 → 일치 시 점수 누적 또는 즉시 판단]
   ↓
[임계치 초과?] ─ 예 → 차단 모드: 403 응답 / 탐지 모드: 기록만
   ↓ 아니오
웹 서버로 전달 → 응답도 검사(설정 시)

핵심 조건은 복호화입니다. TLS로 암호화된 트래픽은 복호화 지점 이전에서는 내용이 보이지 않으므로, 응용 계층 판단은 인증서를 가진 지점(서버 앞 WAF, 또는 사용자 측 SSL 검사 프록시)에서만 가능합니다. HTTPS 트래픽의 특성은 138. HTTPS Traffic 이해를 참고합니다.


3. 주요 특징

운영 모드동작장점주의
탐지(모니터링) 모드규칙 일치를 기록만 함서비스 영향 없이 오탐 파악공격이 서버에 도달
차단 모드일치 시 요청 거부공격 차단오탐 시 정상 사용자 차단
  • 오픈소스 WAF 엔진 ModSecurity는 SecRuleEngine 값으로 모드를 정합니다(DetectionOnly는 탐지만, On은 차단 포함).
  • OWASP CRS(Core Rule Set)는 규칙 하나로 바로 차단하지 않고 이상 점수(Anomaly Score)를 누적해 임계치를 넘을 때 차단하는 방식을 기본으로 씁니다. 그래서 WAF 로그에는 개별 규칙 일치 기록과 최종 판단 기록이 함께 나타날 수 있습니다.
  • NGFW의 애플리케이션 식별은 포트와 애플리케이션을 분리합니다. 표준이 아닌 포트에서 동작하는 서비스나, 443을 쓰는 원격 제어 도구를 구분할 수 있습니다.
  • 응용 계층 검사는 처리 비용이 커서 모든 트래픽이 아니라 필요한 구간에 적용합니다.

4. 예시

WAF 이벤트는 대체로 다음 정보를 담습니다. 형식 예시(값은 환경마다 다름)이며 특정 제품의 실제 출력이 아닙니다.

# 형식 예시 — WAF 차단 이벤트
time=2026-09-30T11:02:17 client=198.51.100.44 host=shop.example.com
method=GET uri="/item/view?no=1%27%20OR%20%271%27%3D%271"
rule_id=942100 msg="SQL Injection Attack Detected" anomaly_score=5
action=block status=403 server=10.20.0.10

같은 요청이 방화벽 로그에는 dst=10.20.0.10 dport=443 action=allow 한 줄로만 남습니다. 방화벽은 443 연결을 허용했고, 차단은 응용 계층에서 일어났기 때문입니다.

분석 방법 — 위 이벤트를 볼 때는 URL 인코딩을 먼저 해석합니다. %27은 작은따옴표, %20은 공백, %3D는 등호이므로 파라미터 값은 1' OR '1'='1입니다. 전형적인 SQL Injection 조건식 패턴입니다.


5. 보안 관점

  • 응용 계층 방화벽은 허용 포트 안에서 일어나는 공격을 다룰 수 있다는 점에서 네트워크 방화벽을 보완합니다.
  • 인코딩·대소문자·주석 삽입 같은 우회 표현에 대비하려면 요청을 정규화한 뒤 비교해야 합니다. WAF 엔진은 보통 변환(디코딩) 단계를 거칩니다.
  • WAF는 애플리케이션 취약점을 고치는 것이 아니라 공격 시도를 걸러 주는 완충 장치입니다. 근본 조치는 코드 수정입니다.
  • TLS 복호화 지점은 민감 정보가 평문으로 존재하는 구간이므로 접근 통제와 로그 마스킹을 함께 고려합니다.

6. SOC 관점

관제자가 확인할 질문

  • WAF가 차단했는가, 탐지만 했는가? 탐지 모드라면 요청은 서버에 도달했습니다.
  • 서버 응답 코드와 응답 크기는? 같은 요청에 대한 웹 서버 access log를 함께 봅니다.
  • 같은 출발지에서 여러 규칙 ID가 짧은 시간에 연속 일치했는가? 자동화 스캐너 가능성을 봅니다(230. Web Scan).
확인 자료확인 내용
WAF 이벤트규칙 ID, 일치 위치(URI·본문·헤더), 조치
웹 서버 access log요청 도달 여부, 응답 코드, 응답 크기
방화벽 로그해당 출발지의 연결 수·시간대

오탐 주의: 게시판 본문의 SQL 예제, 개발자 도구의 JSON 데이터, 특수문자가 많은 검색어는 WAF 오탐의 흔한 원인입니다. 오탐 판단은 285. False Positive, 웹 공격 탐지는 293. Web Attack 탐지에서 다룹니다.


7. 핵심 정리

  • Application Firewall은 응용 계층의 요청 내용까지 해석해 허용·차단을 결정합니다.
  • 프록시 방화벽, WAF, NGFW 애플리케이션 식별은 적용 위치와 목적이 다릅니다.
  • 암호화된 트래픽은 복호화 지점 뒤에서만 내용 검사가 가능합니다.
  • 탐지 모드와 차단 모드에 따라 "공격이 서버에 도달했는가"의 결론이 달라집니다.
  • WAF 이벤트는 웹 서버 로그·방화벽 로그와 함께 봐야 실제 영향 여부를 판단할 수 있습니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글