BLOG

AWS Security Hub와 AWS Chatbot의 통합 활성화
작성일: 2020-06-10

오늘 메가존 테크블로그에서는 AWS Security Hub에서 Slack으로 결과를 전송하도록 AWS Chatbot 을 구성하는 방법을 알려드리겠습니다. Security Hub에서는 AWS 계정의 보안 우선 순위 경고 및 보안 상태를 포괄적으로 볼 수 있습니다. AWS Chatbot은 Slack 채널과 Amazon Chime 채팅방에서 AWS 리소스를 쉽게 모니터링하고 상호 작용할 수 있도록 하는 인터렉티브 에이전트입니다. 이를 통해 보안 팀은 익숙한 Slack 채널에서 알림을 수신하여 협업하며 신속하게 이벤트 대응을 할 수 있습니다.

 

또한 AWS Chatbot과의 사전 설정 형식 통합에 대해 설명 드리겠습니다. 검색 데이터를 풍부하게 만들고 싶으시다면 ‘AWS Security Hub에서 사용자 지정 작업을 활성화하는 방법’ 페이지에 적힌 안내를 따라주십시오. 오늘 포스팅에서 안내해 드릴 사용법은 AWS 챗봇의 사전 설정된 형식을 사용하려는 경우에 가장 이상적입니다. 그 다음으로는 맞춤형 통합으로 데이터를 변환하거나 풍부하게 만들어야 할 때 유용합니다.

 

AWS Chatbot을 사용하면 경고를 받아 명령을 실행하여 진단 정보를 반환하고, AWS 람다 기능 호출로 AWS 지원 사례를 생성하여 보다 빠르게 협업하고 이벤트에 대응할 수 있습니다.

 

오늘 블로그 포스팅은 이전 ‘AWS Security Hub에서 사용자 지정 작업을 활성화하는 방법’이란 AWS 블로그 글의 후속편으로, 해당 글에선 보안 허브에서 사용자 지정 작업을 활성화하여 슬랙으로 알림을 보내는 방법을 설명하고 있습니다. 이번에는 AWS CloudFormation템플릿을 사용하여 아래의 ‘그림1’처럼 정보 흐름을 생성하고 워크플로우를 단순화 하는 방법을 안내해 드리겠습니다. 이렇게 하면 Security Hub의 사용자 지정 작업, Amazon EventBridge 규칙 및 Amazon Simple Notification Service(Amazon SNS) 주제가 모두 연결되도록 구성됩니다.

 

그림1: 슬랙 채널과 Amazon Chime을 AWS Chatbot 통합 옵션으로 보여주는 정보 흐름

 

AWS Chatbot 및 Security Hub 구성하기

시작하기 위해선 다음의 구성 요소가 필요합니다.

 

이제 AWS Chatbot 및 Security Hub 구성에 대해 살펴보겠습니다. GuardDuty 및 Security Hub가 활성화된 AWS 계정과 Slack 계정이 있어야 합니다. 가상 스크래치 패드를 보관하여 Slack 작업 공간 ID와 Slack 채널 ID를 기록해 주시면 통합을 구성할 때 참고하기에 좋습니다.

 

Security Hub는 EventBridge와의 두 가지 통합 유형을 지원하며, 두 가지 모두 AWS Chatbot에서 지원됩니다.

 

  • Standard Amazon CloudWatch 이벤트: Security Hub는 모든 소견을 EventBridge로 자동 전송합니다. 이 방법을 사용하여 모든 Security Hub 결과 또는 필터링된 결과의 하위 집합을 AWS Chatbot이 구독하는 Amazon SNS 항목으로 자동 전송합니다.
  • Security Hub custom actions: Security Hub에서 사용자 지정 작업을 정의하고 이러한 작업에 응답하도록 CloudWatch 이벤트 규칙을 구성합니다. 이벤트 규칙은 AWS Chatbot이 구독 중인 SNS 주제로 알림을 전달하기 위해 Amazon SNS 주제 대상을 사용합니다.

다음으로 Security Hub 사용자 지정 작업에 초점을 맞춰보겠습니다. 처음에는 모든 Security Hub 결과가 Slack에 표시되지 않도록 원할 수 있기 때문에, 관련 결과만 Slack에 전송하는 Security Hub 사용자 지정 작업을 생성해 보시기 바랍니다. 이 워크플로우는 보안 팀이 AWS 챗봇을 통해 슬랙 채널에 수동으로 알림을 제공할 수 있는 기능을 제공합다. 본 게시글 마지막 부분에서는 Slack 채널에서 모든 Security Hub 결과를 원하는 사용자를 위해 EventBridge 규칙을 공유드릴 예정입니다. 또한 슬랙에서 받은 소견을 선택하는 데 도움이 되는 필터 예제 또한 제공해 드리겠습니다.

 

 

Slack 클라이언트 구성하기

AWS Chatbot이 Slack 채널로 알림을 보내도록 하려면 Slack 과 함께 작동하도록 AWS 챗봇을 구성해야 합니다. Slack 워크스페이스 소유자는 AWS Chatbot 사용을 승인할 수 있으며, 워크스페이스 사용자는 알림을 받도록 워크스페이스를 구성할 수 있습니다.

 

 

  1. AWS 콘솔에 로그인하고 AWS Chatbot console로 이동합니다.
  2. 드롭다운 메뉴에서 Slack 을 선택한 다음 클라이언트 구성을 선택합니다.

 

그림2: 클라이언트 채팅 구성

 

  1. 아직 Slack에 로그인하지 않은 경우 작업영역 이름을 추가하고 Slack에 로그인합니다.

그림3: Slack 워크스페이스 로그인

 

  1. 다음 화면과 같이 AWS Chatbot이 Slack 작업 공간에 대한 권한을 요청하는 경우 허용(Allow)을 선택합니다.
  2. Workspace ID를 복사하여 저장합니다. 이는 CloudFormation 템플릿에 필요합니다.

그림4: 워크플레이스 ID 콘솔 화면

 

  1. 이제 AWS Chatbot 콘솔에서 나와 Slack 작업 공간에 로그인하면 채널 ID를 얻을 수 있습니다.

a, 조직에 Slack 채널이 없거나 이 통합을 프로덕션에 배포하기 전에 테스트하려는 경우에는 Slack의 단계에 따라 채널을 생성해 주십시오.

b. Slack 데스크톱 클라이언트를 사용하는 경우 Slack 채널 이름을 마우스 오른쪽 버튼으로 클릭하고 링크 복사(Copy Link)를 선택합니다.

 

그림5: 데스크톱 클라이언트에서 링크 복사

 

c. Slack 웹 UI를 사용하는 경우 Slack 채널 이름을 마우스 오른쪽 단추로 클릭하고 추가 옵션을 선택한 다음 복사 링크를 선택합니다.

 

그림6:웹 UI에서 링크 복사

 

  1. 결과 URL의 마지막 부분은 채널 ID입니다. 예를 들어 URL이 https://xxxxxxx.slack.com/archives/CSQRRLTHRT이라면 CSQRRLTHRT이 채널 ID 입니다. 추후 사용을 위해 채널 ID를 적어두시길 권장 드립니다.

 

 

통합하기

CloudFormation 템플릿은 다음을 생성합니다.

  • SendToSlack으로 명명된 Security Hub 사용자 지정 작업
  • AWS Chatbot SNS Topic으로 명명된 이라는 아마존 SNS 토픽
  • 모든 것을 하나로 묶는 EventBridge 규칙

 

  1. CloudFormation 템플릿에서 yml 을 여십시오.
  2. 마우스 오른쪽 단추를 클릭하고 다른 이름으로 저장을 사용하여 템플릿을 워크스테이션에 저장합니다.

참고: CloudFormation 템플릿에는 이전 단계의 Slack 워크스페이스 ID와 채널 ID가 필요합니다.

  1. CloudFormation console을 여십시오
  2. Create stack을 선택하십시오.

 

그림7: CloudFormation 스택 생성

 

a. Upload a template file 을 선택하십시오.그림8: CloudFormation 템플릿 파일 업로드

 

b. Choose file 을 선택하고 setp2 에서 저장된 CloudFormation 템플릿으로 이동하십시오.

c. Next를 선택하십시오.

d. “SecurityHubToAWSChatBot”와 같은 stack 이름을 입력하십시오.

e. Slack 채널 ID와 Slack workSpace ID를 입력합니다.

f. Next를 선택하십시오.

g. 스택 옵션 구성 화면에서 조직에서 필요한 경우 태그를 추가할 수 있습니다. 나머지 기본 옵션이 작동합니다. Next를 클릭합니다.

h. Review(리뷰) 화면에서 스택 세부 정보를 검토하고 맨 아래로 스크롤합니다.

i. AWS CloudFormation에서 “I acknowledge that AWS CloudFormaiton might creat IAM resources.” 를 클릭해야 합니다. Create Stack를 클릭하기 전에 확인란을 선택합니다.

 

 그림9: IAM 기능 확인

 

  1. CloudFormation 템플릿이 성공적으로 완료되면 CloudFormation 콘솔에 ‘Create Complete’가 표시됩니다.

 

구성을 테스트하기 위한 단계는 다음과 같습니다.

 

  1. AWS Security Hub콘솔을 열고 결과를 선택한 후 Actions 드롭다운을 선택합니다. 방금 생성한 사용자 지정 작업인 Send_To_Slack을 선택합니다.

그림10: Security Hub 사용자 지정 작업 드롭다운

 

  1. Slack 작업 공간 및 채널로 이동하여 알림 수신을 확인합니다.

그림11: Slack의 Security Hub 알림 예시 화면

 

 

추가 기능: Slack으로 중요한 결과 보내기

또한 이 워크플로우를 사용하여 중요한 Security Hub 결과를 모두 Slack으로 보낼 수 있습니다.

이렇게 하려면 이미 구축한 사용자 지정 작업과 함께 사용할 수 있는 추가 CloudWatch 규칙을 구성합니다. 예를 들어, 보안 팀은 모든 중요 심각도 결과를 팀의 Slack 채널로 보내도록 요구하지만, 다른 흥미롭거나 관련 있는 결과를 Slack에 수동으로 보낼 수도 있습니다.

  1. EventBridge 콘솔로 이동하십시오.
  2. Events 아래 Rules를 선택하십시오.
  3. Create Rule를 선택하십시오.
  4. Rule 이름을 정하십시오. 예) “All_SecurityHub_Finding_to_Slack.”
  5. Define Pattern 섹션에서 Event patternCustom pattern을 선택하십시오.

 

그림12: EventBridge 이벤트 패턴 대화

 

  1. 아래의 코드를 Event pattern 필드에 붙여 넣은 뒤에 Save를 누르십시오.

참고: 필요에 맞게 필터를 수정 할 수 있습니다.

 

{

“detail-type”: [“Security Hub Findings – Imported”],

“source”: [“aws.securityhub”],

“detail”: {

“findings”: {

“ProductFields”: {

“aws/securityhub/SeverityLabel”: [

“CRITICAL”

]

}

}

}

}

 

  1. Event bus를 “AWS default event bus”로 유지하십시오.
  2. Select Target아래 드롭다운 메뉴에서 SNS Topic을 선택하십시오.
  3. “SNSTopicAWSChatBot” 이름으로 된 Topic을 선택하십시오.
  4. 구성에 필요한 태그 추가하십시오.
  5. Create 선택하십시오.

Security Hub가 결과를 생성할 때 Critical이라는 심각도 레이블이 지정된 모든 결과를 Slack 채널로 전송합니다.

 

 

글을 마치며…

본 게시물에서는 AWS Chatbot을 사용하여 보안 허브에서 Slack으로 결과를 전송하는 방법을 보여드렸습니다. 이를 통해 조직은 서로 협업하며 운영 이벤트에 더 빠르게 대응할 수 있고, AWS 리소스와 쉽게 상호 작용할 수 있습니다. ‘Slack 채널에서 AWS CLI 명령 실행하기’ 페이지에서 실행할 수 있는 명령 목록을 확인하실 수 있습니다.

 

 

원문URL :  https://aws.amazon.com/ko/blogs/security/enabling-aws-security-hub-integration-with-aws-chatbot/

** 메가존 클라우드 TechBlog는 AWS BLOG 영문 게재 글 중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역 및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS 페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.