사이버 포렌식 - AWS 규범적 지침

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

사이버 포렌식

간단한 설문조사를 통해 AWS 보안 참조 아키텍처 (AWS SRA) 의 미래에 영향을 미치세요.

AWS SRA에서는 미국 국립 표준 기술 연구소(NIST)에서 제공하는 포렌식에 대한 다음과 같은 정의를 사용합니다. "정보의 무결성을 유지하고 데이터에 대한 엄격한 관리 체계를 유지하면서 데이터의 식별, 수집, 검사, 분석에 과학을 적용하는 것"(출처: NIST Special Publication 800-86 – Guide to Integrating Forensic Techniques into Incident Response).

보안 인시던트 대응 컨텍스트에서 포렌식

이 섹션의 인시던트 대응(IR) 지침은 포렌식의 맥락과 다양한 서비스 및 솔루션이 IR 프로세스를 개선할 수 있는 방법에 대해서만 제공됩니다.

AWS 보안 인시던트 대응 가이드AWS 고객 인시던트 대응팀(AWS CIRT)의 경험을 바탕으로 AWS 클라우드에서의 보안 인시던트에 대응하는 모범 사례를 나열합니다. AWS CIRT의 추가 지침은 AWS CIRT 워크숍AWS CIRT에서 얻은 교훈을 참조하세요.

미국 표준 기술 연구소 사이버 보안 프레임워크(NIST CSF)는 IR 수명 주기의 4단계, 즉 준비, 탐지 및 분석, 억제, 근절 및 복구, 인시던트 사후 활동을 정의합니다. 이러한 단계는 순차적으로 구현할 수 있습니다. 하지만 사이클의 다음 단계로 넘어간 후 일부 단계를 반복해야 하기 때문에 이 순서는 주기적인 경우가 많습니다. 예를 들어 격리 및 근절 후에는 주변 환경에서 공격자를 성공적으로 제거했는지 확인하기 위해 다시 분석해야 합니다.

이렇게 분석, 억제, 근절, 다시 분석 단계로 돌아가는 반복적인 사이클을 통해 새로운 손상 지표 () IoCs 가 탐지될 때마다 더 많은 정보를 수집할 수 있습니다. 이는 여러 관점에서 IoCs 유용하다. 환경을 위협하기 위해 공격자가 취한 조치에 대한 이야기를 제공합니다. 또한 적절한 인시던트 사후 검토를 수행하면 방어 및 탐지를 개선하여 향후 인시던트를 예방하거나 공격자의 작업을 더 빠르게 탐지하여 인시던트의 영향을 줄일 수 있습니다.

이 IR 프로세스가 포렌식의 주요 목적은 아니지만 많은 도구, 기법 및 모범 사례가 IR과 공유됩니다(특히 분석 단계). 예를 들어 인시던트를 탐지한 후 포렌식 수집 프로세스가 증거를 수집합니다. 다음으로, 증거 조사 및 분석을 통해 증거를 추출할 수 있습니다. IoCs 결국, 포렌식 보고는 IR 이후 활동에 도움이 될 수 있습니다.

포렌식 프로세스를 최대한 자동화하여 대응 속도를 높이고 IR 이해관계자의 부담을 줄이는 것이 좋습니다. 또한 포렌식 수집 프로세스가 완료되고 증거가 오염되지 않도록 안전하게 보관된 후에 더 많은 자동 분석을 추가할 수 있습니다. 자세한 내용은 AWS 권장 가이드 웹 사이트에서 인시던트 대응 및 포렌식 자동화 패턴을 참조하세요.

설계 고려 사항

보안 IR 대비 태세를 개선하려면:

  • 조사 또는 인시던트 대응 중에 필요할 수 있는 로그를 활성화하고 안전하게 저장하세요.

  • 알려진 시나리오에 대한 쿼리를 미리 빌드하고 로그를 검색하는 자동화된 방법을 제공합니다. Amazon Detective를 사용하는 것을 고려하세요.

  • 시뮬레이션을 실행하여 IR 도구를 준비하세요.

  • 백업 및 복구 프로세스를 정기적으로 테스트하여 성공적인지 확인하세요.

  • Amazon 조사 결과를 기반으로 AWS와 관련된 일반적인 잠재적 이벤트부터 시작하여 시나리오 기반 플레이북을 사용하십시오. GuardDuty 자체 플레이북을 구축하는 방법에 대한 자세한 내용은 AWS 보안 인시던트 대응 안내서의 플레이북 리소스 섹션을 참조하세요.

포렌식 계정

면책 조항

AWS 포렌식 계정에 대한 다음 설명은 조직이 법률 고문의 지침에 따라 자체 포렌식 역량을 개발하기 위한 출발점으로만 사용해야 합니다.

당사는 이 지침이 범죄 탐지 또는 조사에 적합한지, 이 지침을 적용하여 캡처한 데이터 또는 포렌식 증거를 법원에서 사용할 수 있는지에 대해 어떠한 주장도 하지 않습니다. 여기에 설명된 모범 사례가 사용 사례에 적합한지 독립적으로 평가해야 합니다.

다음 다이어그램은 전용 포렌식 계정에서 구성할 수 있는 AWS 보안 서비스를 보여줍니다. 컨텍스트에 따라 다이어그램은 포렌식 계정에서 탐지 또는 알림을 제공하는 데 사용되는 AWS 서비스를 나타내는 보안 도구 계정을 보여줍니다.

AWS 기반 포렌식 계정

포렌식 계정은 보안 OU 내에 있는 별도의 전용 보안 도구 계정입니다. 포렌식 계정의 목적은 조직의 포렌식 팀이 포렌식 프로세스의 모든 단계(수집, 조사, 분석, 보고)를 구현할 수 있도록 사전 구성되고 반복 가능한 표준 클린룸을 제공하는 것입니다. 또한 이 계정에는 범위 내 리소스에 대한 격리 및 격리 프로세스도 포함됩니다.

전체 포렌식 프로세스를 별도의 계정에 포함하면 수집 및 저장된 포렌식 데이터에 추가 액세스 제어를 적용할 수 있습니다. 다음과 같은 이유로 포렌식 계정과 보안 도구 계정을 분리하는 것이 좋습니다.

  • 포렌식 및 보안 리소스는 다른 팀에 속해 있거나 권한이 다를 수 있습니다.

  • 보안 도구 계정에는 S3 버킷에 대한 Amazon S3 퍼블릭 액세스 차단를 활성화하는 등 AWS 제어 플레인의 보안 이벤트에 대응하는 데 초점을 맞춘 자동화 기능이 있을 수 있는 반면, 포렌식 계정에는 운영 체제(OS) 또는 EC2 인스턴스 내의 애플리케이션별 데이터와 같이 고객이 담당할 수 있는 AWS 데이터 영역 아티팩트가 포함될 수 있습니다.

  • 조직 또는 규제 요구 사항에 따라 추가 액세스 제한 또는 법적 보류를 구현해야 할 수도 있습니다.

  • 포렌식 분석 프로세스에는 AWS 서비스 약관에 따라 안전한 환경에서 멀웨어와 같은 악성 코드를 분석해야 할 수 있습니다.

포렌식 계정은 대규모 증거 수집을 가속화하는 동시에 포렌식 수집 프로세스에서 사람의 상호 작용을 최소화하기 위한 자동화를 포함해야 합니다. 추적 및 보고 메커니즘을 단순화하기 위해 대응 및 격리 리소스를 자동화하는 기능도 이 계정에 포함할 예정입니다.

이 섹션에 설명된 포렌식 기능은 조직에서 해당 기능을 적극적으로 사용하지 않는 경우에도 사용 가능한 모든 AWS 리전에 배포해야 합니다. 특정 AWS 리전을 사용할 계획이 없다면 서비스 제어 정책(SCP)을 적용하여 AWS 리소스 프로비저닝을 제한해야 합니다. 또한 동일한 지역 내에서 포렌식 아티팩트를 조사하고 보관하면 데이터 레지던시 및 소유권에 대한 변화하는 규제 환경에서 발생하는 문제를 피할 수 있습니다.

이 지침에서는 앞서 설명한 대로 로그 아카이브 계정을 사용하여 포렌식 계정에서 실행하는 API를 포함하여 AWS API를 통해 환경에서 수행된 작업을 기록합니다. 이러한 로그가 있으면 아티팩트를 잘못 처리하거나 변조한다는 혐의를 피할 수 있습니다. 활성화한 세부 수준 (AWS CloudTrail 설명서의 로깅 관리 이벤트데이터 이벤트 로깅 참조) 에 따라 로그에는 아티팩트를 수집하는 데 사용된 계정, 아티팩트가 수집된 시간, 데이터 수집 단계에 대한 정보가 포함될 수 있습니다. Amazon S3에 아티팩트를 저장하면 고급 액세스 제어 및 객체에 액세스한 사람에 대한 로그 정보를 사용할 수도 있습니다. 자세한 작업 로그를 통해 필요한 경우 다른 사용자가 나중에 프로세스를 반복할 수 있습니다(범위 내 리소스를 계속 사용할 수 있다고 가정).

설계 고려 사항
  • 자동화는 중요한 증거의 수집 속도를 높이고 규모를 조정하는 데 도움이 되므로 동시에 인시던트가 많이 발생하는 경우 유용합니다. 그러나 이러한 이점을 신중하게 고려해야 합니다. 예를 들어, 오탐지 인시던트 사례에서 완전히 자동화된 포렌식 대응은 범위 내 AWS 워크로드가 지원하는 비즈니스 프로세스에 부정적인 영향을 미칠 수 있습니다. 자세한 내용은 다음 섹션의 AWS GuardDuty, AWS Security Hub 및 AWS Step Functions에 대한 설계 고려 사항을 참조하십시오.

  • 조직의 포렌식 및 보안 리소스가 같은 팀에 있고 팀원 중 누구라도 모든 기능을 수행할 수 있는 경우에도 별도의 보안 도구 및 포렌식 계정을 사용하는 것이 좋습니다. 함수를 별도의 계정으로 분할하면 최소 권한을 지원하고, 진행 중인 보안 이벤트 분석으로 인한 오염을 방지하고, 수집된 아티팩트의 무결성을 강화하는 데 도움이 됩니다.

  • 직무 분리, 최소 권한 및 제한적인 가드레일을 더 강조하려면 별도의 포렌식 OU를 만들어 이 계정을 호스팅할 수 있습니다.

  • 조직에서 변경할 수 없는 인프라 리소스를 사용하는 경우 리소스를 자동으로 삭제하고(예: 스케일 다운 이벤트 도중) 보안 인시던트를 탐지하기 전에 포렌식적으로 가치가 있는 정보를 손실할 수 있습니다. 이를 방지하려면 각 리소스에 대해 포렌식 수집 프로세스를 실행하는 것이 좋습니다. 수집되는 데이터의 양을 줄이려면 환경, 워크로드의 비즈니스 중요도, 처리되는 데이터 유형 등과 같은 요소를 고려할 수 있습니다.

  • Amazon을 사용하여 깨끗한 워크스테이션을 WorkSpaces 가동하는 것을 고려해 보십시오. 이렇게 하면 조사 중에 이해 관계자의 작업을 분리하는 데 도움이 될 수 있습니다.

아마존 GuardDuty

GuardDutyAmazon은 악의적인 활동과 무단 행동을 지속적으로 모니터링하여 AWS 계정과 워크로드를 보호하는 탐지 서비스입니다. 일반적인 AWS SRA 지침은 보안 도구 계정 GuardDuty섹션의 Amazon을 참조하십시오.

GuardDuty 조사 결과를 사용하여 잠재적으로 손상된 EC2 인스턴스의 디스크 및 메모리 이미지를 캡처하는 포렌식 워크플로를 시작할 수 있습니다. 이렇게 하면 사람의 상호 작용이 줄어들고 포렌식 데이터 수집 속도가 크게 향상될 수 있습니다. GuardDuty Amazon과 EventBridge 통합하여 새로운 GuardDuty 결과에 대한 응답을 자동화할 수 있습니다.

GuardDuty 검색 유형 목록이 늘어나고 있습니다. 포렌식 워크플로를 시작해야 하는 검색 유형(예: Amazon EC2, Amazon EKS, 멀웨어 보호 등)을 고려해야 합니다.

컨테인먼트 및 포렌식 데이터 수집 프로세스를 GuardDuty 검색 결과와 완전히 자동화하여 디스크 및 메모리 아티팩트의 조사를 캡처하고 EC2 인스턴스를 격리할 수 있습니다. 예를 들어 보안 그룹에서 모든 수신 및 송신 규칙을 제거한 경우 네트워크 ACL을 적용하여 기존 연결을 중단하고 IAM 정책을 연결하여 모든 요청을 거부할 수 있습니다.

설계 고려 사항
  • AWS 서비스에 따라 고객의 공동 책임은 달라질 수 있습니다. 예를 들어 EC2 인스턴스에서 변동성이 큰 데이터 캡처는 해당 인스턴스 자체에서만 가능하며, 여기에는 포렌식 증거로 사용할 수 있는 중요한 데이터가 포함될 수 있습니다. 반대로, Amazon S3에 대한 결과에 대한 대응 및 조사에는 주로 CloudTrail 데이터 또는 Amazon S3 액세스 로그가 포함됩니다. 고객의 공동 책임, 일반적인 프로세스 흐름, 보안이 필요한 캡처된 아티팩트에 따라 보안 도구 및 포렌식 계정 모두에서 대응 자동화를 구성해야 합니다.

  • EC2 인스턴스를 격리하기 전에 전반적인 비즈니스 영향과 중요도를 평가하세요. 자동화를 사용하여 EC2 인스턴스를 포함하기 전에 적절한 이해 관계자와 협의하는 프로세스를 수립하는 것을 고려하세요.

AWS Security Hub

AWS Security Hub에서는 AWS에서 보안 상태를 포괄적으로 파악할 수 있으며 보안 업계 표준 및 모범 사례와 비교하여 환경을 확인할 수 있습니다. Security Hub는 AWS 통합 서비스, 지원되는 타사 제품 및 사용자가 사용할 수 있는 기타 사용자 지정 보안 제품에서 보안 데이터를 수집합니다. 이 서비스는 보안 추세를 지속적으로 모니터링 및 분석하고 우선 순위가 가장 높은 보안 문제를 식별하는 데 도움을 줍니다. 일반적인 AWS SRA 지침은 보안 도구 계정 섹션의 AWS Security Hub를 참조하세요.

보안 상태를 모니터링하는 것 외에도 Security Hub는 Amazon과의 통합을 EventBridge 지원하여 특정 발견의 수정을 자동화합니다. 예를 들어, 포렌식 프로세스를 구현하기 위해 AWS Lambda 함수 또는 AWS Step Functions 워크플로를 실행하도록 프로그래밍할 수 있는 사용자 지정 작업을 정의할 수 있습니다.

Security Hub 사용자 지정 조치는 승인된 보안 분석가 또는 리소스가 억제 및 포렌식 자동화를 구현할 수 있는 표준화된 메커니즘을 제공합니다. 이를 통해 포렌식 증거의 억제 및 캡처 시 사람의 상호 작용이 줄어듭니다. 자동화된 프로세스에 수동 체크포인트를 추가하여 포렌식 수집이 실제로 필요한지 확인할 수 있습니다.

설계 고려 사항
  • Security Hub를 AWS 파트너 솔루션을 비롯한 많은 서비스와 통합할 수 있습니다. 조직에서 완전히 미세 조정되지 않아 가끔씩 오탐지 경보가 발생하는 탐지 보안 제어를 사용하는 경우, 포렌식 수집 프로세스를 완전히 자동화하면 해당 프로세스가 불필요하게 실행될 수 있습니다.

아마존 EventBridge

EventBridgeAmazon은 애플리케이션을 다양한 소스의 데이터에 쉽게 연결할 수 있는 서버리스 이벤트 버스 서비스입니다. 보안 자동화에 자주 사용합니다. 일반적인 AWS SRA 지침은 보안 도구 계정 EventBridge섹션의 Amazon을 참조하십시오.

예를 들어 Step Functions에서 포렌식 워크플로를 시작하는 EventBridge 메커니즘으로 사용하여 다음과 같은 보안 모니터링 도구에서 탐지한 내용을 기반으로 디스크 및 메모리 이미지를 캡처할 수 있습니다. GuardDuty 또는 좀 더 수동적인 방법으로 사용할 수도 있습니다. 에서 태그 변경 이벤트를 감지하여 Step Functions에서 CloudTrail 포렌식 워크플로를 시작할 수 있습니다. EventBridge

AWS Step Functions

AWS Step FunctionsAWS Lambda 함수와 기타 AWS 서비스를 결합할 수 있는 서버리스 오케스트레이션 서비스로, 비즈니스 크리티컬 애플리케이션을 구축합니다. Step Functions 그래픽 콘솔에서는 애플리케이션의 워크플로를 일련의 이벤트 기반 단계로 볼 수 있습니다. Step Functions는 상태 시스템과 작업에 기반합니다. Step Functions에서는 워크플로를 상태 시스템이라고 하며, 이는 일련의 이벤트 기반 단계입니다. 워크플로의 각 단계를 상태라고 합니다. 작업 상태는 Lambda와 같은 다른 AWS 서비스가 수행하는 작업 단위를 나타냅니다. 태스크 상태는 모든 AWS 서비스 또는 API를 호출할 수 있습니다. Step Functions에 내장된 컨트롤을 사용하여 워크플로의 각 단계 상태를 검사하여 각 단계가 올바른 순서로 예상대로 실행되는지 확인할 수 있습니다. 사용 사례에 따라 Step Functions가 Lambda와 같은 AWS 서비스를 호출하여 작업을 수행하도록 할 수 있습니다. 또한 사람의 상호 작용이 필요한 애플리케이션을 위해 오래 실행되는 자동화된 워크플로를 만들 수 있습니다.

Step Functions는 AWS 로그를 통해 검증할 수 있는 반복 가능하고 자동화된 사전 정의된 단계 세트를 지원하므로 포렌식 프로세스에 사용하기에 이상적입니다. 이를 통해 사람의 개입을 배제하고 포렌식 프로세스에서 실수를 방지할 수 있습니다.

설계 고려 사항
  • Step Functions 워크플로를 수동 또는 자동으로 시작하여 또는 Security Hub에서 보안 침해가 발견되면 GuardDuty 보안 데이터를 캡처하고 분석할 수 있습니다. 사람의 상호 작용을 최소화하거나 없앤 자동화를 통해 많은 리소스에 영향을 미치는 중대한 보안 이벤트가 발생할 경우 팀을 신속하게 확장할 수 있습니다.

  • 완전 자동화된 워크플로를 제한하기 위해 일부 수동 개입을 위한 단계를 자동화 흐름에 포함할 수 있습니다. 예를 들어, 승인된 보안 분석가나 팀 구성원이 생성된 보안 결과를 검토하여 포렌식 증거 수집을 시작할지, 영향을 받는 리소스를 격리하고 격리할지, 아니면 둘 다할지 결정하도록 요구할 수 있습니다.

  • 보안 도구 (예: Security GuardDuty Hub) 에서 생성된 활성 검색 결과 없이 포렌식 조사를 시작하려면 포렌식 Step Functions 워크플로를 호출하는 추가 통합을 구현해야 합니다. 특정 CloudTrail 이벤트 (예: 태그 변경 이벤트) 를 찾는 EventBridge 규칙을 만들거나 보안 분석가 또는 팀 구성원이 콘솔에서 직접 포렌식 Step Functions 워크플로를 시작하도록 허용하여 이 작업을 수행할 수 있습니다. 또한 Step Functions를 사용하여 조직의 티켓팅 시스템과 통합하여 실행 가능한 티켓을 만들 수 있습니다.

AWS Lambda

AWS Lambda를 사용하면 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있습니다. 사용한 컴퓨팅 시간에 대해서만 비용을 지불하면 됩니다. 코드가 실행되지 않을 때는 비용이 부과되지 않습니다. Lambda는 고가용성 컴퓨팅 인프라에서 코드를 실행하고 서버와 운영 체제 유지 관리, 용량 프로비저닝 및 자동 조정, 코드 및 보안 패치 배포, 로깅 등 모든 컴퓨팅 리소스를 관리합니다. Lambda가 지원하는 언어 런타임 중 하나로 코드를 제공한 다음 Lambda 함수로 코드를 구성합니다. Lambda 서비스는 필요할 때만 함수를 실행하고 자동으로 확장됩니다.

포렌식 조사의 맥락에서 Lambda 함수를 사용하면 Lambda 코드에 정의된 반복 가능하고 자동화된 사전 정의된 단계를 통해 지속적인 결과를 얻을 수 있습니다. Lambda 함수가 실행되면 적절한 프로세스가 구현되었는지 확인하는 데 도움이 되는 로그가 생성됩니다.

설계 고려 사항
  • Lambda 함수의 제한 시간은 15분이지만, 관련 증거를 수집하기 위한 포괄적인 포렌식 프로세스는 더 오래 걸릴 수 있습니다. 따라서 Step Functions 워크플로에 통합된 Lambda 함수를 사용하여 포렌식 프로세스를 조율하는 것이 좋습니다. 워크플로를 통해 올바른 순서로 Lambda 함수를 생성할 수 있으며, 각 Lambda 함수는 개별 수집 단계를 구현합니다.

  • 포렌식 Lambda 함수를 Step Functions 워크플로로 구성하면 포렌식 수집 프로시저의 일부를 병렬로 실행하여 수집 속도를 높일 수 있습니다. 예를 들어, 여러 볼륨이 범위 내에 있을 때 디스크 이미지 생성에 대한 정보를 더 빠르게 수집할 수 있습니다.

AWS KMS

AWS Key Management Service(AWS KMS)를 사용하면 암호화 키를 생성 및 관리하고 광범위한 AWS 서비스와 애플리케이션에서 해당 키의 사용을 제어할 수 있습니다. 일반적인 AWS SRA 지침은 보안 도구 계정 섹션의 AWS KMS를 참조하세요.

포렌식 프로세스의 일환으로 비즈니스에 미치는 영향을 최소화하기 위해 격리된 환경에서 데이터 수집 및 조사를 수행해야 합니다. 이 프로세스에서는 데이터 보안 및 무결성이 침해될 수 없으며 잠재적으로 침해될 수 있는 계정과 포렌삭 계정 간에 스냅샷 및 디스크 볼륨과 같은 암호화된 리소스를 공유할 수 있는 프로세스를 마련해야 합니다. 이를 위해 조직은 관련 AWS KMS 리소스 정책이 암호화된 데이터 읽기를 지원하고 포렌식 계정의 AWS KMS 키로 데이터를 다시 암호화하여 데이터를 안전하게 보호하는지 확인해야 합니다.

설계 고려 사항
  • 조직의 KMS 키 정책은 포렌식에 대해 승인된 IAM 보안 주체가 키를 사용하여 소스 계정의 데이터를 해독하고 포렌식 계정에서 데이터를 다시 암호화할 수 있도록 허용해야 합니다. 코드형 인프라(IaC)를 사용하여 AWS KMS에서 조직의 모든 키를 중앙에서 관리함으로써 승인된 IAM 보안 주체만 적절하고 최소 권한으로 액세스할 수 있도록 할 수 있습니다. 이러한 권한은 포렌식 조사 중에 수집될 수 있는 AWS의 리소스를 암호화하는 데 사용할 수 있는 모든 KMS 키에 존재해야 합니다. 보안 이벤트 이후에 KMS 키 정책을 업데이트하면 사용 중인 KMS 키에 대한 후속 리소스 정책 업데이트가 비즈니스에 영향을 미칠 수 있습니다. 또한 권한 문제로 인해 보안 이벤트의 전체 평균 응답 시간(MTTR)이 늘어날 수 있습니다.