AWS WAF, AWS Firewall Manager 및 AWS Shield Advanced
개발자 가이드 (API 버전 2015-08-24)

크기 제약 조건 작업

요청에서 지정된 부분의 길이를 기반으로 웹 요청을 허용하거나 차단하려는 경우 크기 제약 조건을 하나 이상 생성합니다. 크기 제약 조건은 AWS WAF에서 살펴보려는 웹 요청의 부분, AWS WAF에서 찾으려는 바이트 수, 큼(>) 또는 작음(<)과 같은 연산자를 식별합니다. 예를 들어, 크기 제약 조건을 사용하여 100바이트보다 긴 쿼리 문자열을 찾을 수 있습니다. 프로세스에서 나중에 웹 ACL을 생성할 때 해당 설정을 기반으로 요청을 허용할지 또는 차단할지를 지정합니다.

예를 들면 본문에서 지정된 문자열을 검색하여 요청 본문을 검사하도록 AWS WAF를 구성할 경우 AWS WAF는 처음 8192바이트(8KB)만 검사합니다. 웹 요청에 대한 요청 본문이 8192바이트를 절대 초과하지 않을 경우 크기 제약 조건을 생성하고 요청 본문이 8192바이트보다 큰 요청을 차단할 수 있습니다.

크기 제약 조건 생성

크기 제약 조건을 생성할 때 AWS WAF에서 길이를 평가할 웹 요청의 부분을 식별하는 필터를 지정합니다. 크기 제약 조건에 두 개 이상의 필터를 추가하거나 각 필터에 대해 별도의 조건을 생성할 수 있습니다. 각 구성이 AWS WAF 동작에 영향을 미치는 방식은 다음과 같습니다.

  • 크기 제약 조건당 하나의 필터 – 별도의 크기 제약 조건을 규칙에 추가하고 규칙을 웹 ACL에 추가하는 경우 AWS WAF에서 조건을 기반으로 요청을 허용하거나 차단하려면 웹 요청은 모든 조건과 일치해야 합니다.

    예를 들어 두 개의 조건을 생성한다고 가정합니다. 하나는 쿼리 문자열이 100바이트보다 큰 웹 요청과 일치합니다. 다른 하나는 요청 본문이 1024바이트보다 큰 웹 요청과 일치합니다. 두 조건을 모두 동일한 규칙에 추가하고 규칙을 웹 ACL에 추가하면 두 조건이 모두 참인 경우에만 AWS WAF는 요청을 허용하거나 차단합니다.

  • 크기 제약 조건당 두 개 이상의 필터 – 여러 개의 필터가 포함된 크기 제약 조건을 규칙에 추가하고 규칙을 웹 ACL에 추가하는 경우 AWS WAF에서 해당 조건을 기반으로 요청을 허용하거나 차단하려면 웹 요청은 크기 제약 조건에 있는 필터 중 하나와만 일치하면 됩니다.

    두 개 대신 하나의 조건을 생성하고 조건 하나에 이전 예제와 동일한 두 개의 필터가 포함된다고 가정합니다. 쿼리 문자열이 100바이트보다 크거나 요청 본문이 1024바이트보다 크면 AWS WAF는 요청을 허용하거나 차단합니다.

참고

크기 제약 조건을 규칙에 추가하는 경우 조건에 있는 값과 일치하지 않는 웹 요청을 허용하거나 차단하도록 AWS WAF를 구성할 수도 있습니다.

크기 제약 조건을 생성하려면

  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/waf/에서 AWS WAF 콘솔을 엽니다.

  2. 탐색 창에서 [Size constraints]를 선택합니다.

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

  4. 적용 가능한 필터 설정을 지정합니다. 자세한 정보는 크기 제약 조건을 생성하거나 편집할 때 지정하는 값 단원을 참조하십시오.

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

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

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

크기 제약 조건을 생성하거나 편집할 때 지정하는 값

크기 제약 조건을 생성하거나 업데이트할 때 다음 값을 지정합니다.

이름

크기 제약 조건의 이름을 입력합니다.

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

필터링할 요청의 부분

AWS WAF에서 길이를 평가할 각 웹 요청의 부분을 선택합니다.

헤더

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

HTTP 메서드

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

쿼리 문자열

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

URI

리소스를 식별하는 URL의 부분입니다(예: /images/daily-ad.jpg). Transformation(변환)이 지정되지 않은 한, URI는 정규화되지 않고 AWS가 요청의 일부로 클라이언트에서 이를 수신할 때와 마찬가지로 검사가 됩니다. Transformation(변환)은 지정된 대로 URI를 다시 포맷합니다.

본문

HTTP 요청 본문으로 웹 서버에 전송할 추가 데이터(예: 양식 데이터)가 포함되어 있는 요청의 일부입니다.

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

쿼리 문자열의 일부로 정의한 모든 파라미터입니다. 예를 들어 URL이 "www.xyz.com?UserName=abc&SalesRegion=seattle"인 경우, UserName 또는 SalesRegion 파라미터에 필터를 추가할 수 있습니다.

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

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

Single query parameter (value only)(단일 쿼리 파라미터(값만 해당))와 비슷하지만, AWS WAF는 단일 파라미터 값을 검사하는 대신 크기 제약이 있는지 쿼리 문자열 내의 모든 파라미터 값을 검사합니다. 예를 들어 URL이 "www.xyz.com?UserName=abc&SalesRegion=seattle"이며 All query parameters (values only)(모든 쿼리 파라미터(값만 해당))를 선택할 경우, AWS WAF는 UserName 또는 SalesRegion 값이 지정된 크기를 초과하면 일치를 트리거합니다.

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

Part of the request to filter on(필터링할 요청의 부분)의 값으로 헤더를 선택하는 경우 공통 헤더의 목록에서 헤더를 하나 선택하거나 AWS WAF에서 길이를 평가할 헤더의 이름을 입력합니다.

비교 연산자

크기에 대해 지정하는 값과 관련하여 AWS WAF에서 웹 요청에 있는 쿼리 문자열의 길이를 평가할 방법을 선택합니다.

예를 들어 Comparison operator(비교 연산자)에 대해 Is greater than(초과)을 선택하고 크기에 대해 100을 입력하는 경우 AWS WAF는 웹 요청에 100바이트보다 긴 쿼리 문자열이 있는지 평가합니다.

크기

AWS WAF에서 감시할 쿼리 문자열의 길이를 바이트 단위로 입력합니다.

참고

[Part of the request to filter on]의 값으로 [URI]를 선택하는 경우 URI에서 [/]가 문자로 계산됩니다. 예를 들어 URI /logo.jpg는 9자 길이입니다.

변환

변환을 수행하면 AWS WAF에서 요청의 지정된 부분의 길이를 평가하기 전에 웹 요청의 형식이 바뀝니다. 이렇게 하면 공격자가 AWS WAF를 우회하기 위해 웹 요청에서 사용하는 일부 비정상적인 서식이 제거됩니다.

참고

Part of the request to filter on(필터링할 요청의 부분)에 대해 본문을 선택하는 경우 처음 8,192바이트만 검사를 위해 전달되기 때문에 변환을 수행하도록 AWS WAF를 구성할 수 없습니다. 하지만 여전히 HTTP 요청의 크기를 기반으로 트래픽을 필터링하고 없음의 변환을 지정할 수 있습니다(AWS WAF​는 요청 헤더에서 본문 길이를 가져옵니다).

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

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

없음

AWS WAF에서 길이를 확인하기 전에 웹 요청에 대한 텍스트 변환을 수행하지 않습니다.

소문자로 변환

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

HTML 디코딩

AWS WAF에서 HTML로 인코딩된 문자를 인코딩되지 않은 문자로 바꿉니다.

  • &quot;&로 바꿈

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

  • &lt;<로 바꿈

  • &gt;>로 바꿈

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

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

공백 표준화

AWS WAF는 다음 문자를 공백 문자(10진수 32)로 바꿉니다.

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

  • \t, 탭, 10진수 9

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

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

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

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

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

명령줄 간소화

운영 체제 명령줄 명령이 포함된 요청의 경우 이 옵션을 사용하여 다음 변환을 수행합니다.

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

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

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

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

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

URL 디코딩

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

크기 제약 조건에서 필터 추가 및 삭제

크기 제약 조건에서 필터를 추가하거나 삭제할 수 있습니다. 필터를 변경하려면 새 이름을 추가하고 기존 이름을 삭제합니다.

크기 제약 조건에서 필터를 추가하거나 삭제하려면

  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/waf/에서 AWS WAF 콘솔을 엽니다.

  2. 탐색 창에서 [Size constraint]를 선택합니다.

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

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

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

    2. 적용 가능한 필터 설정을 지정합니다. 자세한 정보는 크기 제약 조건을 생성하거나 편집할 때 지정하는 값 단원을 참조하십시오.

    3. 추가를 선택합니다.

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

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

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

크기 제약 조건 삭제

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

크기 제약 조건을 삭제하려면

  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/waf/에서 AWS WAF 콘솔을 엽니다.

  2. 탐색 창에서 [Size constraints]를 선택합니다.

  3. [Size constraint conditions] 창에서 삭제하려는 크기 제약 조건을 선택합니다.

  4. 오른쪽 창에서 [Associated rules] 탭을 선택합니다.

    이 크기 제약 조건을 사용하는 규칙의 목록이 비어 있는 경우 6단계로 이동합니다. 목록에 규칙이 포함되어 있는 경우 규칙을 기록하고 5단계로 계속합니다.

  5. 크기 제약 조건을 사용하고 있는 규칙에서 해당 조건을 제거하려면 다음 단계를 수행합니다.

    1. 탐색 창에서 [Rules]를 선택합니다.

    2. 삭제하려는 크기 제약 조건을 사용하고 있는 규칙의 이름을 선택합니다.

    3. 오른쪽 창에서, 규칙에서 제거하려는 크기 제약 조건을 선택한 다음 [Remove selected condition]을 선택합니다.

    4. 삭제하려는 크기 제약 조건을 사용하고 있는 나머지 모든 규칙에 대해 b단계와 c단계를 반복합니다.

    5. 탐색 창에서 [Size constraint]를 선택합니다.

    6. [Size constraint conditions] 창에서 삭제하려는 크기 제약 조건을 선택합니다.

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