Azure Application Gateway의 Azure 웹 애플리케이션 방화벽 배포는 일반적인 악용 및 취약성으로부터 웹 애플리케이션을 적극적으로 보호합니다. 웹 애플리케이션이 악의적인 공격 대상이 되는 경우가 빈번해짐에 따라 이러한 공격에서 SQL 삽입 및 교차 사이트 스크립팅과 같은 잘 알려진 취약성을 악용하는 경우가 많습니다.
Application Gateway의 Azure 웹 애플리케이션 방화벽은 OWASP(Open Web Application Security Project)의 CRS(핵심 규칙 집합 )를 기반으로 합니다.
다음 Azure Web Application Firewall 기능은 모두 WAF(웹 애플리케이션 방화벽) 정책 내에 있습니다. 여러 정책을 만들고 애플리케이션 게이트웨이, 개별 수신기 또는 애플리케이션 게이트웨이의 경로 기반 라우팅 규칙과 연결할 수 있습니다. 이 연결을 사용하면 필요한 경우 애플리케이션 게이트웨이 뒤에 있는 각 사이트에 대해 별도의 정책을 정의할 수 있습니다. WAF 정책에 대한 자세한 내용은 Application Gateway에 대한 WAF 정책 만들기를 참조하세요.
참고 항목
Application Gateway에는 WAF_v1 및 WAF_v2 두 가지 버전의 웹 애플리케이션 방화벽이 있습니다. WAF 정책 연결은 WAF_v2 대해서만 지원됩니다.
Application Gateway는 애플리케이션 배달 컨트롤러로 작동합니다. TLS(전송 계층 보안)(이전의 Secure Sockets Layer 또는 SSL) 종료, 쿠키 기반 세션 선호도, 라운드 로빈 부하 분산, 콘텐츠 기반 라우팅, 여러 웹 사이트를 호스트하는 기능 및 보안 향상 기능을 제공합니다.
Application Gateway는 TLS 정책 관리와 엔드투엔드 TLS 지원을 통해 보안을 강화합니다. Azure Web Application Firewall을 Application Gateway에 통합하면 애플리케이션 보안이 강화됩니다. 이 조합은 일반적인 취약성에 대해 웹 애플리케이션을 적극적으로 방어하고 중앙에서 관리 가능한 위치를 제공합니다.
이점
이 섹션에서는 Application Gateway의 Azure Web Application Firewall에서 제공하는 핵심 이점에 대해 설명합니다.
보호
백 엔드 코드를 수정하지 않고 웹 취약성 및 공격으로부터 웹 애플리케이션을 보호할 수 있습니다.
동시에 여러 웹 애플리케이션을 보호하는 데 도움이 됩니다. Application Gateway 인스턴스는 웹 애플리케이션 방화벽을 사용하는 최대 40개의 웹 사이트를 호스트할 수 있습니다.
같은 WAF 뒤에 있는 다른 사이트에 대한 사용자 지정 WAF 정책을 만듭니다.
IP 평판 규칙 집합을 사용하여 악성 봇으로부터 웹 애플리케이션을 보호합니다.
DDoS 공격으로부터 애플리케이션을 보호합니다. 자세한 내용은 애플리케이션(계층 7) DDoS 보호를 참조하세요.
모니터링
실시간 WAF 로그를 사용하여 웹 애플리케이션에 대한 공격을 모니터링합니다. 로그는 AZURE Monitor 와 통합되어 WAF 경고를 추적하고 추세를 모니터링합니다.
Application Gateway WAF는 클라우드용 Microsoft Defender와 통합됩니다. 중앙의 클라우드용 Defender에서 모든 Azure, 하이브리드 및 다중 클라우드 리소스의 보안 상태를 살펴볼 수 있습니다.
사용자 지정
애플리케이션 요구 사항에 맞게 WAF 규칙 및 규칙 그룹을 사용자 지정하고 가양성을 제거합니다.
WAF 뒤에 있는 각 사이트에 대한 WAF 정책을 연결하여 사이트별 구성을 허용합니다.
애플리케이션의 요구에 맞게 사용자 지정 규칙을 만듭니다.
기능
- SQL 삽입에 대한 보호.
- 사이트 간 스크립팅을 방지합니다.
- 명령 삽입, HTTP 요청 밀반입, HTTP 응답 분할, 원격 파일 포함 등의 일반 웹 공격 방지
- HTTP 프로토콜 위반으로부터 보호
- 누락
Host된User-Agent헤더와Accept같은 HTTP 프로토콜 변칙에 대한 보호 - 크롤러 및 스캐너에 대한 방지
- 일반적인 애플리케이션 구성 오류(예: Apache 및 IIS) 검색
- 하한값과 상한값이 있는 구성 가능한 요청 크기 제한
- WAF 평가에서 특정 요청 특성을 생략할 수 있는 제외 목록입니다. 일반적인 예로는 인증 또는 암호 필드에 사용되는 Active Directory 삽입 토큰이 있습니다.
- 애플리케이션의 특정 요구 사항에 맞게 사용자 지정 규칙을 만드는 기능입니다.
- 트래픽을 지역 필터링하고 특정 국가/지역이 애플리케이션에 액세스하지 못하도록 허용하거나 차단하는 기능입니다.
- 봇으로부터 애플리케이션을 보호하는 데 도움이 되는 Bot Manager 규칙 집합입니다.
- 요청 본문에서 JSON 및 XML을 검사하는 기능입니다.
WAF 정책 및 규칙
Application Gateway에서 웹 애플리케이션 방화벽을 사용하려면 WAF 정책을 만들어야 합니다. 이 정책은 모든 관리되는 규칙, 사용자 지정 규칙, 제외 및 기타 사용자 지정(예: 파일 업로드 제한)이 존재하는 위치입니다.
WAF 정책을 구성하고 보호를 위해 하나 이상의 애플리케이션 게이트웨이와 해당 정책을 연결할 수 있습니다. WAF 정책은 다음 두 가지 유형의 보안 규칙으로 구성됩니다.
- 사용자가 만든 사용자 지정 규칙
- Azure에서 관리되는 미리 구성된 규칙의 컬렉션인 관리되는 규칙 집합
둘 다 있는 경우 WAF는 관리되는 규칙 집합의 규칙을 처리하기 전에 사용자 지정 규칙을 처리합니다.
규칙은 일치 조건, 우선 순위 및 작업으로 구성됩니다. 지원되는 작업 유형은 ALLOW, BLOCK및 LOG. 관리되는 규칙과 사용자 지정 규칙을 결합하여 애플리케이션 보호에 대한 특정 요구 사항을 충족하는 완전히 사용자 지정된 정책을 만들 수 있습니다.
WAF는 정책 내의 규칙을 우선 순위 순서로 처리합니다. 우선 순위는 처리할 규칙의 순서를 정의하는 고유한 정수입니다. 더 작은 정수 값은 더 높은 우선 순위를 표시하고 WAF는 정수 값이 더 높은 규칙보다 앞서 해당 규칙을 평가합니다. WAF가 요청과 규칙을 일치시킨 후에는 규칙이 정의하는 해당 작업을 요청에 적용합니다. WAF가 이러한 일치 항목을 처리한 후에는 우선 순위가 낮은 규칙이 더 이상 처리되지 않습니다.
Application Gateway가 제공하는 웹 애플리케이션은 전역 수준, 사이트별 수준 또는 URI별 수준에서 WAF 정책을 연결할 수 있습니다.
사용자 지정 규칙
Application Gateway는 사용자 고유의 사용자 지정 규칙 만들기를 지원합니다. Application Gateway는 WAF를 통과하는 각 요청에 대한 사용자 지정 규칙을 평가합니다. 이러한 규칙은 관리형 규칙 세트의 나머지 규칙보다 높은 우선 순위를 갖습니다. 요청이 조건 집합을 충족하는 경우 WAF는 허용하거나 차단하는 작업을 수행합니다. 사용자 지정 규칙에 대한 자세한 내용은 Application Gateway에 대한 사용자 지정 규칙을 참조하세요.
Geomatch 이제 사용자 지정 규칙에 연산자를 사용할 수 있습니다. 자세한 내용은 Geomatch 사용자 지정 규칙을 참조하세요.
규칙 집합
Application Gateway는 CRS 3.2, CRS 3.1 및 CRS 3.0을 비롯한 여러 규칙 집합을 지원합니다. 이러한 규칙은 악의적인 활동으로부터 웹 애플리케이션을 보호하는 데 도움이 됩니다. 자세한 내용은 웹 애플리케이션 방화벽 DRS 및 CRS 규칙 그룹 및 규칙을 참조하세요.
Bot Manager 규칙 집합
모든 봇 범주의 요청에 대해 사용자 지정 작업을 수행하도록 관리되는 Bot Manager 규칙 집합을 사용하도록 설정할 수 있습니다.
Application Gateway는 세 가지 봇 범주를 지원합니다.
잘못된 봇: 악의적인 IP 주소가 있거나 ID를 위조한 봇입니다. 악의적인 IP 주소는 Microsoft 위협 인텔리전스 피드의 신뢰도가 높은 IP 손상 지표 및 IP 평판 피드에서 공급될 수 있습니다. 또한 잘못된 봇에는 자신을 좋은 봇으로 식별하지만 합법적인 봇 게시자에 속하지 않는 IP 주소가 있는 봇도 포함됩니다.
좋은 봇: 신뢰할 수 있는 사용자 에이전트. 좋은 봇에 대한 규칙은 WAF 정책 구성에 대한 세부적인 제어를 제공하기 위해 여러 범주로 정렬됩니다. 이러한 범주는 다음과 같습니다.
- 확인된 검색 엔진 봇(예: Googlebot 및 Bingbot).
- 유효성이 검사된 링크 검사기 봇.
- 검증된 소셜 미디어 봇(예: FacebookBot 및 LinkedInBot).
- 확인된 광고 봇.
- 확인된 콘텐츠 검사기 봇.
- 기타 봇의 유효성을 검사했습니다.
알 수 없는 봇: 추가 유효성 검사가 없는 사용자 에이전트입니다. 알 수 없는 봇에는 Microsoft 위협 인텔리전스 피드의 중간 신뢰도 IP 표시기에서 제공되는 악의적인 IP 주소가 있을 수도 있습니다.
Azure Web Application Firewall은 봇 서명을 적극적으로 관리하고 동적으로 업데이트합니다.
봇 보호를 켜면 구성된 작업에 따라 봇 규칙과 일치하는 들어오는 요청을 차단, 허용 또는 기록합니다. 기본적으로 악성 봇을 차단하고 확인된 검색 엔진 크롤러를 허용하고 알 수 없는 검색 엔진 크롤러를 차단하며 알 수 없는 봇을 로그합니다. 다양한 유형의 봇을 차단, 허용 또는 기록하도록 사용자 지정 작업을 설정할 수 있습니다.
스토리지 계정, 이벤트 허브 또는 Log Analytics에서 WAF 로그에 액세스할 수 있습니다. 파트너 솔루션에 로그를 보낼 수도 있습니다.
Application Gateway 봇 보호에 대한 자세한 내용은 Application Gateway 봇 보호의 웹 애플리케이션 방화벽 개요를 참조하세요.
WAF 모드
Application Gateway WAF가 다음 모드에서 실행되도록 구성할 수 있습니다.
- 탐지 모드: 모든 위협 경고를 모니터링하고 로그합니다. 진단 섹션에서 Application Gateway에 대한 진단 로깅을 켜야 합니다. 그리고 WAF 로그가 선택되어 있고 켜져 있는지 확인해야 합니다. 웹 애플리케이션 방화벽은 검색 모드에서 작동할 때 들어오는 요청을 차단하지 않습니다.
- 방지 모드: 규칙에서 감지하는 침입과 공격을 차단합니다. 공격자는 "403 무단 액세스" 예외를 수신하고, 연결이 종료됩니다. 방지 모드는 이러한 공격을 WAF 로그에 기록합니다.
참고 항목
프로덕션 환경에서 짧은 기간 동안 검색 모드에서 새로 배포된 WAF를 실행하는 것이 좋습니다. 이렇게 하면 방지 모드로 전환하기 전에 방화벽 로그를 가져오고 예외 또는 사용자 지정 규칙을 업데이트할 수 있습니다. 또한 예기치 않게 차단된 트래픽의 발생을 줄이는 데 도움이 됩니다.
WAF 엔진
WAF 엔진은 트래픽을 검사하고 요청에 잠재적인 공격을 나타내는 서명이 포함되어 있는지 여부를 감지하는 구성 요소입니다. CRS 3.2 이상을 사용하는 경우 웹 애플리케이션 방화벽은 새 WAF 엔진을 실행하여 더 높은 성능과 향상된 기능 집합을 제공합니다. 이전 버전의 CRS를 사용하는 경우 WAF는 이전 엔진에서 실행됩니다. 새 기능은 새 WAF 엔진에서만 사용할 수 있습니다.
WAF 작업
요청이 규칙 조건과 일치할 때 WAF가 실행되는 작업을 선택할 수 있습니다. Application Gateway는 다음 작업을 지원합니다.
- 허용: 요청이 WAF를 통과하고 백 엔드로 전달됩니다. 더 이상 낮은 우선 순위 규칙이 이 요청을 차단할 수 없습니다. 이러한 작업은 Bot Manager 규칙 집합에만 적용됩니다. CRS에는 적용되지 않습니다.
- 차단: 요청이 차단됩니다. WAF는 백 엔드에 요청을 전달하지 않고 클라이언트에 응답을 보냅니다.
- 로그: 요청이 WAF 로그에 기록됩니다. WAF는 우선 순위가 낮은 규칙을 계속 평가합니다.
- 변칙 점수: 이 작업은 CRS의 기본값입니다. 요청이 이 작업과 규칙과 일치하면 총 변칙 점수가 증가합니다. 변칙 점수 매기기 기능은 Bot Manager 규칙 집합에 적용되지 않습니다.
변칙 점수 매기기 모드
OWASP에는 트래픽 차단 여부를 결정하는 두 가지 모드인 기존 및 변칙 점수 매기기가 있습니다.
기존 모드에서 모든 규칙과 일치하는 트래픽은 다른 규칙 일치와 독립적으로 간주됩니다. 이 모드는 이해하기 쉽지만 특정 요청과 일치하는 규칙 수에 대한 정보가 부족한 것은 제한 사항입니다. 따라서 변칙 점수 매기기 모드가 OWASP 3의 기본값으로 도입되었습니다. x.
변칙 점수 매기기 모드에서는 방화벽이 방지 모드에 있을 때 모든 규칙과 일치하는 트래픽이 즉시 차단되지 않습니다. 규칙에는 위험, 오류, 경고 또는 알림 심각도가 있습니다. 이 심각도는 변칙 점수인 요청에 대한 숫자 값에 영향을 줍니다. 예를 들어 경고 규칙 일치 항목 하나당 3점입니다. 중요 규칙 일치 항목 하나당 5점입니다.
| 심각도 | 값 |
|---|---|
| 위험 | 5 |
| 오류 | 4 |
| 경고 | 3 |
| 알림 | 2 |
트래픽을 차단하는 변칙 점수의 임계값은 5입니다. 따라서 단일 중요 규칙 일치는 Application Gateway WAF가 방지 모드에서 요청을 차단하기에 충분합니다. 그러나 하나의 경고 규칙 일치는 변칙 점수만 3만큼 증가하므로 트래픽을 차단하는 것만으로는 충분하지 않습니다.
참고 항목
WAF 규칙이 트래픽과 일치할 때 기록되는 메시지에는 일치된 작업 값이 포함 됩니다. 일치하는 모든 규칙의 총 변칙 점수가 5 이상이고 WAF 정책이 방지 모드에서 실행 중인 경우 요청은 작업 값 이 차단된 필수 변칙 규칙을 트리거하고 요청이 중지됩니다. WAF 정책이 검색 모드에서 실행되는 경우 요청은 검색된 작업 값을 트리거하고 요청이 기록되고 백 엔드에 전달됩니다. 자세한 내용은 WAF 로그 이해를 참조하세요.
구성
Azure Portal, REST API, Azure Resource Manager 템플릿 및 Azure PowerShell을 사용하여 모든 WAF 정책을 구성하고 배포할 수 있습니다. Azure Firewall Manager 통합을 사용하여 대규모로 WAF 정책을 구성하고 관리할 수도 있습니다. 자세한 내용은 Azure Firewall Manager를 사용하여 WAF 정책 구성을 참조하세요.
WAF 모니터링
애플리케이션 게이트웨이의 상태를 모니터링하는 것이 중요합니다. 클라우드용 Microsoft Defender, Azure Monitor 및 Azure Monitor 로그와 WAF(및 보호하는 데 도움이 되는 애플리케이션)를 통합하여 이를 달성할 수 있습니다.
Azure Monitor (Azure 모니터)
Application Gateway 로그는 WAF 경고 및 로그를 포함하여 진단 정보를 추적할 수 있도록 Azure Monitor 와 통합됩니다. Application Gateway 리소스의 진단 탭에 있는 Azure Portal에서 이 기능에 액세스할 수 있습니다. 또는 Azure Monitor에서 직접 액세스할 수 있습니다.
로그 사용에 대한 자세한 내용은 Application Gateway에 대한 진단 로그를 참조하세요.
클라우드용 Microsoft Defender
클라우드용 Defender를 사용하면 위협을 방지, 검색 및 대응할 수 있습니다. Azure 리소스의 보안에 대한 향상된 가시성 및 제어를 제공합니다. Application Gateway는 클라우드용 Defender와 통합됩니다.
클라우드용 Defender는 사용자 환경을 검사하여 보호되지 않는 웹 애플리케이션을 검색합니다. 이러한 취약한 리소스를 보호하기 위해 Application Gateway WAF를 권장할 수 있습니다.
클라우드용 Defender에서 직접 방화벽을 만듭니다. 이러한 WAF 인스턴스는 클라우드용 Defender와 통합됩니다. WAF 인스턴스는 경고와 상태 정보를 클라우드용 Defender로 보내서 보고합니다.
Microsoft Sentinel
Microsoft Sentinel 은 SIEM(보안 정보 이벤트 관리) 및 SOAR(보안 오케스트레이션 자동화 응답)를 포함하는 확장 가능한 클라우드 네이티브 솔루션입니다. Microsoft Sentinel은 엔터프라이즈 전체에 지능형 보안 분석 및 위협 인텔리전스를 제공합니다. 경고 검색, 위협 가시성, 자동 관리 헌팅 및 위협 대응을 위한 단일 솔루션을 제공합니다.
Azure Web Application Firewall에 기본 제공되는 방화벽 이벤트 통합 문서를 사용하여 WAF의 보안 이벤트에 대한 개요를 확인할 수 있습니다. 개요에는 일치하는 규칙, 차단된 규칙 및 기타 기록된 모든 방화벽 작업이 포함됩니다.
WAF용 Azure Monitor 통합 문서
WAF용 Azure Monitor 통합 문서를 사용하면 여러 필터링 가능한 패널에서 보안 관련 WAF 이벤트를 사용자 지정 시각화할 수 있습니다. Application Gateway, Azure Front Door 및 Azure Content Delivery Network를 비롯한 모든 WAF 유형에서 작동합니다.
WAF 유형 또는 특정 WAF 인스턴스에 따라 이 통합 문서를 필터링할 수 있습니다. Azure Resource Manager 템플릿 또는 갤러리 템플릿을 통해 가져옵니다.
이 통합 문서를 배포하려면 Azure Web Application Firewall에 대한 GitHub 리포지토리를 참조하세요.
로깅
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 가격 책정
가격 책정 모델은 WAF_v1 버전과 WAF_v2 버전에 따라 다릅니다. 자세한 내용은 Application Gateway 가격 책정을 참조하세요.
새로운 기능
Azure 웹 애플리케이션 방화벽의 새로운 기능을 알아보려면 Azure 업데이트를 참조하세요.