WAF & Shield
AWS 교육 후, 직접 추가적으로 설정해보면서 웹방화벽 사용 방법을 확인해본다
물론 비용이 발생하는 것으로 사용 후 바로 자원 해제가 필요하다
회원 가입 후, 프리 티어로도 바로 사용할 수 있다
1.기본 환경
먼저 EC2 인스턴스가 존재하고 ALB 가 설정되어있다는 것을 전제 하에 작업하였다
https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/application/introduction.html
예시 인스턴스
예시 ALB
https://us-east-1.console.aws.amazon.com/wafv2/homev2?region=us-east-1#/
2. WAF & Shield 설정
WAF & Shield 라는 이름으로 서비스 하고 있다
새로 만들기로 생성해보자
이름과 리소스의 리전을 선택한다
그리고 리소스를 추가한다
리소스를 지정하고 다음으로 넘어간다
아무 정책 없이 생성을 위해 다음으로 계속 넘어간다
마지막으로 샘플 로그(간략한 로그 라고 생각하면 쉬움) 남길지 여부를 설정하고 다음으로 넘어간다
나중에 로그 보는 부분과 관련이 있다
내용을 최종적으로 확인하고 저장!!!
정상적으로 생성 된 것을 확인할 수 있다
여기서 추가적인 작업이 필요하다 좀 복잡한데
CloudWatch Log Group 생성이 필요하다
웹방화벽을 설치 했으니 정책에 따라 로그를 남기고 이를 확인하기 위한 부분으로 로그 남기는 유형을 정하여 핸들링할 수 있다
3. CloudWatch 설정
바로 클라우드 워티 로그 그룹을 설정하자
바로 생성되며 어렵지 않다
그럼 이제 WAF ACL 과 연동이 필요하다
다시 웹방화벽으로 돌아와서 로깅을 enable 한다
이름이 뜨지 않아서 왜 그런가 봤더니
WebACL 의 로그 저장소로 사용되는 CloudWatch Log Group 은
반드시 "aws-waf-logs-" 로 시작하는 이름을 가져야 합니다.
그래서 이름 뒤에 test 를 추가하고 다시 만들었다
정상적으로 웹방화벽과 로그 그룹이 연결된 것을 확인할 수 있다
4. SQL Injection 확인 및 정책 설정
간단하게 생성된 ACL 로 sql injection 공격탐지를 설정해보자
ALB(IG : Internet Gateway) -> victim-instance(ec2) 이렇게 접근되는데 victim-instance 에 DVWA 를 미리 설치해두었다
https://github.com/digininja/DVWA
이미 구성된 ALB 로 접근하면
http://victim-alb-459744835.ap-northeast-2.elb.amazonaws.com/vulnerabilities/sqli/
dvwa 를 정상적으로 설정 했다면 이러한 화면이 표시된다
바로 SQL 공격 실습이 가능한데 위 공격이 있을 경우 탐지 되도록 설정할 수 있다
1. AWS 무료 정책 사용(정책이 무료인거지 서비스는 무료가 아닌,,,,,)
2. 사용자 정의 정책 (일반적인 온프레미스 설정으로 커스텀 설정이라고 보면 된다)
여기서는 무료 정책으로 간단하게 설정해본다
1,2 번이 해당되는데 룰 그룹으로 진행한다
이 부분에서 무료 정책은 조금 내리면 나타난다
무료 정책에서
관련 정책 그룹을 활성화한다
다른 파트너사의 정책들도 있다~~~~ 우와~~~~ 한번 하고 "정책 추가"
WCU 는 과금과 연관되는 것으로 많은 정책을 태울수록 수치가 높게 측정되고(환경과 설정에 따라 다름) 곧 과금돠 연결되니 참고!
저장하면 이제 sql injection 로그가 탐지된다
다시 dvwa 에서 sql injection 시도를 다시 해보면 아래와 같은 페이지가 표시된다
물론 커스텀 정책에서는 해당 페이지를 변경할 수 있다
cloudwatch 로 이동하면
이러한 로그 스트림이 생긴다
상세 정보는 ELK 처럼 JSON 형태로 로깅 된다
기본 로그고 전체 full 데이터는 별도 설정으로 S3 와 같은 곳에 저장할 수 있다(설정 엄청 빡셈!!)
여기서 아래와 같이 필터를 추가하면
{ $.action = "BLOCK" }
관리형 정책으로 SQL injection 관련 정책을 차단하고 로그로 확인하는 하나의 과정을 언급하였다
물론 직접 해보는 것이 최고임!!
궁금하신 사항은 댓글 남겨주세요
'Server' 카테고리의 다른 글
AWS Simple Notification Service(SNS) 맛보기 (0) | 2024.06.11 |
---|---|
AWS GuardDuty 맛보기 (0) | 2024.06.08 |
413 request entity too large nginx (0) | 2024.05.12 |
험난한 구글 클라우드 API 를 위한 서비스 계정 발급하기 (0) | 2024.05.07 |
Cuckoo 3 설치하기 (1) | 2024.05.06 |