인시던트 응답 및 포렌식 자동화 - AWS 권장 가이드

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

인시던트 응답 및 포렌식 자동화

작성자: Lucas Kauffman(AWS) 및 Tomek Jakubowski(AWS)

코드 리포지토리: aws-automated-incident-response-및-포렌식

환경: 프로덕션

기술: 보안, 자격 증명 및 규정 준수

AWS 서비스: Amazon EC2, AWS Lambda, Amazon S3, AWS Security Hub, AWS Identity and Access Management

요약

이 패턴은 AWS Lambda 함수를 사용하여 다음을 제공하는 프로세스 집합을 배포합니다.

  • 최소한의 지식으로 인시던트 응답 프로세스를 시작하는 방법

  • 보안 인시던트 응답 가이드에 따른 자동화되고 반복 가능한 프로세스

  • 자동화 절차 운영, 아티팩트 저장, 포렌식 환경 생성을 위한 계정의 분리

자동화된 인시던트 응답 및 포렌식 프레임워크는 다음 단계로 구성된 표준 디지털 포렌식 프로세스를 따릅니다.

  1. 제한

  2. 인수

  3. 검사

  4. 분석

정적 데이터(예: 획득한 메모리 또는 디스크 이미지) 및 분리된 시스템에 있는 라이브 동적 데이터에 대해 조사를 수행할 수 있습니다.

자세한 내용은 추가 정보 섹션을 참조하세요.

사전 조건 및 제한 사항

사전 조건 

  • 다음 2개의 계정:

    • 보안 계정: 기존 계정일 수 있지만 새 계정인 것이 좋습니다.

    • 포렌식 계정: 새 계정인 것이 좋습니다.

  • AWS Organizations 설정

  • Organizations 멤버 계정에서:

    • Amazon Elastic Compute Cloud(Amazon EC2) 역할은 Amazon Simple Storage Service(S3)에 대한 Get 및 List 액세스 권한이 있어야 하며 AWS Systems Manager가 액세스할 수 있어야 합니다. AmazonSSMManagedInstanceCore 관리형 역할을 사용하는 것이 좋습니다. 인시던트 응답이 시작되면 이 역할이 EC2 인스턴스에 자동으로 연결된다는 점을 유념합니다. 응답이 완료되면 Identity and Access Management(IAM)는 인스턴스에 대한 모든 권한을 제거합니다.

    • 멤버 계정과 인시던트 응답 및 분석 VPC의 Virtual Private Cloud(VPC) 엔드포인트. 이러한 엔드포인트는 S3 게이트웨이, EC2 메시지, SSM, SSM 메시지입니다.

  • EC2 인스턴스에 설치된 Command Line Interface(CLI). EC2 인스턴스에 CLI가 설치되어 있지 않은 경우 디스크 스냅샷과 메모리 획득이 작동하려면 인터넷 액세스가 필요합니다. 이 경우 스크립트는 인터넷에 접속하여 CLI 설치 파일을 다운로드하고 인스턴스에 설치합니다.

제한 사항

  • 이 프레임워크는 전자 증거로 간주되어 법원에 제출할 수 있는 아티팩트를 생성하려는 의도가 없습니다.

  • 현재 이 패턴은 x86 아키텍처에서 실행되는 Linux 기반 인스턴스만을 지원합니다.

아키텍처

대상 기술 스택

  • AWS CloudFormation

  • AWS CloudTrail

  • Config

  • IAM

  • Lambda

  • Amazon S3

  • Key Management System (KMS)

  • AWS Security Hub

  • Amazon Simple Notification Service(SNS)

  • Step Functions

대상 아키텍처 

대상 환경은 멤버 계정 외에도 두 개의 기본 계정, 즉 보안 계정과 포렌식 계정으로 구성됩니다. 두 개의 계정이 사용되는 이유는 다음과 같습니다.

  • 포렌식 분석 실패 시 영향 범위를 줄이기 위해 다른 고객 계정과 분리하기 위해

  • 분석 대상 아티팩트의 격리 및 무결성 보호를 보장하는 데 도움이 되기 위해

  • 조사를 기밀로 유지하기 위해

  • 위협 행위자가 Service Quotas를 초과하여 Amazon EC2 인스턴스를 인스턴스화해서 조사를 수행하지 못하게 함으로써 손상된 AWS 계정에서 즉시 사용할 수 있는 모든 리소스를 사용했을 수 있는 상황을 방지하기 위해. 

또한 별도의 보안 및 포렌식 계정을 보유하면 증거 수집을 위한 응답자와 증거 분석을 위한 조사자 등 별도의 역할을 생성할 수 있습니다. 각 역할은 별도의 계정에 액세스할 수 있습니다.

다음 다이어그램은 계정 간의 상호 작용만 보여줍니다. 각 계정의 세부 정보는 후속 다이어그램에 표시되며 전체 다이어그램이 첨부되어 있습니다.

멤버, 보안, 포렌식 계정과 사용자, 인터넷 및 Slack 간의 상호 작용.

다음 다이어그램은 멤버 계정을 보여줍니다.

AWS KMS 키, IAM 역할, Lambda 함수, 엔드포인트, 두 개의 EC2 인스턴스가 있는 VPC를 사용하는 멤버 계정

1. 이벤트는 Slack Amazon SNS 주제로 전송됩니다.

다음 다이어그램은 보안 계정을 보여줍니다.

사고 대응 DdCopyInstance VPC의 EC2와 LiME 메모리 모듈을 사용하는 보안 계정

2. 보안 계정의 SNS 주제는 포렌식 이벤트를 시작합니다.

다음 다이어그램은 포렌식 계정을 보여줍니다.

포렌식 계정에는 포렌식 및 피해자 EC2 인스턴스, 분석 VPC, 유지 관리 VPC가 있습니다.

보안 계정은 메모리 및 디스크 이미지 획득을 위해 두 개의 기본 Step Functions 워크플로를 생성하는 곳입니다. 워크플로가 실행되고 나면 인시던트와 관련된 EC2 인스턴스가 있는 멤버 계정에 액세스하여 메모리 덤프 또는 디스크 덤프를 수집하는 Lambda 함수 집합을 시작합니다. 그러면 해당 아티팩트가 포렌식 계정에 저장됩니다.

포렌식 계정은 Step Functions 워크플로에서 수집한 아티팩트를 분석 아티팩트 S3 버킷에 보관합니다. 포렌식 계정에는 포렌식 인스턴스의 Amazon Machine Image(AMI)를 빌드하는 EC2 Image Builder 파이프라인도 있습니다. 현재, 이미지는 SANS SIFT 워크스테이션을 기반으로 합니다. 

빌드 프로세스는 인터넷에 연결된 Maintenance VPC를 사용합니다. 이 이미지는 나중에 Analysis VPC에서 수집된 아티팩트를 분석하기 위해 EC2 인스턴스를 실행하는 데 사용할 수 있습니다. 

Analysis VPC가 인터넷에 연결되어 있지 않습니다. 기본적으로 이 패턴은 3개의 프라이빗 분석 서브넷을 생성합니다. VPC의 서브넷 수에 대한 할당량인 최대 200개의 서브넷을 생성할 수 있지만, AWS Systems Manager Sessions Manager가 해당 서브넷에서 명령 실행을 자동화하려면 VPC 엔드포인트에 해당 서브넷을 추가해야 합니다.

모범 사례 관점에서 볼 때 CloudTrail AWS와 AWS Config를 사용하여 다음을 수행하는 것이 좋습니다. 

  • 포렌식 계정의 변경 내용 추적

  • 저장 및 분석된 아티팩트의 액세스 및 무결성 모니터링

워크플로

다음 다이어그램은 인스턴스가 손상된 시점부터 분석 및 억제되는 시점까지의 프로세스 및 의사 결정 트리를 포함하는 워크플로의 주요 단계를 보여줍니다.

  1. SecurityIncidentStatus태그가 Analyze 값으로 설정되었습니까? 설정되었다면 다음을 수행합니다.

    1. Systems Manager 및 Amazon S3에 대한 올바른 IAM 프로파일을 연결합니다.

    2. Slack의 Amazon SNS 대기열로 Amazon SNS 메시지를 전송합니다.

    3. Amazon SNS 메시지를  SecurityIncident 대기열로 전송합니다.

    4. 메모리 및 디스크 획득 상태 시스템을 호출합니다.

  2. 메모리와 디스크를 획득했습니까? 아니라면 오류가 발생한 것입니다.

  3. Contain 태그로 EC2 인스턴스를 지정합니다.

  4. IAM 역할 및 보안 그룹을 연결하여 인스턴스를 완전히 격리합니다.

워크플로 단계는 위에 나열되어 있습니다.

자동화 및 규모 조정

이 패턴의 목적은 단일 Organizations 조직 내 여러 계정 전반적으로 인시던트 응답 및 포렌식을 수행할 수 있도록 확장 가능한 솔루션을 제공하는 것입니다.

도구

AWS 서비스

  • AWS는 AWS CloudFormation 리소스를 설정하고, 빠르고 일관되게 프로비저닝하고, AWS 계정 및 지역 전반의 수명 주기 전반에 걸쳐 리소스를 관리할 수 있도록 지원합니다.

  • Command Line Interface(CLI)는 명령줄 쉘에서 명령을 사용하여 서비스와 상호 작용할 수 있는 오픈 소스 도구입니다.

  • Identity and Access Management(IAM)는 사용자에 대한 인증 및 권한 부여를 제어함으로써 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있습니다.

  • Key Management Service(KMS)를 사용하면 암호화 키를 생성하고 제어하여 데이터를 보호할 수 있습니다.

  • Lambda는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행하는 데 도움이 되는 컴퓨팅 서비스입니다. 필요할 때만 코드를 실행하며 자동으로 확장이 가능하므로 사용한 컴퓨팅 시간만큼만 비용을 지불합니다.

  • Amazon Simple Storage Service(Amazon S3)는 원하는 양의 데이터를 저장, 보호 및 검색하는 데 도움이 되는 클라우드 기반 객체 스토리지 서비스입니다.

  • AWS Security Hub에서는 AWS의 보안 상태에 대한 포괄적인 보기가 제공됩니다. 이를 통해 AWS 환경에서 보안 업계 표준 및 모범 사례를 준수하는지 확인할 수도 있습니다.

  • Amazon Simple Notification Service(Amazon SNS)를 사용하면 웹 서버 및 이메일 주소를 포함하여 게시자와 클라이언트 간의 메시지 교환을 조정하고 관리할 수 있습니다.

  • AWS Step Functions는 Lambda 함수와 기타 AWS 서비스를 결합할 수 있는 서버리스 오케스트레이션 서비스로서 비즈니스 크리티컬 애플리케이션을 구축합니다. 

  • AWS Systems Manager는 AWS 클라우드에서 실행되는 애플리케이션과 인프라를 관리하는 데 도움이 됩니다. 애플리케이션 및 리소스 관리를 간소화하고, 운영 문제의 감지 및 해결 시간을 단축하며, AWS 리소스를 규모에 따라 안전하게 관리하는 데 도움이 됩니다.

코드

코드와 구체적인 구현 및 사용 지침은 GitHub 자동 사고 대응 및 포렌식 프레임워크 리포지토리를 참조하십시오.

에픽

작업설명필요한 기술

CloudFormation 템플릿 배포.

CloudFormation 템플릿은 1~7로 표시되어 있으며, 스크립트 이름의 첫 단어는 템플릿을 배포해야 하는 계정을 나타냅니다. CloudFormation 템플릿 실행 순서가 중요하다는 점에 유의하세요.

  • 1-forensic-AnalysisVPCnS3Buckets.yaml: 포렌식 계정에 배포되었습니다. S3 버킷과 분석 VPC를 생성하고 활성화합니다. CloudTrail

  • 2-forensic-MaintenanceVPCnEC2ImageBuilderPipeline.yaml: SANS SIFT를 기반으로 유지 관리 VPC 및 이미지 빌더 파이프라인을 배포합니다.

  • 3-security_IR-Disk_Mem_automation.yaml: 디스크 및 메모리 획득을 활성화하는 함수를 보안 계정에 배포합니다.

  • 4-security_LiME_Volatility_Factory.yaml: 빌드 함수를 시작하여 지정 AMI ID를 기반으로 메모리 모듈 생성을 시작합니다. AMI ID는 리전마다 다르다는 점을 유념합니다. 새 메모리 모듈이 필요할 때마다 새 AMI ID를 사용하여 이 스크립트를 다시 실행할 수 있습니다. 이를 골든 이미지 AMI 빌더 파이프라인(사용자 환경에서 사용하는 경우)과 통합하는 것을 고려합니다.

  • 5-member-IR-automation.yaml: 인시던트 응답 프로세스를 시작하는 멤버 인시던트 응답 자동화 함수를 생성합니다. 이를 통해 계정 전반적으로 Amazon Elastic Block Store(Amazon EBS) 볼륨을 공유하고, 인시던트 응답 프로세스 중에 Slack 채널에 자동으로 게시하며, 포렌식 프로세스를 시작하고, 프로세스 완료 후 인스턴스를 격리할 수 있습니다.

  • 6-forensic-artifact-s3-policies.yaml: 모든 스크립트가 배포된 후 이 스크립트는 모든 교차 계정 상호 작용에 필요한 권한을 수정합니다.

  • 7-security-IR-vpc.yaml: 인시던트 응답 볼륨 처리에 사용되는 VPC를 구성합니다.

특정 EC2 인스턴스에 대한 인시던트 응답 프레임워크를 시작하려면 키 SecurityIncidentStatus 및 값 Analyze(이)가 포함된 태그를 생성합니다. 그러면 격리 및 메모리는 물론 디스크 획득을 자동으로 시작하는 멤버 Lambda 함수가 시작됩니다.

AWS 관리자

프레임워크를 운영합니다.

또한 Lambda 함수는 종료(또는 실패) 시 Contain 태그로 자산을 다시 지정합니다. 그러면 제한이 시작되어 인바운드/아웃바운드 없는 보안 그룹 및 모든 액세스를 허용하지 않는 IAM 역할을 가진 인스턴스가 완전히 격리됩니다.

리포지토리의 단계를 따르십시오. GitHub

관리자
작업설명필요한 기술

CloudFormation 템플릿을 사용하여 사용자 지정 Security Hub 작업을 배포합니다.

Security Hub의 드롭다운 목록을 사용할 수 있도록 사용자 지정 작업을 생성하려면 Modules/SecurityHub Custom Actions/SecurityHubCustomActions.yaml CloudFormation 템플릿을 배포하십시오. 그런 다음 각 멤버 계정에서 IRAutomation 역할을 수정하여 작업을 실행하는 Lambda 함수가 IRAutomation 역할을 떠맡을 수 있도록 합니다. 자세한 내용은 GitHub 리포지토리를 참조하십시오.

관리자

관련 리소스

추가 정보

이 환경을 사용하여 보안 운영 센터(SOC) 팀은 다음을 통해 보안 인시던트 응답 프로세스를 개선할 수 있습니다.

  • 분리된 환경에서 포렌식을 수행하여 프로덕션 리소스의 우발적인 손상을 방지할 수 있는 능력 확보

  • 제한 및 분석을 수행할 수 있는 표준화되고 반복 가능하며 자동화된 프로세스 확보.

  • 모든 계정 소유자 또는 관리자에게 태그 사용 방법에 대한 최소한의 지식으로 인시던트 응답 프로세스를 시작할 수 있는 능력을 제공

  • 대규모 환경의 소음 없이 인시던트 분석 및 포렌식을 수행할 수 있는 표준화되고 깨끗한 환경 확보

  • 여러 분석 환경을 병렬로 생성할 수 있는 능력 확보

  • SOC 리소스를 클라우드 포렌식 환경의 유지 관리 및 문서화 대신 인시던트 응답에 집중

  • 수동 프로세스에서 자동화된 프로세스로 전환하여 확장성 달성

  • 일관성을 유지하고 반복 가능한 작업을 피하기 위해 CloudFormation 템플릿 사용

또한 영구적 인프라를 사용하지 않고, 필요할 때 리소스에 대한 비용을 지불합니다.

첨부

이 문서와 관련된 추가 콘텐츠에 액세스하려면 attachment.zip 파일의 압축을 풉니다.