구조에 대한 AWS Chatbot: AWS 보안 알림을 절대 놓치지 마십시오.

AWS 클라우드 설정을 보호하기 위해 AWS Security Hub , AWS Inspector , AWS GuarddutyECR Vulnerability Scanning 몇 가지 도구를 사용합니다.

이 모든 도구는 설정하기 쉽고 약점과 치료를 찾는 아주 좋은 일을 합니다. 내가 가진 유일한 문제는 종종 그들의 발견이 너무 오랫동안 레이더 아래에 머물렀다는 것입니다. 나는 새로운 결과를 찾기 위해 이러한 모든 대시보드를 매일 확인하는 사람이 아닙니다. 단지 그렇게 하는 것을 잊었을 뿐입니다.

채톱스



반면에 우리는 채팅 및 빌드 파이프라인, 서비스 변경, 시스템 오류 등의 알림에 Slack을 많이 사용합니다. 이러한 모든 알림은 회사 정책에 따라 모두 읽어야 하는 전용 공간에 수집됩니다.

따라서 이상적으로는 동일한 채팅방에 보안 알림을 추가하기만 하면 알림을 받고 다시는 보안 문제를 놓치지 않을 수 있습니다.

AWS Eventbridge, AWS SNS 및 AWS 챗봇



채팅 클라이언트에 모든 보안 결과 및 경고를 표시하는 것은 매우 쉽습니다. 설정은 다음과 같습니다.



AWS Eventbridge 을 사용하여 'security-issues'라는 단일SNS topic에 대한 모든 알림을 수집합니다. 그 위에AWS Chatbot는 해당 SNS 주제를 수신하고 모든 메시지를 Slack으로 전달하도록 구성됩니다.

SNS 주제를 생성하고 SNS 주제를 듣고 채팅 클라이언트에 메시지를 전달하도록 AWS Chatbot을 설정하는 것은 매우 쉽고 몇 번의 클릭만으로 완료됩니다. 가장 어려운 부분은 EventBridge 이벤트를 캡처하여 SNS로 전달하는 것이므로 여기서 CloudFormation이 그 부분을 도와줍니다.

AWSTemplateFormatVersion: '2010-09-09'
Description: Forward EventBridge security events to AWS SNS

Parameters:
  SecurityIssuesSnsTopic:
    Type: String
    Description: Contains the ARN of the SNS topic on which security issues are published.

Resources:
  GuardDutyEventRule:
    Type: AWS::Events::Rule
    Properties:
      Name: detect-guardduty-findings
      Description: A CloudWatch Event Rule that triggers on Amazon GuardDuty findings.
      State: ENABLED
      EventPattern:
        source:
          - aws.guardduty
        detail-type:
          - GuardDuty Finding
      Targets:
        - Arn:
            Ref: SecurityIssuesSnsTopic
          Id: SecurityTopic

  SecurityHubFindingEventRule:
    Type: AWS::Events::Rule
    Properties:
      Name: detect-securityhub-findings
      Description: A CloudWatch Event Rule that triggers on Amazon Security Hub findings.
      State: ENABLED
      EventPattern:
        source:
          -  aws.securityhub
        detail-type:
          - Security Hub Findings - Custom Action
        resources:
          - !Sub arn:aws:securityhub:${AWS::Region}:${AWS::AccountId}:action/custom/reportfindings
      Targets:
        - Arn:
            Ref: SecurityIssuesSnsTopic
          Id: SecurityTopic

  SecurityHubInsightsEventRule:
    Type: AWS::Events::Rule
    Properties:
      Name: detect-securityhub-insights
      Description: A CloudWatch Event Rule that triggers on Amazon Security Hub insights.
      State: ENABLED
      EventPattern:
        source:
          -  aws.securityhub
        detail-type:
          - Security Hub Insight Results
        resources:
          - !Sub arn:aws:securityhub:${AWS::Region}:${AWS::AccountId}:action/custom/reportfindings
      Targets:
        - Arn:
            Ref: SecurityIssuesSnsTopic
          Id: SecurityTopic

  EcrVulnerabilitiesEventRule:
    Type: AWS::Events::Rule
    Properties:
      Name: detect-ecr-vulnerabilities
      Description: A CloudWatch Event Rule that triggers on Amazon ECR vulnerabilities.
      State: ENABLED
      EventPattern:
        source:
          -  aws.ecr
        detail-type:
          - ECR Image Scan
        detail:
          finding-severity-counts:
            CRITICAL:
              - exists: false
              - numeric: [ ">", 0 ]
            HIGH:
              - exists: false
              - numeric: [ ">", 0 ]
            MEDIUM:
              - exists: false
              - numeric: [ ">", 0 ]
            # UNDEFINED:
            #   - exists: false
            #   - numeric: [ ">", 0 ]
      Targets:
        - Arn:
            Ref: SecurityIssuesSnsTopic
          Id: SecurityTopic



몇 분 안에 시작할 수 있습니다 😄

Slack에서 결과는 다음과 같습니다. 꽤 깔끔하죠!?



현재 위의 모든 메시지 유형은 ECR 취약점을 제외하고 supported by AWS Chatbot입니다. 가까운 장래에 이것이 변경되기를 바랍니다(현재로서는 이를 다루기 위해 SNS 주제에 대한 이메일 구독도 있습니다).

즐감하시고 다음 시간까지!

좋은 웹페이지 즐겨찾기