BLOG

[re:Invent 2019] Using Amazon CloudFront, AWS WAF, and Lambda@Edge to keep spammers out
작성일: 2019-12-03

* 세션명 : Using Amazon CloudFront, AWS WAF, and Lambda@Edge to keep spammers out
* 일자 : 2019/12/02 14:30~15:30
* 장소 : Venetian, Level 4, delfino 4005

 

 

ClouFront를 통한 지역 제한은 3rd Party Geo IP 데이터 베이스를 이용하여 특정 대륙, 국가에서의 AWS 리소스 접근을 차단할 수 있으며, 차단 된 유저는 HTTP 403을 리턴 받을 수 있습니다. 접근자 IP에 대하여 지역이 확인 되지 않을 경우 컨텐츠 접근을 허용할 수 있으며, 정확도가 100%가 아닌 99.8%이유는 Geo IP의 경우 몇몇 특정 국가의 IP가 다른 국가에서 쓰일 수도 있기 때문입니다.

AWS WAF는 Rules를 기반으로 WebACLs를 생성한 다음, 해당 WebACLs에 대한 Action(Block/Count/Allow)를 결정하는 구조입니다. 즉, WebACLs는 Rule들의 조합이며, 여기서 Rule은 일반 규칙과 비율 기반 규칙이 존재합니다.

알려져 있는 공격자 IP, SQL 인젝션, 크로스사이트 스크립팅, HTTP Flood 등 여러 위협등을 막기위한 자동화 방안을 소개하였습니다.

이는 AWS 람다를 이용해서 3rd Party에서 제공하는 IP 평판 목록(스팸, 해커 등 악성 활동을 판별하여 수집한 IP 목록)을 일정 주기로 체크하여 차단 목록을 업데이트 할 수 있습니다.

요청자로부터 요청을 받아 origin으로 전달하여 return하는 과정에서 단계 별로 람다 트리거를 지정할 수 있습니다.

람다함수에 대한 CloudFront 트리거에 대한 제한 사항들은 아래와 같습니다. 또한 람다를 이용하여 IP가 스팸 리스트에 있는 IP인지 확인도 가능합니다.

      • node와 Python 코드만 지원
      • 반드시 us-east-1리전에 배포 되어야함
      • cross account 트리거는 지원하지 않음
      • 오로지 숫자 형식의 버전만 트리거됨 ($LATEST나 명칭 지정 불가)

위와 같은 세션을 통해 외부 공격 방어 관점에서 ClouFront, WAF, Lambda를 이용할 수 있는 방안 설명을 들을 수 있어 매우 유용했으나, 대부분이 매니지드가 아닌 원하는 기능을 위해서는 람다 함수로 다 구현해야한다는 점이 아쉬웠습니다.