문자열 매칭 조건 작업 - AWS WAF, AWS Firewall Manager, 및 AWS Shield Advanced

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

문자열 매칭 조건 작업

참고

이것은 AWS WAF Classic 설명서입니다. 이 버전은 2019년 11월 AWS WAF 이전에 규칙 및 웹 ACL과 같은 AWS WAF 리소스를 만들었고 아직 최신 버전으로 마이그레이션하지 않은 경우에만 사용해야 합니다. 리소스를 마이그레이션하려면 AWS WAF Classic 리소스를 다음으로 마이그레이션하기 AWS WAF(을)를 참조하세요.

의 최신 버전에 대한 내용은 을 AWS WAF 참조하십시오. AWS WAF

요청에 나타나는 문자열에 근거하여 웹 요청을 허용하거나 차단하려는 경우, 문자열 매칭 조건을 하나 이상 생성합니다. 문자열 일치 조건은 검색하려는 문자열과 AWS WAF Classic에서 해당 문자열에 대해 검사하려는 웹 요청의 일부 (예: 지정된 헤더 또는 쿼리 문자열) 를 식별합니다. 이 프로세스에서 나중에 웹 ACL을 생성할 때 문자열이 포함된 요청을 허용할지 또는 차단할지를 지정합니다.

문자열 매칭 조건 생성

문자열 일치 조건을 만들 때는 검색하려는 문자열과 해당 문자열에 대해 AWS WAF Classic에서 검사할 웹 요청의 일부 (예: URI 또는 쿼리 문자열) 를 식별하는 필터를 지정합니다. 문자열 매칭 조건에 두 개 이상의 필터를 추가하거나 각 필터에 대해 별도의 문자열 매칭 조건을 생성할 수 있습니다. 각 구성이 AWS WAF Classic 동작에 미치는 영향은 다음과 같습니다.

  • 문자열 일치 조건당 필터 하나 - 별도의 문자열 일치 조건을 규칙에 추가하고 규칙을 웹 ACL에 추가하는 경우 AWS WAF Classic에서 조건에 따라 요청을 허용하거나 차단하려면 웹 요청이 모든 조건과 일치해야 합니다.

    예컨대, 두 개의 조건을 생성한다고 가정합시다. 하나는 User-Agent 헤더에 BadBot라는 값이 포함된 웹 요청과 일치합니다. 다른 하나는 쿼리 문자열에 BadParameter라는 값이 포함된 웹 요청과 일치합니다. 동일한 규칙에 두 조건을 모두 추가하고 웹 ACL에 규칙을 추가하면 AWS WAF Classic은 두 값이 모두 포함된 경우에만 요청을 허용하거나 차단합니다.

  • 문자열 일치 조건당 필터 두 개 이상 - 여러 필터를 포함하는 문자열 일치 조건을 규칙에 추가하고 규칙을 웹 ACL에 추가하는 경우 Classic에서 문자열 일치 조건에 있는 필터 중 하나와 일치하기만 하면 AWS WAF Classic에서 하나의 조건에 따라 요청을 허용하거나 차단하려면 웹 요청이 문자열 일치 조건에 있는 필터 중 하나와 일치해야 합니다.

    조건을 두 개 대신 한 개 만들고 한 조건에 이전 예와 같은 두 개의 필터가 포함되어 있다고 가정해 보겠습니다. AWS WAF Classic은 User-Agent 헤더나 쿼리 BadBot 문자열에 둘 중 하나가 포함된 요청을 허용하거나 BadParameter 차단합니다.

참고

문자열 일치 조건을 규칙에 추가할 때 조건의 값과 일치하지 않는 웹 요청을 허용하거나 차단하도록 AWS WAF Classic을 구성할 수도 있습니다.

문자열 매칭 조건을 생성하려면
  1. 에 AWS Management Console 로그인하고 https://console.aws.amazon.com/wafv2/ 에서 AWS WAF 콘솔을 엽니다.

    탐색 창에 AWS WAF 클래식으로 전환이 표시되면 선택하십시오.

  2. 탐색 창에서 [String and regex matching]을 선택합니다.

  3. [Create condition]을 선택합니다.

  4. 해당 필터 설정값을 지정합니다. 자세한 설명은 문자열 매칭 조건을 생성하거나 편집할 때 지정하는 값 섹션을 참조하세요.

  5. [Add filter]를 선택합니다.

  6. 다른 필터를 추가하려는 경우, 4 ~ 5단계를 반복합니다.

  7. 필터 추가를 완료했으면 [Create]를 선택합니다.

문자열 매칭 조건을 생성하거나 편집할 때 지정하는 값

문자열 매칭 조건을 생성하거나 업데이트할 때 다음 값을 지정합니다.

명칭

문자열 매칭 조건의 명칭을 입력합니다. 명칭은 영숫자(A-Z, a-z, 0-9) 또는 특수 문자(_-!"#`+*},./)만 포함할 수 있습니다. 조건을 생성한 후에는 조건의 명칭을 변경할 수 없습니다.

타입

[String match]를 선택합니다.

요청 중 필터링할 부분

각 웹 요청에서 일치하는 값에 지정한 문자열이 있는지 AWS WAF Classic에서 검사할 부분을 선택합니다.

헤더

지정된 요청 헤더입니다(예: User-Agent 또는 Referer 헤더). [Header]를 선택하는 경우, [Header] 필드에서 헤더의 명칭을 지정합니다.

HTTP 메서드

요청이 오리진에게 수행할 것을 요구하고 있는 작업의 타입을 표시하는 HTTP 메서드입니다. CloudFront DELETE,,,, GET HEAD OPTIONS PATCHPOST, 및 등의 메서드를 지원합니다PUT.

쿼리 문자열

URL 중 ? 문자 뒤에 나타나는 부분입니다(있는 경우).

URI

리소스를 식별하는 요청의 URI 경로(예: /images/daily-ad.jpg). 여기에는 URI의 쿼리 문자열 또는 조각 구성 요소는 포함되지 않습니다. 자세한 설명은 Uniform Resource Identifier (URI): Generic Syntax 섹션을 참조하세요.

변환이 지정되지 않는 한 URI는 정규화되지 않고 요청의 일부로 클라이언트로부터 AWS 수신하는 것처럼 검사됩니다. Transformation(변환)은 지정된 대로 URI를 다시 포맷합니다.

본문

요청 중 HTTP 요청 본문으로서 웹 서버에 보낼 추가 데이터(예: 양식의 데이터)가 들어 있는 부분입니다.

참고

요청 중 필터링할 부분 값으로 본문을 선택하는 경우, AWS WAF Classic은 처음 8192바이트(8KB)만 검사합니다. 본문이 8192바이트보다 긴 요청을 허용하거나 차단하려면 크기 제약 조건을 생성할 수 있습니다. (AWS WAF Classic은 요청 헤더에서 본문 길이를 가져옵니다.) 자세한 정보는 크기 제약 조건 작업을 참조하세요.

단일 쿼리 파라미터(값만 해당)

쿼리 문자열의 일부로 정의한 모든 파라미터입니다. 예를 들어 URL이 “www.xyz.com? UserName =abc& SalesRegion =Seattle”인 경우 or 매개 변수에 필터를 추가할 수 있습니다. UserNameSalesRegion

쿼리 문자열에 중복 파라미터가 표시될 경우, 값이 "OR"로 평가됩니다. 즉, 두 값 중 하나가 일치를 트리거합니다. 예를 들어 URL “www.xyz.com? SalesRegion =boston& SalesRegion =시애틀”에서 일치할 값에 “보스턴” 또는 “시애틀”을 입력하면 매칭이 트리거됩니다.

Single query parameter (value only)(단일 쿼리 파라미터(값만 해당))를 선택하는 경우, Query parameter name(쿼리 파라미터 명칭)도 지정합니다. 검사할 쿼리 문자열의 매개 변수입니다 (예: 또는). UserNameSalesRegion Query parameter name(쿼리 파라미터 명칭)의 최대 길이는 30자입니다. Query parameter name(쿼리 파라미터 명칭)은 대/소문자를 구분하지 않습니다. 예를 들어 Query 매개 변수 이름으로 지정하는 UserName경우 이 이름은 사용자 이름 및 UserName과 같은 모든 변형과 일치합니다. UserName

모든 쿼리 파라미터(값만 해당)

AWS WAF Classic은 단일 쿼리 매개 변수 (값만 해당) 와 유사하지만 단일 매개 변수의 값을 검사하지 않고 쿼리 문자열에 있는 모든 매개 변수의 값이 일치하는지 검사합니다. 예를 들어 URL이 “www.xyz.com? UserName =abc& SalesRegion =satle"이고 모든 쿼리 매개 변수 (값만) 를 선택하면 AWS WAF Classic은 일치하는 값으로 또는 UserName이 값이 지정되면 일치를 트리거합니다. SalesRegion

헤더("요청 중 필터링할 부분"이 "헤더"인 경우에만)

필터링 대상 요청 부분 목록에서 헤더를 선택한 경우 공통 헤더 목록에서 헤더를 선택하거나 Classic에서 검사하려는 헤더의 이름을 입력하십시오. AWS WAF

일치 타입

AWS WAF Classic에서 검사하려는 요청 부분 내에서 Value to match의 문자열이 이 필터와 일치하도록 표시되어야 하는 위치를 선택하십시오.

포함

문자열이 요청의 지정된 부분에 아무 곳이나 나타납니다.

단어 포함

웹 요청의 지정된 부분에 [Value to match]가 포함되어야 하며 [Value to match]에는 영숫자 문자 또는 밑줄(A-Z, a-z, 0-9 또는 _)만 포함되어야 합니다. 또한 [Value to match]는 하나의 단어여야 합니다. 따라서 이 값은 다음 중 하나일 수 있습니다.

  • [Value to match]가 웹 요청의 지정된 부분의 값(예: 헤더의 값)과 정확히 일치합니다.

  • [Value to match]가 웹 요청의 지정된 부분의 시작 부분에 있고 그 뒤에 영숫자 또는 밑줄(_)을 제외한 다른 문자가 있습니다(예: BadBot;).

  • [Value to match]가 웹 요청의 지정된 부분의 끝 부분에 있고 그 앞에 영숫자 또는 밑줄(_)을 제외한 다른 문자가 있습니다(예: ;BadBot).

  • [Value to match]가 웹 요청의 지정된 부분의 중간에 있고 그 앞과 뒤에 영숫자 또는 밑줄(_)을 제외한 다른 문자가 있습니다(예: -BadBot;).

정확히 일치

문자열과 요청의 지정된 부분의 값이 같습니다.

다음으로 시작

문자열이 요청의 지정된 부분의 시작 부분에 나타납니다.

다음으로 끝남

문자열이 요청의 지정된 부분의 끝에 나타납니다.

변환

변환은 AWS WAF Classic에서 요청을 검사하기 전에 웹 요청을 다시 포맷합니다. 이렇게 하면 공격자가 Classic을 우회하기 위해 웹 요청에 사용하는 일부 특이한 형식이 제거됩니다. AWS WAF

단일 타입의 텍스트 변환만을 지정할 수 있습니다.

변환 기능을 사용하여 다음 작업을 수행할 수 있습니다.

None

AWS WAF Classic에서는 Value 내의 문자열이 일치하는지 검사하기 전에는 웹 요청에서 텍스트 변형을 수행하지 않습니다.

소문자로 변환

AWS WAF Classic은 대문자 (A-Z) 를 소문자 (a-z) 로 변환합니다.

HTML 디코딩

AWS WAF Classic은 HTML로 인코딩된 문자를 인코딩되지 않은 문자로 대체합니다.

  • "&로 바꿈

  •  를 줄 바꿈하지 않는 공백으로 바꿈

  • &lt;<로 바꿈

  • &gt;>로 바꿈

  • 16진수 형식으로 표현된 문자 &#xhhhh;를 해당 문자로 바꿈

  • 십진수 형식으로 표현된 문자 &#nnnn;을 해당 문자로 바꿈

공백 표준화

AWS WAF Classic은 다음 문자를 공백 문자 (십진수 32) 로 바꿉니다.

  • \f, 양식 피드, 십진수 12

  • \t, 탭, 십진수 9

  • \n, 줄 바꿈, 십진수 10

  • \r, 캐리지 리턴, 십진수 13

  • \v, 세로 탭, 십진수 11

  • 줄 바꿈하지 않는 공백, 십진수 160

또한 이 옵션은 여러 개의 공백을 하나의 공백으로 바꿉니다.

명령행 간소화

공격자가 작동 시스템 명령행 명령을 삽입하고 이상한 형식을 사용하여 명령의 일부 또는 전부를 위장하고 있는지 우려되는 경우, 이 옵션을 사용하여 다음 변환을 수행합니다.

  • 다음 문자를 삭제: \ " ' ^

  • 다음 문자 앞에 있는 공백 삭제: / (

  • 다음 문자를 공백으로 바꿈: , ;

  • 여러 개의 공백을 하나의 공백으로 바꿈

  • 대문자(A-Z)를 소문자(a-z)로 변환

URL 디코딩

URL 인코딩된 요청을 디코딩합니다.

값이 base64로 인코딩됨

[Value to match]의 값이 base64로 인코딩되는 경우, 이 확인란을 선택합니다. base64 인코딩을 사용하여 공격자가 요청에 포함시키는 인쇄할 수 없는 문자(예: 탭 및 줄 바꿈)를 지정합니다.

매칭시킬 값

AWS WAF Classic에서 웹 요청에서 검색하려는 값을 지정합니다. 최대 길이는 50바이트입니다. 값을 base64로 인코딩하는 경우, 값을 인코딩하기 전에 50바이트 최대 길이가 값에 적용됩니다.

문자열 매칭 조건에서 필터 추가 및 삭제

문자열 매칭 조건에 필터를 추가하거나 필터를 삭제할 수 있습니다. 필터를 변경하려면 새 명칭을 추가하고 기존 명칭을 삭제합니다.

문자열 매칭 조건에서 필터를 추가하거나 삭제하려면
  1. AWS Management Console 로그인하고 https://console.aws.amazon.com/wafv2/ 에서 AWS WAF 콘솔을 엽니다.

    탐색 창에 AWS WAF 클래식으로 전환이 표시되면 선택하십시오.

  2. 탐색 창에서 [String and regex matching]을 선택합니다.

  3. 필터를 추가하거나 삭제하려는 조건을 선택합니다.

  4. 필터를 추가하려면 다음 단계를 수행합니다.

    1. [Add filter]를 선택합니다.

    2. 해당 필터 설정값을 지정합니다. 자세한 설명은 문자열 매칭 조건을 생성하거나 편집할 때 지정하는 값 섹션을 참조하세요.

    3. 추가(Add)를 선택합니다.

  5. 필터를 삭제하려면 다음 단계를 수행합니다.

    1. 삭제하려는 필터를 선택합니다.

    2. [Delete Filter]를 선택합니다.

문자열 매칭 조건 삭제

문자열 매칭 조건을 삭제하려는 경우, 먼저 다음 절차의 설명에 따라 조건에 있는 모든 필터를 삭제하고 조건을 사용하고 있는 모든 규칙에서 조건을 제거해야 합니다.

문자열 매칭 조건을 삭제하려면
  1. 에 AWS Management Console 로그인하고 https://console.aws.amazon.com/wafv2/ 에서 AWS WAF 콘솔을 엽니다.

    탐색 창에 AWS WAF 클래식으로 전환이 표시되면 선택하십시오.

  2. 문자열 매칭 조건을 사용하고 있는 규칙에서 해당 조건을 제거합니다.

    1. 탐색 창에서 규칙을 선택합니다.

    2. 삭제하려는 문자열 매칭 조건을 사용하고 있는 규칙의 명칭을 선택합니다.

    3. 오른쪽 창에서 [Edit rule]을 선택합니다.

    4. 삭제하려는 조건 옆의 [X]를 선택합니다.

    5. 업데이트를 선택합니다.

    6. 삭제하려는 문자열 매칭 조건을 사용하고 있는 나머지 모든 규칙에 대해 반복합니다.

  3. 삭제하려는 조건에서 필터를 제거합니다.

    1. 탐색 창에서 [String and regex matching]을 선택합니다.

    2. 삭제하려는 문자열 매칭 조건의 명칭을 선택합니다.

    3. 오른쪽 창에서 [Filter] 옆의 확인란을 선택하여 필터를 모두 선택합니다.

    4. [Delete filter]를 선택합니다.

  4. 탐색 창에서 [String and regex matching]을 선택합니다.

  5. [String and regex match conditions] 창에서 삭제하려는 문자열 매칭 조건을 선택합니다.

  6. [Delete]를 선택하여 선택한 조건을 삭제합니다.