

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 아키텍처 세부 정보
<a name="architecture-details"></a>

이 섹션에서는이 솔루션을 구성하는 구성 요소 및 AWS 서비스와 이러한 구성 요소가 함께 작동하는 방식에 대한 아키텍처 세부 정보를 설명합니다.

## 이 솔루션의 AWS 서비스
<a name="aws-services-in-this-solution"></a>


| AWS 서비스 | 설명 | 
| --- | --- | 
|   [AWS WAF](https://aws.amazon.com/waf/)   |   **Core.** AWS WAF 웹 ACL, AWS 관리형 규칙 규칙 그룹, 사용자 지정 규칙 및 IP 세트를 배포합니다. AWS WAF API를 호출하여 일반적인 공격을 차단하고 웹 애플리케이션을 보호합니다.  | 
|   [Amazon Data Firehose](https://aws.amazon.com/kinesis/data-firehose/)   |   **Core.** Amazon S3 버킷에 AWS WAF 로그를 전송합니다.  | 
|   [Amazon S3](https://aws.amazon.com/s3/)   |   **Core.** AWS WAF, CloudFront 및 ALB 로그를 저장합니다.  | 
|   [Lambda](https://aws.amazon.com/lambda/)   |   **Core.** 사용자 지정 규칙을 지원하기 위해 여러 Lambda 함수를 배포합니다.  | 
|   [Amazon EventBridge](https://aws.amazon.com/eventbridge/)   |   **Core.** Lambda를 호출하는 이벤트 규칙을 생성합니다.  | 
|   [Amazon Athena](https://aws.amazon.com/athena/)   |   **지원.** Athena 로그 구문 분석기를 지원하는 Athena 쿼리 및 작업 그룹을 생성합니다.  | 
|   [AWS Glue](https://aws.amazon.com/glue/)   |   **지원.** Athena 로그 구문 분석기를 지원하는 데이터베이스와 테이블을 생성합니다.  | 
|   [Amazon SNS](https://aws.amazon.com/sns/)   |   **지원.** Amazon Simple Notification Service(Amazon SNS) 이메일 알림을 전송하여 허용 및 거부 목록에서 IP 보존을 지원합니다.  | 
|   [AWS Systems Manager](https://aws.amazon.com/systems-manager/)   |   **지원.** 리소스 작업 및 비용 데이터에 대한 애플리케이션 수준의 리소스 모니터링 및 시각화를 제공합니다.  | 

# 로그 구문 분석기 옵션
<a name="log-parser-options"></a>

[아키텍처 개요](architecture-overview.md)에 설명된 대로 HTTP flood와 스캐너 및 프로브 보호를 처리하는 세 가지 옵션이 있습니다. 다음 섹션에서는 이러한 각 옵션에 대해 자세히 설명합니다.

## AWS WAF 속도 기반 규칙
<a name="aws-waf-rate-based-rule"></a>

HTTP 플러드 보호에는 속도 기반 규칙을 사용할 수 있습니다. 기본적으로 속도 기반 규칙은 요청 IP 주소에 기반하여 요청을 집계하고 속도를 제한합니다. 이 솔루션을 사용하면 클라이언트 IP가 지속적으로 업데이트된 후행 5분 동안 허용하는 웹 요청 수를 지정할 수 있습니다. IP 주소가 구성된 할당량을 위반하면 AWS WAF는 요청 속도가 구성된 할당량보다 작을 때까지 차단된 새 요청을 차단합니다.

요청 할당량이 5분당 요청 2,000개를 초과하고 사용자 지정을 구현할 필요가 없는 경우 속도 기반 규칙 옵션을 선택하는 것이 좋습니다. 예를 들어 요청을 계산할 때 정적 리소스 액세스를 고려하지 않습니다.

다른 다양한 집계 키와 키 조합을 사용하도록 규칙을 추가로 구성할 수 있습니다. 자세한 내용은 [집계 옵션 및 키를 참조하세요](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-type-rate-based-aggregation-options.html).

## Amazon Athena 로그 구문 분석기
<a name="amazon-athena-log-parser"></a>

**HTTP Flood Protection**과 **스캐너 및 프로브** **보호** 템플릿 파라미터 모두 Athena 로그 구문 분석기 옵션을 제공합니다. 활성화되면 CloudFormation은 Athena 쿼리와 Athena가 AWS WAF를 실행, 결과 출력 처리 및 업데이트하도록 오케스트레이션하는 예약된 Lambda 함수를 프로비저닝합니다. 이 Lambda 함수는 5분마다 실행되도록 구성된 CloudWatch 이벤트에 의해 호출됩니다. 이는 **Athena 쿼리 실행 시간 일정** 파라미터로 구성할 수 있습니다.

AWS WAF 속도 기반 규칙을 사용할 수 없고 SQL에 익숙하여 사용자 지정을 구현하는 경우이 옵션을 선택하는 것이 좋습니다. 기본 쿼리를 변경하는 방법에 대한 자세한 내용은 [ Amazon Athena 쿼리 보기를](view-amazon-athena-queries.md) 참조하세요.

HTTP 플러드 보호는 AWS WAF 액세스 로그 처리를 기반으로 하며 WAF 로그 파일을 사용합니다. WAF 액세스 로그 유형은 지연 시간이 더 짧으므로 CloudFront 또는 ALB 로그 전송 시간에 비해 HTTP 플러드 오리진을 더 빠르게 식별하는 데 사용할 수 있습니다. 하지만 응답 상태 코드를 수신하려면 **스캐너 및 프로브 보호 활성화** 템플릿 파라미터에서 CloudFront 또는 ALB 로그 유형을 선택해야 합니다.

**참고**  
잘못된 봇이 허니팟을 우회하고 ALB 또는 CloudFront와 직접 상호 작용하는 경우 HTTP Flood Protection과 스캐너 및 프로브 보호가 모두 Lambda 로그 파서를 사용하지 않는 경우를 제외하고 시스템은 로그 분석을 통해 악의적인 동작을 감지합니다.

## AWS Lambda 로그 구문 분석기
<a name="aws-lambda-log-parser"></a>

**HTTP Flood Protection** 및 **스캐너 및 프로브 보호** 템플릿 파라미터는 **AWS Lambda 로그 구문 분석기** 옵션을 제공합니다. **AWS WAF 속도 기반 규칙** 및 **Amazon Athena 로그 구문 분석기 옵션을 사용할 수 없는 경우에만 Lambda 로그 구문 분석기를** 사용합니다. 이 옵션의 알려진 제한 사항은 처리 중인 파일의 컨텍스트 내에서 정보가 처리된다는 것입니다. 예를 들어 IP는 정의된 할당량보다 더 많은 요청이나 오류를 생성할 수 있지만,이 정보는 서로 다른 파일로 분할되므로 각 파일은 할당량을 초과할 만큼 충분한 데이터를 저장하지 않습니다.

**참고**  
또한 잘못된 봇이 허니팟을 우회하고 ALB 또는 CloudFront와 직접 상호 작용하는 경우 탐지는 선택한 로그 파서 옵션을 사용하여 악의적인 활동을 효과적으로 식별하고 차단합니다.

# 구성 요소 세부 정보
<a name="component-details"></a>

[아키텍처 다이어그램](architecture-overview.md#architecture-diagram)에 설명된 대로이 솔루션의 구성 요소 중 4개는 자동화를 사용하여 IP 주소를 검사하고 이를 AWS WAF 블록 목록에 추가합니다. 다음 섹션에서는 이러한 각 구성 요소에 대해 자세히 설명합니다.

## 로그 구문 분석기 - 애플리케이션
<a name="log-parser--application"></a>

애플리케이션 로그 구문 분석기는 스캐너 및 프로브로부터 보호하는 데 도움이 됩니다.

 **애플리케이션 로그 구문 분석기 흐름.**

![\[앱 로그 구문 분석기 흐름\]](http://docs.aws.amazon.com/ko_kr/solutions/latest/security-automations-for-aws-waf/images/app-log-parser-flow.png)


1. CloudFront 또는 ALB는 웹 애플리케이션을 대신하여 요청을 수신하면 액세스 로그를 Amazon S3 버킷으로 전송합니다.

   1. (선택 사항) 템플릿 파라미터에 `Yes - Amazon Athena log parser` 대해 **HTTP 서비스 장애 방지 활성화** 및 **스캐너 및 프로브 보호 활성화**를 선택하면 Lambda 함수는 Amazon S3에 도착하면 액세스 로그를 원래 폴더 *<customer-bucket>*에서 `/AWSLogs` 새로 분할된 폴더 *<customer-bucket>* `/AWSLogs-partitioned/` *<optional-prefix>* `/year=` *<YYYY>* `/month=` *<MM>* `/day=` *<DD>* `/hour=` *<HH>*/로 이동합니다.

   1. (선택 사항) **원본 S3에 데이터 보관 위치** 템플릿 파라미터`yes`로를 선택하면 로그가 원본 위치에 남아 분할된 폴더에 복사되어 로그 스토리지가 복제됩니다.
**참고**  
Athena 로그 구문 분석기의 경우이 솔루션은이 솔루션을 배포한 후 Amazon S3 버킷에 도착하는 새 로그만 분할합니다. 분할하려는 기존 로그가 있는 경우이 솔루션을 배포한 후 해당 로그를 Amazon S3에 수동으로 업로드해야 합니다.

1. 템플릿 파라미터**에** 대한 선택에 따라 ****이 솔루션은 다음 중 하나를 사용하여 로그를 처리합니다.

   1.  **Lambda** - 새 액세스 로그가 Amazon S3 버킷에 저장될 때마다 `Log Parser` Lambda 함수가 시작됩니다.

   1.  **Athena** - 기본적으로 5분마다 **스캐너 및 프로브 보호** Athena 쿼리가 실행되고 출력이 AWS WAF로 푸시됩니다. 이 프로세스는 Athena 쿼리 실행을 담당하는 Lambda 함수를 시작하고 결과를 AWS WAF로 푸시하는 CloudWatch 이벤트에 의해 시작됩니다.

1. 이 솔루션은 로그 데이터를 분석하여 정의된 할당량보다 더 많은 오류를 생성한 IP 주소를 식별합니다. 그런 다음 솔루션은 AWS WAF IP 세트 조건을 업데이트하여 고객이 정의한 기간 동안 해당 IP 주소를 차단합니다.

## 로그 구문 분석기 - AWS WAF
<a name="log-parser--aws-waf"></a>

**HTTP Flood 보호 활성화**`yes - Amazon Athena log parser`에서 `yes - AWS Lambda log parser` 또는를 선택하면이 솔루션은 AWS WAF 로그를 구문 분석하여 정의한 할당량보다 큰 요청 속도로 엔드포인트를 플러딩하는 오리진을 식별하고 차단하는 다음 구성 요소를 프로비저닝합니다.

 **AWS WAF 로그 구문 분석기 흐름.**

![\[waf 로그 구문 분석기 흐름\]](http://docs.aws.amazon.com/ko_kr/solutions/latest/security-automations-for-aws-waf/images/waf-log-parser-flow.png)


1. AWS WAF는 액세스 로그를 수신하면 Firehose 엔드포인트로 로그를 전송합니다. 그런 다음 Firehose는 <*customer-bucket> <*optional-prefix> `/AWSLogs/` <YYYY> `/year=` <MM> `/month=` <`/day=`*DD>* `/hour=` <HH>라는 Amazon S3의 분할된 버킷에 로그를 전송합니다. ** ** ** ** `/` 

1. 템플릿 파라미터인 **HTTP 서비스 장애 방지 활성화** 및 **스캐너 및 프로브 보호 활성화**에 대한 선택에 따라이 솔루션은 다음 중 하나를 사용하여 로그를 처리합니다.

   1.  **Lambda**: 새 액세스 로그가 Amazon S3 버킷에 저장될 때마다 `Log Parser` Lambda 함수가 시작됩니다.

   1.  **Athena:** 기본적으로 5분마다 스캐너 및 프로브 Athena 쿼리가 실행되고 출력이 AWS WAF로 푸시됩니다. 이 프로세스는 Amazon CloudWatch 이벤트에 의해 시작되며, Amazon Athena 쿼리 실행을 담당하는 Lambda 함수를 시작하고 결과를 AWS WAF로 푸시합니다.

1. 이 솔루션은 로그 데이터를 분석하여 정의된 할당량보다 많은 요청을 보낸 IP 주소를 식별합니다. 그런 다음 솔루션은 AWS WAF IP 세트 조건을 업데이트하여 고객이 정의한 기간 동안 해당 IP 주소를 차단합니다.

## 로그 구문 분석기 - 잘못된 봇
<a name="log-parser--badbot"></a>

잘못된 봇 로그 구문 분석기는 허니팟 엔드포인트에 대한 요청을 검사하여 소스 IP 주소를 추출합니다.

 **봇 로그 구문 분석기 흐름이 잘못되었습니다.**

![\[badbot 로그 구문 분석기 흐름\]](http://docs.aws.amazon.com/ko_kr/solutions/latest/security-automations-for-aws-waf/images/badbot-log-parser-flow.png)


1. `Bad Bot Protection`가 활성화되고 HTTP Flood Protection 및 스캐너 및 프로브 보호 기능이 모두 비활성화된 경우: 시스템은 [WAF 레이블 필터를](https://docs.aws.amazon.com/waf/latest/developerguide/waf-labels.html) 기반으로 잘못된 봇 요청만 로깅하는 로그 Lambda 구문 분석기를 사용합니다.

1. Lambda 함수는 요청 헤더를 가로채고 검사하여 트랩 엔드포인트에 액세스한 소스의 IP 주소를 추출합니다.

1. 이 솔루션은 로그 데이터를 분석하여 정의된 할당량보다 많은 요청을 보낸 IP 주소를 식별합니다. 그런 다음 솔루션은 AWS WAF IP 세트 조건을 업데이트하여 고객이 정의한 기간 동안 해당 IP 주소를 차단합니다.

## IP 목록 구문 분석기
<a name="ip-lists-parser"></a>

`IP Lists Parser` Lambda 함수는 타사 IP 평판 목록에서 식별된 알려진 공격자로부터 보호하는 데 도움이 됩니다.

 **IP 평가에는 구문 분석기 흐름이 나열됩니다.**

![\[IP 평판 목록 흐름\]](http://docs.aws.amazon.com/ko_kr/solutions/latest/security-automations-for-aws-waf/images/ip-reputation-lists-flow.png)


1. 시간당 Amazon CloudWatch 이벤트는 `IP Lists Parser` Lambda 함수를 호출합니다.

1. Lambda 함수는 다음 세 가지 소스에서 데이터를 수집하고 구문 분석합니다.
   + Spamhaus DROP 및 EDROP 목록
   + Proofpoint 새로운 위협 IP 목록
   + Tor 종료 노드 목록

1. Lambda 함수는 AWS WAF 블록 목록을 현재 IP 주소로 업데이트합니다.