AWS 기술 블로그

Amazon CloudFront의 웹 애플리케이션을 위한 새로운 콘텐츠 전송 네트워크(CDN)와 보안 통합 대시보드 소개

글은 AWS Networking & Content Delivery Blog 게시된 Introducing CloudFront Security Dashboard, a Unified CDN and Security Experience by Chakib Sahraoui, Chad Mullen, and Cristian Graziano 한국어 번역 편집하였습니다.

보안 위협이 더욱 정교해지고 확장하기 쉬워짐에 따라, 웹 애플리케이션과 API의 성능, 복원력, 보안을 개선하기 위해 Amazon CloudFrontAWS WAF를 함께 사용하는 고객이 점점 더 많아지고 있습니다. CloudFront는 최종 사용자와 가장 가까운 전 세계 엣지 로케이션 중 하나를 사용하여 데이터를 전송함으로써 지연 시간을 줄여주는 콘텐츠 전송 네트워크(CDN)입니다. 웹 애플리케이션 방화벽인 AWS WAF는 악성 요청이 웹 서버에 도달하기 전에 해당 요청을 분석하고 차단하여 일반적인 보안 취약점을 이용한 공격과 원치 않는 봇 트래픽으로부터 웹 애플리케이션을 보호하는 데 도움을 줍니다. 고객은 AWS에서 이미 제공하고 있는 CloudFront와 AWS WAF를 사용하여 애플리케이션을 보호할 수 있습니다. 하지만 개발자, 스타트업, 소규모 기업은 어떤 보안 보호 기능을 활성화할지 결정하거나, 보안 규칙을 만들거나, 단일 IP 주소에서 다수의 요청이 발생할 경우, 로그를 이용하여 일반적인 패턴을 발견하는 데 도움을 줄 보안 전문가가 없는 경우가 많습니다. 이러한 고객은 CloudFront 내에서 간단하고 관리하기 쉬운 보안 관련 내용을 포함하면서 애플리케이션을 안전하게 유지하는 방법에 대한 추가적인 안내를 요청하는 경우가 많습니다.

오늘, 새로운 CloudFront 보안 대시보드가 출시되었음을 알려드립니다. 이 대시보드는 AWS WAF의 가시성과 제어 기능을 CloudFront 배포에 직접 제공하는 통합 환경입니다. 이 대화형 보안 대시보드는 모니터링 기능, 조사 도구, 사용자 환경에 맞는 간편하고 직관적인 설정 옵션을 결합한 대시보드입니다.

CloudFront 보안 대시 보드를 사용하면 다음과 같은 작업을 수행할 수 있습니다.

  • 서비스 콘솔 간의 이동 없이 한 곳에서 애플리케이션 전송 및 보안 관리
  • 애플리케이션의 주요 보안 추세, 허용 및 차단된 트래픽, 봇 활동에 대한 가시성 확보
  • 로그를 쿼리하지 않고 시각적 로그 분석기와 같은 조사 도구를 사용하여 트래픽 패턴을 빠르게 이해
  • 보안 규칙을 작성하지 않고도 기본 제공 차단 제어를 사용하여 트래픽 제어
  • 17가지 유형별로 나눠진 봇을 허용/차단하는 제어를 통한 원치 않는 봇으로부터의 트래픽 유입 방지

이 게시물에서는 CloudFront 보안 대시보드를 사용하여 애플리케이션을 보호하는 종단 간 워크플로를 안내합니다. 먼저, 핵심 보안 보호 기능과 보안 권장 사항을 검토하고 활성화하여 HTTP flood로부터 애플리케이션을 보호하는 방법을 알아봅니다. 다음으로, 기본 제공 보고서를 사용하여 트래픽을 모니터링, 봇으로부터 애플리케이션 보호, 비정상적인 트래픽 패턴을 조사, 보안 규칙을 작성하지 않고 인라인으로 완화 조치를 적용하는 방법에 대해 알아봅니다.

배포에 대해 AWS WAF가 이미 활성화되어 있는 경우, CloudFront 배포 내의 보안 탭으로 이동하면 기록 지표가 포함된 새 보안 대시보드를 확인할 수 있습니다. AWS WAF가 활성화되어 있지 않은 경우, 이 게시물의 단계별 지침을 따르면 몇 초 내에 AWS WAF 보안 보호를 활성화하여 지표 수집을 시작할 수 있습니다.

그림 1 – CloudFront 보안 대시보드

코어 보호 기능 활성화, 권장 사항 검토, HTTP flood로부터 보호 시작하기

애플리케이션을 보호하는 첫 번째 단계는 새로운 배포 또는 기존 배포에 대해 보안 보호를 활성화하는 것입니다. 이 단계를 수행할 때 권장 보호 기능이 표시될 수 있습니다. 이 게시물에서는 권장 사항에 대한 활성화 설정을 별도의 단계로 구분하여 이미 AWS WAF를 사용하도록 설정한 고객 또한 단계별 지침을 따라 할 수 있습니다.

  1. Amazon CloudFront 콘솔을 엽니다.
  2. 배포 생성 버튼을 선택한 다음 보호하려는 원본을 입력하여 배포를 생성합니다. 또는 기존 배포의 경우 배포 내의 보안 탭으로 이동하여 수정 버튼을 선택합니다.
  3. 웹 애플리케이션 방화벽(WAF)에서 예상 가격을 검토하고 보안 보호 활성화를 선택합니다.
  4. 나머지 배포 설정을 검토하고 배포 생성 버튼을 선택하거나 기존 배포를 수정하는 경우 변경 사항 저장 버튼을 선택합니다.

CloudFront는 모든 애플리케이션에 대해 AWS가 권장하는 기본 제공 보호 기능을 사용하여 AWS WAF를 생성하고 구성합니다. 해당 기능에 포함된 코어 보호 기능은 Amazon 내부 위협 인텔리전스를 기반으로 잠재적 위협으로부터 IP 주소를 차단하고, OWASP Top 10에 나온 웹 애플리케이션에서 발견되는 가장 일반적인 취약점으로부터 보호하며, 애플리케이션 취약성을 발견하는 악의적인 공격자로부터 방어합니다.

보안 권장 사항 검토 활성화

그림2 – 보안 보호 활성화

CloudFront는 경로 패턴이나 오리진 유형 등 CloudFront 구성 요소를 기반으로 배포에 대한 적절한 보안 권장 사항을 제공합니다. 보안 탭에서 수정 버튼을 클릭한 후 배포에 추가할 권장 보안 규칙을 활성화합니다. 다음 예시에서의 CloudFront는 WordPress 애플리케이션을 가속하고 보호하고 있습니다. 워드프레스 보호를 체크하여 AWS WAF에서 제공하는 WordPress 전용 보호를 활성화합니다.

그림 3 – 권장 사항을 활성화한 수정된 보안 구성

또한, 속도 제한 규칙을 사용하여 HTTP flood와 같은 대규모 공격으로부터 애플리케이션을 보호하는 것이 좋습니다. 이를 위해서는 위 그림에 표시된 속도 제한(Rate limiting)을 선택하기만 하면 됩니다. 요청 비율은 각 애플리케이션에 따라 다르므로, CloudFront는 이러한 공격을 완화하기 위해 애플리케이션에 적합한 비율을 설정하고 조정할 수 있도록 지원합니다. 속도 제한을 활성화하면 처음에는 모니터 모드로 설정되어 트래픽을 차단하지 않습니다. 비율을 조정하는 데 도움이 되도록 CloudWatch 지표는 설정한 비율이 초과할 때마다 기록을 남기고 이 지표를 사용하여 속도를 조정하고 준비가 되면 차단을 활성화할 수 있습니다.

보안 – 웹 애플리케이션 방화벽(WAF)에서는 속도 제한 규칙에 대한 지표를 확인할 수 있습니다. 비율을 초과한 경우 모니터 모드 – 속도 초과됨을 선택하면 비율을 초과한 빈도와 그 정도를 확인할 수 있습니다. 또한 필요에 따라 비율을 조정하고 준비가 되면 차단을 활성화할 수 있습니다.

그림 4 – 한도를 초과한 총 요청

애플리케이션의 보안 개선과 보안 모니터링

CloudFront 보안 대시보드는 보안 추세, 봇 요청, 요청 로그에 대한 세 가지 영역으로 구성되어 있습니다. 보안 추세에서는 트래픽에 대한 전반적인 정보를 한눈에 볼 수 있습니다. 총 트래픽, 허용된 트래픽과 차단된 트래픽의 비율, 공격 유형 및 최종 사용자 위치의 변화를 빠르게 파악할 수 있습니다. 특정 국가의 트래픽을 차단하려면 마우스를 해당 국가 위로 이동시킨 다음 토글 버튼을 사용하여 차단합니다.

그림 5 – 상위 공격 유형 및 국가

관리

봇 요청에서는 애플리케이션에 액세스하는 봇에 대한 정보를 볼 수 있습니다. 봇 보호 기능이 비활성화되어 있는 경우, 요청 샘플링을 기반으로 봇에서 발생하는 트래픽의 양을 확인할 수 있습니다.

그림 6 – 샘플링된 봇 트래픽 개요

AWS WAF Bot Control로 봇 보호 관리를 활성화할 수 있습니다. 봇 보호 관리를 활성화하면 자체 식별 봇에 레이블을 추가하고, 일반적으로 선호되는 봇을 확인하며, 신뢰도가 높은 봇 서명을 탐지하는 기본적이고 일반적인 보호 수준을 제공합니다. 이를 통해 요청 샘플링이 아닌 실제 요청을 기반으로 유형별 세분화된 봇 활동을 확인할 수 있습니다. 많은 고객이 인프라 비용을 절감하기 위해 봇 차단을 선택합니다.

봇 트래픽에 대한 자세한 가시성을 확인하고 봇 요청을 허용/차단하는 제어를 하기 위해서는 Bot Control 버튼을 선택한 다음, 일반적인 봇에 대한 봇 제어 활성화를 선택하고 변경 사항을 저장합니다.

그림 7 – 봇 보호 관리 설정

Bot Control을 활성화하면 자세한 지표가 표시되고, 봇 유형별로 미확인 봇에 대한 조치 방법을 구성할 수 있는 옵션이 제공됩니다. 다음 그림에서 브라우저에서 사용되지 않는 사용자 에이전트, HTTP 라이브러리, SEO 봇에 대한 미확인 봇 조치는 모니터 모드, 끊긴 링크가 있는지 확인하는 봇(Link checker)과 웹 애플리케이션의 취약성을 검사하거나 보안 감사를 수행하는 봇(Security)은 각각 Challenge 또는 CAPTCHA 모드인 것을 확인할 수 있습니다. AWS에서 일반적으로 허용되는 확인 가능한 봇(예: 알려진 검색 엔진 크롤러)은 여기서 설정한 작업의 영향을 받지 않습니다. Bot Control은 이러한 봇에 대해 확인된 봇으로 식별하기 전에 IP 주소의 역방향 DNS 조회를 수행하여 해당 봇이 주장하는 출처를 확인하는 과정을 거칩니다.

그림 8 – 봇 보호가 활성화 된 후, 자세한 지표들을 확인할 수 있는 봇 요청 영역

시각적으로 로그 검색, 필터, 검사

마지막으로, 특정 트래픽 패턴을 식별하기 위해, 로그를 좀 더 자세히 분석할 수 있습니다. 특정 트래픽이 어디에서 발생하는지, 가장 많이 요청되는 URI 경로에 대한 정보 등이 그에 대한 예가 될 수 있습니다. 요청 로그 영역은 로그 쿼리를 작성하지 않고도 CloudFront 콘솔에서 해당 유형의 정보를 쉽게 확인할 수 있도록 설계되었습니다.

로그 활성화를 하지 않은 경우, 예상 요청량을 기준으로 예상 가격을 확인할 수 있습니다. 로그 활성화를 위해서는 AWS WAF 로그 활성화의 체크박스를 선택한 후, 활성화 버튼을 누르면 됩니다. 그러면 CloudFront가 CloudWatch 로그 그룹을 생성하고 AWS WAF 구성을 업데이트하여 CloudWatch에 로깅을 시작합니다.

그림 9 – AWS WAF 로그 활성화

로그 활성화를 진행한 후, 몇 분 안에 로그 데이터를 확인할 수 있습니다. 요청에 대한 HTTP 메서드, 상위 URI 경로, 상위 IP 주소, 상위 국가별 집계를 확인할 수 있습니다. 이를 통해 단일 IP 주소 또는 특정 URI 경로를 대상으로 대규모의 요청이 발생하거나, 이전 로그에서 볼 수 없었던 국가에서 요청이 발생하는 등의 패턴을 시각적으로 파악할 수 있습니다. IP 주소, 국가, 사용자 에이전트, URI 경로 및 그 외 다른 속성을 기반으로 요청을 필터링하여 원치 않는 트래픽을 찾을 수 있습니다. 의심 되는 트래픽이 식별되면 악성 트래픽을 차단하기 위한 즉각적인 조치를 취하기 바랍니다. 예를 들어, 특정 IP 에서 대규모의 요청이 유입되었다면, 다음 그림과 같이 IP 주소 위로 마우스 포인터를 올려 해당 IP로부터의 요청을 차단하도록 조치할 수 있습니다.

그림 10 – 요청 로그

사용 요금

CloudFront 보안 대시보드는 추가 비용 없이 각 CloudFront 배포에 포함됩니다. CloudFront 배포의 보안 탭을 선택하면 사용할 수 있습니다. 추가적인 인사이트와 구성 옵션은 AWS WAF 콘솔에서 확인할 수 있습니다. 보안 대시보드를 통해 생성된 웹 ACL에는 표준 AWS WAF 요금이 적용되며, 대시보드에 사용된 지표 및 로그에는 표준 CloudWatch 요금이 적용됩니다. 보안 보호를 활성화할 때, 기본 제공 요금 계산기를 사용하여 AWS WAF 보안 보호 또는 Amazon CloudWatch Logs의 비용을 추정할 수 있습니다. 요금에 대한 자세한 내용은 AWS WAF 요금Amazon CloudWatch 요금을 참조하시기를 바랍니다.

CloudFront는 매월 1TB의 데이터 전송과 1,000만 건의 HTTP 요청을 무료로 제공합니다. CloudFront 오리진으로 Amazon Simple Storage Service(Amazon S3), Application Load Balancer(ALB)와 같은 AWS 서비스를 사용하는 경우, 오리진 가져오기를 위한 데이터 전송은 무료입니다. 자세한 내용은 Amazon CloudFront 요금을 참조하시기를 바랍니다.

 

결론

이 게시물에서는 CloudFront 보안 대시보드를 사용하여 애플리케이션을 보호하고 모니터링하는 방법을 알아보았습니다. 웹 애플리케이션 방화벽(WAF)의 코어 보호와 보안 권장 사항을 활성화하고, HTTP flood로부터 애플리케이션을 보호하는 방법, 로그에서 이상 징후를 발견하고 트래픽을 차단하는 방법에 대해서 살펴보았습니다. 또한, 봇을 모니터링하고 애플리케이션에 접근할 수 있는 봇을 제어하는 방법에 관해서도 소개하였습니다.

CloudFront 및 AWS WAF에 대해 자세히 알아보려면 CloudFront 개발자 안내서AWS WAF 개발자 안내서를 참조하시기를 바랍니다.

Yujin Jeong

Yujin Jeong

Yujin Jeong is a Solutions Architect at AWS based in Korea. She has a passion for helping enterprise customers navigate their cloud journey and finding the right solutions to meet their unique business needs. With her technical expertise and experience, she has helped customers achieve their cloud goals and drive business outcomes through innovative and scalable cloud solutions.