전용 계정의 테스트 GuardDuty 결과 - 아마존 GuardDuty

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

전용 계정의 테스트 GuardDuty 결과

이 문서를 사용하여 테스트 GuardDuty 결과를 생성하는 테스터 스크립트를 실행하여 이러한 용도에 맞게 특별히 사용하십시오. AWS 계정 특정 GuardDuty 검색 결과 유형을 이해하고 이에 대해 알아보고 싶을 때 이 단계를 수행할 수 있습니다. 이 경험은 생성하는 것과는 다릅니다샘플 결과. 테스트 GuardDuty 결과 경험에 대한 자세한 내용은 을 참조하십시오고려 사항.

고려 사항

진행하기 전에 다음 고려 사항을 고려하십시오.

  • GuardDuty 테스터 스크립트를 비프로덕션 전용 AWS 계정 환경이나 격리된 환경에 배포하는 것이 좋습니다. 테스터 스크립트를 GuardDuty 실행하면 이 계정에 특정 AWS 리소스가 배포됩니다. 이렇게 하면 이러한 시뮬레이션된 결과를 식별하는 데도 도움이 됩니다.

  • 테스터 스크립트는 다양한 AWS 리소스 조합으로 100개 이상의 GuardDuty 결과를 생성합니다. 현재, 여기에는 모든 것이 포함되어 있지는 않습니다. 결과 유형 이 테스터 스크립트로 생성할 수 있는 검색 유형 목록은 을 참조하십시오. GuardDuty 테스터 스크립트에서 생성할 수 있는 결과

  • 테스터 스크립트는 전용 계정의 GuardDuty 구성 상태를 확인합니다. 이 계정이 GuardDuty 활성화되지 않은 경우 수행할 3단계 - 테스터 스크립트 실행 때 스크립트에서 활성화하도록 요청합니다. 테스터 스크립트는 결과를 생성하는 데 필요한 특정 보호 계획을 활성화할 수 있는 권한을 요청합니다.

    GuardDuty 처음으로 활성화합니다.

    특정 지역에서 처음으로 전용 계정을 활성화하면 계정이 자동으로 30일 무료 평가판에 등록됩니다. GuardDuty

    GuardDuty 선택적 보호 플랜을 제공합니다. 활성화 GuardDuty 시점에 특정 보호 계획도 활성화되며 GuardDuty 30일 무료 평가판에 포함됩니다. 자세한 내용은 GuardDuty 30일 무료 평가판 사용 단원을 참조하십시오.

    GuardDuty 테스터 스크립트를 실행하기 전에 계정에서 이미 활성화되어 있습니다.

    GuardDuty 가 이미 활성화된 경우 테스터 스크립트는 매개 변수를 기반으로 특정 보호 계획의 구성 상태와 결과를 생성하는 데 필요한 기타 계정 수준 설정을 확인합니다.

    이 테스터 스크립트를 실행하면 특정 지역의 전용 계정에서 처음으로 특정 보호 계획을 활성화할 수 있습니다. 그러면 해당 보호 플랜의 30일 무료 평가판이 시작됩니다. 각 보호 플랜과 관련된 무료 평가판에 대한 자세한 내용은 을 참조하십시오 GuardDuty 30일 무료 평가판 사용.

  • 테스터 스크립트가 끝나면 전용 계정이 원래의 보호 계획 구성 및 설정으로 복원됩니다.

GuardDuty 테스터 스크립트에서 생성할 수 있는 결과

현재 테스터 스크립트는 Amazon, Amazon EC2 EKSIAM, Amazon S3 및 EKS 감사 로그와 관련된 다음과 같은 검색 유형을 생성합니다.

1단계 - 사전 요구 사항

테스트 환경을 준비하려면 다음 항목이 필요합니다.

  • Git — 사용 중인 운영 체제에 따라 git 명령줄 도구를 설치합니다. 이는 리포지토리를 amazon-guardduty-tester 복제하는 데 필요합니다.

  • AWS Command Line Interface— 명령줄 셸의 명령을 AWS 서비스 사용하여 상호 작용할 수 있는 오픈 소스 도구입니다. 자세한 내용은 AWS Command Line Interface 사용 설명서의 AWS CLI 시작하기를 참조하십시오.

  • AWS Systems Manager— 를 사용하여 AWS CLI 관리 노드에서 세션 관리자 세션을 시작하려면 로컬 컴퓨터에 세션 관리자 플러그인을 설치해야 합니다. 자세한 내용은 AWS CLIAWS Systems Manager 사용 설명서의 세션 관리자 플러그인 설치를 참조하십시오.

  • Node Package Manager (NPM) — 모든 종속성을 NPM 설치하려면 설치합니다.

  • 도커 — 도커가 설치되어 있어야 합니다. 설치 지침은 도커 웹 사이트를 참조하세요.

    Docker가 설치되었는지 확인하려면 다음 명령을 실행하고 다음 출력과 유사한 출력이 있는지 확인합니다.

    $ docker --version Docker version 19.03.1
  • 에서 Kali Linux 이미지를 구독하십시오. AWS Marketplace

2단계 - 리소스 배포 AWS

이 섹션에서는 주요 개념 목록과 전용 계정에 특정 AWS 리소스를 배포하는 단계를 제공합니다.

개념

다음 목록은 리소스를 배포하는 데 도움이 되는 명령과 관련된 주요 개념을 제공합니다.

  • AWS Cloud Development Kit (AWS CDK)— 코드로 클라우드 인프라를 정의하고 이를 통해 프로비저닝하기 위한 오픈 소스 소프트웨어 개발 CDK 프레임워크입니다. AWS CloudFormation CDK구조라고 하는 재사용 가능한 클라우드 구성 요소를 정의하는 몇 가지 프로그래밍 언어를 지원합니다. 이들을 스택과 앱으로 함께 구성할 수 있습니다. 그런 다음 CDK 애플리케이션을 배포하여 리소스를 프로비저닝하거나 업데이트할 수 있습니다. AWS CloudFormation 자세한 내용은 AWS CDK무엇입니까를 참조하십시오. AWS Cloud Development Kit (AWS CDK) 개발자 안내서에서

  • 부트스트래핑 — 에서 사용할 AWS 환경을 준비하는 프로세스입니다. AWS CDK CDK스택을 환경에 배포하기 전에 먼저 AWS 환경을 부트스트랩해야 합니다. 에서 사용하는 환경의 특정 AWS 리소스를 프로비저닝하는 이 프로세스는 다음 섹션 - 에서 수행할 단계의 일부입니다. AWS CDK 리소스 배포 단계 AWS

    부트스트래핑 작동 방식에 대한 자세한 내용은 개발자 안내서의 부트스트래핑을 참조하십시오.AWS Cloud Development Kit (AWS CDK)

리소스 배포 단계 AWS

리소스 배포를 시작하려면 다음 단계를 수행하십시오.

  1. bin/cdk-gd-tester.ts파일에 전용 계정 지역 변수를 수동으로 설정하지 않는 한 AWS CLI 기본 계정 및 지역을 설정합니다. 자세한 내용은 AWS Cloud Development Kit (AWS CDK) 개발자 안내서의 환경을 참조하십시오.

  2. 다음 명령을 실행하여 리소스를 배포하십시오.

    git clone https://github.com/awslabs/amazon-guardduty-tester && cd amazon-guardduty-tester npm install cdk bootstrap cdk deploy

    마지막 명령 (cdk deploy) 은 사용자를 대신하여 AWS CloudFormation 스택을 생성합니다. 이 스택의 이름은 입니다 GuardDutyTesterStack.

    이 스크립트의 일부로 새 리소스를 생성하여 계정에서 GuardDuty 결과를 생성합니다. GuardDuty 또한 Amazon EC2 인스턴스에 다음과 같은 태그 키:value 쌍을 추가합니다.

    CreatedBy:GuardDuty Test Script

    Amazon EC2 인스턴스에는 EKS 노드와 ECS 클러스터를 호스팅하는 EC2 인스턴스도 포함됩니다.

    인스턴스 타입

    GuardDuty Amazon EKS 노드 그룹을 제외한 모든 리소스에 t3.micro 대해 생성합니다. 최소 2개의 코어가 EKS 필요하므로 EKS 노드에는 t3.medium 인스턴스 유형이 있습니다. 인스턴스 유형에 대한 자세한 내용은 Amazon EC2 인스턴스 유형 안내서의 사용 가능한 크기를 참조하십시오.

3단계 - 테스터 스크립트 실행

이 과정은 2단계 프로세스로, 먼저 테스트 드라이버로 세션을 시작한 다음 스크립트를 실행하여 특정 리소스 조합으로 GuardDuty 결과를 생성해야 합니다.

  1. 리소스가 배포되면 지역 코드를 현재 터미널 세션의 변수에 저장합니다. 다음 명령을 사용하고 바꾸십시오.us-east-1 리소스를 배포한 지역 코드를 사용하세요.

    $ REGION=us-east-1
  2. 테스터 스크립트는 AWS Systems Manager (SSM) 를 통해서만 사용할 수 있습니다. 테스터 호스트 인스턴스에서 대화형 셸을 시작하려면 호스트를 InstanceId쿼리하십시오.

  3. 다음 명령어를 사용하여 테스터 스크립트에 대한 세션을 시작합니다.

    aws ssm start-session --region $REGION --document-name AWS-StartInteractiveCommand --parameters command="cd /home/ssm-user/py_tester && bash -l" --target $(aws ec2 describe-instances --region $REGION --filters "Name=tag:Name,Values=Driver-GuardDutyTester" --query "Reservations[].Instances[?State.Name=='running'].InstanceId" --output text)

테스터 스크립트는 입력에 따라 결과를 생성하는 bash 스크립트를 동적으로 빌드하는 Python 기반 프로그램입니다. 하나 이상의 AWS 리소스 유형, GuardDuty 보호 계획, Threat Purposes (전술) 등을 기반으로 검색 결과를 유연하게 생성할 수 있습니다. 기본 데이터 소스 GuardDuty 테스터 스크립트에서 생성할 수 있는 결과

다음 명령 예제를 참조로 사용하고 하나 이상의 명령을 실행하여 탐색하려는 결과를 생성하십시오.

python3 guardduty_tester.py python3 guardduty_tester.py --all python3 guardduty_tester.py --s3 python3 guardduty_tester.py --tactics discovery python3 guardduty_tester.py --ec2 --eks --tactics backdoor policy execution python3 guardduty_tester.py --eks --runtime only python3 guardduty_tester.py --ec2 --runtime only --tactics impact python3 guardduty_tester.py --log-source dns vpc-flowlogs python3 guardduty_tester.py --finding 'CryptoCurrency:EC2/BitcoinTool.B!DNS'

유효한 파라미터에 대한 자세한 내용을 보려면 다음 도움말 명령을 실행할 수 있습니다.

python3 guardduty_tester.py --help

계정에서 생성된 결과를 보려면 선호하는 방법을 선택하세요.

GuardDuty console
  1. 에 AWS Management Console 로그인하고 에서 GuardDuty 콘솔을 엽니다 https://console.aws.amazon.com/guardduty/.

  2. 탐색 창에서 결과를 선택합니다.

  3. 검색 결과 테이블에서 세부 정보를 보려는 검색 결과를 선택합니다. 그러면 검색결과 세부 정보 패널이 열립니다. 자세한 내용은 아마존 GuardDuty 조사 결과 이해을 참조하세요.

  4. 이러한 결과를 필터링하려면 리소스 태그 키와 값을 사용하세요. 예를 들어 Amazon EC2 인스턴스에 대해 생성된 결과를 필터링하려면 인스턴스 태그 인스턴스 GuardDuty Test Script 태그 키에 태그 키:value 쌍을 사용하십시오CreatedBy.

API
  • 특정 ListFindings탐지기 ID에 대한 결과를 보려면 실행하십시오. 특정 파라미터를 사용하여 결과를 필터링할 수 있습니다.

    계정과 현재 지역에 detectorId 맞는 항목을 찾으려면 https://console.aws.amazon.com/guardduty/콘솔의 설정 페이지를 참조하거나 를 실행하십시오 ListDetectorsAPI.

AWS CLI
  • 다음 AWS CLI 명령을 실행하여 생성된 결과를 확인하고 교체합니다.us-east-1 그리고 12abc34d567e8fa901bc2d34EXAMPLE 적절한 값으로:

    aws guardduty list-findings --region us-east-1 --detector-id 12abc34d567e8fa901bc2d34EXAMPLE

    계정 및 현재 지역에 detectorId 맞는 항목을 찾으려면 https://console.aws.amazon.com/guardduty/콘솔의 설정 페이지를 참조하거나 를 실행하십시오 ListDetectorsAPI.

    검색 결과를 필터링하는 데 사용할 수 있는 매개 변수에 대한 자세한 내용은 AWS CLI 명령 참조의 list-find를 참조하십시오.

4단계 - 테스트 리소스 정리 AWS

테스터 스크립트가 종료될 때 원래 상태로 3단계 - 테스터 스크립트 실행 돌아가는 동안 이루어진 계정 수준 설정 및 기타 구성 상태 업데이트

테스터 스크립트를 실행한 후 테스트 리소스를 정리하도록 선택할 수 있습니다. AWS 다음 방법 중 하나를 사용하여 이 작업을 수행하도록 선택할 수 있습니다.

일반적인 문제 해결

GuardDuty 일반적인 문제를 식별하고 문제 해결 단계를 권장합니다.

  • Cloud assembly schema version mismatch— 필수 클라우드 어셈블리 버전과 호환되는 버전 또는 사용 가능한 최신 AWS CDK CLI 버전으로 업데이트하십시오. 자세한 내용은 AWS CDK CLI호환성을 참조하십시오.

  • Docker permission denied— 전용 계정에서 명령을 실행할 수 있도록 전용 계정 사용자를 docker-users에 추가합니다. 단계에 대한 자세한 내용은 Docker 액세스 거부를 참조하십시오.

  • Your requested instance type is not supported in your requested Availability Zone— 일부 가용 영역은 특정 인스턴스 유형을 지원하지 않습니다. 선호하는 인스턴스 유형을 지원하는 가용 영역을 식별하고 AWS 리소스 배포를 다시 시도하려면 다음 단계를 수행하십시오.

    1. 원하는 방법을 선택하여 인스턴스 유형을 지원하는 가용 영역을 결정하십시오.

      Console
      선호 인스턴스 유형을 지원하는 가용 영역을 식별하려면
      1. 에서 Amazon EC2 콘솔에 AWS Management Console 로그인하고 엽니다 https://console.aws.amazon.com/ec2/.

      2. 페이지 오른쪽 상단의 AWS 지역 선택기를 사용하여 인스턴스를 시작할 지역을 선택합니다.

      3. 탐색 창의 [인스턴스] 에서 [인스턴스 유형] 을 선택합니다.

      4. 인스턴스 유형 표에서 선호 인스턴스 유형을 선택합니다.

      5. 네트워킹에서 가용 영역 아래에 나열된 지역을 확인합니다.

        이 정보를 기반으로 리소스를 배포할 수 있는 새 지역을 선택해야 할 수도 있습니다.

      AWS CLI

      다음 명령을 실행하여 가용 영역 목록을 확인합니다. 선호 인스턴스 유형과 지역을 지정해야 합니다 (us-east-1).

      aws ec2 describe-instance-type-offerings --location-type availability-zone --filters Name=instance-type,Values=Preferred instance type --region us-east-1 --output table

      이 명령에 대한 자세한 내용은 AWS CLI 명령 참조서를 참조하십시오 describe-instance-type-offerings.

      이 명령을 실행할 때 오류가 발생하는 경우 최신 버전을 사용하고 있는지 확인하십시오 AWS CLI. 자세한 내용은 AWS Command Line Interface 사용 설명서의 문제 해결을 참조하세요.

    2. AWS 리소스 배포를 다시 시도하고 선호 인스턴스 유형을 지원하는 가용 영역을 지정하십시오.

      리소스 배포를 다시 시도하려면 AWS
      1. 파일에 기본 지역을 설정합니다. bin/cdk-gd-tester.ts

      2. 가용 영역을 지정하려면 amazon-guardduty-tester/lib/common/network/vpc.ts 파일을 여십시오.

      3. 이 파일에서 인스턴스 유형에 맞는 availabilityZones: ['us-east-1a', 'us-east-1c'], 가용 영역을 지정해야 하는 위치로 maxAzs: 2, 바꾸십시오.

      4. 아래의 나머지 단계를 계속 진행하십시오리소스 배포 단계 AWS.