500+
average number of CSPM findings on initial scan of a mid-size cloud environment (Wiz State of Cloud Security 2024)
3 factors
to score any finding: severity + exploitability + asset criticality
90 days
to reach a stable, working baseline where daily finding volume is manageable

Every team that buys a CSPM tool hits the same wall within 30 days: hundreds of findings, no clear priority, and a security team that cannot process them fast enough to keep up. The answer is not to buy a second tool or hire more people -- it is to build a scoring model that identifies your actual material risk and separates it from the background noise. This guide walks the scoring model, the suppression workflow, the 90-day baseline approach, and how to measure progress.

The Three-Dimension Scoring Model

CSPM severity ratings tell you how bad a finding could be in the worst case. Your actual risk depends on three factors working together:

Dimension 1: CSPM Severity (the tool's rating)

  • Critical, High, Medium, Low
  • Use as-is; do not override the tool's technical severity assessment

Dimension 2: Asset Criticality (your classification) Tag every cloud resource with a criticality tier during your first week:

Critical: Production workloads handling customer data, financial transactions, or authentication
High: Production supporting services (logging, monitoring, CI/CD)
Medium: Staging/pre-production environments with production-equivalent data
Low: Development, test, sandbox environments with synthetic data

In AWS, apply as a resource tag: Criticality: critical|high|medium|low In Azure, use resource tags: criticality: critical|high|medium|low In GCP, use labels: criticality: critical|high|medium|low

Dimension 3: Exploitability (network reachability)

  • Directly internet-exposed: the resource has a public IP or is reachable via load balancer from 0.0.0.0/0
  • Indirectly exposed: reachable from the internet via multiple hops (e.g., behind a private subnet but accessible from a publicly exposed host)
  • Internal only: no internet path exists

Wiz and Orca calculate attack paths automatically. In Prisma Cloud, use Network Analyzer. For manual assessment, check: security groups with 0.0.0.0/0 inbound, public load balancer targets, S3 buckets with public ACLs.

Priority matrix:

CSPM SeverityAsset CriticalityExploitabilityPrioritySLA
CriticalCriticalInternet-exposedP0Fix within 24 hours
CriticalCriticalInternalP1Fix within 7 days
CriticalHighInternet-exposedP1Fix within 7 days
HighCriticalInternet-exposedP1Fix within 7 days
CriticalMedium/LowAnyP2Fix within 30 days
HighHigh/MediumInternalP2Fix within 30 days
MediumCriticalInternet-exposedP2Fix within 30 days
Everything else--P3Quarterly review

Day 1-30: Building Your Working Baseline

Do not try to fix 500 findings. Do this instead:

Week 1: Asset tagging sprint Tag every cloud resource with criticality before looking at findings. Without asset criticality context, you cannot score anything. Assign engineering leads for each account/workload; they know which resources matter.

# AWS: bulk tag resources in an account
aws resourcegroupstaggingapi tag-resources \
  --resource-arn-list arn:aws:s3:::my-prod-bucket \
  --tags Criticality=critical,Environment=production

# Tag all EC2 instances in a region
aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId' --output text | \
  xargs -I {} aws ec2 create-tags \
    --resources {} \
    --tags Key=Criticality,Value=high Key=Environment,Value=production

Week 2: Apply the P0 filter -- find your actual fire Filter your CSPM to show only: Critical severity + Critical assets + Internet-exposed. This is your P0 list. It should be 5-20 findings, not 500.

In Wiz: Filters: Severity = Critical, Has Internet Exposure = Yes, Asset Tag Criticality = critical In Prisma Cloud: Asset Explorer > Filters: Risk Rating = Critical, Internet Exposed = true, Tag: Criticality = critical In Orca: Risks > Filter: Severity = Critical, Attack Surface = Internet Facing, Tags: criticality = critical

Fix your P0 list before anything else. These are the findings that could result in a breach this week.

Week 3-4: P1 and suppression setup After P0 is clear, move to P1 (Critical + Critical asset + internal, or Critical + High asset + internet-exposed).

In parallel, begin suppressing clear false positives:

  • Public CDN S3 buckets flagged as 'public access enabled' (intentional)
  • Dev/test accounts flagged for missing encryption (accepted risk with documented exception)
  • Findings on decommissioned resources that appear in inventory but have no actual workload
Free daily briefing

Briefings like this, every morning before 9am.

Threat intel, active CVEs, and campaign alerts, distilled for practitioners. 50,000+ subscribers. No noise.

Suppression Workflow: What to Suppress and How to Document It

Every suppression is a risk decision. Document it or you've created an invisible blind spot.

Categories safe to suppress (with documentation):

Finding typeSuppression reasonRequired documentation
Public S3 bucket (intentional CDN)Business necessityWhich bucket, what content, who reviewed
Unencrypted dev databaseData classification: no sensitive dataData owner sign-off, quarterly review
Missing MFA on break-glass accountSecurity architecture decisionCISO sign-off, monitoring alert as compensating control
Logging gap in sandbox accountAccepted risk for non-productionEngineering lead sign-off, criticality: low tag

Never suppress without a ticket. Every suppression in the CSPM tool should have a corresponding ticket number in your tracking system (Jira, ServiceNow, etc.).

Suppression template:

Finding ID: [CSPM finding ID]
Resource: [ARN / resource identifier]
Suppression reason: [false positive / accepted risk / compensating control]
Business justification: [1-2 sentences]
Compensating controls (if any): [what else reduces this risk]
Approved by: [name + title]
Review date: [90 days from today]
Ticket: [JIRA-1234]

Set calendar reminders for every suppression review date. A suppression that was valid when created may not be valid 90 days later -- the CDN bucket may have been repurposed for sensitive data, the dev account may now have prod data in it.

The 90-Day Baseline: What 'Under Control' Looks Like

After 90 days of consistent work, a functioning CSPM program produces:

Volume targets:

  • P0 findings (Critical + Critical asset + internet-exposed): 0 open >24 hours
  • P1 findings open >7 days: <5
  • P2 findings open >30 days: declining month-over-month
  • New Critical findings introduced per week: tracked and reviewed within 48 hours

Process markers:

  • Every open finding in P0/P1/P2 has an owner and a target remediation date
  • Every suppression has a ticket and a review date
  • Weekly or bi-weekly sync with engineering leads to review P1 findings
  • Monthly metric reported to security leadership: P0/P1 closure rate

What your weekly CSPM review looks like at 90 days:

  1. Check new findings from the last 7 days: any new P0s? (target: zero, escalate immediately if not)
  2. Check P1 findings approaching SLA: need engineering escalation?
  3. Check suppression review dates expiring this week: renew or lift
  4. Update the monthly trend chart (10 minutes)

If your weekly review takes more than 30 minutes, your P0/P1/P2 filters are not scoped tightly enough.

Tracking Progress Without Drowning in Dashboards

Track four numbers. Report them monthly to security leadership and quarterly to the board.

MetricDefinitionHow to pull
P0 open durationAverage time P0 findings are open before remediationCSPM + ticketing system
P1 SLA compliance% of P1 findings closed within 7-day SLACSPM + ticketing system
New Critical findings (weekly)Count of new Critical findings per week, trendCSPM weekly digest
Suppression review compliance% of suppressions reviewed before expirySuppression ticket log

Simple trend chart -- paste into your monthly security report:

Month    | P0 open | P1 SLA% | New Crit/wk | Supp reviewed
Jan 2026 |    14   |   42%   |     23      |    60%
Feb 2026 |     6   |   67%   |     18      |    78%
Mar 2026 |     1   |   81%   |     12      |    91%
Apr 2026 |     0   |   88%   |      8      |    95%

This trend tells a clear story: P0 exposure time is collapsing, SLA compliance is improving, new finding introduction rate is declining (your developers are fixing root causes), and suppression governance is tightening. That story is your evidence that the program is working.

Connecting CSPM to Engineering: The Handoff That Most Teams Get Wrong

CSPM findings are remediated by engineers, not security teams. If security identifies, tracks, AND remediates, you have a scaling problem. The handoff must be clean.

What the security team owns:

  • Running the CSPM tool
  • Applying the scoring model and identifying P0/P1/P2
  • Creating tickets with finding details, remediation steps, and SLA
  • Tracking SLA compliance and escalating overdue items
  • Making suppression decisions and documenting them

What engineering teams own:

  • Fixing the finding within SLA
  • Tagging resources with criticality (they know which workloads matter)
  • Flagging findings they believe are false positives back to security for suppression review
  • Asking for security review before launching new workloads (shift-left)

Ticket format that engineers will actually act on:

Title: [CSPM] CRITICAL: S3 bucket prod-customer-data publicly readable
Severity: P1 (Critical finding on production asset)
SLA: Fix by [DATE - 7 days from today]

Finding: The S3 bucket 'prod-customer-data' has ACL set to public-read.
This bucket contains customer PII (per data classification tag).

Risk: Any unauthenticated user can read all objects in this bucket.
The bucket contains approximately 2.4M customer records.

Fix (2 commands):
  aws s3api put-bucket-acl --bucket prod-customer-data --acl private
  aws s3api put-public-access-block --bucket prod-customer-data \
    --public-access-block-configuration BlockPublicAcls=true,IgnorePublicAcls=true,\
    BlockPublicPolicy=true,RestrictPublicBuckets=true

Verification: Run aws s3api get-public-access-block --bucket prod-customer-data
and confirm all four values are 'true'.

If this is intentional (public CDN bucket), reply on this ticket with the
business justification and tag @security-team for suppression review.

Tickets with exact fix commands get remediated. Tickets that say 'review S3 bucket security configuration' do not.

The bottom line

CSPM tools generate hundreds of findings because they are designed to be comprehensive, not prioritized. Your job is to add the context the tool lacks: which assets are critical, which findings are internet-reachable, which risks are accepted. Apply the three-dimension scoring model, fix P0 in 24 hours, clear P1 within 7 days, and track four metrics monthly. At 90 days you will have a baseline; at 6 months you will have a trend; at 12 months you will have a program.

Frequently asked questions

Why does my CSPM show hundreds of critical findings when nothing bad has happened?

CSPM tools flag deviations from security best practices, not confirmed attacks. A 'Critical' finding like 'S3 bucket is publicly accessible' is critical because of its potential impact if it contained sensitive data -- not because an attack is in progress. Many critical findings are on non-production assets, empty buckets, or workloads behind additional compensating controls. The tool cannot know which findings are actually material to your business without context you provide through asset tagging, suppression rules, and risk acceptance.

What is the difference between suppressing a finding and accepting a risk?

Suppression removes a finding from the active queue because it is a false positive -- the finding does not accurately represent a risk (e.g., an S3 bucket flagged as public that is an intentional public CDN). Risk acceptance acknowledges that the finding is a real risk but documents a business decision not to remediate it within the standard SLA (e.g., an unencrypted legacy database that cannot be encrypted without a multi-month migration project). Both require documentation; risk acceptance requires sign-off at an appropriate authority level.

How do I prioritize CSPM findings across multiple cloud accounts?

Score each finding on three dimensions: CSPM severity (the tool's own rating), asset criticality (your classification of how important the affected resource is to the business), and exploitability (is the finding directly reachable from the internet, or is it behind multiple layers?). A Critical finding on a development account's non-public resource may be lower priority than a Medium finding on a production database with internet-facing network path. Most CSPMs support custom scoring; use it.

Should I try to get to zero findings?

No. Zero findings is not a realistic or meaningful target. The realistic targets are: zero findings in the 'Critical severity + internet-reachable + production asset' intersection (your actual material risk), no new Critical findings introduced in the last 30 days without a documented acceptance or remediation plan, and a declining trend in the total count of findings in your defined priority buckets. Chasing total finding count to zero drives teams to suppress aggressively, which hides real risk.

What CSPM findings can I safely accept as low priority without detailed review?

As a starting point, findings that are lower priority for most organizations: logging and monitoring gaps on non-production accounts (fix in prod first), tagging/naming convention violations (compliance hygiene, not security risk), unused IAM access keys for service accounts on air-gapped development environments, and encryption recommendations for data classified as non-sensitive. Never auto-accept findings involving internet exposure, admin/root access, or production data stores -- those require individual review.

How do I set up CSPM finding SLAs without overwhelming the team?

Define SLAs only for the findings in your active working queue, not for all findings. Example: Critical + production + internet-exposed = 24 hours. High + production = 7 days. Medium + production = 30 days. Everything else = quarterly review. The SLA conversation should be with the asset owner (the engineering team responsible for the workload), not just the security team. Security identifies and tracks; engineering remediates. Define that handoff clearly or findings will sit unworked.

Sources & references

  1. Wiz State of Cloud Security 2024
  2. Ponemon Institute / IBM Cost of Data Breach Report
  3. NIST Cybersecurity Framework
  4. CIS Controls
  5. AWS Well-Architected Framework Security Pillar

Free resources

25
Free download

Critical CVE Reference Card 2025–2026

25 actively exploited vulnerabilities with CVSS scores, exploit status, and patch availability. Print it, pin it, share it with your SOC team.

No spam. Unsubscribe anytime.

Free download

Ransomware Incident Response Playbook

Step-by-step 24-hour IR checklist covering detection, containment, eradication, and recovery. Built for SOC teams, IR leads, and CISOs.

No spam. Unsubscribe anytime.

Free newsletter

Get threat intel before your inbox does.

50,000+ security professionals read Decryption Digest for early warnings on zero-days, ransomware, and nation-state campaigns. Free, weekly, no spam.

Unsubscribe anytime. We never sell your data.

Eric Bang
Author

Founder & Cybersecurity Evangelist, Decryption Digest

Cybersecurity professional with expertise in threat intelligence, vulnerability research, and enterprise security. Covers zero-days, ransomware, and nation-state operations for 50,000+ security professionals weekly.

Free Brief

The Mythos Brief is free.

AI that finds 27-year-old zero-days. What it means for your security program.

Joins Decryption Digest. Unsubscribe anytime.

Daily Briefing

Get briefings like this every morning

Actionable threat intelligence for working practitioners. Free. No spam. Trusted by 50,000+ SOC analysts, CISOs, and security engineers.

Unsubscribe anytime.

Mythos Brief

Anthropic's AI finds zero-days your scanners miss.