내용으로 건너뛰기

AWS Managed Rules로 인한 거짓 긍정을 어떻게 감지합니까?

4분 분량
0

내 애플리케이션에 대한 정당한 요청이 AWS WAF 내의 AWS 관리형 규칙이라는 규칙 그룹에 의해 차단되었습니다. 이러한 규칙이 어떻게 거짓 긍정을 유발하는지 알고 싶습니다. 또한 관리형 규칙을 유효하게 유지하고 정상적인 트래픽이 통과할 수 있도록 하고 싶습니다.

해결 방법

먼저, AWS 관리형 규칙으로 인한 거짓 긍정을 식별하십시오. 그런 다음 레이블 또는 scope-down 문을 사용하여 이러한 거짓 긍정을 허용 목록에 추가합니다.

참고: 다음 예제에서는 IP 세트를 사용합니다. 하지만 AWS WAF가 사용자 지정 규칙에서 검사할 수 있는 모든 특성을 헤더 및 URI를 포함한 레이블과 함께 사용할 수 있습니다.

관리형 규칙 그룹에서 거짓 긍정 오류 감지

다음 단계를 완료하십시오.

  1. AWS WAF 로그의 terminatingRuleId에서 정당한 요청을 차단하는 관리형 규칙 그룹을 찾습니다. 다음은 AWS WAF 로그의 예입니다.

    {
      "timestamp": 1712236911743,
      "formatVersion": 1,
      "webaclId": "arn:aws:wafv2:us-west-2:***:regional/webacl/WAFtester/3c372***-***",
      "terminatingRuleId": "AWS-AWSManagedRulesCommonRuleSet",
      "terminatingRuleType": "MANAGED_RULE_GROUP",
      "action": "BLOCK",
      "terminatingRuleMatchDetails": [],
      "ruleGroupList": [
        {
          "ruleGroupId": "AWS#AWSManagedRulesCommonRuleSet",
          "terminatingRule": {
            "ruleId": "SizeRestrictions_BODY",
            "action": "BLOCK",
            "overriddenAction": "BLOCK",
            "ruleMatchDetails": null
          },
          "nonTerminatingMatchingRules": [],
          "excludedRules": null,
          "customerConfig": null
        }
      ]
    }
  2. terminatingRule에서 ruleId를 찾아 정상적인 요청을 차단하는 규칙을 식별합니다. 예를 들어 이전 로그에서 정상적인 요청을 차단하는 규칙은 SizeRestrictions_Body입니다.

  3. 거짓 긍정의 원인이 되는 특성 또는 기준을 식별하십시오. 예를 들어, 데이터베이스 관리자가 원격으로 저장 절차를 실행하는 경우 요청에 대량의 데이터가 포함될 수 있습니다. ManagedRulesCommonRuleSet 규칙 그룹은 SizeRestrictions_Body 규칙으로 인해 이러한 요청을 차단합니다.

허용 목록에 거짓 긍정 추가

관리형 규칙 그룹을 통해 거짓 긍정을 유발하는 정당한 요청을 허용하도록 웹 액세스 제어 목록(웹 ACL)을 구성합니다. 먼저 IP 세트를 만든 다음 라벨 또는 범위 축소문을 사용합니다.

참고: 세분화된 명시적 규칙에는 레이블을 사용하는 것이 가장 좋습니다. scope-down 구문은 범위를 벗어나는 요청을 규칙 그룹의 모든 규칙을 기준으로 검사하지 않습니다.

Labels(레이블)

AWS 관리형 규칙에서 추가한 레이블을 사용하여 거짓 긍정을 방지하십시오. 이러한 레이블이 있는 요청을 일치시키는 사용자 지정 규칙을 만들 때는 관리형 규칙 그룹 내에서 규칙의 기본 동작을 변경하십시오.

다음 단계를 완료하십시오.

  1. AWS WAF 콘솔을 엽니다.
  2. 탐색 창에서 Protection packs (web ACLs)(보호 팩(웹 ACL))를 선택합니다.
  3. 보호 팩을 선택한 다음 Manage rules(규칙 관리)를 선택합니다.
  4. 요청을 차단하는 AWS 관리형 규칙을 선택합니다.
    참고: 로그에서 요청을 차단하는 규칙을 식별하십시오.
  5. Rule overrides(규칙 재정의)에서 요청을 차단하는 규칙의 작업을 Count(개수)로 변경합니다.
  6. Save rule(규칙 저장)을 선택합니다.
  7. 오른쪽 창에서 Manage rule(규칙 관리)을 선택한 다음 Add rule(규칙 추가)을 선택합니다.
  8. Custom rule(사용자 지정 규칙)을 선택한 후 Next(다음)를 선택합니다.
  9. 규칙 유형에서 Custom rule(사용자 지정 규칙)을 선택한 후 Next(다음)를 선택합니다.
  10. Action(작업)에서 BLOCK(차단)을 선택합니다.
  11. Rule name(규칙 이름)을 입력합니다.
  12. If a request(요청이 다음과 같은 경우)에서 matches all the statement (AND)(모든 문과 일치(AND))를 선택합니다.
  13. Statement 1(스테이트먼트 1)에서 다음 옵션을 사용합니다.
    Inspect(검사)에서 Has a label(레이블 있음)을 선택합니다.
    Statement(스테이트먼트)에서 Label(레이블)을 선택합니다.
    Match key(매치 키)에서 요청을 차단하는 AWS 관리형 규칙의 규칙 그룹 규칙에 대한 레이블을 선택합니다.
  14. Statement 2(스테이트먼트 2)에서 다음 옵션을 사용합니다.
    Inspect(검사)에서 Originates from IP address in(다음 IP 주소에서 시작)을 선택합니다.
    IP address list(IP 주소 목록)에서 IP 세트를 선택합니다.
    Rule configuration(규칙 구성)에서 Negate statement (NOT)(문 부정(NOT))를 선택합니다.
    Source IP address for origin(오리진의 소스 IP 주소)에서 Source IP address(소스 IP 주소)를 선택합니다.
  15. Add rule(규칙 추가)을 선택합니다.
  16. Edit Rule Order(규칙 순서 편집)를 선택한 다음 새 규칙을 AWS 관리형 규칙 그룹 아래로 드래그합니다.
    참고: 규칙은 표시된 순서대로 적용되며 새 규칙은 AWS 관리형 규칙 그룹 아래에 있어야 합니다.
  17. Save Rule Order(규칙 순서 저장)를 선택합니다.

scope-down 문

scope-down 문을 사용하여 규칙 또는 규칙 그룹이 평가하는 요청의 범위를 좁힐 수 있습니다. scope-down 문을 규칙 그룹에 추가하면 요청을 검사할 수 있습니다. 이 문은 문에 포함된 정상적인 IP 주소를 건너뜁니다.

다음 단계를 완료하십시오.

  1. AWS WAF 콘솔을 엽니다.
  2. 탐색 창의 AWS WAF에서 Protection packs (web ACLs)(보호 팩(웹 ACL))을 선택합니다.
  3. 보호 팩을 선택하고 Manage rule(규칙 관리)을 선택합니다.
  4. 요청을 차단하는 AWS 관리형 규칙 그룹을 선택합니다.
  5. Inspection(검사)에서 Match statement(일치 문)를 선택한 후 다음 옵션을 사용합니다.
    If a request(요청이 다음과 같은 경우)에서 doesn't match the statement (NOT)(문과 일치하지 않음(NOT))를 선택합니다.
    Inspect(검사)에서 Originates from IP address in(다음 IP 주소에서 시작)을 선택합니다.
    IP address list(IP 주소 목록)에서 IP 세트를 선택합니다.
    Rule configuration(규칙 구성)의 Source IP address for origin(오리진의 소스 IP 주소)에서 Source IP address(소스 IP 주소)를 오리진으로 선택합니다.
  6. Save rule(규칙 저장)을 선택합니다.
AWS 공식업데이트됨 6달 전