다음을 통해 공유


Azure Front Door 제외 목록이 있는 웹 애플리케이션 방화벽

경우에 따라 Azure Front Door의 Azure 웹 애플리케이션 방화벽이 합법적인 요청을 차단할 수 있습니다. WAF(웹 애플리케이션 방화벽) 튜닝의 일환으로 애플리케이션에 대한 요청을 허용하도록 WAF를 구성할 수 있습니다. WAF 제외 목록을 사용하면 WAF 평가에서 특정 요청 특성을 생략할 수 있습니다. 나머지 요청은 정상으로 평가됩니다.

예를 들어 Microsoft Entra ID는 인증에 사용되는 토큰을 제공합니다. 이러한 토큰이 요청 헤더에 사용되는 경우 하나 이상의 WAF 규칙에 의해 가양성 검색을 트리거할 수 있는 특수 문자를 포함할 수 있습니다. 헤더를 제외 목록에 추가할 수 있습니다. 이 헤더는 헤더를 무시하도록 WAF에 지시합니다. WAF는 여전히 의심스러운 콘텐츠에 대한 요청의 나머지 부분을 검사합니다.

제외 범위

제외는 다음 범위에서 만들 수 있습니다.

  • 규칙 집합: 이러한 제외는 규칙 집합 내의 모든 규칙에 적용됩니다.
  • 규칙 그룹: 이러한 제외는 규칙 집합 내의 특정 범주의 모든 규칙에 적용됩니다. 예를 들어 모든 SQL 삽입 규칙에 적용되는 제외를 구성할 수 있습니다.
  • 규칙: 이러한 제외는 단일 규칙에 적용됩니다.

제외 선택기

제외 선택기는 제외가 적용되는 요청 부분을 식별합니다. WAF는 요청의 지정된 부분에서 찾은 모든 검색을 무시합니다. 단일 제외에서 여러 개의 제외 선택기를 지정할 수 있습니다.

각 제외 선택기에서 일치 변수, 연산자 및 선택기를 지정했습니다.

일치 변수

제외에 다음 요청 특성을 추가할 수 있습니다.

  • 요청 헤더 이름
  • 요청 쿠키 이름
  • 쿼리 문자열 인수 이름
  • 요청 본문 POST 인수 이름
  • 요청 본문 JSON 인수 이름(DRS 2.0 이상에서 지원됨)

사용하는 필드의 값은 WAF 규칙에 따라 평가되지 않지만 해당 이름은 평가됩니다. 제외 목록은 필드 값 검사를 사용하지 않도록 설정합니다. 그러나 필드 이름은 계속 평가됩니다. 자세한 내용은 다른 요청 특성 제외를 참조 하세요.

연산자

일치시킬 정확한 요청 헤더, 본문, 쿠키 또는 쿼리 문자열 특성을 지정할 수 있습니다. 또는 선택적으로 부분 일치 항목을 지정할 수 있습니다. 일치 조건에 지원되는 연산자는 다음과 같습니다.

  • 같음: 지정된 선택기 값과 정확히 일치하는 모든 요청 필드를 일치시킵니다. 예를 들어 bearerToken이라는 헤더를 선택하려면 선택기가 bearerToken으로 설정된 연산자를 사용합니다Equals.
  • 시작: 지정된 선택기 값으로 시작하는 모든 요청 필드를 일치시킵니다.
  • : 지정된 선택기 값으로 끝나는 모든 요청 필드를 일치시킵니다.
  • 포함: 지정된 선택기 값을 포함하는 모든 요청 필드를 일치시킵니다.
  • 모두 같음: 모든 요청 필드를 일치시킵니다. 연산자를 Equals any 사용하면 선택기 값이 자동으로 .로 *설정됩니다. 예를 들어 연산자를 Equals any 사용하여 모든 요청 헤더에 적용되는 제외를 구성할 수 있습니다.

대/소문자 구분

헤더 및 쿠키 이름은 대/소문자를 구분하지 않습니다. 쿼리 문자열, POST 인수 및 JSON 인수는 대/소문자를 구분합니다.

본문 내용 검사

관리되는 규칙 중 일부는 POST 인수 또는 JSON 인수로 구문 분석되기 전에 요청 본문의 원시 페이로드를 평가합니다. 따라서 일부 상황에서는 값 또는 DecodedInitialBodyContentsInitialBodyContents 이 있는 로그 항목이 matchVariableName 표시될 수 있습니다.

예를 들어 일치 변수 Request body POST args 와 선택기로 제외를 만들어 명명 FOO된 POST 인수를 식별하고 무시한다고 가정합니다. 값PostParamValue:FOO이 .인 로그 항목이 matchVariableName 더 이상 표시되지 않습니다. 그러나 명명된 FOO POST 인수에 규칙을 트리거하는 텍스트가 포함된 경우 로그에 초기 본문 내용에 검색이 표시될 수 있습니다. 현재 초기 본문 내용에 대한 제외를 만들 수 없습니다.

Azure Web Application Firewall 로그를 기반으로 제외 규칙 정의

로그를 사용하여 규칙을 트리거한 요청 부분을 포함하여 차단된 요청의 세부 정보를 볼 수 있습니다. 자세한 내용은 Azure Web Application Firewall 모니터링 및 로깅을 참조하세요.

경우에 따라 특정 WAF 규칙은 요청 본문의 요청 헤더, 쿠키, POST 인수, 쿼리 문자열 인수 또는 JSON 필드에 포함된 값에서 가양성 검색을 생성합니다. 이러한 가양성 검색이 발생하는 경우 평가에서 요청의 관련 부분을 제외하도록 규칙을 구성할 수 있습니다.

다음 표에서는 WAF 로그의 예제 값과 만들 수 있는 해당 제외 선택기를 보여 줍니다.

WAF 로그의 matchVariableName 포털에서 규칙 제외
CookieValue:SOME_NAME 요청 쿠키 이름 같음 SOME_NAME
HeaderValue:SOME_NAME 요청 헤더 이름 Equals SOME_NAME
PostParamValue:SOME_NAME 요청 본문 POST 인수 이름이 SOME_NAME과 같음
QueryParamValue:SOME_NAME 쿼리 문자열 인수 이름이 SOME_NAME과 같음
JsonValue:SOME_NAME 요청 본문 JSON 인수 이름이 SOME_NAME과 같음

JSON 요청 본문에 대한 제외

DRS 버전 2.0부터 JSON 요청 본문은 WAF에서 검사됩니다. 예를 들어 다음 JSON 요청 본문을 고려합니다.

{
  "posts": [
    {
      "id": 1,
      "comment": ""
    },
    {
      "id": 2,
      "comment": "\"1=1\""
    }
  ]
}

요청에는 WAF에서 잠재적인 SQL 삽입 공격으로 검색하는 SQL 주석 문자 시퀀스가 ​​포함됩니다.

요청이 합법적인 것으로 확인되면 일치 변수 Request body JSON args name, 연산 Equals자 및 선택기를 posts.comment사용하여 제외를 만들 수 있습니다.

다른 요청 특성 제외

WAF 로그 항목에 앞의 테이블에 없는 값이 표시 matchVariableName 되면 제외를 만들 수 없습니다. 예를 들어 현재 쿠키 이름, 헤더 이름, POST 매개 변수 이름 또는 쿼리 매개 변수 이름에 대한 제외를 만들 수 없습니다.

대신 다음 작업 중 하나를 수행하는 것이 좋습니다.

  • 가양성을 제공하는 규칙을 사용하지 않도록 설정합니다.
  • 이러한 요청을 명시적으로 허용하는 사용자 지정 규칙을 만듭니다. 요청은 모든 WAF 검사를 무시합니다.

특히 값이 matchVariableNameHeaderNamePostParamNameQueryParamNameCookieName아닌 필드의 이름이 규칙을 트리거했음을 의미합니다. 현재 규칙 제외는 이러한 matchVariableName 값을 지원하지 않습니다.

다음 단계