본문 바로가기

카테고리 없음

AWS WAF&Shield 소개

AWS WAF&Shield 소개

 

AWS Shield 작동 방식 - AWS WAF, AWS Firewall Manager 및 AWS Shield Advanced

AWS Shield 작동 방식 DDoS(분산 서비스 거부)공격은 여러 개의 손상된 시스템이 네트워크 또는 웹 애플리케이션과 같은 대상에 많은 양의 트래픽으로 대상에 서비스 장애를 일으키려고 시도하는 공격입니다. DDoS 공격은 합법적 사용자의 서비스 액세스를 방해할 수 있으며 과도한 트래픽 볼륨으로 인해 시스템에 충돌이 발생할 수 있습니다. AWS는 DDoS 공격에 대해 AWS Shield Standard 및 AWS Shield Advanced라는 두 가

docs.aws.amazon.com

 

AWS는 Document 정리가 잘 되어 있어서 좋다. 너무 잘 되어 있어서 불편할 정도...

 

1. WAF

AWS WAF는 CloudFront 및 ELB/ALB/EIP/Route 53과 연동되는 서비스(국내는 아직 불가하며 글로벌 서비스인 CF, Route 53만 가능)로 따로 WAF를 위한 팜이 빠져있는지는 모르겠지만, Apache나 Tomcat 보안 모듈이랑 비슷하다고 생각하면 좋을 듯 하다. (개인적인 의견)

 

가령, 그림으로 이해하자면 아래와 같은 그림으로 구성된다. (아래 그림은 Web log를 Lambda로 분석하여 실시간으로 WAF에 Rule Set을 적용하는 이상적인 Architecture)

 

기타 서비스와 같이 AWS Web Console이나 API를 통해 구성이 가능하며, 방식도 비슷하다.

Web ACLs이라는 Group을 만들고, 해당 Group에 각각의 Rules을 Attach하고 Group을 CloudFront Distribution 혹은 ELB(ALB)와 같은 다른 서비스와 연동한다. 

 

가능한 룰은 왼쪽 리스트처럼 XSS, Geo IP, IP ACL, 파일 사이즈 제한, SQL 인젝션, String and regex matching(헤더, 쿼리스트링 등 차단) 이 있다.

 

 

여기서 알아야 할 것은 XSS, SQL injection 같은 경우 AWS 측의 빌트인 된 보안룰을 적용 받는다. 따라서 오탐 혹은 미탐 등이 많이 발생할 수 있다. 그래서 보안룰 등록 후 Access/Block 으로 구성하는 것이 아니라 Count로 수치를 확인 후에 적용해야 한다.

 

또한 Rule에 대한 필터 정보만 제공하기 때문에 정확히 어떤 필터에서 디텍션이 됐는지 확인할 수 없다. 

HTTP POST Method에서 XSS 디덱션의 경우 어떤 File이 문제가 발생된 파일인지 확인할 수 없다. 2019년 11월 기준 현재 WAF 로그는 HTTP URI, HEADER, QueryString까지만 제공하기 때문이다. (Body 내의 바이너리에서 디텍팅 된 경우) 

개발 단에서 헤더라든지 쿼리스트링 등을 이용하여 POST에 제약을 회피 해야한다. (my idea...)

따라서 AWS WAF를 통해 상용 솔루션을 대체할 수준으로 생각하면 안 된다.

 

WAF SQL injection 룰

 

빌트인 된 룰 말고 사용자가 직접 보안룰을 넣을 수도 있다.아래와 같이 String and regex matching을 통해서 등록할 수 있다.

레퍼러에 fxxk 문자가 포함되면 차단되는 컨디션이다.

 

위와 같이 기본적인 Rule들을 만들고 이상 징후 발생 시 사후 대처로 컨디션들을 추가하여 능동적으로 대처할 수 있다. (보안 공부를...)

 

비용은 Rule Set 당 요금을 받으며(이건 얼마 안 하는데..), Request 별로 과금이 된다. 가령 API나 LOG 파일 전송이 필요한 서비스에 WAF를 적용하면 요금 폭탄을 받을 가능성이 매우 크니 적용 전에 비용에 대한 고려가 꼭 필요하다.

 

요금 – AWS WAF – Amazon Web Services(AWS)

8건의 CloudFront 웹 배포를 보호하기 위해 해당 월의 1일에 AWS WAF를 사용하기 시작했다고 가정해보겠습니다. 예를 들어, 웹 ACL 2개, 6건의 CloudFront 웹 배포와 관련된 규칙 4개가 포함된 웹 ACL 1개, 나머지 2건의 CloudFront 웹 배포와 관련된 규칙 6개가 포함된 웹 ACL 1개를 생성해보겠습니다. CloudFront 웹 배포는 매월 총 1천만 건의 요청을 수신할 것으로 예상합니다. 웹 ACL 웹 ACL 요금 =

aws.amazon.com

 

2. Shield

AWS Shield Standard는 기본적으로 제공되는 무료 서비스이며, VIP 서비스인 Advance가 있다. 보안에 대한 소비자 욕구가 커지므로써 해당 서비스를 만들었다. 

Advance가 생기기 전까지는 Shield Standard 라는 서비스 자체가 존재하지 않았다. "님들 모르게 L3/4 Layer를 우리가 방어해주고 있어요" 라고 광고 하는데 어차피 자기들 팜에 대한 방어가 필요하니, 이건 기타 IDC에서도 어느정도 지원은 해주는 것으로 알고 있다. 

 

알고 있듯이, AWS 팜 내에는 appliance 보안 장비를 올릴 수 없다. 그래서 VM에 보안 S/W를 올려서 사용하곤 하는데 비용이나 관리가 좀 어렵다. 그래서 WAF를 출시했고, 고객 욕구를 더 충족(돈?)시키기 위해 Shield Advance를 만든 듯 하다. Sheild Advance 서비스는 AWS 내의 보안팀(DRT)이 레포팅도 해주고, WAF Rules도 구성해주며 보안 컨설팅도 해준다고 한다.

 

AWS 콘솔에서 WAF & Shield->Protect resources->Activate AWS Shield Adavanced를 선택하고 I agree를 치면 이제 여러분의 계정에서 1년동안 매월 $3000가 과금이 된다.  

Standard와 가장 큰 차이는 L7 트래픽 모니터링, WAF RuleSet 구성, 레포팅, DDoS로 인한 요금 배상인 듯 하다.

Standard VS Advanced

 

AWS Shield 작동 방식 - AWS WAF, AWS Firewall Manager 및 AWS Shield Advanced

AWS Shield 작동 방식 DDoS(분산 서비스 거부)공격은 여러 개의 손상된 시스템이 네트워크 또는 웹 애플리케이션과 같은 대상에 많은 양의 트래픽으로 대상에 서비스 장애를 일으키려고 시도하는 공격입니다. DDoS 공격은 합법적 사용자의 서비스 액세스를 방해할 수 있으며 과도한 트래픽 볼륨으로 인해 시스템에 충돌이 발생할 수 있습니다. AWS는 DDoS 공격에 대해 AWS Shield Standard 및 AWS Shield Advanced라는 두 가

docs.aws.amazon.com

 

실제 I agree를 하면 Shield를 직관적으로 구성할 수 있게 UI를 잘 해놨다. 기본적으로 Shield를 실행해도 바로 DRT 팀이 WAF Rule Set 적용 등은 해주진 않는다. Support Case를 통해 요청이 필요하다. 요청하고 싶으나 월 $3000를 낼 수 없기 때문에 사용하지 않았으니 환불해달라고 했다... (시말서 각인가..) 가입되어 있는 시간으로 요금이 지불될지는 모르겠다...

 

실제 사용을 못해봐서 장단점을 말해줄 수 없는게 안타깝지만.. 더이상 도전은 여기서 멈춰야겠다. 어제 오늘만해도 벌써 $200인가....

 

UPDATE : rate-based rules(rate limit) 기능이 추가되었다. 동일한 사용자(IP)의 Request들을 5분 단위로 취합하여, 설정한 Throttling 값보다 높다면 해당 IP를 차단하고, Throttling 값보다 낮아지면 다시 허용해준다. 

설정이 굉장히 간편하며 DDoS에 대한 방어를 손 쉽게 할 수 있는 기능. 강추하는 기능(미미추).