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