Back End/보안

[AWS] AWS WAF 오탐 예외처리 (AWS WAF False Positive Mitigation)

DevPing9_ 2022. 12. 17. 16:50

 

 

이전 포스팅 (AWS WAF 적용 시, 주의해야할 Default 설정들) 에 이어 이번엔 Count 로 설정한 규칙들에 대해 예외처리 하는 작업에 대한 포스팅을 하고자 합니다.

 

예외처리 작업에 앞서 Count 규칙에 대해 예외처리가 필요한지 알아 보겠습니다.


 

Count 로 변경한것도 예외처리인데 또 예외처리를 해야한다고? 왜?

 

WAF 적용 초기에 필자는 이러한 생각을 했었다.

 

정상적인 트래픽인데도 Block 될 가능성이 있다면 열어주면 되겠군.
Count 설정을 하여 최소한으로만 열어주자. 

 

코딩을 하다보면 최소 권한 원칙이라는 단어를 한번쯤은 들어보았을 것이다.

예시로 Java 에서 final 키워드를 일단 다붙여 둔 뒤, 필요할 때만 final 키워드를 제거하는 방식의 코딩기법이 대표적이다.

 

최소 권한 원칙은 정보보안 용어이기도 한데,

더 설명할 필요도 없이 권한을 최소로 열어두면 좋다는 것은 누구나 쉽게 납득이 가능할 것이다.

 

하지만 인간은 타협의 동물이기 때문에,

"WAF 로 이미 많은 Reqeust 를 Block 하는 Rule 들을 적용했는데 그중에 몇개만 열어주는 것이 최소 권한 아닌가?" 라며 타협을 하고 옳다고 생각할 수 있다. (필자가 그랬다... 동물 그 자체...)

 

정보보안에 대한 지식과 AWS WAF 에 대한 지식이 부족한 것이 이렇게 생각하게 된 것에 한 몫 하지 않았나 싶다.

 

결국, AWS WAF 를 적용하면서 관련지식이 조금이나마 늘어나자

Count 를 적용한 Rule 들에 대해서도 최대한 Block 을 설정해야겠다 라는 생각을 하게되었다.

 

간단한 예시를 들어보겠다.

 

앞선 포스팅에서 Size_Restriction_BODY 는 RuleAction 을 COUNT 로 변경해야 된다고 설명하였다.

AWS 공식문서에도 AWS WAF 는 8KB 페이로드만 검사하고 동작한다고 설명이 되어있다. 

 

그럼 공격자8KB 만큼의 페이로드를 빈문자열로 채우고 그 뒤에 공격문을 채워서 WAF 를 속여 우회하여 공격할 수 있게된다.

그러면 AWS 제공하는 모든 Rule 들이 무의미하게 된다.

 

따라서 Size_Restriction_BODY 를 Block 하면 안되는 서비스들의 URI 만 트래픽을 수신할 수 있게 하고, Payload 가 8KB 가 넘지 않는 URI 들은 트래픽을 차단해야 AWS WAF 를 사용하는데에 의의가 있을 것이다.

 

필자의 보안지식은 깊지 않기 때문에, 이정도 레벨까지 적용하는게 최선이다.

(지나가시는 정보보안 고수님들의 첨언은 언제나 감사히 받겠습니다.)

 


AWS WAF 에서 오탐 핸들링하기

SQLI_BODY 에 대해 예외처리를 하고 싶다고 가정하겠다.

아래의 예시는 예시일 뿐이며, 본인의 입맛에 작성하면 되겠다.

 

순서는 아래와 같다.

 

1. 예외처리를 할 Rule 을 Count 로 변경한다.

 

2. 허용할 리소스들은 제외한 모든 요청들을 Block 하는 Custom Rule 을 작성한다.

* 정규식은 AWS Console -> AWS WAF -> Regex pattern sets 에서 작성하여 관리할 수 있다.

 

3. Custom Rule 의 위치를 예외처리 Rule 보다 아래에 위치시킨다.

* Request 는 Rules 의 Priority 0부터 출발하여 마지막까지 도달한다. (Spring 의 Filter 와 같다고 생각하시면 되겠다.)


1. 예외처리를 할 Rule 을 Count 로 변경 (예시 : SQLI_BODY)

 

2. 허용할 리소스들은 제외한 모든 요청들을 Block 하는 Custom Rule 을 작성

Statement 1. 특정 Rule 에 Filter 된 트래픽인지 검증

Statement 2. Allow 할 URI 를 가진 서비스 도메인인지 검증  

Statement 3. 해당 URI 이 아니면 모두 BLOCK

 

 

3. Custom Rule 의 위치를 예외처리 Rule 보다 아래에 위치시킨다.

 

 

 

 


Reference

 

AWS WAF’s Dangerous Defaults

AWS WAF’s defaults make bypassing trivial in POST requests, even when you enable the AWS Managed Rules

osamaelnaggar.com

 

728x90