본문으로 바로가기

[WAF] Label

category AWS/보안, 자격증명 및 규정준수 2023. 1. 30. 19:18

Contents

    Label이란?

    AWS WAF의 Label이란 WAF에서 처리한 HTTP Request에 대해 관리형 규칙에 의해 자동으로 부여되거나 혹은 수동으로 부여되는 속성값을 의미한다.

     

    Label 규칙

    • 대/소문자를 구분한다.
    • 각 Label의 네임스페이스 또는 Label 이름은 최대 128자이다.
    • Label에 최대 5개의 네임스페이스를 지정할 수 있다.
    • Label의 구성 요소는 콜론 (:) 으로 구분된다.
    • Label에 지정한 네임스페이스나 이름에는 다음의 예약된 문자열은 사용할 수 없다.
      • awswaf
      • aws
      • waf
      • rulegroup
      • webacl
      • regexpatternset
      • ipset
      • managed

     

    Label 구조

    Label은 사용자 정의 Label과 관리형 규칙 Label로 나뉜다.

     

    1️⃣ 사용자 정의 Label

    사용자가 임의의 값을 입력하여 AWS WAF 규칙에 매칭되는 HTTP Requeset에 부여할 수 있는 Label이다.

    awswaf:<entity owner account id>:<entity type>:<entity name>:<custom namespace>:...:<label name>
    
    • Label Namespace Prefix
      • <entity owner account id> : AWS WAF를 소유하고 있는 소유자의 AWS Account ID를 뜻한다. (필수)
      • <entity type> : 엔티티 유형을 뜻한다. rulegroup 혹은 webacl이 있다. (필수)
      • <entity name> : 엔티티 유형의 이름을 뜻한다. 만약, 엔티티 유형이 rulegroup일 경우 rulegroup의 이름을 적는다. (필수)
    • Custom Namespace Addition
      • <custom namespace> : 하나 이상의 네임 스페이스를 지정한다. (생략가능)
      • <label name> : Label의 이름을 뜻한다. (필수)

     

    사용자 정의 Label 예제

    사용자 정의 Label의 예제이다.

    • awswaf:111122223333:rulegroup:testRules:testNS1:testNS2:LabelNameA
    • awswaf:111122223333:rulegroup:testRules:testNS1:LabelNameQ
    • awswaf:111122223333:rulegroup:testRules:LabelNameZ

     

    2️⃣ 관리형 규칙 Label

    관리형 Rule Group에 설정되어 있는 Label이다. 사용자가 임의로 설정할 수 없다.

    사용자의 HTTP Request가 관리형 규칙에 매칭될 경우 자동으로 Label이 할당된다.

    awswaf:managed:<vendor>:<rule group name>:<custom namespace>:...:<label name>
    
    • Label Namespace Prefix
      • <vendor> : 관리형 규칙을 제공하는 벤더사의 이름을 뜻한다.
      • <rule group name> : Rule Group의 이름을 뜻한다.
    • Custom Namespace Addition
      • <custom namespace> : 하나 이상의 네임 스페이스를 지정한다. (생략가능)
      • <label name> : Label의 이름을 뜻한다. (필수)

     

    관리형 규칙 Label 예제

    관리형 규칙 Label의 예제이다.

    • awswaf:managed:aws:core-rule-set:NoUserAgent_Header
    • awswaf:managed:aws:sql-database:SQLiExtendedPatterns_QueryArguments
    • awswaf:managed:aws:atp:aggregate:attribute:compromised_credentials
    • awswaf:managed:token:accepted

     

    3️⃣ 관리형 규칙 Process Label

    AWS 관리형 규칙 그룹을 사용하는 경우 적용되는 Label이다.

    awswaf:managed:<process>:<custom namespace>:...:<label name>
    

     

    주의사항

    • Label은 Rule Group에는 적용할 수 없고 Rule Group에 포함된 개별의 규칙에 설정이 가능하다.
    • Rate-Based 규칙을 사용하는 경우 관리자가 지정한 Rate를 초과하는 요청에 대서만 Label 이 추가된다.

     

    사용 사례

    1. AWS WAF의 특정 규칙에 매칭될 경우에만 (필터링하여) 로그로 남기기
    2. 특정 사용자 요청에 대해 관리형 규칙에서 오탐이 발생할 경우 예외처리 하기.

     

    Reference