DDoS 방어
개요
분산 서비스 거부(DDoS) 공격은 많은 양의 인터넷 트래픽을 유발하여 표적 서버, 서비스 또는 네트워크를 제압함으로써 정상적인 트래픽을 방해하려는 악의적인 시도입니다. DDoS 공격을 효과적으로 완화하지 못하면 웹 애플리케이션의 가용성이 저하되거나 응답 시간이 느려질 수 있습니다. 이러한 상황에서 애플리케이션이 공격을 흡수할 정도로 확장되면 원치 않는 확장 비용이 발생합니다. 다행스럽게도, AWS를 기반으로 구축된 애플리케이션은 기본 DDoS 방어 기능을 활용할 수 있으며, AWS 서비스 및 보안 제어를 사용하여 이 공격에 대해 복원력을 높이도록 설계할 수 있습니다.
DDoS 방어에 대한 AWS의 접근 방식
보안은 AWS와 고객의 공동 책임입니다. AWS는 클라우드 서비스의 기반이 되는 인프라를 보호할 책임이 있습니다. 인프라 보호를 위해 AWS는 인프라 DDoS 공격(계층 3 및 4)에 대한 기본 방어 기능을 추가 비용 없이 제공합니다. 이러한 방어 기능은 Shield Standard를 통해 제공되며 다음 구성 요소를 기반으로 합니다.
- 모니터링 시스템은 네트워킹 디바이스 및 서비스 로그에서 NetFlow와 같은 다양한 소스를 분석하여 DDoS 공격을 탐지합니다.
- 스크러빙 시스템은 딥 패킷 검사, 방화벽 및 트래픽 성형을 사용하여 DDoS 공격의 트래픽을 제거합니다. CloudFront 및 Route 53와 같은 서비스의 경우 접속 지점(POP) 내에 스크러빙 시스템이 배포되므로 1초 미만의 탐지 및 완화가 가능합니다. 반면 ALB 또는 EC2와 같은 리전 서비스의 경우 스크러빙 시스템은 탐지 후 일반적으로 몇 분 내에 공격을 완화합니다.
- Shield Response Team은 모니터링 시스템 및 스크러빙 시스템에 의해 자동으로 탐지 및 완화되지 않는 DDoS 공격을 신속하게 해결합니다.
공동 책임 모델에서 DDoS 방어에 대한 책임은 사용하는 AWS 클라우드 서비스에 따라 달라지며, 이에 따라 직접 수행해야 하는 구성 작업의 양이 결정됩니다. 예를 들어 EC2 인스턴스 대신 S3에서 파일을 노출하면 DDoS 공격에 대해 적용해야 하는 보안 제어가 줄어듭니다. 사용하는 서비스와 관계없이 AWS는 책임 범위 내에서 DDoS 공격을 방어, 모니터링 및 대응할 수 있는 기능을 제공합니다.
고객은 AWS 서비스를 사용하여 DDoS 복원력이 뛰어난 아키텍처를 설계할 책임이 있습니다. 모범 사례는 다음과 같습니다.
- 웹 애플리케이션에는 CloudFront를 사용하고, 다른 사용 사례에는 Global Accelerator를 사용하여 AWS 분산 엣지 네트워크 전체에서 수백 Tbps의 완화 용량을 활용. CloudFront와 Global Accelerator는 모두 SYN 프록시와 같은 고급 DDoS 완화 기술을 사용합니다. SYN 프록시는 SYN 쿠키를 전송하여 새 연결이 업스트림으로 계속되기 전에 연결의 적법성을 확인함으로써 SYN 플러드를 방지합니다. CloudFront는 알려진 모든 계층 3 및 4 DDoS 공격뿐만 아니라 Slowloris 및 HTTP/2 Rapid Reset 공격과 같은 HTTP 프로토콜을 대상으로 하는 DDoS 공격으로부터 가장 빠르고(밀리초 미만) 가장 완벽한 방어 기능을 제공합니다.
- 오리진 클로킹 기법을 사용하여 오리진의 공격 표면 줄이기
- 애플리케이션 규모 조정 준비(예: EC2 기반 오리진에서 자동 규모 조정 사용)
- AWS WAF를 사용하여 HTTP 플러드 차단
- 애플리케이션 동작을 모니터링하여 비정상적인 활동에 대한 경보를 보내고, 위협을 분석하고, 사전 설정된 런북을 사용하여 대응. AWS의 지원을 받을 수도 있습니다.
AWS WAF를 사용하여 HTTP 플러드 차단
AWS WAF에서는 여러 규칙을 조합하여 HTTP 플러드(계층 7에서의 DDoS 공격)를 효과적으로 차단할 수 있습니다.
- 예상치 못한 요청 패턴을 거부하여 애플리케이션의 표면 공격을 줄이는 규칙. 예를 들어 API URL 체계를 준수하지 않는 URL이 포함된 요청, API에서 지원하지 않는 HTTP 동사가 포함된 요청 또는 단순히 도메인 이름에 속하지 않는 호스트 헤더 값이 포함된 요청을 거부하는 규칙을 작성할 수 있습니다. 이러한 규칙은 원치 않는 트래픽을 즉시 차단합니다.
- 평판이 나쁜 IP의 트래픽을 차단하는 IP 평판 기반 규칙. AWS가 수집한 위협 인텔리전스를 기반으로 하는 Amazon 관리형 규칙 또는 Imperva와 같은 AWS Marketplace의 공급업체가 제공하는 AWS WAF용 관리형 규칙을 사용하거나, IP 평판 목록을 직접 작성하고 AWS WAF를 자동으로 업데이트할 수 있습니다. IP 평판 기반 규칙은 HTTP 플러드의 상당 부분을 즉시 차단하는 경향이 있습니다.
- 구성된 차원(예: IP)에 따라 요청을 집계한 다음 집계된 요청 볼륨이 특정 기간(예: 1분) 내에 구성된 임계값(예: 100개 요청)을 초과하면 트래픽을 차단하는 속도 제한 규칙. 속도 제한은 볼륨이 구성된 임계값 아래로 내려갈 때까지 수십 초 이내에 위반 트래픽을 차단합니다. 속도 제한의 차단 기간을 연장하려면 이 블로그에 설명된 사용자 지정 솔루션을 구현하세요. 속도 제한 규칙의 예로는 높은 임계값(예: 2,000)을 사용한 포괄적인 IP 기반 규칙, 낮은 임계값(예: 100)을 사용한 URI별(예: /login) IP 기반 규칙, 회사에서 운영하는 유효한 비즈니스가 없는 국가에 대한 국가 기반 규칙, 문제가 되는 인증 세션을 차단하는 쿠키 규칙 등이 있습니다.
- 합법적인 브라우저와 같은 방식으로 JavaScript 실행 및 챌린지 해결에 실패한 도구에서 생성되는 원치 않는 트래픽을 즉시 차단하는 JavaScript Challenge 작업이 포함된 규칙
- 회피 봇에 의해 오케스트레이션되는 HTTP 플러드를 방어하는 Bot Control 규칙. AWS WAF Bot Control을 사용하는 봇 관리 기술로는 동작 탐지, 조정된 활동의 ML 기반 탐지, 브라우저 자동화 탐지 및 CAPTCHA 챌린지가 있습니다. 탐지 및 완화는 수십 초 내에 이루어집니다.
- Shield Advanced의 자동 애플리케이션 계층 DDoS 완화(L7AM) 기능을 통해 자동으로 생성된 공격 서명 기반 규칙. Shield Advanced의 이 기능이 활성화되면 AWS WAF WebACL에 빈 관리형 규칙 그룹이 생성되고, 최소 72시간 동안 애플리케이션 트래픽을 모니터링하여 정상 트래픽에 대한 기준이 설정됩니다. 트래픽 프로파일이 설정된 기준과 크게 다를 경우 Shield Advanced는 DDoS 탐지 신호를 보내고 트래픽에서 공격 서명을 분석하기 시작합니다. 서명이 발견되면 먼저 과거 트래픽에서 테스트를 수행하여 오탐의 위험을 줄인 다음, 사용해도 안전한 것으로 확인되면 해당하는 WAF 규칙을 이전에 만든 규칙 그룹에 배치합니다. 일정 시간이 지난 후 공격이 중지되면 규칙은 규칙 그룹에서 자동으로 제거됩니다. 성공적인 경우 이 프로세스는 몇 분 정도 걸립니다.
또한 탐지된 위협 수준에 맞게 조정되는 동적 WAF 규칙을 구현하여 심각도가 높은 DDoS 공격 중에 보다 적극적인 대응(예: CAPTCHA 또는 챌린지 작업)을 수행할 수 있습니다. 이 솔루션을 사용하여 이 패턴을 구현하는 방법에 대해 자세히 알아보세요.
Shield Advanced 사용
Shield Advanced는 DDoS 공격에 대한 보안 태세를 강화하는 추가 AWS 서비스입니다. 웹 애플리케이션용 AWS WAF를 사용하여 계층 7에서 자동 완화를 제공하고, 대역폭 용량이 더 큰 경계 네트워크에 네트워크 액세스 제어 목록(NACL) 규칙을 적용하는 등 웹 애플리케이션이 아닌 애플리케이션에 대한 보호 기능을 강화합니다. Shield Advanced를 사용하면 자동으로 완화되지 않는 공격을 Shield Response Team으로 에스컬레이션하여 수동으로 완화할 수 있습니다.
Shield Advanced의 모든 기능을 활용하려면 다음을 수행하는 것이 좋습니다.
- Shield Advanced를 구독한 후 인터넷에 연결된 AWS 리소스에 Shield Advanced 보호를 추가하세요. 애플리케이션 트래픽의 기준을 정하고 완화 조치가 적용되도록 하려면 공격이 발생하기 72시간 전에 보호 조치를 취해야 합니다.
- CloudFront 및 ALB 리소스의 경우 AWS WAF WebACL을 이전 섹션에서 설명한 모범 사례(예: 속도 제한, IP 평판 등)와 연결합니다. 이러한 리소스에 대해 계층 7 보호를 활성화합니다. 선택적으로 AWS WAF 로깅을 구성합니다.
- AWS Shield Response Team(SRT)으로부터 직접 연락을 받을 수 있도록 사전 예방적 참여를 구성합니다. Amazon Route53 상태 확인을 생성하기 전에 사전 예방적 참여를 활성화할 수 있습니다. 애플리케이션과 관련된 상태 확인을 통해 Shield Advanced의 탐지 감도가 향상됩니다. 예를 들어 상태 확인에서 애플리케이션에서 반환된 5xx 오류 증가가 감지되면 Shield Advanced가 탐지 임계값을 낮춥니다. 이 짧은 동영상을 시청하여 상태 확인을 구성하는 방법을 알아보세요.
- 공격을 받을 때 알림을 받을 수 있도록 Shield 및 WAF에 대해 CloudWatch 경보를 구성합니다.
Shield Advanced 구성에 대한 감사를 시행하려면 AWS Systems Manager에서 DDoSResiliencyAssessment 런북을 실행하면 됩니다. 이 런북은 AWS Shield Advanced Protection의 권장 모범 사례에 따라 Amazon Route 53, Amazon 로드 밸런서, Amazon CloudFront 배포, AWS Global Accelerator 및 AWS 탄력적 IP와 같은 리소스의 구성 설정을 수집, 분석 및 평가합니다.
DDoS 복원력 테스트
DDoS 시뮬레이션 테스트는 AWS에서 허용되며, 이 페이지에 자세히 설명된 이용 약관이 적용됩니다. AWS는 DDoS 시뮬레이션 테스트를 실행할 수 있는 두 가지 옵션을 제공합니다. 하나는 NCC Group plc, RedWolf 및 Red Button과 같이 사전 승인된 공인 AWS 파트너를 통해 프로덕션 트래픽에서 시뮬레이션된 DDoS 공격을 테스트하는 것입니다. 다른 하나는 Shield Response Team을 통해 합성 시뮬레이션 DDoS 공격을 테스트하는 것으로, 파이어드릴이라고도 합니다.
리소스
- AWS WAF 제공 파트너 찾기
- 백서 - AWS Best Practices for DDoS Resiliency(DDoS 복원력을 위한 AWS 모범 사례)
- 블로그 - Understanding DDoS simulation testing in AWS(AWS의 DDoS 시뮬레이션 테스트 이해)
- 블로그 - The three most important AWS WAF rate-based rules(가장 중요한 AWS WAF 속도 기반 규칙 세 가지)
- 블로그 - Discover the benefits of AWS WAF advanced rate-based rules(AWS WAF 고급 속도 기반 규칙의 이점 알아보기)