Azure Web Application Firewall 작동 방식

완료됨

Azure Web Application Firewall의 기본 기능 및 이점에 대해 잘 알고 있을 것입니다. 이제 Azure Web Application Firewall의 작동 방식을 살펴보겠습니다. 특히 Azure Web Application Firewall의 규칙 세트와 규칙 그룹 등의 기능을 통해 웹앱을 일반적인 악용으로부터 보호하는 방법을 살펴보겠습니다. 이 정보는 Azure Web Application Firewall이 귀사에 적합한 솔루션인지 여부를 평가하는 데 도움이 됩니다.

배포 옵션

Azure Web Application Firewall을 웹앱에 대한 Azure 프런트 엔드 솔루션의 일부로 배포할 수 있습니다. 먼저 다음 설정을 포함하는 Azure Web Application Firewall 정책을 만듭니다.

  • 사용하려는 제품 통합
  • 사용하려는 관리형 규칙 집합
  • 추가하려는 사용자 지정 규칙
  • 사용하려는 모드

Microsoft 관리 규칙 집합, 규칙 그룹 및 규칙

Azure Web Application Firewall은 앱의 들어오는 HTTP/HTTPS 요청에 규칙을 적용하여 알려진 악용을 방지합니다. 규칙은 특정 위협을 인식하고 방지하도록 고안된 방화벽 코드입니다.

Azure Web Application Firewall에서 일반적인 취약성을 감지하고 차단하는 데 사용하는 규칙은 주로 관리형 규칙입니다. 각 규칙 그룹은 규칙의 컬렉션이며 관리되는 규칙 집합은 규칙 그룹의 컬렉션입니다. 관리되는 규칙 집합에는 Microsoft Threat Intelligence 기반 규칙 그룹, CVE(일반적인 취약성 및 노출) 규칙 그룹 및 CRS(핵심 규칙 그룹)가 포함됩니다.

OWASP(Open Web Application Security Project)는 CRS 규칙을 정의합니다. Microsoft의 보안 전문가 팀은 관리형 규칙을 코딩하고 유지 관리하고 업데이트합니다. 관리형 규칙은 필요에 따라 수정 또는 추가됩니다. 관리형 규칙이 변경되면 Microsoft에서 앱 가동 중지 시간 없이 자동으로 Azure Web Application Firewall을 업데이트합니다.

다음 스크린샷은 Microsoft 기본 규칙 집합 2.1(DRS2.1)의 일부 규칙 및 규칙 그룹을 보여 줍니다. 이를 통해 Azure Web Application Firewall에서 제공하는 보호 수준을 이해할 수 있습니다.

스크린샷은 WAF 관리 규칙을 보여줍니다.

봇 규칙

봇 규칙은 Microsoft 위협 인텔리전스 및 독점 WAF 규칙을 기반으로 나쁜 봇, 좋은 봇 및 알 수 없는 봇을 식별합니다.

WAF 봇 규칙을 보여 주는 스크린샷

사용자 지정 규칙

Azure Web Application Firewall에서 제공하는 관리형 규칙은 웹 애플리케이션에서 발생하는 특정 위협을 포함하지 않을 수 있습니다. 이 경우 사용자 지정 규칙을 만들 수 있습니다. 다음 구성 요소를 포함하는 조건을 만들어 사용자 지정 규칙을 작성할 수 있습니다.

  • 지역 위치, IP 주소, 크기, 문자열 등 형식 일치
  • RequestHeader, QueryString, RequestUri, RequestBody, Cookies 또는 PostArgs 등 변수 일치
  • POST 또는 PUT과 같은 HTTP/HTTPS 요청 메서드
  • Equal, Contains, Regex, Begins with, Any, Ends with와 같은 연산자
  • 허용, 차단, 로그 또는 리디렉션과 같은 작업

지역 필터링

기본적으로 WAF는 요청이 발생하는 위치에 관계 없이 모든 사용자 요청에 응답합니다. 일부 시나리오에서는 국가/지역에 따라 웹 애플리케이션에 대한 액세스를 제한하는 것이 좋습니다. 지역 필터링 사용자 지정 규칙을 사용하면 엔드포인트의 특정 경로를 정의하여 지정된 국가/지역으로부터의 액세스를 허용 또는 차단할 수 있습니다. 지역 필터링 규칙은 두 글자 국가/지역 코드를 사용합니다.

지역 필터링 규칙의 경우 일치 변수는 RemoteAddr 또는 SocketAddr입니다. RemoteAddr은 일반적으로 X-Forwarded-For 요청 헤더를 통해 전송되는 원래 클라이언트 IP 주소입니다. SocketAddr은 WAF에서 볼 수 있는 원본 IP 주소입니다. 사용자가 프록시 뒤에 있는 경우 SocketAddr은 프록시 서버 주소인 경우가 많습니다.

GeoMatch 조건과 REQUEST_URI 문자열 일치 조건을 결합하여 경로 기준 지역 필터링 규칙을 만들 수 있습니다.

IP 제한

Azure Web Application Firewall 사용자 지정 규칙은 IP 주소 또는 IP 주소 범위 목록을 지정하여 웹 애플리케이션에 대한 액세스를 제어합니다.

IP 제한 사용자 지정 규칙을 사용하면 웹 애플리케이션에 대한 액세스를 제어할 수 있습니다. CIDR(클래스리스 Inter-Domain 라우팅) 형식으로 IP 주소 또는 IP 주소 범위를 지정하여 이 작업을 수행합니다.

기본적으로 웹 애플리케이션은 인터넷에서 액세스할 수 있습니다. 그러나 알려진 IP 주소 또는 IP 주소 범위 목록에서 클라이언트에 대한 액세스를 제한하려는 경우가 있습니다. 사용자 지정 규칙에 나열되지 않은 IP 주소에서 웹앱에 대한 액세스를 차단하는 IP 일치 규칙을 만들어 이를 달성할 수 있습니다.

속도 제한

Azure Web Application Firewall 사용자 지정 규칙은 일치하는 조건 및 들어오는 요청의 속도에 따라 액세스를 제어하도록 속도 제한을 지원합니다.

이 사용자 지정 규칙을 사용하면 비정상적으로 높은 수준의 트래픽을 검색하고 일부 유형의 애플리케이션 계층 서비스 거부 공격을 차단할 수 있습니다. 속도 제한은 또한 짧은 시간에 많은 양의 요청을 보내도록 잘못 구성된 클라이언트로부터 사용자를 보호합니다. 속도 제한 계산 기간(1분 또는 5분 간격)은 사용자 지정 규칙 및 속도 제한 임계값(속도 제한 기간에 허용되는 최대 요청 수)을 정의합니다.

검색 모드 및 방지 모드

Azure Web Application Firewall은 두 가지 모드 중 하나로 작동할 수 있습니다. 방화벽에서 해당 규칙 중 하나와 일치하는 들어오는 HTTP/HTTPS 요청을 처리하려는 방법에 따라 모드를 선택해야 합니다.

  • 검색 모드: 요청을 기록하지만 요청을 통과하도록 허용합니다.
  • 방지 모드: 요청을 기록하지만 요청을 통과하도록 허용하지 않습니다.

일반적인 시나리오는 앱을 테스트할 때 검색 모드에서 Azure Web Application Firewall을 실행하는 것입니다. 검색 모드에서는 다음과 같은 두 가지 유형의 문제를 확인할 수 있습니다.

  • 거짓 긍정: 방화벽이 악성으로 플래그를 지정하는 합법적 요청입니다.
  • 거짓 부정: 방화벽이 허용하는 악의적인 요청입니다.

앱을 배포할 준비가 되면 방지 모드로 전환합니다.

Azure WAF와 Microsoft Sentinel 함께 사용하기

Microsoft Sentinel과 결합된 Azure WAF는 WAF 리소스에 대한 보안 정보 이벤트 관리를 제공할 수 있습니다. Microsoft Sentinel을 사용하여 Log Analytics를 사용하여 Sentinel에 대한 WAF 데이터 커넥터에 액세스할 수 있습니다. WAF 통합 문서에는 Azure Front Door의 WAF 및 Application Gateway WAF에 대한 분석이 표시됩니다. WAF 분석 규칙은 AFD 및 Application Gateway 로그에서 SQL 및 XSS 공격을 검색합니다. WAF Notebook을 사용하면 Azure Front Door에서 SQL 삽입 인시던트에 대한 조사를 할 수 있습니다.

Sentinel WAF 설정을 보여 주는 스크린샷

WAF 이벤트를 보여 주는 스크린샷