WAF(Web Application Firewall) 계획 및 구현

완료됨

WAF(웹 애플리케이션 방화벽)는 일반적인 악용과 취약성으로부터 웹 애플리케이션을 중앙 집중식으로 보호합니다. 일반적으로 알려진 취약성을 악용하여 웹 애플리케이션을 공격하는 악의적인 사례가 점점 늘어나고 있습니다. 그 중에서 SQL 삽입 및 사이트 간 스크립팅은 가장 흔한 공격 방식입니다.

WAF(웹 애플리케이션 방화벽)가 일반적인 악용과 취약성으로부터 웹 애플리케이션을 중앙 집중식으로 보호하는 방법을 보여 주는 다이어그램

애플리케이션 코드에서 이러한 공격을 방지하는 일은 어렵습니다. 이를 위해 애플리케이션 토폴로지의 여러 계층에서 엄격한 유지 관리, 패치 적용 및 모니터링이 필요할 수 있습니다. 중앙 집중식 웹 애플리케이션 방화벽을 사용하면 보안을 훨씬 쉽게 관리할 수 있습니다. 또한 WAF를 사용하여 애플리케이션 관리자는 위협 및 침입으로부터 보다 확실하게 보호할 수 있습니다.

WAF 솔루션은 각각의 개별 웹 애플리케이션을 보호하는 대신 중앙의 위치에서 알려진 취약성에 패치를 적용함으로써 보안 위협에 더욱 빠르게 대응할 수 있습니다.

지원되는 서비스

WAF는 Microsoft의 Azure Application Gateway, Azure Front Door 및 Azure CDN(콘텐츠 배달 네트워크) 서비스를 사용하여 배포할 수 있습니다. Azure CDN의 WAF는 현재 공개 미리 보기로 제공되고 있습니다. WAF에는 각 특정 서비스에 대해 사용자 지정된 기능이 있습니다. 각 서비스의 WAF 기능에 대한 자세한 내용은 각 서비스에 대한 개요를 참조하세요.

Azure Application Gateway의 Azure WAF(Web Application Firewall)는 일반적인 익스플로잇과 취약성으로부터 웹 애플리케이션을 적극적으로 보호합니다. 웹 애플리케이션이 악의적인 공격 대상이 되는 경우가 빈번해짐에 따라 이러한 공격에서 SQL 삽입 및 교차 사이트 스크립팅과 같은 잘 알려진 취약성을 악용하는 경우가 많습니다.

Application Gateway의 WAF는 OWASP(Open Web Application Security Project)의 CRS(핵심 규칙 집합)를 기반으로 합니다.

다음과 같은 WAF 기능 모두 WAF 정책 내에 있습니다. 여러 정책을 만들 수 있으며, 정책을 Application Gateway, 개별 수신기 또는 Application Gateway의 경로 기반 회람 규칙에 연결할 수 있습니다. 이러한 방식으로 필요에 따라 Application Gateway 뒤에 있는 각 사이트에 별도의 정책을 적용할 수 있습니다.

웹 애플리케이션 방화벽 및 웹 애플리케이션 게이트웨이 기능의 예를 보여 주는 다이어그램

Application Gateway는 많은 ADC(애플리케이션 배달 컨트롤러)로 작동합니다. 이전에 SSL(Secure Sockets Layer)로 알려진 TLS(Transport Layer Security) 종료, 쿠키 기반 세션 선호도, 라운드 로빈 부하 분산, 콘텐츠 기반 라우팅, 다중 웹 사이트 호스트 및 향상된 보안 기능을 제공합니다.

Application Gateway는 TLS 정책 관리와 엔드투엔드 TLS 지원을 통해 보안을 강화합니다. WAF를 Application Gateway에 통합하면 애플리케이션 보안이 강화됩니다. 이 조합은 일반적인 취약성으로부터 웹 애플리케이션을 적극적으로 방어하고 중앙에서 관리할 수 있고 구성하기 쉬운 위치를 제공합니다.

보호

  • 백 엔드 코드를 수정하지 않고 웹 취약점 및 공격으로부터 웹 애플리케이션을 보호합니다.
  • 동시에 여러 웹 애플리케이션을 보호합니다. Application Gateway 인스턴스는 웹 애플리케이션 방화벽으로 보호되는 최대 40개의 웹 사이트를 호스팅할 수 있습니다.
  • 같은 WAF 뒤에 있는 다른 사이트에 대한 사용자 지정 WAF 정책을 만듭니다.
  • IP 평판 규칙 집합을 사용하여 악의적인 봇으로부터 웹 애플리케이션을 보호합니다.
  • DDoS 공격으로부터 애플리케이션을 보호합니다.

모니터링

실시간 WAF 로그를 사용하여 웹 애플리케이션에 대한 공격을 모니터링합니다. 이 로그는 Azure Monitor와 통합되어 WAF 경고를 추적하고 추세를 쉽게 모니터링합니다.

Application Gateway WAF는 클라우드용 Microsoft Defender와 통합됩니다. 중앙의 클라우드용 Defender에서 모든 Azure, 하이브리드 및 다중 클라우드 리소스의 보안 상태를 살펴볼 수 있습니다.

사용자 지정

  • 애플리케이션 요구 사항에 맞게 WAF 규칙 및 규칙 그룹을 사용자 지정하고 가양성을 제거합니다.
  • 사이트별로 구성할 수 있도록 WAF 뒤에 있는 각 사이트에 대한 WAF 정책을 연결합니다.
  • 애플리케이션의 요구 사항에 맞는 사용자 지정 규칙을 만듭니다.

기능

  • SQL 삽입 공격 보호
  • 사이트 간 스크립팅 방지
  • 명령 삽입, HTTP 요청 밀반입, HTTP 응답 분할, 원격 파일 포함 등의 일반 웹 공격 방지
  • HTTP 프로토콜 위반으로부터 보호
  • 누락된 호스트 사용자-에이전트 및 accept 헤더 같은 HTTP 프로토콜 이상 보호
  • 크롤러 및 스캐너에 대한 방지
  • 일반적인 애플리케이션 구성 오류 검색(예: Apache 및 인터넷 정보 서비스)
  • 하한값과 상한값이 있는 구성 가능한 요청 크기 제한
  • WAF 평가에서 특정 요청 특성을 생략할 수 있는 제외 목록. 일반적인 예로는 인증 또는 암호 필드에 사용되는 Microsoft Entra ID 삽입 토큰이 있습니다.
  • 애플리케이션의 특정 요구 사항에 맞는 사용자 지정 규칙 만들기
  • 특정 국가/지역의 애플리케이션에 대한 액세스를 허용하거나 차단하기 위한 지역 필터 트래픽.
  • 봇 완화 규칙 세트를 사용하여 봇으로부터 애플리케이션 보호
  • 요청 본문에서 JSON(JavaScript Object Notation) 및 XML(Extensible Markup Language)을 검사합니다.

WAF 정책 및 규칙

Application Gateway에서 웹 애플리케이션 방화벽을 사용하도록 설정하려면 WAF 정책을 만들어야 합니다. 이 정책에는 모든 관리형 규칙, 사용자 지정 규칙, 제외 및 기타 사용자 지정(예: 파일 업로드 제한)이 있습니다.

WAF 정책을 구성한 후 보호를 위해 하나 이상의 애플리케이션 게이트웨이에 이 정책을 연결할 수 있습니다. WAF 정책은 다음 두 가지 유형의 보안 규칙으로 구성됩니다.

  • 사용자가 만든 사용자 지정 규칙
  • Azure에서 관리하는 미리 구성된 규칙 집한 컬렉션인 관리형 규칙 집합

두 규칙이 모두 존재하는 경우 관리형 규칙 세트의 규칙을 처리하기 전에 사용자 지정 규칙이 처리됩니다. 규칙은 일치 조건, 우선 순위 및 작업으로 구성됩니다. 지원되는 작업 유형: ALLOW, BLOCK 및 LOG. 관리형 규칙과 사용자 지정 규칙을 결합하여 특정 애플리케이션 보호 요구 사항을 충족하는 완전히 사용자 지정된 정책을 만들 수 있습니다.

정책 내 규칙은 우선 순위에 따라 처리됩니다. 우선 순위는 처리할 규칙의 순서를 정의하는 고유한 정수입니다. 정수 값이 작을수록 우선 순위가 높고 이러한 규칙은 정수 값이 높은 규칙보다 먼저 평가됩니다. 규칙이 일치하면 규칙에 정의된 해당 작업이 요청에 적용됩니다. 이러한 일치가 처리되면 우선 순위가 낮은 규칙은 더 이상 처리되지 않습니다.

Application Gateway에서 제공하는 웹 애플리케이션에는 전역 수준, 사이트 별 수준 또는 URI별 수준에서 연결된 WAF 정책이 있을 수 있습니다.

핵심 규칙 집합

Application Gateway는 CRS 3.2, CRS 3.1 및 CRS 3.0을 비롯한 여러 규칙 집합을 지원합니다. 이러한 규칙은 악의적인 활동으로부터 웹 애플리케이션을 보호합니다.

사용자 지정 규칙

Application Gateway는 사용자 지정 규칙도 지원합니다. 사용자 지정 규칙을 사용하면 WAF를 통해 전달되는 각 요청에 대해 평가되는 사용자 고유의 규칙을 만들 수 있습니다. 이러한 규칙은 관리형 규칙 세트의 나머지 규칙보다 높은 우선 순위를 갖습니다. 조건 세트가 충족되면 허용 또는 차단 작업을 수행합니다.

봇 보호 규칙 세트

모든 봇 범주의 요청에 대해 사용자 지정 작업을 수행하도록 관리형 봇 보호 규칙 세트를 설정할 수 있습니다.

세 가지 봇 범주가 지원됩니다.

  • 불량 - 불량 봇에는 악성 IP 주소의 봇과 ID를 위조하는 봇이 포함됩니다. 악의적인 IP를 가진 악성 봇은 Microsoft 위협 인텔리전스 피드의 신뢰도가 높은 IP 손상 지표에서 가져옵니다.
  • 양호 - 양호 봇에는 Googlebot, bingbot 및 기타 신뢰할 수 있는 사용자 에이전트와 같은 유효성 검사된 검색 엔진이 포함됩니다.
  • 알 수 없음 - 알 수 없는 봇은 추가 유효성 검사 없이 게시된 사용자 에이전트를 통해 분류됩니다. 예: 시장 분석기, 피드 페처(fetcher) 및 데이터 수집 에이전트. 알 수 없는 봇에는 Microsoft 위협 인텔리전스 피드의 중간 신뢰도 IP 손상 지표에서 가져온 악성 IP 주소도 포함됩니다.

WAF 플랫폼은 봇 서명을 적극적으로 관리하고 동적으로 업데이트합니다.

봇 서명의 예를 보여 주는 스크린샷

관리형 규칙 집합할당 옵션을 사용하여 Microsoft_BotManagerRuleSet_1.0을 할당할 수 있습니다.

관리형 규칙 집합을 할당하는 방법의 예를 보여 주는 스크린샷

봇 보호를 사용하도록 설정한 경우 봇 규칙과 일치하는 수신 요청을 구성된 작업에 따라 차단, 허용 또는 로그합니다. 기본적으로 악성 봇을 차단하고 확인된 검색 엔진 크롤러를 허용하고 알 수 없는 검색 엔진 크롤러를 차단하며 알 수 없는 봇을 로그합니다. 다양한 형식의 봇을 차단, 허용 또는 로그하도록 사용자 지정 작업을 설정하는 옵션이 있습니다.

스토리지 계정, 이벤트 허브, 로그 분석에서 WAF 로그에 액세스하거나 로그를 파트너 솔루션으로 보낼 수 있습니다.

WAF 모드

Application Gateway WAF는 다음 두 가지 모드에서 실행되도록 구성할 수 있습니다.

  • 탐지 모드: 모든 위협 경고를 모니터링하고 로그합니다. 진단 섹션에서 Application Gateway에 대한 진단 로깅을 켜야 합니다. 그리고 WAF 로그가 선택되어 있고 켜져 있는지 확인해야 합니다. 웹 애플리케이션 방화벽을 탐지 모드로 실행하면 수신 요청을 차단하지 않습니다.
  • 방지 모드: 규칙에서 감지하는 침입과 공격을 차단합니다. 공격자는 "403 무단 액세스" 예외를 수신하고, 연결이 종료됩니다. 방지 모드는 이러한 공격을 WAF 로그에 기록합니다.

WAF 엔진

Azure WAF(웹 애플리케이션 방화벽) 엔진은 트래픽을 검사하고 요청에 잠재적인 공격을 나타내는 서명이 포함되어 있는지 여부를 확인하는 구성 요소입니다. CRS 3.2 이상을 사용하는 경우 WAF는 새 WAF 엔진을 실행하여 더 높은 성능과 향상된 기능 세트를 제공합니다. 이전 버전의 CRS를 사용하는 경우 WAF는 이전 엔진에서 실행됩니다. 새 Azure WAF 엔진에서만 새 기능을 사용할 수 있습니다.

WAF 작업

요청이 규칙 조건과 일치할 때 실행되는 작업을 선택할 수 있습니다. 다음과 같은 작업이 지원됩니다.

  • 허용: 요청은 WAF를 통과해서 백 엔드에 전달됩니다. 더 낮은 우선 순위 규칙으로는 이 요청을 차단할 수 없습니다. 허용 작업은 봇 관리자 규칙 집합에만 적용되며 핵심 규칙 집합에는 적용되지 않습니다.
  • 차단: 요청이 차단되고 WAF는 요청을 백 엔드에 전달하지 않고 클라이언트에 응답을 보냅니다.
  • 로그: 요청은 WAF 로그에 기록되고 WAF는 우선 순위가 낮은 규칙을 계속 평가합니다.
  • 변칙 점수: 이는 CRS 규칙 집합에 대한 기본 작업으로, 이 작업이 포함된 규칙이 일치할 때 총 변칙 점수가 증가합니다. 변칙 점수를 봇 관리자 규칙 집합에 적용할 수 없습니다.

변칙 채점 모드

OWASP(Open Web Application Security Project)에는 트래픽 차단 여부를 결정하는 두 가지 모드가 있습니다. 기존 모드와 변칙 채점 모드 두 가지가 있습니다.

기존 모드에서는 특정 규칙과 일치하는 트래픽은 다른 규칙과 상관없이 일치 항목으로 간주됩니다. 이 모드는 이해하기 쉽습니다. 그러나 특정 요청과 일치하는 규칙이 몇 개인지 알 수 없다는 제한이 있습니다. 이러한 제한을 극복하기 위해 변칙 채점 모드가 도입되었습니다. 변칙 채점 모드는 OWASP 3.x의 기본값입니다.

변칙 채점 모드에서는 방화벽이 방지 모드일 때 특정 규칙과 일치하는 트래픽이 즉시 차단되지 않습니다. 규칙에는 위험, 오류, 경고 또는 알림 심각도가 있습니다. 이 심각도는 요청의 숫자 값에 영향을 주며, 이것을 변칙 점수라고 합니다. 예를 들어 경고 규칙 일치 항목 하나당 3점입니다. 중요 규칙 일치 항목 하나당 5점입니다.

심각도
위험 5
오류 4
경고 3
알림 2

변칙 점수가 트래픽을 차단하는 임계값은 5입니다. 따라서 중요 규칙 일치 항목이 하나만 있어도 Application Gateway WAF가 방지 모드에서도 요청을 차단합니다. 하지만 경고 규칙 일치 항목이 하나 있으면 변칙 점수가 3 증가하므로 트래픽을 차단하기에는 점수가 부족합니다.

구성

Azure Portal, REST API, Azure Resource Manager 템플릿 및 Azure PowerShell을 사용하여 모든 WAF 정책을 구성하고 배포할 수 있습니다.

WAF 모니터링

애플리케이션 게이트웨이 상태를 모니터링하는 것이 중요합니다. 클라우드용 Microsoft Defender, Azure Monitor 및 Azure Monitor 로그로 보호하는 WAF 및 애플리케이션을 통합하면 이 기능을 지원할 수 있습니다.

Azure 웹 애플리케이션 방화벽 모니터링 기능의 예를 보여 주는 다이어그램

Azure Monitor

Application Gateway 로그는 Azure Monitor와 통합됩니다. 이를 통해 WAF 경고 및 로그를 포함하여 진단 정보를 추적할 수 있습니다. 포털에 있는 Application Gateway 리소스의 진단 탭에서 또는 Azure Monitor를 통해 직접 이 기능에 액세스할 수 있습니다.