AWS WAF에서 웹 요청 본문을 검사할 때 크기 제한을 관리하고 싶습니다.
간략한 설명
웹 요청 본문이 본문 검사 크기 제한을 초과하면 기본 호스트 서비스는 제한 내에 있는 콘텐츠만 AWS WAF에 전달합니다. AWS WAF는 웹 요청 본문에서 제한을 초과한 크로스 사이트 스크립팅(XSS) 공격이나 SQL 인젝션 패턴을 감지하지 않습니다.
참고: AWS WAF는 본문 검사 크기 제한 내에서 공격 패턴을 찾았는지 여부에 관계없이 웹 요청 본문의 콘텐츠를 기록하지 않습니다.
크기 초과 요청의 본문 검사 크기 제한 내에 나타나지 않는 공격 패턴으로부터 보호하려면 모든 크기 초과 요청을 차단하는 규칙을 구성하십시오. 그런 다음, 정당한 크기 초과 요청을 명시적으로 허용하는 규칙을 만드십시오. 사용자 지정 규칙을 만들거나 핵심 규칙 집합(CRS) 관리형 규칙 그룹을 사용할 수 있습니다.
해결 방법
CRS 관리형 규칙 사용
CRS 관리형 규칙 그룹을 사용하려면 SizeRestrictions_Body 규칙을 활성화하여 8KB(8,192바이트)를 초과하는 요청을 차단하십시오. 그런 다음, 크기 제한을 초과하는 정당한 요청을 허용하는 규칙을 만드십시오.
SizeRestrictions_Body 규칙 활성화
다음 단계를 완료하십시오.
- AWS WAF 콘솔을 엽니다.
- 탐색 창의 AWS WAF에서 웹 ACL을 선택합니다.
- 리전에서 웹 액세스 제어 목록(웹 ACL)을 생성한 AWS 리전을 선택합니다.
참고: Amazon CloudFront용 웹 ACL을 설정하는 경우 글로벌을 선택하십시오.
- 웹 ACL을 선택합니다.
- 규칙에서 규칙 추가를 선택합니다.
- 드롭다운 목록에서 관리형 규칙 그룹 추가를 선택합니다.
- 관리형 규칙 그룹 추가에서 AWS 관리형 규칙 그룹을 선택합니다.
- Free rule groups(자유 규칙 그룹)에서 Core rule set(핵심 규칙 집합)를 선택합니다.
- Add to web ACL(웹 ACL에 추가)을 활성화한 다음, 편집을 선택합니다.
- 8KB를 초과하는 웹 요청 본문을 검사하고 차단하려면 SizeRestrictions_BODY 규칙을 차단으로 설정합니다.
- 규칙 저장을 선택합니다.
오탐이 발생하는 것을 줄이려면 SizeRestrictions_Body 규칙만 사용하고 다른 모든 규칙을 카운트로 재정의하십시오.
정당한 요청을 허용하는 규칙 만들기
SizeRestrictions_Body 규칙은 8KB를 초과하는 정당한 요청을 차단할 수 있습니다. 크기 제한을 초과하는 정당한 요청을 허용하려면 SizeRestrictions_BODY 규칙을 카운트로 설정하십시오. 그런 다음, AWS WAF에서 추가한 레이블을 후속 규칙 평가에 사용합니다.
다음 단계를 완료하십시오.
- AWS WAF 콘솔을 엽니다.
- 탐색 창의 AWS WAF에서 웹 ACL을 선택합니다.
- 리전에서 웹 ACL을 생성한 리전을 선택합니다.
참고: CloudFront용 웹 ACL을 설정하는 경우 글로벌을 선택하십시오.
- 웹 ACL을 선택합니다.
- 규칙에서 AWS-AWSManagedRulesCommonRuleSet를 선택합니다.
- 편집을 선택합니다.
- SizeRestrictions_BODY 규칙의 경우 Override to Count(카운트로 재정의)를 선택합니다.
- 규칙 저장을 선택합니다.
- 규칙에서 규칙 추가를 선택하고, Add my own rules and rule groups(내 규칙 및 규칙 그룹 추가)를 선택합니다.
- 이름에 규칙 이름을 입력한 다음, 정규 규칙을 선택합니다.
- If a request(요청인 경우)에 matches all the statement (AND)(모든 문과 일치(AND))를 선택합니다.
- Statement 1(문 1)에 다음 정보를 입력합니다.
검사에서 레이블 있음을 선택합니다.
일치 범위에서 레이블을 선택합니다.
매치 키에 awswaf:managed:aws:core-rule-set:SizeRestrictions_Body 레이블을 입력합니다.
- Statement 2(문 2)에 다음 정보를 입력합니다.
Negate statement results(문 결과 부정)를 선택합니다.
**Inspect(검사)**에서 **URI path(URI 경로)**를 선택합니다.
Match type에서 Exactly matches string을 선택합니다.
String to match(일치할 문자열)에 /upload를 입력합니다.
참고: /upload를 요청하는 URI 경로로 바꾸십시오.
- (선택 사항) 텍스트 변환에서 텍스트 변환 또는 없음을 선택합니다.
- 작업에서 차단을 선택합니다.
- 규칙 추가를 선택합니다.
- 규칙 우선 순위 설정에서 규칙이 CRS 관리형 규칙 그룹 다음에 오도록 우선 순위를 업데이트합니다. 이제 CRS의 SizeRestrictions_Body 규칙에서 레이블을 추가할 수 있으며, AWS WAF는 후속 규칙에서 해당 레이블을 사용할 수 있습니다.
- 규칙 저장을 선택합니다.
참고: 작업을 카운트로 설정하여 비 프로덕션 환경에서 규칙을 테스트하는 것이 가장 좋습니다. 규칙을 평가하려면 AWS WAF 샘플링 요청 또는 AWS WAF 로그와 함께 Amazon CloudWatch 지표를 사용하십시오.
사용자 지정 본문 검사 규칙 만들기
규칙에 대한 크기 초과 요청 처리 작업 설정
사용자 지정 본문 검사 규칙을 구성할 때 크기 초과 요청 처리 작업을 선택할 수 있습니다. 크기 초과 처리는 요청 본문이 크기 제한을 초과할 때 웹 요청으로 수행할 작업을 AWS WAF에 지시합니다. 크기 초과 구성 요소를 처리하는 옵션에는 계속, 일치 및 일치 없음이 있습니다. AWS WAF 콘솔에서는 이러한 옵션 중 하나를 선택해야 합니다. 콘솔 외부에서는 기본 옵션이 계속으로 설정됩니다. 크기 초과 요청을 차단하려면 크기 초과 요청 처리 작업을 사용하는 사용자 지정 규칙을 만드십시오.
정당한 요청을 허용하는 규칙 만들기
크기 제한을 초과하는 정당한 요청을 허용하려면 합법적인 호스트의 요청을 명시적으로 허용하는 규칙을 만드십시오. 그런 다음, 요청을 차단하는 규칙의 우선 순위보다 높도록 규칙의 우선 순위를 업데이트합니다.
관련 정보
AWS WAF가 정당한 업로드 요청을 차단하는 이유는 무엇입니까?