BLOG
Amazon GuardDuty는 AWS 위협 탐지 서비스로서 악성 및 무단 행위를 지속적으로 모니터링하여 AWS 계정 및 워크로드를 보호합니다. 원 클릭으로 AWS 관리 콘솔을 통해 Amazon GuardDuty를 활성화 할 수 있습니다. AWS 계정에서 수십억 건의 이벤트를 분석하고 기계 학습을 사용하여 계정 및 워크로드 활동의 이상을 감지합니다. 그런 다음 통합된 위협 정보 피드를 참조하여 의심이 되는 위협을 식별합니다. AWS 리전 내에서 GuardDuty는 AWS CloudTrail 로그, Amazon VPC (Virtual Private Cloud) 플로우 로그 및 DNS (Domain Name System) 로그의 데이터를 처리합니다. 모든 로그 데이터는 전송 중에 암호화됩니다. GuardDuty는 프로파일링 및 이상 탐지를 위해 로그에서 다양한 필드를 추출한 다음 로그를 삭제합니다. GuardDuty의 위협 정보 탐지 결과는 AWS 위협 정보 및 타사 공급 업체인 CrowdStrike 및 Proofpoint의 수집된 위협 피드를 기반으로 합니다.
그러나 이러한 내장된 위협 피드 이외에 두 가지 방법으로 보호 기능을 사용자 정의할 수 있습니다. 맞춤형 기능은 금융 서비스나 의료 영역과 같은 특정산업별 위협이 되는 피드를 시행해야 하는 경우 유용합니다. 첫 번째 맞춤 옵션은 허용 목록에 있는 IP 목록을 제공하는 것입니다. 두 번째는 소유하거나 GuardDuty에 업로드하고 공유할 권한이 있는 타사 위협 정보 피드를 기반으로 한 결과를 생성하는 것입니다. 그러나 GuardDuty에 수집된 타사 위협 목록을 최신 상태로 유지하려면 다음과 같은 많은 수동 단계가 필요합니다.
- 관리자 액세스 권한 부여
- 타사 공급자로부터 목록 다운로드
- 생성된 파일을 서비스에 업로드
- 오래된 위협 피드 대체
다음 글에서는 타사 피드를 사용할 때 이러한 단계를 자동화하는 방법을 보여줍니다. 우리는 GuardDuty에 라이선스를 준 피드에 업로드하는 방법의 예로 FireEye iSIGHT 위협 정보를 활용할 것이지만 이 솔루션은 다른 위협 정보 피드와도 작동할 수 있습니다. 이 매개 변수를 기존의 것과 함께 배포하면 다음 환경을 구축할 수 있습니다.
Figure 1: 솔루션 환경의 다이어그램
이 솔루션에는 다음과 같은 리소스가 사용됩니다.
- AWS Lambda 함수를 주기적으로 호출하는 Amazon CloudWatch 이벤트. 기본적으로 CloudWatch는 6 일마다 기능을 호출하지만 원하는 경우 이 기능을 변경할 수 있습니다.
- 사용자가 제공하는 공개 키와 개인 키를 안전하게 저장하는 AWS Systems Manager 매개 변수 저장소. 이러한 키는 위협 피드를 다운로드 하는 데 필요합니다.
- 라이선스 된 FireEye iSIGHT 위협 정보 피드를 프로그래밍 방식으로 Amazon GuardDuty로 가져오는 스크립트로 구성된 AWS Lambda 함수입니다.
- Lambda 함수에 다음에 대한 액세스 권한을 부여하는 AWS Identity and Access Management (IAM) 역할
- GuardDuty는 위협 목록을 나열, 작성, 획득 및 업데이트합니다.
- CloudWatch Logs는 AWS Lambda가 생성한 로그 파일을 모니터링, 저장 및 액세스합니다.
- Amazon S3 는 위협 목록을 Amazon S3에 업로드하고 GuardDuty에 수집합니다.
- 위협 목록을 저장하는 Amazon S3 (Simple Storage Service) 버킷. 솔루션을 배포한 후에는 수동으로 삭제하지 않는 한 버킷이 유지됩니다.
- Amazon GuardDuty는 솔루션을 배포하려는 AWS 리전서 활성화 해야 합니다.
참조: 모든 리전에서 GuardDuty를 활성화하는 것이 보안 베스트 프렉티스입니다.
솔루션 배포
선행 조건을 처리한 후에는 다음 단계를 수행하시면 됩니다.
- Stack Launch 버튼을 선택하면 계정에 CloudFormation 스택이 시작됩니다. CloudFormation 스택을 완료하는 데 약 5 분이 걸립니다.
참고: GuardDuty를 사용하도록 설정하고 AWS 계정(예: GuardDuty 결과를 대신 보고 관리할 수 있도록)에 다른 계정을 초대한 경우 마스터 계정에서 이 솔루션을 실행하십시오. 여기에서 마스터 및 구성원 GuardDuty 계정 관리에 대한 자세한 내용을 확인하십시오. 마스터 계정에서 이 솔루션을 실행하면 Guard Duty가 가져온 위협 목록을 사용하여 모든 구성원 계정에서도 결과를 보고합니다.
이 템플릿은 미국 동부(북 버지니아) 리전에서 실행됩니다. 다른 AWS 리전에서 솔루션을 시작하려면 콘솔 탐색 모음에서 지역 선택기를 사용하십시오. 이는 Guard Duty가 특정 리전서비스이기 때문입니다.
코드는 GitHub에서 사용할 수 있습니다.
- 템플릿 선택 페이지에서 다음을 선택하십시오.
- 세부 정보 지정 페이지에서 솔루션 스택에 이름을 지정하십시오.
- 매개 변수 아래에서 템플릿의 기본 매개 변수를 검토하고 원하는 경우 값을 수정합니다.
Parameter | Value | Description |
Public Key | <Requires input> | FireEye iSIGHT Threat Intelligence public key. |
Private Key | <Requires input> | FireEye iSIGHT Threat Intelligence private key |
Days Requested | 7 | The maximum age (in days) of the threats you want to collect. (min 1 – max 30) |
Frequency | 6 | The number of days between executions – when the solution downloads a new threat feed (min 1 – max 29) |
- 다음을 선택하십시오.
- 옵션 페이지에서 원하는 경우 스택의 리소스에 대한 태그 (키 – 값 쌍)를 지정한 후 다음을 선택할 수 있습니다.
- 검토 페이지에서 설정을 검토하고 확인하십시오. 템플릿이 사용자 정의 이름이 있는 AWS Identity and Access Management (IAM) 리소스를 만들어 낸다는 것을 확인하는 상자를 선택하십시오.
- 스택을 배포하려면 만들기를 선택합니다.
약 5 분 후에 스택 생성이 완료되어야 합니다. 이벤트 탭에서 이를 확인할 수 있습니다.
Figure 2: “이벤트” 탭에서 스택 생성 상태 확인
GuardDuty 위협 목록을 업데이트하는 Lambda 함수는 솔루션을 제공한 직후에 호출됩니다. 또한 환경을 지속적으로 업데이트하기 위해 주기적으로 실행되도록 설정됩니다. 그러나 시나리오에서 새로운 Zero day 취약점과 같은 위협 정보 목록을 요청할 경우 빠른 업데이트가 필요합니다. 이에 수동으로 예약된 업데이트 이벤트까지 기다리는 것을 피하기 위해 Lambda 기능을 실행할 수 있습니다. Lambda 기능을 수동으로 실행하려면 여기에 설명 된 단계에 따라 새로 다운로드한 위협 피드를 작성하여 Amazon GuardDuty에 수집하십시오.
요약
FireEye와 같은 타사 제공 업체가 라이센스한 최신 위협 정보 피드를 다운로드하는 자동화된 솔루션을 배포하는 방법에 대해 설명했습니다. 이 솔루션은 GuardDuty가 결과를 처리하고 보고 할 수 있도록 많은 양의 위협 정보 데이터를 제공합니다. 또한 FireEye (또는 선택한 위협 정보 제공 업체)가 최신 위협 피드를 게시하면 GuardDuty에 자동으로 포함이 됩니다.
이 글에 대해 궁금한 사항이 있으면 Amazon GuartDuty 포럼에서 새로운 글을 시작하십시오.
원문 URL: https://aws.amazon.com/ko/blogs/security/how-to-automate-import-third-party-threat-intelligence-feeds-into-amazon-guardduty/
** 메가존클라우드 TechBlog는 AWS BLOG 영문 게재글중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.