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(핵심 규칙 그룹)가 포함됩니다.

CRS 규칙은 OWASP(Open Web Application Security Project)에 의해 정의됩니다. 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 로그에서 SQLi 및 XSS 공격을 검색합니다. WAF Notebook을 사용하면 Azure Front Door에서 SQL 삽입 인시던트에 대한 조사를 할 수 있습니다.

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

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