[reinvent 2025] GuardDuty의 런타임 탐지 테스트: 실제 공격 시나리오 실습

Summary

Amazon GuardDuty의 Runtime 위협 탐지 기능을 실제 공격 시나리오를 통해 검증하는 방법을 소개하는 세션입니다. MITRE ATT&CK 프레임워크에 매핑된 실제 공격 테스트 케이스를 활용하여 GuardDuty의 탐지 능력을 효과적으로 평가하고, 보안 통제에 대한 신뢰도를 높이는 실용적인 검증 전략을 배울 수 있습니다.

리인벤트 2025 테크 블로그의 더 많은 글이 보고 싶다면?

AWS re:Invent 2025 Tech Blog written by MegazoneCloud

Overview

  • Title: Testing GuardDuty’s Runtime Detections:Hands-on with real world attack scenarios
  • Date: 2025년 12월 1일 (월)
  • Venue: Mandalay Bay | Level 3 South | South Seas J
  • Speaker:
  • Marshall Jones, Security Specialist Solutions Architect, AWS
  • Muhammad Wasiq, Principal Security Engineer, Amazon(AWS)
  • Industry: All Industries

들어가며

클라우드 환경에서의 보안 위협 탐지는 더 이상 선택이 아닌 필수입니다. 특히 런타임 단계에서 발생하는 위협을 실시간으로 탐지하고 대응하는 것은 보안 조직의 핵심 역량이 되었습니다. 이번 세션을 신청한 이유는 Amazon GuardDuty Runtime Monitoring 기능이 실제 공격 시나리오에서 어떻게 작동하는지, 그리고 고객 환경에서 이를 어떻게 검증할 수 있는지에 대한 실질적인 인사이트를 얻기 위함이었습니다. 이번 세션에서 주목할 내용은 실제 AWS 고객 공격 사례 기반의 위협 탐지, MITRE ATT&CK 기반의 현실적인 테스트 시나리오, 그리고 GuardDuty Tester를 활용한 실습 데모입니다.

1. GuardDuty Runtime Monitoring의 핵심: 실제 공격 데이터 기반 탐지

세션 발표자인 Muhammad Wasiq는 Amazon GuardDuty의 수석 보안 엔지니어로, 지난 3년간 GuardDuty의 런타임 모니터링 기능 개발에 집중해왔습니다. 그가 강조한 핵심 메시지는 “실제 공격 데이터에 기반한 위협 탐지의 중요성”이었습니다.

GuardDuty Runtime Monitoring은 AWS 컴퓨팅 리소스(EC2, ECS, EKS)에 eBPF(extended Berkeley Packet Filter) 에이전트를 배포하여 운영체제 레벨의 이벤트를 수집하고, 이를 GuardDuty 백엔드로 전송하여 실시간 위협 탐지를 수행합니다. 기존의 CloudTrail 로그나 VPC Flow 로그 기반 탐지와는 달리, 런타임 단계에서 발생하는 프로세스 실행, 파일 접근, 네트워크 연결 등의 세밀한 활동을 모니터링할 수 있습니다.

발표자는 GuardDuty가 실제 공격 정보를 수집하는 두 가지 주요 방법을 소개했습니다. 

첫째는 AWS CIRT(Customer Incident Response Team)가 고객의 실제 보안 사고 대응 과정에서 수집한 데이터입니다. AWS CIRT의 데이터 분석 결과,  AWS 고객을 대상으로 한 공격의 초기 침투 기법 중 상위 2가지는 자격증명 탈취와 공개 애플리케이션 취약점 공격인 것으로 나타났습니다.

자격증명 탈취는 공격자가 AWS IAM 자격증명을 획득하여 데이터 유출, 스팸 메일 발송, 비정상적인 API 호출 기반 활동을 수행하는 공격 패턴입니다. 획득한 자격증명은 때때로 컴퓨터 리소스 하이재킹(크립토마이닝 등)에도 사용될 수 있습니다. 공개 애플리케이션 취약점 공격은 취약한 웹 애플리케이션을 통해 WebShell을 배포하고, 이를 통해 크립토마이너나 DDoS 멀웨어를 실행하는 방식입니다.

둘째는 In-house와 3rd party 위협 인텔리전스입니다. 여기서 GuardDuty는 침해지표(IP주소, 도메인, 파일 해시 등), 공격 전술 및 기법, 활동 패턴, 그리고 공격 패턴(타겟 환경, 공격 시퀀스) 등을 학습합니다.

2. 현실적인 공격 시나리오: 단순 테스트를 넘어서

많은 고객들이 GuardDuty Runtime Monitoring을  테스트할 때 단순한 방법을 사용합니다. 예를 들어 단순히 cron job을 생성하여 지속성 탐지 테스트를 하는 것입니다. 하지만 이러한 단순 테스트에는 두 가지 중요한 문제가 있습니다.

첫째, 실제 공격과 동떨어져있습니다. 실제 공격은 여러 단계의 전술과 기법이 조합되어 체계적으로 진행되는데, 단일 행동만 테스트해서는 GuardDuty가 복합적인 공격 흐름에서 얼마나 정확하게 위협을 탐지하는지 검증할 수 없습니다.

발표자는 웹 애플리케이션 취약점을 통한 실제 공격 시나리오를 시각화하여 설명했습니다.

1단계: WebShell 배포

공격자는 웹 어플리케이션의 취약점을 악용하여 WebShell을 배포합니다. WebShell이 배포되면 공격자는 해당 운영체제에서 원하는 모든 명령을 실행할 수 있게 됩니다.

2단계: 스크립트 다운로드

AWS CIRT에서 관찰한 실제 공격 패턴에 따르면, 공격자가 가장 먼저 하는 작업은 스크립트를 다운로드하는 것입니다. 이 스크립트는 일종의 ‘다운로더’ 역할을 하며, 2차 멀웨어를 다운로드하는 데 사용됩니다. 2차 멀웨어는 크립토마이너, DDoS 멀웨어 등 다양한 형태일 수 있습니다.

3단계: 실행 권한 부여

다운로드한 2차 멀웨어는 기본적으로 실행 권한이 없기 때문에, 공격자는 chmod 명령을 사용하여 실행 가능하도록 권한을 변경합니다.

4단계: 멀웨어 실행

실행 권한을 얻은 후, 공격자는 2차 멀웨어를 실행합니다.

5단계: 지속성 확보

마지막으로 공격자는 시스템이 재부팅되더라도 멀웨어가 계속 실행될 수 있도록 scheduled task 또는 cron job을 생성합니다. 이를 통해 공격의 지속성을 확보합니다.

이 시나리오에서 GuardDuty가 학습하는 중요한 패턴들은 다음과 같습니다.

  • Curl 명령을 통해 IP 기반 URL에서 스크립트를 다운로드하고 파이프(|)로 Shell에 전달
  • 임시 파일에 cron job 명령을 작성한 후 cron tab 명령으로 로드
  • 모든 활동이 웹 애플리케이션(Apache 프로세스)에서 시작되는 프로세스 lineage
  • 특정 순서로 진행되는 공격 단계

3. Amazon GuardDuty Tester를 활용한 실습 데모

세션의 하이라이트는 Amazon GuardDuty Tester를 활용한 실제 공격 시나리오 실습이었습니다. Amazon GuardDuty Tester는 AWS에서 공개한 GitHub 오픈소스 도구(리포지토리명: amazon-guardduty-tester)로, 다양한 GuardDuty 탐지 기능을 테스트할 수 있도록 설계되었습니다.
테스트 환경 구축은 간단합니다. GuardDuty Tester의 설정 지침을 따라 격리된 VPC와 필요한 리소스(EC2, ECS, EKS 클러스터)를 생성합니다. 중요한 것은 GuardDuty Runtime Monitoring이 활성화되어 있어야 하며, 특히 Amazon EC2 및 AWS Fargate에 대한 에이전트 관리 기능을 모두 활성화해야 합니다.


실습은 두 단계로 진행됩니다

1단계: 취약한 PHP 애플리케이션 배포

  • EKS 클러스터에 취약한 PHP 웹 애플리케이션을 배포합니다
  • 이 애플리케이션은 의도적으로 WebShell 공격에 취약하도록 설계되었습니다
  • ECR에 PHP Apache 컨테이너 이미지를 업로드하고 EKS Pod를 생성합니다

2단계: 공격 시나리오 실행

  • Driver 인스턴스에 SSM(Systems Manager) Session Manager를 통해 접속합니다
  • runtime_scenarios/php_webshell 디렉토리의 공격 스크립트를 실행합니다
  • 스크립트는 자동으로 WebShell 배포, 명령 실행, 멀웨어 다운로드 및 실행, 지속성 확보 등을 시뮬레이션합니다

공격 스크립트는 다음과 같은 활동을 순차적으로 수행합니다

  • PHP 웹 애플리케이션의 index.php 취약점을 통해 WebShell 배포
  • WebShell을 통해 다양한 Discovery 명령 실행
  • 멀웨어 다운로드 및 실행
  • nmap을 통한 네트워크 정찰
  • 크립토마이너 실행

4. GuardDuty의 탐지 결과 분석

공격 시나리오 실행 후 GuardDuty 콘솔의 Findings 섹션을 확인하면 여러 개의 탐지 결과를 볼 수 있습니다.

1) Runtime:Process/SuspiciousCommand

  • WebShell을 통해 다수의 의심스러운 명령이 실행되었음을 탐지
  • lineage를 확인하면 Executable path가 Apache2로, PHP 웹 애플리케이션에서 시작되었음을 확인할 수 있습니다

2) Runtime:Network/SuspiciousTool

  • Executable path가 nmap임을 명확히 표시
  • nmap을 사용한 네트워크 정찰 활동 탐지

3) Runtime:Process/CryptocurrencyMiner

  • 크립토마이너 실행 탐지
  • 프로세스 lineage를 확인하면 Executable path가 Apache2로, 역시 PHP 웹 애플리케이션에서 시작되었음을 확인

4) Runtime:AttackSequence

  • 가장 중요한 탐지로, 전체 공격 시퀀스를 종합적으로 보여주는 aggregate 탐지 결과입니다
  • 공격 시나리오에서 발생한 모든 전술, 기법, 시그널을 포괄적으로 제공합니다
  • 보안 엔지니어가 전체 공격 흐름을 한눈에 파악할 수 있도록 지원합니다

결론

이번 세션을 통해 Amazon GuardDuty가 단순히 룰 기반 탐지를 넘어 실제 고객 공격 사례와 위협 인텔리전스를 기반으로 진화하는 위협 탐지 서비스임을 확인할 수 있었습니다. 특히 인상 깊었던 점은 AWS CIRT의 실제 사고 대응 데이터를 직접 활용하여 탐지 우선순위를 결정한다는 점입니다.
보안 솔루션을 도입할 때 가장 어려운 부분 중 하나가 “과연 이 솔루션이 실제 공격을 탐지할 수 있을까?”라는 의구심입니다. 이번 세션은 이러한 의구심을 해소하고, 고객이 직접 현실적인 공격 시나리오를 재현하고 탐지 능력을 검증할 수 있는 좋은 시간이었습니다.


글 │메가존클라우드, HALO, Cloud Security Advisory Unit, 권모아 매니저
게시물 주소가 복사되었습니다.