반응형

1. DVWA 설치

취약한 웹 서비스 환경 구성

위협 요인이 내재된 환경을 구성하기 위해 CloudFormation을 실행한다.

CloudFormation을 통해 다음과 같은 AWS 리소스가 생성된다.

 

AWS 서비스 유형 리소스명  기타
EC2 인스턴스 WAFLab-WebServerInstance t2.micro
ALB MyDVW-Appli-xxxxxx -
VPC VPC 10.10.0.0/16
VPC Subnet PublicSubnet 10.10.0.0/18
VPC Subnet PrivateSubnet 10.10.64.0/18
Kinesis Firehose aws-waf-logs-test AWS WAF 로그 스트림
S3 Bucket mydvwa-xxxxxxxx AWS WAF 로그 버킷
  1. AWS 리전 확인
    AWS 서울 (ap-northeast-2) 리전
  2. EC2 키페어 생성
  3. CloudFormation 템플릿 실행
    • CloudFormation 템플릿을 실행하기 위해 링크를 클릭 
      스택 생성 후 기다리면 CREATE_COMPLETE 상태가 됨
    • 스택 이름, 파라미터, KeyName, SSHLocation 등 기본값으로 사용

 

2. DVWA 확인

  1. DVWA 웹 페이지 접속 확인
    • DVWA 스택이 정상적으로 생성되었다면 템플릿을 통하여 생성된 DVWA 웹페이지에 정상적으로 접속이 되어야 한다. 
      EC2의 ALB(로드 밸런서)가 생성됨
      ALB 의 DNS 이름을 이용하여 접속한다.
    • “ID = admin”, “Password = password” 를 입력하여 DVWA 에 정상적으로 로그인이 되는 것을 확인한다.
  2. DVWA 환경 설정
    • 생성된 DVWA 서버는 기본적으로 주요 취약점을 사용할 수 없는 환경으로 설정이 되어 있기 때문에 DVWA 의 Security Level 설정을 변경해야 한다.
      DVWA Security 메뉴에서 Low로 변경한다.

 

3. Chrome Extention 설치

  1. Browsec VPN 설치
      • AWS WAF 에서는 국가별 공인 IP 를 기준으로 트래픽을 허용/차단 하는 기능을 제공하고 있다.
      • 랩 과정에서 지정된 국가를 차단하는 환경을 가상으로 구성하기 위해 Browsec VPN을 설치한다.
        Browsec VPN Exntension으로 브라우저의 출발지 국가 정보를 변경하여 AWS WAF 의 국가별 차단 기능을 점검할 수 있다.
  2. User-Agent Switcher 설치
    • AWS WAF 에서는 웹 요청의 user-agent 헤더를 기준으로 트래픽을 허용/차단 하는 기능을 제공하고 있다.
    • 랩 과정에서 특정 user-agent 값을 차단하는 환경을 가상으로 구성하기위하여 User-Agent Switcher를 설치한다.
      User-Agent Switcher Exntension으로 브라우저의 요청 user-agent 헤더를 변경하여 AWS WAF 의 헤더 필터 기능을 점검할 수 있다.

 

4. AWS WAF Web ACL 구성

웹 공격을 방어하기 위한 AWS WAF를 구성

AWS WAF를 구성하는 방법은 다양하지만 본 실습에서는 Web ACL을 먼저 생성한 후 각 공격 유형별로 Rule을 생성하여 Web ACL에 추가한다.

 

AWS WAF 메뉴에서 Web ACL 을 선택한 후 “Create Web ACL” 버튼을 클릭

 

Region이 Asia Pacific(Seoul)인지 확인하고 Add AWS Resources 버튼 클릭

 

ALB 를 선택한 후 Add 버튼을 클릭

 

ALB가 정상적으로 추가된 것을 확인

Next 버튼 클릭

 

Default Action이 Allow인지 확인

Next 버튼 클릭

 

설정된 Rule 없으므로 Next 버튼 클릭

 

Next 버튼 클릭

 

지금까지 설정한 내용이 모두 맞는지 확인한 후 Create Web ACL 버튼 클릭

 

새로운 Web ACL 이 생성됨

 

5. AWS WAF 로깅 활성화

AWS WAF는 Amazon Kinesis Firehose를 사용하여 로그를 저장한다.

로깅을 활성화하여 로깅 내역을 확인한다.

*Amazon Kinesis Data Firehose는 Amazon Data Firehose로 명칭이 변경되었다.

 

‘aws-waf-log-‘로 시작하는 Firehose 스트림이 생성되어있는 것을 확인한다.

 

WebACL “MyWAF” 에서 Logging and Metrics 탭

Logging이 Disable 되어있는 것을 확인하고 “Enable”을 클릭

 

Amazon Data Firehose Stream을 선택하고 CloudFormation으로 자동생성된 “aws-waf-logs-test”를 선택

 

Query string을 선택하면 로그에 Query string값이 기록되지 않는다.

 

Logging이 Enable된 것을 확인할 수 있다.

 

⇒ 이러한 설정으로 다음 실습에서 진행할 공격 테스트 및 차단 테스트는 모두 firehose를 타고 S3 버킷에 쌓이게 된다.

반응형

'Study > 클라우드' 카테고리의 다른 글

[AWS WAF] Command Injection  (0) 2024.10.29
[AWS WAF] SQL Injection  (0) 2024.10.29
[AWS WAF] Stored XSS  (0) 2024.09.29
[AWS WAF] Reflected XSS  (0) 2024.09.29
[AWS WAF] 실습 개요  (0) 2024.09.24