티스토리 뷰

AWS

AWS 웹어플리케이션 방화벽 waf & shield

나를찾는아이 2022. 3. 24. 20:38
728x90
반응형

약간 이름이 멋있습니다(???)

 

마블을 좋아해서 그런가요 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와는 별개로 요금이 발생합니다

 

 

참고하세요

 

 

 

 

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함