본문 바로가기
공부/AWS

[AWS WAF] #0 실습 전 준비

by haejang 2021. 2. 25.
728x90
728x90

AWS 공식 WAF 실습을 진행해보겠다

 

먼저 WAF란?

HTTP(S) 요청을 모니터링하고 보호하는 웹 애플리케이션 방화벽

특정 공격 패턴(SQL Injection, XSS 등)을 차단, 특정 트래픽 패턴을 필터링 등을 할 수 있다

차단된 요청에 대해선 HTTP 403 코드로 응답한다

비용은 사용한 만큼 : 배포한 규칙 수와 애플리케이션이 수신한 웹 요청 수 기준

WAF 배포 가능한 리소스 : CloudFront, ALB, API Gateway, AppSync

 

DVWA란?

Damn Vulerable Web Application

PHP와 MySQL로 만들어진 웹의 취약점에 대한 공격 및 방어 기술 교육에 사용되는 오픈소스 애플리케이션

본 실습에선 이 DVWA를 사용해 모의 웹 공격을 진행한다

AWS 커뮤니티 AMI인 DVWA용 Ubuntu를 사용함

 

 

실습 개요

웹 공격에 취약하도록 의도된 웹 애플리케이션(ALB와 연결)에 WAF를 사용해 방어 체계 구성

  • 사전 리소스 구성은 주어진 CloudFormation 템플릿 사용
  • 사전 리소스엔 DVWA용 Ubuntu 서버가 구성되어 ALB와 연결됨
  • WAF의 로그는 Kinesis Firehose를 통해 S3 버킷에 전달됨
  • DVWA 서버에 접속 후 모의해킹을 진행한 뒤, WAF를 사용해서 막아보는 식으로 진행
  • WAF의 Rule은 AWS managed 사용과 직접 만드는 일 둘 다 진행

 

준비물

Chrome에서 진행

왜냐면 특정한 트래픽을 만들기 위한 크롬 확장 도구가 필요함

Browsec VPN : IP 우회 도구

User-Agent Switcher : 브라우저의 요청 user-agent 헤더 변경 도구

둘 다 크롬에 추가한 후, 서울 리전의 EC2 키페어까지 준비해놓자

 

실습 시리즈

#1 사전 리소스들과 WAF 구성

#2 SQL Injection & XSS 공격과 방어 (AWS managed rule)

#3 특정 국가 or User-Agent 차단 (custom rule)

#4 JSON으로 WAF Rule 직접 작성해보기

#5 실습 마무리 : 로깅 확인 & 리소스 삭제

728x90
728x90

댓글