AWS Managed Rules에서 발생한 오탐을 감지하고 안전한 목록에 추가하려면 어떻게 해야 하나요?

4분 분량
0

애플리케이션에 대한 합법적 요청이 AWS WAF의 AWS Managed Rules에 의해 차단됩니다. 이러한 규칙으로 인한 오탐을 감지하고 안전한 목록에 추가하려면 어떻게 해야 하나요?

해결 방법

AWS Managed Rules에서 발생한 오탐 감지

1.    합법적 요청을 차단하는 관리형 규칙 그룹 내 규칙을 찾습니다. AWS WAF 로그의 'terminatingRuleId' 필드에서 요청을 차단하는 규칙을 찾을 수 있습니다. 자세한 내용은 로그의 'terminatingRuleMatchDetails' 섹션을 확인하세요.

2.    아래 방법 중 하나를 사용하여 요청 파라미터에서 오탐이 발생한 부분을 확인합니다.

curl: 엔드포인트에서 curl을 수행한 다음, 오탐 오류를 보낼 때 '403 Forbidden' 오류가 발생하는지 확인합니다. 예를 들어, 다음과 같습니다.

$ curl -ikv http://<your-domain>.com/<false positive>

참고: 이 예에서는 <your-domain>을 사용자 도메인으로, <false positive>를 사용자의 오탐 벡터로 바꿉니다.

웹 브라우저: 웹 브라우저에 사용자 도메인과 오탐 벡터를 입력하여 '403 Forbidden' 오류가 발생하는지 확인합니다. 예를 들어, 다음과 같습니다.

http://<your-domain>/<false positive>

이전 예에서 <your-domain>을 사용자 도메인으로, <false positive>를 사용자의 오탐 벡터로 바꿉니다.

Postman: Postman 도구를 통해 오탐 오류를 발생시키는 규칙 및 파라미터를 사용하여 엔드포인트에 요청을 보냅니다.

3.    오탐을 일으키는 벡터를 확인합니다. 합법적 요청을 전달할 수 있는 사용자 지정 조건 규칙을 생성합니다.

예를 들어, 내부 팀에서 웹 페이지를 변경하고 있습니다. 요청에는 변경을 위한 스크립트가 포함되어 있지만, 이 스크립트로 인해 ManagedRulesCommonRuleSet 규칙에서 요청을 차단합니다. 내부 요청을 고유하게 식별하는 파라미터를 사용하여 관리형 규칙이 해당 요청을 검사하지 못하게 할 수 있습니다. 예를 들어, 합법적 요청이 특정 IP에서 오는 경우 IP를 검사에서 제외하도록 IP 세트 조건을 생성할 수 있습니다.

AWS Managed Rules에서 발생한 오탐을 안전한 목록에 추가

오탐을 감지한 후에는 오탐을 일으키는 합법적 요청을 AWS Managed Rules 규칙 그룹에서 검사하지 않도록 웹 ACL을 구성합니다. 그런 다음, 요청을 차단하는 규칙을 우회할 수 있습니다. AWS Managed Rules를 수정하는 두 가지 방법이 있습니다.

레이블

AWS Managed Rules에서 추가한 레이블을 사용하여 오탐을 방지할 수 있습니다. 레이블은 규칙에 연결된 작업에 상관없이, 규칙이 일치하는 웹 요청에 추가할 수 있는 메타데이터입니다. AWS Managed Rules의 최신 버전에서는 레이블을 지원합니다. 레이블이 있는 요청과 일치하는 사용자 지정 규칙을 생성하여 관리형 규칙 그룹 내에서 규칙의 기본 동작을 변경할 수 있습니다.

1.    AWS WAF 콘솔을 열고 올바른 리전을 선택한 다음, IP 세트를 선택합니다.

2.    규칙 그룹의 검사에서 제외하려는 합법적 IP를 포함하는 IP 세트를 생성합니다.

3.    AWS WAF 콘솔의 탐색 창에서 Web ACLs(웹 ACL)를 선택하고 사용자의 웹 ACL을 선택합니다.

4.    Rules(규칙) 탭을 선택합니다.

5.    오탐 오류를 일으키는 규칙이 포함된 규칙 그룹을 선택하고 Edit(편집)를 선택합니다.

6.    오탐 오류를 일으키는 규칙을 선택하고 Count(개수)로 설정합니다.

7.    Save rule(규칙 저장)을 선택합니다.

8.    Add rule(규칙 추가)을 선택하고 Add my own rules and rule groups(자체 규칙 및 규칙 그룹 추가)를 선택합니다.

9.    규칙 유형으로 Rule Builder(규칙 빌더)를 선택합니다.

10.    규칙 이름을 입력하고 유형으로 Regular rule(일반 규칙)을 선택합니다.

11.    If a request(요청) 드롭다운을 matches all the statements (AND)(모든 명령문과 일치함(AND))로 설정합니다.

12.    명령문 1에 대해 다음 파라미터를 선택합니다.
Inspect(검사)를 Has a label(레이블 포함)로 설정
Match scope(일치 범위)를 Label(레이블)로 설정
오탐 오류를 일으키는 규칙의 레이블 이름이 포함된 문자열 입력

13.    명령문 2에 대해 다음 파라미터를 선택합니다.
Negate statement results(명령문 결과 무효화) 옵션 켜기
Inspect(검사)를 Originates from an IP address in(아래의 IP 주소에서 생성된 요청 검사)으로 설정
합법적 IP를 포함하여 생성한 IP 세트로 IP 세트를 설정합니다.
**IP addresses to use as the originating address(원래 주소로 사용할 IP 주소)**를 **Source IP address(소스 IP 주소)**로 설정

14.    Action(작업)을 Block(차단)으로 설정합니다.

15.    Set rule priority(규칙 우선순위 설정)에서 규칙 우선순위를 오탐 오류를 일으키는 AWS Managed Rules보다 더 낮은 우선순위로 설정합니다.

16.    Save(저장)를 선택합니다.

Scope-down 문

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

1.    AWS WAF 콘솔을 열고 올바른 리전을 선택한 다음, IP 세트를 선택합니다.

2.    규칙 그룹의 검사에서 제외하려는 합법적 IP를 포함하는 IP 세트를 생성합니다.

3.    AWS WAF 콘솔의 탐색 창에서 Web ACLs(웹 ACL)를 선택하고 사용자의 웹 ACL을 선택합니다.

4.    Rules(규칙) 탭을 선택합니다.

5.    scope-down 문을 추가할 AWS Managed Rules 항목을 선택하고 Edit(편집)를 선택합니다.

6.    생성한 IP 세트를 제외하는 scope-down 문을 생성합니다. 다음은 명령문 형식에 대한 예입니다.
If a request(요청): doesn't match the statements (NOT)(요청이 명령문과 일치하지 않는 경우(NOT))
Inspect(검사): originates from an IP address in(아래의 IP 주소에서 생성된 요청 검사)
IP set(IP 세트): <your-IP-set>
IP addresses to use as the originating address(원래 주소로 사용할 IP 주소): Source IP address(소스 IP 주소)

7.    Save rule(규칙 저장)을 선택합니다.

참고: scope-down 문은 규칙 그룹의 모든 규칙에 대해 범위를 벗어나는 요청을 검사하지 않습니다. 세분화된 명시적 규칙의 경우 레이블을 사용하는 것이 모범 사례입니다.


AWS 공식
AWS 공식업데이트됨 4년 전