Back End/AWS

[AWS] 서비스에 WAF 적용하기

DevPing9_ 2022. 10. 10. 20:58

WAF 란?

WAF(Web application firewall) 는 OSI 4레벨 layer 가 아닌 7레벨 Layer 에 적용되는 방화벽이다.

WAF 라는 서비스를 사용하여 OWASP’s Top 10 Web Application Vulnerabilities 에 대한 방어를 어느정도 쉽게 구축할 수 있다.

AWS WAF

AWS 에서 제공하는 클라우드 환경에서 어려움 없이 쉽게 적용할 수 있는 WAF 서비스이다.

OWASP’s Top 10 중 CSRF 를 제외하면 WAF를 적용하는 것 하나만으로
XSS공격, SQL Injection 공격을 포함하여 모두 쉽게 차단이 가능하다.

또한 Custom Rule 을 만들어서 특정 IP 가 일정시간 내에 규칙을 초과한 요청을 보낼 경우 Black List 에 넣거나
Captcha 를 띄우거나 모두 쉽게 세팅이 가능하다.

 


AWS WAF 의 적용 범위

AWS WAF 는 CloudFront, LoadBalancer, API Gateway 에 적용할 수 있다.
하지만 CloudFront 에서만 어플리케이션에 접근할 수 있도록
올바른 네트워크 구조를 구축했다면 CloudFront 에만 적용하여도 된다.

 


 AWS WAF 적용하기

 

1. Web ACL 생성

AWS 콘솔에서 WAF 를 검색 후, Web ACL 을 생성한다.
CloudFront 를 연결할 것이면, 리젼은 Global 로 생성한다.

 

 

2. Rule Set 적용

Add rules 를 클릭하여 Add Managed Rule 에 진입 후 입맛에 맞는 Rule 들을 선택한다.
1500 WCUs 가 넘지 않으면 어플리케이션에는 영향을 거의 미치지 않는다.
때문에 1500 WCUs 를 넘도록 Rule Set 을 적용할 수는 없다.

 

3. Custom Rule 적용

Custom Rule 은 Add Rule -> Add My Own Rule 로 생성 할 수 있다.
AWS 콘솔 UI 로도 만들 수 있지만, 복잡한 and/or 연산으로 만들게 될 경우 JSON 으로 만들어야한다.

 

4. CloudFront 연결

아래 화면으로 진입하여 Add AWS Resource 로 연결하면 선택한 Rule Set 이 곧바로 적용된다.
Overview 화면에서 어떤 엔드포인트로 요청이 들어왔고, 어느 Rule 에 위배된 요청인지 바로바로 확인할 수 있다.


WAF 적용 후 SQL Injection 시도

 


WAF 적용 후 XSS 시도

 

728x90