본문으로 건너뛰기
김신건의 로그

[AWS] Amazon GuardDuty

· 수정 · 📖 약 4분 · 1,604자/단어 #aws #cloud #security #threat-detection #ml
AWS GuardDuty, Amazon GuardDuty, GuardDuty, GuardDuty Malware Protection, GuardDuty EKS Protection, GuardDuty S3 Protection, GuardDuty RDS Protection, GuardDuty Runtime Monitoring, AWS 위협 탐지, AWS 이상 탐지

정의

Amazon GuardDuty 는 AWS 계정 활동 로그를 머신러닝위협 인텔리전스 로 지속 분석하여 악의적 활동/이상 행동을 감지하는 관리형 위협 탐지 서비스입니다.

한 줄 요약: “누가 이상하게 뭘 하고 있나?” 에 답. 무엇을 저장하는지 (Macie) 가 아니라 누가 어떻게 접근하는지 를 봅니다.

왜 GuardDuty 인가

전통적 위협 탐지의 한계

  • SIEM 자체 운영: 로그 파싱, 규칙 작성, 튜닝 부담
  • 경보 피로: false-positive 폭주
  • 놓친 위협: 사람이 규칙으로 다 못 잡음
  • 지연: 사고 발생 후 발견까지 며칠

GuardDuty 의 접근

  • 활성화 원클릭: 로그 파이프라인 구성 없음
  • AWS 자체 인텔리전스 + 3rd-party feed (Proofpoint, CrowdStrike)
  • ML anomaly detection: baseline 학습 후 이탈 감지
  • 낮은 false-positive: 지속 튜닝된 알고리즘

데이터 소스 (자동 소비, 별도 저장 X)

GuardDuty 는 다음 로그를 자체 인프라 안에서 소비. 계정 로그를 GuardDuty 로 복사 안 함:

  • CloudTrail Management Events: API 호출
  • CloudTrail S3 Data Events (optional)
  • VPC Flow Logs: 네트워크 흐름
  • DNS Logs (Route 53 Resolver): DNS 쿼리
  • EKS Audit Logs (optional)
  • RDS Login Events (optional)
  • Lambda Network Activity (optional)
  • S3 Data Events (optional)
  • EBS Volume Data (Malware Protection)
  • Container Runtime (Runtime Monitoring)

중요: 이 로그들이 계정에 활성화 안 돼 있어도 GuardDuty 는 자체적으로 캡처 (별도 CloudTrail 활성 불필요, 별도 요금 없음).

탐지 카테고리

1. Reconnaissance (정찰)

공격자의 정보 수집:

  • Recon:EC2/PortProbeEMRUnprotectedPort: EMR 포트 프로빙
  • Recon:IAMUser/UserPermissions: 권한 열거

2. Instance Compromise (인스턴스 침해)

EC2 가 통제되었을 가능성:

  • UnauthorizedAccess:EC2/SSHBruteForce: SSH 무차별 대입
  • CryptoCurrency:EC2/BitcoinTool.B!DNS: 암호화폐 채굴 도메인
  • Backdoor:EC2/C&CActivity.B: Command & Control 서버 통신

3. Account Compromise (계정 침해)

IAM credential 이 노출/오용:

  • UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration: EC2 credential 이 외부 IP 에서 사용
  • Discovery:IAMUser/AnomalousBehavior: 평소와 다른 API 호출 패턴
  • UnauthorizedAccess:IAMUser/ConsoleLoginSuccess.B: 특이 지역/디바이스에서 로그인

4. S3 관련

  • Policy:S3/BucketBlockPublicAccessDisabled: public access block 해제
  • UnauthorizedAccess:S3/MaliciousIPCaller: 알려진 악의 IP 에서 S3 접근
  • Discovery:S3/AnomalousBehavior: 이상 S3 활동

5. EKS 관련

  • Persistence:Kubernetes/ContainerWithSensitiveMount: hostPath 로 host filesystem mount
  • PrivilegeEscalation:Kubernetes/PrivilegedContainer: privileged container
  • Policy:Kubernetes/AnonymousAccessGranted: anonymous 접근 부여

6. Malware (Malware Protection 활성 시)

  • Trojan:EBS/EternalBlue!Trojan: EternalBlue 감지
  • CryptoCurrency:EBS/BitcoinTool!Miner: 채굴기

7. RDS 관련

  • CredentialAccess:RDS/AnomalousBehavior.SuccessfulBruteForce: DB 로그인 무차별
  • Discovery:RDS/MaliciousIPCaller: 악의 IP 에서 접속

8. Runtime Monitoring (EC2/ECS/EKS)

프로세스/파일/네트워크 실시간:

  • Execution:Runtime/SuspiciousShellCreated
  • Impact:Runtime/CryptoMinerExecuted
  • Persistence:Runtime/UsingCoreCredentials

보호 계층 (Add-ons)

기본 GuardDuty 외에 활성화 옵션:

Malware Protection for EC2

의심 활동 감지 시 EC2 EBS 볼륨 자동 스캔 (스냅샷 생성 -> Malware 시그니처 검사).

  • 별도 요금
  • 스캔 대상 자동 결정 (finding 기반)
  • 결과는 GuardDuty finding 으로

Malware Protection for S3

S3 업로드 객체 실시간 malware 스캔:

  • PutObject 이벤트 트리거
  • 감염 시 tag 부여 (GuardDutyMalwareScanStatus: THREATS_FOUND) 또는 EventBridge 로 자동 격리

EKS Protection

  • EKS audit log 분석
  • Runtime monitoring 옵션 (Node agent)

RDS Protection

RDS login 이상 감지 (Aurora MySQL/PostgreSQL, RDS MySQL/PostgreSQL).

Runtime Monitoring

EC2/ECS/EKS 안 프로세스, 파일, 네트워크 실시간 감시. Agent 필요.

  • Agent: SSM 통해 자동 배포 (EKS 는 add-on)
  • 커널 이벤트 (eBPF) 기반

Lambda Protection

Lambda 네트워크 활동 감시.

S3 Data Protection

S3 API 호출 (Get/Put/Delete) 상세 분석.

Finding 예시

{
  "schemaVersion": "2.0",
  "accountId": "123456789012",
  "region": "us-east-1",
  "partition": "aws",
  "id": "abc123",
  "type": "UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS",
  "severity": 8.0,
  "createdAt": "2026-07-07T10:15:32.000Z",
  "title": "Credentials for EC2 instance are being used from an external IP",
  "description": "Credentials created for i-abc123 are being used from a location outside AWS.",
  "resource": {
    "resourceType": "AccessKey",
    "accessKeyDetails": {
      "accessKeyId": "ASIA...",
      "userName": "i-abc123",
      "userType": "AssumedRole"
    }
  },
  "service": {
    "action": {
      "actionType": "AWS_API_CALL",
      "awsApiCallAction": {
        "api": "ListBuckets",
        "callerType": "Remote IP",
        "remoteIpDetails": {
          "ipAddressV4": "203.0.113.5",
          "geoLocation": {"lat": 55.7, "lon": 37.6},
          "country": {"countryName": "Russia"}
        }
      }
    },
    "count": 47
  }
}

이 finding = “EC2 인스턴스의 IMDSv2 credential 이 러시아 IP 에서 사용됨”. 즉시 credential rotation + 인스턴스 격리.

심각도 (Severity)

심각도점수의미
High7.0-8.9즉시 조치
Medium4.0-6.9조사 필요
Low1.0-3.9낮은 우선순위 (그래도 검토)

EventBridge 자동 대응

{
  "source": ["aws.guardduty"],
  "detail-type": ["GuardDuty Finding"],
  "detail": {
    "severity": [{"numeric": [">=", 7]}]
  }
}

Lambda 로 자동:

  • 침해 EC2 격리 (Security Group 재설정)
  • IAM key 비활성화
  • SNS + PagerDuty 알림
  • Slack channel 게시

Multi-Account (Organizations)

Delegated administrator 계정이 조직 전체 GuardDuty 관리:

aws organizations enable-aws-service-access \
  --service-principal guardduty.amazonaws.com

aws guardduty enable-organization-admin-account \
  --admin-account-id 111111111111
  • Central account 에서 모든 finding 통합
  • 새 계정 자동 활성
  • 계정별 정책 배포

Suppression Rules (억제 규칙)

False-positive 나 이미 알려진 예외를 억제:

{
  "name": "Ignore internal-scanner",
  "action": "ARCHIVE",
  "criteria": {
    "criterion": {
      "type": {"eq": ["Recon:EC2/Portscan"]},
      "resource.instanceDetails.tags.value": {"eq": ["internal-scanner"]}
    }
  }
}

Finding 이 매칭되면 자동 archived (알람 X).

요금

  • Foundational (기본): CloudTrail 이벤트 백만당, VPC Flow Logs GB 당, DNS Logs GB 당
  • Malware Protection for EC2: 스캔 GB 당
  • Malware Protection for S3: PutObject 이벤트 백만당 + 스캔 GB
  • EKS Protection: EKS audit event 백만당
  • Runtime Monitoring: vCPU 시간당
  • RDS Protection: RDS login 이벤트 백만당
  • Lambda Protection: Lambda invocation 백만당

주의: Runtime Monitoring 은 vCPU 시간당 비싼 편. 크리티컬 워크로드만 선택 적용.

활성화 실전

aws guardduty create-detector \
  --enable \
  --finding-publishing-frequency FIFTEEN_MINUTES \
  --features Name=EKS_AUDIT_LOGS,Status=ENABLED \
            Name=EBS_MALWARE_PROTECTION,Status=ENABLED \
            Name=RDS_LOGIN_EVENTS,Status=ENABLED \
            Name=EKS_RUNTIME_MONITORING,Status=ENABLED \
            Name=LAMBDA_NETWORK_LOGS,Status=ENABLED \
            Name=S3_DATA_EVENTS,Status=ENABLED

Macie 와의 관계

  • Macie: S3 데이터 (무엇)
  • GuardDuty: 활동 (누가/어떻게)

병행. Macie 가 발견한 민감 데이터 버킷을 GuardDuty 가 접근 이상으로 감시.

Inspector 와의 관계

  • Inspector: 취약점 (알려진 CVE, 설정 문제)
  • GuardDuty: 실시간 활동/위협

Inspector 는 정적 (사전), GuardDuty 는 동적 (사후/실시간).

실전 사용 사례

1. 계정 침해 실시간 감지

  • 새 IAM user 대량 생성
  • 이상 지역에서 콘솔 로그인
  • Root 활동
  • Public snapshot 공유

2. 컨테이너 위협

EKS Runtime Monitoring:

  • 컨테이너에서 shell 실행
  • privileged pod 생성
  • host filesystem mount

3. 데이터 유출 감지

  • 대량 S3 다운로드 (평소 대비)
  • 새로운 IP 에서 반복 접근
  • CloudTrail Data Events + GuardDuty

4. Malware 감지

  • Crypto mining process
  • 알려진 malware family 시그니처
  • C2 서버와의 통신

5. 컴플라이언스 (SOC 2, PCI)

지속 위협 감지 증명. Audit Manager 에 evidence 자동 공급.

함정

WARNING

비활성화하면 loss. GuardDuty 는 활성 상태에서만 감지. 대량 요금 예상돼도 요금 관리 (feature 선택) 가 정답.

CAUTION

False positive 정기 튜닝. Internal scanner, 정기 backup job 등 예외를 suppression rule 로.

WARNING

Runtime Monitoring 요금 큼. vCPU 시간당. 모든 EKS/ECS 에 켜지 말고 크리티컬만.

IMPORTANT

Finding 은 정보, 자동 조치는 별도. GuardDuty 자체는 alert 만. EventBridge + Lambda 로 자동 mitigation 필요.

CAUTION

Multi-region. GuardDuty 는 region-specific. 모든 활성 리전에 활성화 필수.

WARNING

Finding 30일 보관. 이후 삭제. 장기 보관은 S3 export.

관련 위키

이 글의 용어 (12개)
[AWS] Amazon Inspectorcloud
정의 Amazon Inspector (v2, 2021+) 는 AWS 워크로드의 취약점 (CVE) 과 의도치 않은 네트워크 노출 을 지속 스캔하는 서비스입니다. EC2, ECR 이…
[AWS] Amazon Maciecloud
정의 Amazon Macie 는 AWS 가 관리하는 데이터 보안 및 프라이버시 서비스 로, 머신러닝과 패턴 매칭을 이용해 S3 버킷의 민감 정보 (PII, PHI, 금융 정보, …
[AWS] Audit Manager (Automated Compliance Auditing)cloud
정의 AWS Audit Manager 는 AWS 사용량에 대한 감사 (audit) 준비 프로세스를 자동화 하는 서비스입니다. 규제 프레임워크 (CIS, PCI DSS, HIPAA…
[AWS] CloudTrail (API Activity Logging)cloud
정의 AWS CloudTrail 은 AWS 계정의 API 호출 및 사용자 활동을 기록 하는 감사 로깅 서비스입니다. "누가, 언제, 어디서, 어떤 API 를, 어떤 리소스에 대해…
[AWS] Config (Resource Configuration Tracking)cloud
정의 AWS Config 는 AWS 계정 안 리소스의 구성 (configuration) 상태를 지속 기록 하고, 정책 규칙 (Config Rules) 위반을 자동 감지하는 서비스…
[AWS] ECS (Elastic Container Service)cloud
정의 Amazon Elastic Container Service (ECS) 는 AWS 가 관리하는 컨테이너 오케스트레이터 입니다. Task definition (컨테이너 스펙) …
[AWS] EKS: managed Kubernetescloud
정의 EKS (Elastic Kubernetes Service) = AWS 의 managed K8s control plane. worker node 는 사용자 (또는 Fargat…
[AWS] EventBridge: 이벤트 버스, 스케줄러, partner sourcescloud
정의 EventBridge = AWS 의 통합 event bus. 옛 CloudWatch Events 의 후계. AWS service 이벤트 + custom 이벤트 + SaaS …
[AWS] IAM: User, Role, Policy, STScloud
정의 IAM (Identity and Access Management) = AWS 의 권한 관리 전부. User, Group, Role, Policy 로 구성. "누가 어떤 리소…
[AWS] Lambda: 서버리스 함수, 트리거, 동시성cloud
정의 AWS Lambda = 서버리스 함수 실행. 이벤트 트리거 → 함수 실행 → 결과 / 비동기 처리. 서버 관리 0. 사용 상황 | 상황 | Lambda 적합성 | |---|…
[AWS] Shield (DDoS Protection)cloud
정의 AWS Shield 는 AWS 워크로드를 분산 서비스 거부 (DDoS, Distributed Denial of Service) 공격으로부터 보호하는 관리형 서비스입니다. S…
[AWS] VPC: subnet, route, NAT, peeringcloud
정의 VPC (Virtual Private Cloud) = AWS 안의 논리적 격리 네트워크. CIDR 정의 + subnet 분할 + 라우팅. AWS 리소스를 격리된 네트워크에 …

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기