티스토리 뷰
약간 이름이 멋있습니다(???)
마블을 좋아해서 그런가요 shield라는 이름이 멋지군요
잡설은 그만 넘어가고
waf & shield라고 불리는 AWS의 방화벽을 소개해볼까합니다
말그대로 Web Application Firewall 이라 WAF 라고 불립니다
비정상적인 요청을 탐지하는 최전방의 방어선이죠
load balancer나 cloudfront, api gateway 보다 앞단에서 비정상적인 요청을 탐지하여 걸러냅니다
생성을 시작해볼까요. AWS WAF 메뉴로 이동해 주세요
waf만 실행시킬수는 없고, waf가 앞단에서 보호해야할 리소스가 있어야 하므로
ALB나 cloudfront, api gateway를 사전에 만들어 두셔야 합니다
그리고 그 리소스가 있는 region을 선택해주세요
그리고 resource type으로 regional resources를 선택해봅시다
그리고 Add AWS resources 버튼을 누르면
내가 지정한 리전의 내가 가진 리소스를 선택할수 있는 화면이 나옵니다
Application Load Balancer를 선택하니 해당 리전에 이미 등록되어있는 ALB가 보입니다
선택해줍시다
Step2 단계입니다
여기서 Add rules 버튼을 클릭해주세요
Add managed rule groups을 선택해서
이미 만들어진 룰 그룹을 선택해볼거예요
이미 알려진 공격들을 기반으로 만들어진 굉장히 많은 룰이 있습니다
일단 core rule set과 SQL database를 선택하여 활성화 시켰습니다
각각 Edit 버튼을 눌러 Set all rule actions to count를 해주시면 하위의 모든 룰이 적용됩니다
그런데 각 룰 옆에 있는 capacity라는 숫자는 뭘까요
쉽게말하면 각 룰에 대한 가격표라고 보면 될것 같습니다(진짜 돈을 내는것은 아닙니다)
기본적으로는 총 1500WCU라는 할당을 받게 되는데요(AW에 요청하여 증가가능)
그러니깐 룰을 1500만큼 고를수 있다고 생각하시면 됩니다
아까 우리가 선택한 룰이
core rule set이 700
SQL database가 200
이렇게 총 900을 사용한거예요
각 룰마다 발생하는 컴퓨팅 파워가 달라서 가격표(?)에 차이가 있다고 합니다
그리고 여기서는 Allow를 선택해주셔야만 룰에 매칭되되지 않는 트래픽은 허용을 하게 됩니다
다음단계에서 룰의 우선순위를 정하고(우선순위는 가장 넓은 범위를 탐지하는것을 우선순위로 두는것이 좋습니다)
cloudwatch에서 해당 모니터링을 할지 여부를 선택하게 됩니다
enable sampled requests를 선택하게되면
룰에 의해 탐지된 요청들을 샘플링하여 볼수 있습니다
룰에 의해 잘 탐지가 되고 있는지, 오탐이 발생하고 있는지 알아볼수 있는 중요한 도구가 됩니다
근데 이렇게 설정한 룰이 잘 적용되는지 살펴봐야겠죠?
아까 ALB resource를 선택했었으니
이 ALB에 강제로 나쁜 요청을 보내보겠습니다
우리가 선택했던 룰중에 SQL database룰 시험해볼건데요
SQL 인젝션을 발생시킬수 있는 query string을 보내볼께요
오호 바로 WAF에서 403 forbidden을 리턴하는것을 볼수 있습니다
그리고 약간 시간이 흐른뒤에는 WAF의 탐지 결과 모니터링도할수 있습니다
AWS-AWSManagedRulesSQLiRuleSet BlockedRequests라고 탐지된 건수들이 보이네요
샘플링된 요청들의 상세 정보도 확인할수 있습니다
이렇게 오탐이 된것은 없는지 확인해보고 룰들을 개선해나갈수 있습니다
그외에도 지능형 탐지라던가 탐지룰을 직접 만들어 설정한다던가, 지역, 빈도 수 등 다양한 규칙룰들을 적용할수 있습니다
다만 적용하는 룰의 갯수에 따라 capacity와는 별개로 요금이 발생합니다
참고하세요
'AWS' 카테고리의 다른 글
aws cloudfront에서 index.html의 캐싱을 막자 (0) | 2023.03.03 |
---|---|
로드밸런서의 keep-alive 옵션 (0) | 2022.08.09 |
elasticsearch nori analyzer index에 적용하기 (0) | 2022.03.01 |
elasticsearch nori 플러그인이 뭐예요? (0) | 2022.02.28 |
elasticsearch 손쉽게 설치하기 (0) | 2022.02.27 |
- Total
- Today
- Yesterday
- 트위터
- 안드로이드
- 네이버
- 소프트웨어
- CSS
- iPhone
- 구글
- 벤처
- 경진대회
- php
- 모바일
- 자바스크립트
- 아이폰
- 스마트폰
- 앱
- 게임
- 공모전
- 아이디어
- 웹표준
- 앱스토어
- 대학생
- 애플
- Apple
- 창업
- 어플리케이션
- JavaScript
- android
- AWS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |