본문 바로가기
공부/AWS

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

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

목차

1. 사전 리소스 구성

2. 만들어진 DVWA 확인

3. WAF Web ACL 구성

 

 

1. 사전 리소스 구성

waf-v2-workshop.template
0.01MB

 

위 템플릿 파일을 다운받아 CloudFormation 스택을 생성해보자

 

기존 EC2 키페어 지정

 

IAM 리소스 만들 권한 승인

 

인스턴스 타입과 VPC 대역은 변경 가능하다

디폴트값으로 진행했을 때 생성되는 리소스들은 아래와 같다

 

 

준비된 환경에 WAF까지 구현한 아키텍처는 다음과 같다

 

 

2. 만들어진 DVWA 확인

스택 배포로 생성된 ALB의 DNS로 접속해보면

 

 

DVWA의 로그인 페이지로 접속된다

초기 ID : admin / 비밀번호 : password

 

정상적으로 로그인된다

 

왼쪽의 메뉴들 중 DVWA Security 탭으로 이동해 Security Level을 Low로 설정한 후 Submit을 해주자

 

 

취약점을 공격하기 쉬운 단계로 낮추는 것이다 (레벨별로 공격하는 방법이 다르다)

 

2. WAF Web ACL 구성

콘솔 > 서비스 > WAF > Create web ACL

 

 

먼저 가운데의 Region을 서울로 설정해주고, 이름은 맘대로 정해준다

아래의 Add AWS resources를 눌러 생성되어 있는 ALB를 선택해 Add 해준다

 

 

그 뒤론 쭉 Next만 누르다가 Create web ACL을 눌러서 생성을 완료해주자

(Rule은 공격 먼저 해보고 나중에 추가할 것)

 

잘 생성된거 확인

 

그리고 로깅을 활성화해줘야 한다 : WAF는 Kinesis Firehose로밖에 못보냄

이미 Firehose와 S3 버킷은 서로 연결되어 있다

방금 만든 WAF를 눌러 Logging and metrics 탭으로 들어가보자

 

현재는 Disable 되어있음

 

Enable logging을 눌러 Kinesis Firehose를 선택

 

 

Redacted fields에선 필요 없다고 생각되는 필드를 선택래주면 된다

이번 실습에선 필요 없는 Query string을 체크해준 후 Enable logging을 눌러주자

 

 

완료해주면 Logging 상태가 Enabled가 된걸 확인할 수 있다

이제 ALB로 들어오는 로그들은 Query string 필드만 제외한 채 Kinesis Firehose를 타고 S3 버킷에 쌓이게 된다

 

다음 글부터 DVWA 사이트를 공격하고 방어하는 실습을 진행해보겠다

 

실습 시리즈

#0 실습 전 준비

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

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

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

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

728x90
728x90

댓글