Chapter 13

GuardDuty 위협 탐지

"AWS 계정의 보안 위협을 AI가 자동으로 탐지하자"

학습 목표

  • Amazon GuardDuty의 역할과 작동 원리를 이해한다
  • GuardDuty가 분석하는 데이터 소스 4가지를 설명할 수 있다
  • GuardDuty를 활성화하고 대시보드를 탐색할 수 있다
  • 샘플 결과(Sample Findings)를 생성하고 심각도별로 분석할 수 있다

GuardDuty란?

Amazon GuardDuty는 AWS 계정과 워크로드를 지능적으로 모니터링하고 보안 위협을 자동으로 탐지하는 서비스입니다. 머신러닝(ML), 이상 탐지(Anomaly Detection), 통합 위협 인텔리전스(Threat Intelligence)를 사용하여 악의적인 활동을 식별합니다.

비유로 이해하기: AI 경비원

이전 챕터에서 배운 CloudTrail이 CCTV 녹화기(모든 활동을 기록)라면, GuardDuty는 24시간 CCTV를 감시하는 AI 경비원입니다. CCTV가 녹화만 한다면, AI 경비원은 화면을 실시간으로 분석하여 수상한 행동이 감지되면 즉시 알려줍니다.

비유AWS 서비스역할
CCTV 녹화기CloudTrail모든 API 호출을 기록
AI 경비원GuardDuty로그를 분석하여 위협 탐지
경비 보고서GuardDuty Findings탐지된 위협 상세 정보

CloudTrail vs GuardDuty - 무엇이 다른가?

CloudTrail과 GuardDuty는 보완적인 관계입니다. CloudTrail이 모든 활동을 기록하는 것에 집중한다면, GuardDuty는 그 기록을 포함한 여러 데이터를 분석하여 위협을 탐지합니다.

항목CloudTrail (Ch.12)GuardDuty (Ch.13)
목적API 호출 기록 (감사 로깅)보안 위협 자동 탐지
방식모든 이벤트를 수동적으로 기록ML/AI로 능동적으로 분석
출력이벤트 로그 (JSON)보안 결과 (Findings)
사용자 역할로그를 직접 검색하여 조사자동 탐지된 결과를 확인
비유CCTV가 24시간 녹화AI가 CCTV를 감시하고 알림
핵심 개념: GuardDuty의 3가지 탐지 기술
  • 머신러닝 (Machine Learning): 정상적인 계정 활동 패턴을 학습한 후, 비정상적인 활동을 자동으로 식별합니다. 예: 평소 서울 리전만 사용하는데 갑자기 미국 버지니아에서 API 호출이 발생하면 이상으로 감지.
  • 이상 탐지 (Anomaly Detection): 계정의 평소 사용 패턴과 다른 행동을 탐지합니다. 예: 평소 하루 100건의 API 호출이 갑자기 10,000건으로 급증.
  • 위협 인텔리전스 (Threat Intelligence): AWS가 수집한 알려진 악성 IP, 도메인 목록과 대조합니다. 예: 알려진 비트코인 채굴 풀 도메인에 대한 DNS 조회 탐지.

데이터 소스와 탐지 유형

GuardDuty가 분석하는 데이터 소스

GuardDuty는 다음 4가지 데이터 소스를 자동으로 수집하고 분석합니다. 별도의 설정이나 에이전트 설치가 필요 없습니다.

데이터 소스설명탐지 예시
VPC Flow Logs VPC 내 네트워크 트래픽 정보 비정상적인 포트 스캔, 외부 악성 IP와의 통신
CloudTrail 관리 이벤트 AWS API 호출 기록 비인가 API 호출, 비정상적인 리소스 생성
CloudTrail S3 데이터 이벤트 S3 버킷 수준의 API 활동 S3 버킷 퍼블릭 노출, 비정상적인 데이터 접근
DNS Logs EC2 인스턴스의 DNS 쿼리 악성 도메인 조회, 크립토마이닝 풀 접속
별도 활성화 불필요

GuardDuty는 VPC Flow Logs나 CloudTrail을 별도로 활성화하지 않아도 자체적으로 필요한 데이터를 수집합니다. 물론 Chapter 12에서 CloudTrail을 활성화하면 감사 로깅과 위협 탐지를 동시에 수행할 수 있어 더욱 효과적입니다.

주요 탐지 유형 (Finding Types)

GuardDuty는 탐지 결과를 Finding이라고 부르며, 크게 3가지 카테고리로 분류합니다.

카테고리설명탐지 예시
정찰 (Reconnaissance) 공격자가 시스템 정보를 수집하는 단계 Recon:EC2/PortProbeUnprotectedPort
보호되지 않은 포트에 대한 포트 스캔 탐지
인스턴스 침해 (Instance Compromise) EC2 인스턴스가 악성 활동에 사용되는 경우 CryptoCurrency:EC2/BitcoinTool.B!DNS
EC2에서 암호화폐 채굴 도구 실행 탐지
계정 침해 (Account Compromise) AWS 계정 자격 증명이 유출되었을 가능성 UnauthorizedAccess:IAMUser/ConsoleLoginSuccess.B
비정상적인 위치에서의 콘솔 로그인

심각도 수준 (Severity Levels)

각 Finding에는 심각도가 부여되어 우선순위를 결정할 수 있습니다.

심각도수치 범위의미대응
Low (낮음) 1.0 ~ 3.9 정상 활동일 수 있는 수준의 의심스러운 활동 참고 및 모니터링
Medium (중간) 4.0 ~ 6.9 예상 패턴에서 벗어난 의심스러운 활동 원인 조사 필요
High (높음) 7.0 ~ 10.0 리소스가 침해되었을 가능성이 높은 활동 즉시 대응 필요
비용 안내: 30일 무료 체험

GuardDuty는 30일 무료 체험을 제공합니다. 무료 체험 기간 동안 GuardDuty 콘솔의 Usage 페이지에서 예상 비용을 확인할 수 있습니다. 무료 체험 종료 후에는 분석한 데이터 양에 따라 과금됩니다. 실습 후 Chapter 14 리소스 정리 시 반드시 GuardDuty를 비활성화하세요!

실습: GuardDuty 위협 탐지

시작 전 확인사항
  • AWS 콘솔에 로그인되어 있는지 확인하세요
  • 리전이 아시아 태평양 (서울) ap-northeast-2로 설정되어 있는지 확인하세요
  • GuardDuty는 계정당 리전당 한 번만 활성화하면 됩니다
실습: GuardDuty 활성화 및 위협 탐지 체험
예상 소요 시간: 약 15~20분

GuardDuty 활성화는 클릭 한 번으로 완료됩니다. 이번 실습은 주로 샘플 결과를 생성하고 분석하는 과정입니다.

  1. GuardDuty 활성화

    AWS 계정에서 GuardDuty 서비스를 활성화합니다. 한 번 활성화하면 자동으로 VPC Flow Logs, CloudTrail 이벤트, DNS 로그를 분석하기 시작합니다.

    활성화 방법

    • 서비스: Amazon GuardDuty
    • 리전: ap-northeast-2 (서울) 확인
    • 작업: GuardDuty 활성화 (Get Started → Enable GuardDuty)
    활성화만 하면 끝!

    GuardDuty는 에이전트 설치나 복잡한 설정 없이 활성화 버튼 하나로 시작됩니다. 활성화 즉시 데이터 소스를 수집하고 분석을 시작합니다. 이것이 GuardDuty의 가장 큰 장점입니다.

    AWS 콘솔 상단 검색창에 GuardDuty를 입력하고 서비스를 선택합니다. "Get Started" 또는 "시작하기" 버튼을 클릭한 후, "Enable GuardDuty" 또는 "GuardDuty 활성화" 버튼을 클릭합니다.

  2. GuardDuty 대시보드 확인

    GuardDuty가 활성화된 후 대시보드의 주요 메뉴를 탐색합니다. 방금 활성화했으므로 아직 탐지 결과(Findings)가 없는 것이 정상입니다.

    확인할 메뉴

    메뉴설명확인 내용
    Findings (결과) 탐지된 보안 위협 목록 아직 비어 있음 (정상)
    Settings (설정) GuardDuty 구성 및 데이터 소스 Detector ID, 데이터 소스 상태 확인
    Usage (사용량) 데이터 분석량 및 예상 비용 무료 체험 기간 남은 일수 확인
    Findings가 비어 있는 이유

    GuardDuty를 방금 활성화했으므로 아직 충분한 데이터를 수집하지 못했습니다. 실제 환경에서는 활성화 후 수 시간에서 며칠이 지나야 의미 있는 결과가 나타납니다. 다음 단계에서 샘플 결과를 생성하여 어떤 형태의 탐지 결과가 나오는지 미리 확인해보겠습니다.

    GuardDuty 콘솔 왼쪽 메뉴에서 Findings, Settings, Usage를 차례로 클릭하여 각 화면을 확인합니다. Settings에서 Detector ID를 메모해 두면 CLI 실습에 유용합니다.

  3. GuardDuty 샘플 결과 생성

    실제 위협이 탐지되기를 기다리기 어려우므로, GuardDuty에서 제공하는 샘플 결과(Sample Findings)를 생성합니다. 샘플 결과는 실제 탐지 결과와 동일한 형태이지만 "[SAMPLE]" 접두사가 붙습니다.

    샘플 결과 생성 방법

    • 위치: GuardDuty → Settings (설정)
    • 작업: "Generate sample findings" (샘플 결과 생성) 버튼 클릭
    샘플 결과란?

    샘플 결과는 GuardDuty가 실제로 탐지할 수 있는 위협 유형을 시뮬레이션한 것입니다. 포트 스캔, SSH 무차별 대입 공격, 암호화폐 채굴 등 다양한 위협 유형의 결과가 생성됩니다. 모든 샘플 결과에는 [SAMPLE] 표시가 붙어 실제 위협과 구분됩니다.

    GuardDuty 콘솔 왼쪽 메뉴에서 Settings를 클릭합니다. 페이지 중간 또는 하단에 있는 "Generate sample findings" 버튼을 클릭합니다. 완료되면 왼쪽 메뉴에서 Findings를 클릭하여 생성된 샘플 결과를 확인합니다.

  4. 샘플 결과 분석

    생성된 샘플 결과(Findings)를 분석합니다. 심각도별로 정렬하고, 각 결과의 상세 정보를 확인하여 어떤 위협이 탐지되었는지, 어떻게 대응해야 하는지 파악합니다.

    분석 순서

    1. Findings 페이지에서 Severity (심각도) 기준으로 정렬합니다
    2. High (높음) 심각도의 결과를 하나 클릭하여 상세 정보를 확인합니다
    3. 결과의 다음 항목들을 확인합니다:
      • Finding type: 어떤 유형의 위협인지
      • Severity: 심각도 수준 (High/Medium/Low)
      • Resource affected: 영향 받은 리소스
      • Action: 탐지된 활동의 상세 내용
      • Actor: 위협 행위자 정보 (IP, 위치 등)
    4. MediumLow 심각도의 결과도 각각 하나씩 확인합니다

    찾아볼 주요 샘플 결과

    Finding Type심각도설명
    Recon:EC2/PortProbeUnprotectedPort Low 보호되지 않은 포트에 대한 외부 포트 스캔
    UnauthorizedAccess:EC2/SSHBruteForce Low SSH 무차별 대입 로그인 시도
    CryptoCurrency:EC2/BitcoinTool.B!DNS High EC2에서 암호화폐 채굴 관련 DNS 조회 탐지
    실무에서의 대응 전략
    • High 심각도: 즉시 조사하고 대응합니다. 예: 크립토마이닝이 탐지되면 즉시 해당 EC2 인스턴스를 격리(보안 그룹 변경)하고, 침해 원인을 조사합니다.
    • Medium 심각도: 원인을 파악하고 필요시 조치합니다. 예: 비정상적인 API 호출이 탐지되면 해당 IAM 사용자의 활동을 CloudTrail에서 확인합니다.
    • Low 심각도: 모니터링하고 기록합니다. 예: 포트 스캔은 인터넷에서 흔히 발생하므로, 보안 그룹 규칙이 적절한지 확인합니다.

    GuardDuty → Findings 페이지에서 Severity 열 헤더를 클릭하면 심각도 기준으로 정렬됩니다. 각 결과(행)를 클릭하면 오른쪽에 상세 정보 패널이 표시됩니다. 상세 패널에서 "Finding type", "Severity", "Resource affected" 등의 정보를 확인하세요.

확인 사항

  • GuardDuty가 ap-northeast-2 리전에서 활성화되었는가?
  • Settings에서 Detector ID를 확인했는가?
  • 데이터 소스(VPC Flow Logs, CloudTrail Events, DNS Logs)가 활성화 상태인가?
  • Usage 페이지에서 무료 체험 기간을 확인했는가?
  • 샘플 결과(Sample Findings)가 성공적으로 생성되었는가?
  • High 심각도의 샘플 결과를 클릭하여 상세 정보를 확인했는가?
  • Finding type, Severity, Resource affected, Action 항목을 이해했는가?
  • Low, Medium, High 심각도별 대응 전략을 이해했는가?
Chapter 14에서 반드시 비활성화하세요!

GuardDuty는 30일 무료 체험 이후 분석한 데이터 양에 따라 과금됩니다. Chapter 14 리소스 정리 시 반드시 GuardDuty를 비활성화(Suspend 또는 Disable)하세요. 비활성화하지 않으면 무료 체험 종료 후 매월 비용이 발생합니다.

이번 챕터에서 달성한 것
  • GuardDuty의 역할과 CloudTrail과의 차이를 이해
  • GuardDuty가 분석하는 4가지 데이터 소스를 학습
  • GuardDuty를 활성화하고 대시보드를 탐색
  • 샘플 결과를 생성하고 심각도별로 분석
  • 보안 위협 탐지에서 대응까지의 흐름을 이해
보안 챕터 전체 정리 (Ch.07 ~ Ch.13)

지금까지 7개의 보안 챕터를 통해 ShopEasy 서비스의 보안을 단계적으로 강화했습니다.

챕터서비스보안 영역
Ch.07Security Group네트워크 접근 제어
Ch.08IAM최소 권한 원칙
Ch.09S3스토리지 보안
Ch.10KMS데이터 암호화
Ch.11Secrets Manager비밀 정보 관리
Ch.12CloudTrail감사 로깅 (누가 무엇을 했는가)
Ch.13GuardDuty위협 탐지 (악의적 활동 자동 탐지)

다음 Chapter 14에서는 CloudWatch로 서비스를 모니터링하고, 실습에서 생성한 모든 리소스를 정리합니다.