반응형

EC2 인스턴스의 Web App.에 Multi-part로 파일 업로드 시도 시 403 Forbidden 발생하여 조치한 내용입니다.

원인

관련된 내용을 구글링 하던 중 ELB의 WAF에서 차단되는 경우 403 Forbidden이 발생한다는 내용을 확인하였습니다.

AWF의 Web ACLs 대시보드를 살펴본 결과, 파일 업로드 요청이 403 차단된 것을 확인하였습니다.

차단된 규칙은 AWSManagedRulesCommonRuleSet 규칙 그룹의 SizeRestrictions_BODY 규칙입니다.

해결책

AWF는 악성 스크립트 탐지를 위해 POST로 전송되는 파일의 앞 8KB 부분을 검사합니다.

이때 업로드 하는 파일의 문자열이 악성 스크립트 내용과 유사하게 판단되어 차단되게 됩니다.

이를 해결하기 위해 기존 규칙에서 파일 업로드 요청 URI만 허용하는 예외를 추가한 규칙을 생성합니다.

1. Web ACL Rule Set 편집

AWS WAF에서 Web ACL을 선택합니다.

Rules 탭에서 AWSManagedRulesCommonRuleSet 을 선택하고 Edit 합니다.

차단이 발생한 SizeRestrictions_BODY 규칙을 count 모드로 설정하고 저장합니다.

2. 신규 Rule 추가

Rules 탭에서 Add rulesAdd my own rules and rule groups를 선택합니다.

Rule type - Rule binder를 선택하고, 이름 입력 후 Type - Regular type을 선택합니다.

Statement 1 에서
If a request matches all the statements (AND),
Inspect - Has a label,
Match scope - Label,
Match key - awswaf:managed:aws-core-rule-set:SizeRestrictions_Body 선택합니다.

Statement 2에서
Negate statement results 체크,
Inspect - URI path 선택,
Match type - Exactly matches string 선택,
String to match - 업로드 서비스 URI (/upload/s3/image/service) 입력합니다.

Action - Block을 선택하고, Add rule 합니다.

우선 순위에서 새로 생성한 규칙을 AWSManagedRulesCommonRuleSet 아래로 이동 시킵니다.

파일 업로드 시도 시 Status Code 200으로 응답이 오며, 정상적으로 파일이 업로드 되었습니다.
 

참고 링크

https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/application/load-balancer-troubleshooting.html#http-403-issues

 

Application Load Balancer 문제 해결 - Elastic Load Balancing

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

https://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-baseline.html#aws-managed-rule-groups-baseline-crs

 

기준 규칙 그룹 - AWS WAF, AWS Firewall Manager, 및 AWS Shield Advanced

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

https://aws.amazon.com/ko/premiumsupport/knowledge-center/waf-upload-blocked-files/?nc1=h_ls 

 

AWS WAF가 차단한 파일 업로드

AWS WAF가 차단한 파일을 업로드하려면 어떻게 해야 하나요? 최종 업데이트 날짜: 2022년 7월 27일 AWS WAF가 차단한 확장자를 사용하는 파일을 업로드(POST)해야 합니다. AWS WAF가 차단한 파일을 업로드

aws.amazon.com

 

반응형

+ Recent posts