Amazon GuardDuty is AWS's managed threat detection service. It continuously analyses VPC Flow Logs, DNS query logs, CloudTrail management events, EKS audit logs, S3 data events, RDS login attempts, and Lambda activity, then fuses them with AWS-curated threat intelligence and machine-learning anomaly models to produce actionable findings — without any agents to deploy.
GuardDuty consumes log telemetry from across the account, evaluates it against threat-intelligence lists (malicious IPs, known C2 domains) and ML baselines (per-principal API behavior, per-bucket access patterns), and emits structured findings to Security Hub and EventBridge for downstream automation.
┌──────────────────────────────────────────────────────────────────────────────┐
│ DETECTION SOURCES │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────────┐ │
│ │ VPC Flow Log │ │ DNS Query Log│ │ CloudTrail Mgmt │ │
│ └──────────────┘ └──────────────┘ └──────────────────────────┘ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────────┐ │
│ │ S3 Data Evt │ │ EKS Audit │ │ RDS Login / Lambda Logs │ │
│ └──────────────┘ └──────────────┘ └──────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────────────┐
│ GUARDDUTY ENGINE │
│ ┌────────────────────┐ ┌────────────────────┐ ┌──────────────┐ │
│ │ Threat Intel + │ │ ML Anomaly Detect │ │ Signature │ │
│ │ Curated IP Lists │ │ (User / API / Net)│ │ Matching │ │
│ └────────────────────┘ └────────────────────┘ └──────────────┘ │
└──────────────────────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────────────┐
│ FINDINGS & SEVERITY │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────────┐ │
│ │ Recon, Trojan│ │ Crypto-Mining│ │ UnauthorizedAccess / │ │
│ │ Backdoor │ │ Exfiltration│ │ PenTest / Policy │ │
│ └──────────────┘ └──────────────┘ └──────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────────────┐
│ AUTOMATED RESPONSE │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────────┐ │
│ │ Security Hub │ │ EventBridge │ │ Lambda / SSM / SNS │ │
│ │ Aggregation │ │ Routing │ │ Quarantine, Page, Tag │ │
│ └──────────────┘ └──────────────┘ └──────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────────────┘
GuardDuty enables sources independently — you pay only for what you turn on. The defaults cover the common attack surface; the optional protections (S3, EKS, RDS, Lambda, Malware) target specific workloads.
kubectl exec, anonymous API server access, privilege escalation via service accounts.Findings follow a ThreatPurpose:ResourceType/ThreatFamilyName.DetectionMechanism!Variant taxonomy. Severity is scored 1.0–8.9 and bucketed into Low / Medium / High.
Recon:IAMUser/UserPermissions), unusual API discovery activity.CryptoCurrency:EC2/BitcoinTool.B).Findings publish to EventBridge within ~5 minutes. The standard response pipeline is GuardDuty → EventBridge rule (filtered on severity / type) → Lambda or SSM Automation document → remediation action.
# EventBridge rule: page on HIGH GuardDuty findings
EventPattern:
source: ["aws.guardduty"]
detail-type: ["GuardDuty Finding"]
detail:
severity: [{ numeric: [">=", 7.0] }]
type:
- prefix: "UnauthorizedAccess:"
- prefix: "CryptoCurrency:"
- prefix: "Backdoor:"
Targets:
- Arn: !GetAtt PagerDutyLambda.Arn
- Arn: !Ref SecurityIncidentSnsTopic
Common automated responses:
aws iam attach-user-policy with a deny-all policy and creates a Jira ticket for the owner.sts:AssumeRole calls per day will dominate the GuardDuty bill. Consider suppressing benign high-volume principals.create-sample-findings API. If your runbook doesn't fire end-to-end on a sample, it won't fire on a real attack at 3 AM.