Asterrr's Handbook

Validating findings and scoping impact

Triaging GuardDuty, Security Hub, Macie and Inspector findings, telling true positives from expected activity, handling noise safely, and using Detective and log correlation to scope blast radius and root cause.

Exam tasks: 2.2.2 (search and correlate logs), 2.2.3 (validate findings to assess scope and impact), 2.2.5 (root cause analysis, for example with Detective)

The decision: is this finding real, how far could it and did it spread, and if it's expected, how do you quiet it without blinding yourself to the next real one?

The triage path

Questions to answer for every finding, in this order:

  • Who is the actor? An IAM principal, an IP, a container, a process. Is it one of yours?
  • What did it do, and did it succeed? A finding about denied calls is reconnaissance; successful calls are impact.
  • Where: which account, Region, resource, and is that resource production and holding sensitive data (look at tags and Macie results)?
  • When did it start? The first-seen time in the finding is when GuardDuty noticed, not necessarily when the attacker arrived.
  • What else is related? Other findings on the same principal, IP or instance.

Reading each service's findings

ServiceWhat the finding tells youSeverity scaleHow you validate it
GuardDutyThreat behaviour: an actor did something suspicious to or from a resourceLow, Medium, High, and Critical for attack sequencesCheck the actor IP and ASN, the principal's usual behaviour, CloudTrail for the named API calls, Flow Logs and DNS logs for the network ones
InspectorA vulnerability exists (CVE, network exposure, code issue)Inspector score: CVSS adjusted for network reachability and exploit availabilityIs the package really installed and loaded? Is the port reachable? Is there a fix?
MacieSensitive data found in S3, or a bucket's policy weakenedLow, Medium, HighOpen the sample occurrences, check the object's purpose and owner
Security Hub CSPMA control failed, plus imported findings from the others in ASFFNormalized labels (INFORMATIONAL to CRITICAL)Check the resource's configuration and whether an exception is approved
Security HubCorrelated exposure findings (misconfiguration + vulnerability + reachability) with an attack path graph, in OCSFCritical to informationalWalk the attack path: which step can you break most cheaply?
  • A posture finding (Inspector, Security Hub control) says "this could happen". A threat finding (GuardDuty) says "this is happening". Threat findings go to the incident path; posture findings usually go to the vulnerability backlog.
  • GuardDuty attack sequence findings already correlate several signals across data sources and time into one story, such as credential misuse followed by S3 exfiltration. Treat them as high-confidence starting points.
  • Security Hub and AWS Security Incident Response both help with the correlation, but neither replaces knowing what the underlying finding means.

Exam signal

"Which finding should the team investigate first?" Prefer an active threat on a production resource holding sensitive data over a critical CVE on an unreachable test instance. Context changes priority more than the raw severity number does.

Handling noise without going blind

ServiceMechanismWhat it does
GuardDutySuppression rulesAuto-archive new findings that match filter criteria. Findings are still generated and exported, just archived
GuardDutyTrusted IP listsNo findings for traffic to or from listed IPs, such as your own scanner
Security Hub CSPMAutomation rules (admin account, per Region)Set workflow status to SUPPRESSED, change severity, add notes, as findings arrive
Security Hub CSPMDisable a controlStop checking something that doesn't apply at all
MacieAllow lists, suppression rulesIgnore specific text or patterns (a test card number); auto-archive matching findings
InspectorSuppression rulesHide findings that match criteria from the default view
  • Make every rule narrow: a specific finding type and a specific resource, account, tag or IP. "Suppress all Recon findings" hides real attackers too.
  • Record the reason and an owner. Review rules on a schedule.
  • GuardDuty Extended Threat Detection ignores archived findings when it builds attack sequences, so an over-broad suppression rule also weakens attack sequence detection.

Disable the detector to stop the noise

Answers that turn off GuardDuty, a Macie job or a Security Hub standard to deal with expected alerts are wrong. Suppress the specific expected pattern, and keep detection on.

Scoping with Amazon Detective

Detective builds a behavior graph from CloudTrail management events, VPC Flow Logs and GuardDuty findings, plus optional EKS audit logs and Security Hub findings, and keeps up to a year of history.

  • Entity profiles for IAM users and roles, IPs, EC2 instances, S3 buckets, EKS clusters and pods: API volume over time, new geolocations, new user agents, resources accessed, compared with the entity's baseline.
  • Finding groups gather related findings and entities into one view of a probable attack, across accounts.
  • Detective investigations for an IAM user or role summarize indicators of compromise and map activity to MITRE ATT&CK tactics and techniques.
  • Pivot straight from a GuardDuty or Security Hub finding with Investigate in Detective, and archive GuardDuty false positives from there.
  • Detective only knows what happened after it was enabled, so enable it (with GuardDuty) before you need it, across the organization with a delegated administrator.
QuestionTool
"Show me what this role did over the last 3 weeks compared with normal"Detective
"Find every event from this IP across 70 accounts and 4 years"Athena over the org trail, or CloudTrail Lake
"Correlate CloudTrail, Flow Logs, DNS and third-party logs in one schema"Security Lake (OCSF) with Athena or a SIEM
"Which API calls did this access key make yesterday in this account?"CloudTrail Event history

Detective as a detector or a blocker

Detective doesn't raise new alerts on its own and doesn't contain anything. It helps you understand findings from GuardDuty and others. If a question asks what generated the finding or what stops the attack, it's not Detective.

Assessing blast radius

Scope is what happened. Blast radius is what could happen with the access the attacker has.

  • Identity: what can the compromised principal do? Look at its policies, permissions boundary and the SCPs above it; test with the policy simulator; check which roles it can assume (trust policies naming it or its account). IAM Access Analyzer shows what's shared outside the account or organization.
  • Data: which buckets, tables and keys can it reach, and do Macie results show sensitive data there? KMS key policies and grants decide whether it could actually decrypt.
  • Network: from a compromised instance, what's reachable? Network Access Analyzer and Reachability Analyzer answer that without sending traffic (see Network segmentation and analysis).
  • Accounts: does the principal exist or have trust in other accounts? Look for its access key IDs and session names across the organization's trail.

Root cause

  • Work backwards from the first malicious event to the entry point: a leaked key (where was it stored?), an exploited CVE (Inspector finding on the host), an open security group, an over-broad trust policy.
  • Build the timeline from logs you control and that the attacker couldn't edit: the org trail in the log archive account, Flow Logs, DNS query logs.
  • The fix for the root cause becomes a preventive control: an SCP, a Config rule with remediation, a pipeline check. That's the lessons-learned step of the response plan.
1 year
History Detective keeps in the behavior graph.
9.0–10.0
GuardDuty Critical severity range, used for attack sequences.
90 days
How long GuardDuty keeps findings. Export to S3 to keep them longer.
100
Security Hub CSPM automation rules per administrator account.

Scenarios

Scenario
Every Tuesday night, a vulnerability scanner that Fernhill Bank runs from two fixed Elastic IP addresses generates dozens of GuardDuty Recon:EC2/Portscan findings against its own instances. The security team wants to stop the noise while still detecting port scans from anywhere else. What should they do?
Scenario
GuardDuty raises a finding that an IAM role in a production account called s3:GetObject on many objects from an unusual ASN. The incident lead needs to know, within the hour, whether the role's behaviour over the last month differs from normal and which other resources and IP addresses it interacted with. Detective has been enabled for the organization for a year. What is the fastest way to get this answer?
Scenario
An Inspector finding shows a critical remote code execution CVE on an EC2 instance. Security Hub shows the same instance in an exposure finding: it is reachable from the internet on the vulnerable port and has an instance role that can read a bucket that Macie has flagged for containing payment card data. There is no GuardDuty finding for the instance. How should the team classify and handle this?

Further reading

On this page