Azure Application Gateway의 Azure 웹 애플리케이션 방화벽이란?
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 뒤에 있는 각 사이트에 별도의 정책을 적용할 수 있습니다. WAF 정책에 대한 자세한 내용은 WAF 정책 만들기를 참조하세요.
참고 항목
Application Gateway에는 Application Gateway WAF_v1 및 Application Gateway WAF_v2라는 두 가지 버전의 WAF sku가 있습니다. WAF 정책 연결은 Application Gateway WAF_v2 sku에 대해서만 지원됩니다.
Application Gateway는 많은 ADC(애플리케이션 배달 컨트롤러)로 작동합니다. 이전에 SSL(Secure Sockets Layer)로 알려진 TLS(Transport Layer Security) 종료, 쿠키 기반 세션 선호도, 라운드 로빈 부하 분산, 콘텐츠 기반 라우팅, 다중 웹 사이트 호스트 및 향상된 보안 기능을 제공합니다.
Application Gateway는 TLS 정책 관리와 엔드투엔드 TLS 지원을 통해 보안을 강화합니다. WAF를 Application Gateway에 통합하면 애플리케이션 보안이 강화됩니다. 이 조합은 일반적인 취약성으로부터 웹 애플리케이션을 적극적으로 방어하고 중앙에서 관리할 수 있고 구성하기 쉬운 위치를 제공합니다.
이점
이 섹션에서는 Application Gateway의 WAF가 제공하는 핵심 이점에 대해 설명합니다.
보호
백 엔드 코드를 수정하지 않고 웹 취약점 및 공격으로부터 웹 애플리케이션을 보호합니다.
동시에 여러 웹 애플리케이션을 보호합니다. Application Gateway 인스턴스는 웹 애플리케이션 방화벽으로 보호되는 최대 40개의 웹 사이트를 호스팅할 수 있습니다.
같은 WAF 뒤에 있는 다른 사이트에 대한 사용자 지정 WAF 정책을 만듭니다.
IP 평판 규칙 집합을 사용하여 악의적인 봇으로부터 웹 애플리케이션을 보호합니다.
DDoS 공격으로부터 애플리케이션을 보호합니다. 자세한 내용은 애플리케이션 DDoS 보호를 참조하세요.
모니터링
실시간 WAF 로그를 사용하여 웹 애플리케이션에 대한 공격을 모니터링합니다. 이 로그는 Azure Monitor와 통합되어 WAF 경고를 추적하고 추세를 쉽게 모니터링합니다.
Application Gateway WAF는 클라우드용 Microsoft Defender와 통합됩니다. 중앙의 클라우드용 Defender에서 모든 Azure, 하이브리드 및 다중 클라우드 리소스의 보안 상태를 살펴볼 수 있습니다.
사용자 지정
애플리케이션 요구 사항에 맞게 WAF 규칙 및 규칙 그룹을 사용자 지정하고 가양성을 제거합니다.
사이트별로 구성할 수 있도록 WAF 뒤에 있는 각 사이트에 대한 WAF 정책을 연결합니다.
애플리케이션의 요구 사항에 맞는 사용자 지정 규칙을 만듭니다.
기능
- SQL 삽입 공격 보호
- 사이트 간 스크립팅 방지
- 명령 삽입, HTTP 요청 밀반입, HTTP 응답 분할, 원격 파일 포함 등의 일반 웹 공격 방지
- HTTP 프로토콜 위반으로부터 보호
- 누락된 호스트 사용자-에이전트 및 accept 헤더 같은 HTTP 프로토콜 이상 보호
- 크롤러 및 스캐너에 대한 방지
- 일반적인 애플리케이션 구성 오류(예: Apache 및 IIS) 검색
- 하한값과 상한값이 있는 구성 가능한 요청 크기 제한
- WAF 평가에서 특정 요청 특성을 생략할 수 있는 제외 목록. 일반적인 예로는 인증 또는 암호 필드에 사용되는 Active Directory 삽입 토큰이 있습니다.
- 애플리케이션의 특정 요구 사항에 맞는 사용자 지정 규칙 만들기
- 특정 국가/지역의 애플리케이션에 대한 액세스를 허용하거나 차단하기 위한 지역 필터 트래픽.
- 봇 완화 규칙 세트를 사용하여 봇으로부터 애플리케이션 보호
- 요청 본문에서 JSON 및 XML 검사
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을 비롯한 여러 규칙 집합을 지원합니다. 이러한 규칙은 악의적인 활동으로부터 웹 애플리케이션을 보호합니다.
자세한 내용은 웹 애플리케이션 방화벽 CRS 규칙 그룹 및 규칙을 참조하세요.
사용자 지정 규칙
Application Gateway는 사용자 지정 규칙도 지원합니다. 사용자 지정 규칙을 사용하면 WAF를 통해 전달되는 각 요청에 대해 평가되는 사용자 고유의 규칙을 만들 수 있습니다. 이러한 규칙은 관리형 규칙 세트의 나머지 규칙보다 높은 우선 순위를 갖습니다. 조건 세트가 충족되면 허용 또는 차단 작업을 수행합니다.
이제 geomatch 연산자는 사용자 지정 규칙에 사용할 수 있습니다. 자세한 내용은 geomatch 사용자 지정 규칙을 참조하세요.
사용자 지정 규칙에 대한 자세한 내용은 Application Gateway에 대한 사용자 지정 규칙을 참조하세요.
봇 보호 규칙 세트
모든 봇 범주의 요청에 대해 사용자 지정 작업을 수행하도록 관리형 봇 보호 규칙 세트를 설정할 수 있습니다.
세 가지 봇 범주가 지원됩니다.
잘못된
잘못된 봇은 악의적인 IP 주소가 있는 봇 및 ID를 위조한 봇입니다. 잘못된 봇에는 Microsoft 위협 인텔리전스 피드의 높은 신뢰도 IP 표시기 손상 및 IP 평판 피드에서 제공되는 악성 IP 주소가 포함됩니다. 잘못된 봇에는 자신을 좋은 봇으로 식별하는 봇도 포함되지만 해당 IP 주소는 합법적인 봇 게시자에 속하지 않습니다.
적절
좋은 봇은 신뢰할 수 있는 사용자 에이전트입니다. 좋은 봇 규칙은 WAF 정책 구성에 대한 세부적인 제어를 제공하기 위해 여러 범주로 분류됩니다. 이러한 범주는 다음과 같습니다.
- 확인된 검색 엔진 봇(예: Googlebot 및 Bingbot)
- 유효성이 검사된 링크 검사기 봇
- 검증된 소셜 미디어 봇(예: Facebookbot 및 LinkedInBot)
- 확인된 광고 봇
- 확인된 콘텐츠 검사기 봇
- 유효성이 검사된 기타 봇
알 수 없음
알 수 없는 봇은 추가 유효성 검사가 없는 사용자 에이전트입니다. 알 수 없는 봇에는 Microsoft 위협 인텔리전스 피드의 중간 신뢰도 IP 손상 지표에서 가져온 악성 IP 주소도 포함됩니다.
WAF 플랫폼은 봇 서명을 적극적으로 관리하고 동적으로 업데이트합니다.
관리형 규칙 집합의 할당 옵션을 사용하여 Microsoft_BotManagerRuleSet_1.0을 할당할 수 있습니다.
봇 보호를 사용하도록 설정한 경우 봇 규칙과 일치하는 수신 요청을 구성된 작업에 따라 차단, 허용 또는 로그합니다. 기본적으로 악성 봇을 차단하고 확인된 검색 엔진 크롤러를 허용하고 알 수 없는 검색 엔진 크롤러를 차단하며 알 수 없는 봇을 로그합니다. 다양한 형식의 봇을 차단, 허용 또는 로그하도록 사용자 지정 작업을 설정하는 옵션이 있습니다.
스토리지 계정, 이벤트 허브, 로그 분석에서 WAF 로그에 액세스하거나 로그를 파트너 솔루션으로 보낼 수 있습니다.
Application Gateway 봇 보호에 대한 자세한 내용은 Azure 애플리케이션 Gateway 봇 보호 개요에서 Azure Web Application Firewall을 참조하세요.
WAF 모드
Application Gateway WAF는 다음 두 가지 모드에서 실행되도록 구성할 수 있습니다.
- 탐지 모드: 모든 위협 경고를 모니터링하고 로그합니다. 진단 섹션에서 Application Gateway에 대한 진단 로깅을 켜야 합니다. 그리고 WAF 로그가 선택되어 있고 켜져 있는지 확인해야 합니다. 웹 애플리케이션 방화벽을 탐지 모드로 실행하면 수신 요청을 차단하지 않습니다.
- 방지 모드: 규칙에서 감지하는 침입과 공격을 차단합니다. 공격자는 "403 무단 액세스" 예외를 수신하고, 연결이 종료됩니다. 방지 모드는 이러한 공격을 WAF 로그에 기록합니다.
참고 항목
새로 배포된 WAF를 프로덕션 환경에서 짧은 시간 동안 탐지 모드로 실행하는 것이 좋습니다. 이렇게 하면 방지 모드로 전환하기 전에 방화벽 로그를 얻고 모든 예외 또는 사용자 지정 규칙을 업데이트할 수 있습니다. 이를 통해 예기치 않은 트래픽 차단 발생을 줄일 수 있습니다.
WAF 엔진
Azure WAF(웹 애플리케이션 방화벽) 엔진은 트래픽을 검사하고 요청에 잠재적인 공격을 나타내는 서명이 포함되어 있는지 여부를 확인하는 구성 요소입니다. CRS 3.2 이상을 사용하는 경우 WAF는 새 WAF 엔진을 실행하여 더 높은 성능과 향상된 기능 세트를 제공합니다. 이전 버전의 CRS를 사용하는 경우 WAF는 이전 엔진에서 실행됩니다. 새 Azure WAF 엔진에서만 새 기능을 사용할 수 있습니다.
WAF 작업
요청이 규칙 조건과 일치할 때 실행되는 작업을 선택할 수 있습니다. 다음과 같은 작업이 지원됩니다.
- 허용: 요청은 WAF를 통과해서 백 엔드에 전달됩니다. 더 낮은 우선 순위 규칙으로는 이 요청을 차단할 수 없습니다. 허용 작업은 봇 관리자 규칙 집합에만 적용되며 핵심 규칙 집합에는 적용되지 않습니다.
- 차단: 요청이 차단되고 WAF는 요청을 백 엔드에 전달하지 않고 클라이언트에 응답을 보냅니다.
- 로그: 요청은 WAF 로그에 기록되고 WAF는 우선 순위가 낮은 규칙을 계속 평가합니다.
- 변칙 점수: 이는 CRS 규칙 집합에 대한 기본 작업으로, 이 작업이 포함된 규칙이 일치할 때 총 변칙 점수가 증가합니다. 변칙 점수를 봇 관리자 규칙 집합에 적용할 수 없습니다.
변칙 채점 모드
OWASP에는 트래픽 차단 여부를 결정하는 두 가지 모드(기존 모드 및 변칙 채점 모드)가 있습니다.
기존 모드에서는 특정 규칙과 일치하는 트래픽은 다른 규칙과 상관없이 일치 항목으로 간주됩니다. 이 모드는 이해하기 쉽습니다. 그러나 특정 요청과 일치하는 규칙이 몇 개인지 알 수 없다는 제한이 있습니다. 이러한 제한을 극복하기 위해 변칙 채점 모드가 도입되었습니다. 변칙 채점 모드는 OWASP 3.x의 기본값입니다.
변칙 채점 모드에서는 방화벽이 방지 모드일 때 특정 규칙과 일치하는 트래픽이 즉시 차단되지 않습니다. 규칙에는 위험, 오류, 경고 또는 알림 심각도가 있습니다. 이 심각도는 요청의 숫자 값에 영향을 주며, 이것을 변칙 점수라고 합니다. 예를 들어 경고 규칙 일치 항목 하나당 3점입니다. 중요 규칙 일치 항목 하나당 5점입니다.
심각도 | 값 |
---|---|
위험 | 5 |
오류 | 4 |
경고 | 3 |
알림 | 2 |
변칙 점수가 트래픽을 차단하는 임계값은 5입니다. 따라서 중요 규칙 일치 항목이 하나만 있어도 Application Gateway WAF가 방지 모드에서도 요청을 차단합니다. 하지만 경고 규칙 일치 항목이 하나 있으면 변칙 점수가 3 증가하므로 트래픽을 차단하기에는 점수가 부족합니다.
참고 항목
WAF 규칙이 트래픽과 일치할 때 로그되는 메시지에는 "일치함" 작업 값이 포함됩니다. 모든 일치하는 규칙의 총 변칙 점수가 5를 초과하고 WAF 정책이 방지 모드에서 실행 중인 경우 요청에서 작업 값이 "차단됨"인 필수 변칙 규칙을 트리거하고 요청이 중지됩니다. 그러나 WAF 정책이 검색 모드에서 실행 중인 경우 요청은 "검색됨" 작업 값을 트리거하고 요청이 로그되어 백 엔드로 전달됩니다. 자세한 내용은 Azure Application Gateway용 WAF(Web Application Firewall) 문제 해결을 참조하세요.
구성
Azure Portal, REST API, Azure Resource Manager 템플릿 및 Azure PowerShell을 사용하여 모든 WAF 정책을 구성하고 배포할 수 있습니다. Firewall Manager 통합을 사용하여 대규모로 Azure WAF 정책을 구성하고 관리할 수도 있습니다(미리 보기). 자세한 내용은 Azure Firewall Manager를 사용하여 Web Application Firewall 정책 관리(미리 보기)를 참조하세요.
WAF 모니터링
애플리케이션 게이트웨이 상태를 모니터링하는 것이 중요합니다. 클라우드용 Microsoft Defender, Azure Monitor 및 Azure Monitor 로그로 보호하는 WAF 및 애플리케이션을 통합하면 이 기능을 지원할 수 있습니다.
Azure Monitor
Application Gateway 로그는 Azure Monitor와 통합됩니다. 이를 통해 WAF 경고 및 로그를 포함하여 진단 정보를 추적할 수 있습니다. 포털에 있는 Application Gateway 리소스의 진단 탭에서 또는 Azure Monitor를 통해 직접 이 기능에 액세스할 수 있습니다. 로그를 사용하도록 설정하는 방법에 대한 자세한 내용은 Application Gateway 진단을 참조하세요.
Microsoft Defender for Cloud
클라우드용 Defender를 사용하면 위협을 방지, 검색 및 대응할 수 있습니다. Security Center를 사용하면 Azure 리소스의 보안 상태를 보다 명확히 파악하고 제어할 수 있습니다. Application Gateway는 클라우드용 Defender와 통합됩니다. 클라우드용 Defender는 사용자 환경을 검사하여 보호되지 않는 웹 애플리케이션을 검색합니다. 이처럼 취약한 리소스를 보호하도록 애플리케이션 게이트웨이 WAF를 권장할 수 있습니다. 클라우드용 Defender에서 직접 방화벽을 만듭니다. 이러한 WAF 인스턴스는 클라우드용 Defender와 통합됩니다. WAF 인스턴스는 경고와 상태 정보를 클라우드용 Defender로 보내서 보고합니다.
Microsoft Sentinel
Microsoft Sentinel은 스케일링 가능한 클라우드 네이티브, SIEM(보안 정보 이벤트 관리) 및 SOAR(보안 오케스트레이션 자동화 응답) 솔루션입니다. Microsoft Sentinel은 엔터프라이즈 전반에 인텔리전트 보안 분석 및 위협 인텔리전스를 제공하며, 경고 검색, 위협 가시성, 사전 예방적 헌팅 및 위협 대응을 위한 단일 솔루션을 제공합니다.
기본 제공 Azure WAF 방화벽 이벤트 통합 문서를 사용하면 WAF의 보안 이벤트에 대한 개요를 볼 수 있습니다. 여기에는 이벤트, 일치 규칙 및 차단 규칙 및 방화벽 로그에 기록되는 모든 항목이 포함됩니다. 로깅에 대한 자세한 내용은 다음과 같습니다.
WAF용 Azure Monitor 통합 문서
이 통합 문서를 사용하면 필터링 가능한 여러 패널에서 보안 관련 WAF 이벤트를 사용자 지정 시각화할 수 있습니다. Application Gateway, Front Door 및 CDN을 비롯한 모든 WAF 형식에서 작동하며 WAF 유형 또는 특정 WAF 인스턴스를 기반으로 필터링할 수 있습니다. ARM 템플릿 또는 갤러리 템플릿을 통해 가져옵니다. 이 통합 문서를 배포하려면 WAF 통합 문서를 참조하세요.
로깅
Application Gateway WAF는 탐지된 각 위협에 대한 상세 보고를 제공합니다. 로깅은 Azure Diagnostics 로그와 통합됩니다. 경고는 .json 형식으로 기록됩니다. 이러한 로그는 Azure Monitor 로그와 통합될 수 있습니다.
{
"resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupId}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{appGatewayName}",
"operationName": "ApplicationGatewayFirewall",
"time": "2017-03-20T15:52:09.1494499Z",
"category": "ApplicationGatewayFirewallLog",
"properties": {
{
"instanceId": "ApplicationGatewayRole_IN_0",
"clientIp": "203.0.113.145",
"clientPort": "0",
"requestUri": "/",
"ruleSetType": "OWASP",
"ruleSetVersion": "3.0",
"ruleId": "920350",
"ruleGroup": "920-PROTOCOL-ENFORCEMENT",
"message": "Host header is a numeric IP address",
"action": "Matched",
"site": "Global",
"details": {
"message": "Warning. Pattern match \"^[\\\\d.:]+$\" at REQUEST_HEADERS:Host ....",
"data": "127.0.0.1",
"file": "rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf",
"line": "791"
},
"hostname": "127.0.0.1",
"transactionId": "16861477007022634343"
"policyId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/drewRG/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/globalWafPolicy",
"policyScope": "Global",
"policyScopeName": " Global "
}
}
}
Application Gateway WAF SKU 가격 책정
WAF_v1 및 WAF_v2 SKU의 가격 책정 모델이 서로 다릅니다. 자세한 내용은 Application Gateway 가격 책정 페이지를 참조하세요.
새로운 기능
Azure 웹 애플리케이션 방화벽의 새로운 기능을 알아보려면 Azure 업데이트를 참조하세요.
다음 단계
- WAF 관리 규칙에 대해 자세히 알아보기
- 사용자 지정 규칙에 대해 자세히 알아보기
- Azure Front Door의 웹 애플리케이션 방화벽에 대한 자세한 내용
- Azure 네트워크 보안에 대해 자세히 알아보기