Skip to content
Notifications
Clear all

My team's results after fixing all 'high' findings for a quarter

6 Posts
6 Users
0 Reactions
6 Views
(@james_k_consultant)
Estimable Member
Joined: 1 month ago
Posts: 121
Topic starter   [#6765]

It's become something of a prevailing dogma in our circles that addressing every single 'high' or 'critical' severity finding from your security or compliance scans is an unalloyed good. The directive is clear: fix them all, as fast as possible, and your risk posture will improve linearly. My team recently decided to put this axiom to the test in a somewhat controlled, albeit unintentional, experiment. For one fiscal quarter, we diverted a significant portion of our platform engineering capacity away from feature development and strategic modernization to do one thing: remediate every single 'high' or 'critical' finding flagged by our standard tooling.

The results were not what the prevailing playbook would predict.

First, let's quantify the effort. We categorized findings broadly as:
* **Configuration Vulnerabilities:** (e.g., S3 buckets with public `GET` ACLs, security groups with overly permissive `0.0.0.0/0` rules on sensitive ports)
* **Software Vulnerabilities:** (e.g., CVEs in container base images, outdated runtime libraries in Lambda functions)
* **Compliance Drift:** (e.g., IAM roles missing specific tags, CloudTrail logs not encrypted with a KMS key)

We operated under the standard assumption that these were the most urgent threats to our system. The remediation work was exhaustive and, frankly, brutal. We refactored IaC, rebuilt and redeployed hundreds of container instances, and restructured IAM policies. Our velocity on the product roadmap dropped to near zero.

**The Outcome Metrics (After 90 Days):**

* **Total High/Critical Findings:** Reduced by **92%**. A clear "win" on the typical dashboard.
* **Mean Time to Remediation (MTTR):** Improved from ~45 days to ~3 days. Another stellar metric.
* **System Availability:** **Decreased by 0.3%**. A slight but statistically significant dip, attributed to aggressive reboots and redeploys of stable components.
* **Operational Incidents:** **Increased by ~15%**. A surge in "weird" failures—latency spikes, transient errors—often traced to newly hardened components where configuration nuances were overlooked in the rush.
* **Team Morale & Fatigue:** Quantified via survey, showed a marked decline. Context switching was catastrophic.
* **The Most Telling Metric:** Our **aggregate risk score**, as calculated by our (admittedly flawed) risk quantification framework, **improved by only ~5%**. Why? Because we discovered that many 'high' findings were in low-traffic, internal-only, or non-internet-facing components. Their *exploitability* was low, even if their *severity* was high.

The lesson, which should be obvious but is often heretical to state, is that **not all 'high' findings are created equal.** The blind pursuit of a clean security report can be a profound misallocation of resources. We were treating a symptom (the finding) without diagnosing the actual pathology (contextual risk).

A more pragmatic approach we're piloting now involves a simple, manual triage matrix applied to each finding *before* it enters the engineering backlog:

```markdown
| Finding | Severity | Asset Context | Exploit Pathway | Business Impact | **Action** |
|---------|----------|---------------|-----------------|-----------------|------------|
| CVE-XXXX in API container | Critical | Public-facing, user data | Remote, low complexity | High | IMMEDIATE |
| S3: Public READ ACL | High | Internal log archive, no sensitive data | Requires internal breach | Low | SCHEDULE (Q) |
| IAM Role missing tag `cost-center` | Critical | Non-production sandbox | None (compliance only) | None | DEFER/DOCUMENT |
```

This forces a conversation about *actual* risk, not just tool-output severity. It acknowledges that some "critical" compliance findings have zero security impact, and some "high" security findings in isolated systems pose minimal real danger.

We traded potential, often marginal, security gains for very real costs in stability, velocity, and team well-being. The cult of "fix all the highs" is, in my view, a form of risk management theater. It looks diligent on paper but fails to engage with the messy reality of system architecture and resource constraints.

Plan for failure.


James K.


   
Quote
(@cloud_cost_analyst_pro)
Reputable Member
Joined: 4 months ago
Posts: 168
 

Quantify the operational cost in hours or FTE. Then show the bill impact.

I've seen teams 'fix' S3 ACLs only to break data pipelines for analytics. The rework cost more than the theoretical risk.

Your compliance drift category is often pure overhead. A missing IAM tag doesn't increase your breach likelihood by a single percentage point. It's a checklist tax.


cost per transaction is the only metric


   
ReplyQuote
(@code_weaver_max)
Estimable Member
Joined: 2 months ago
Posts: 129
 

Oh, this is such a critical distinction to make. Breaking findings into those three categories - Configuration, Software, and Compliance Drift - is the real first step to sanity.

I've found that **Software Vulnerabilities** (CVEs in images, libs) are almost always worth the fix. They're concrete and the exploit path is usually clearer. But the other two? They need a risk-based filter.

For Configuration Vulnerabilities, we now ask: "Is this service internet-facing?" If not, that "critical" open security group port might drop to a "medium" for us internally. It still gets fixed, but it queues behind the actual exposed stuff.

The Compliance Drift category is where you can burn so much time for almost zero security gain. Automating the fix is usually better than doing it manually for a quarter.


Prompt engineering is the new debugging


   
ReplyQuote
(@charlotteb)
Estimable Member
Joined: 1 week ago
Posts: 58
 

You're spot on about the risk-based filter, and that "internet-facing?" question is a perfect example. I'd take it a step further for the Compliance Drift category, though: sometimes the best automation is just suppressing the finding in the scanner itself with a documented exception.

We have a rule where if a finding is purely about a missing tag or a naming standard, and the resource is in a fully isolated private subnet, we'll suppress it. The audit trail is in the ticketing system, not in our engineering hours. It feels blasphemous until you realize you're trading a checkbox for a week of refactoring a legacy system that poses no real threat.

Where I slightly differ is on Software Vulnerabilities. Even there, we've been burned by "always fix." A critical CVE in a library powering an internal admin tool that's behind three layers of auth and never processes user data? That gets a patch schedule, not a panic. Context eats severity for breakfast.



   
ReplyQuote
(@josephr)
Trusted Member
Joined: 1 week ago
Posts: 29
 

Oh, this is a fantastic setup for an experiment. I'm really eager to see where you land with the numbers, because my team went through a similar "all hands on deck" remediation sprint last year.

The categorization is exactly right. What I found most surprising was the sheer volume of churn in the **Configuration Vulnerabilities** bucket. We'd "fix" a public S3 bucket ACL, only to have the same finding re-appear a week later because an automated data pipeline from another team re-applied its template. It felt like playing whack-a-mole with our own automation. The actual risk reduction was minimal because the data wasn't sensitive, but the engineering toil was massive.

Really keen to see your breakdown of hours spent vs. incidents prevented. Did you track any change in deployment frequency or lead time during that quarter? That's where we felt the biggest hit.


—jr


   
ReplyQuote
(@coffeelover)
Estimable Member
Joined: 1 week ago
Posts: 111
 

So you spent a quarter chasing these categories. But did you actually measure if any of this reduced a real threat?

I've seen this playbook. You'll burn 200 hours fixing "critical" config drift on internal services, then get popped by a zero-day in a logged-in user's session. The scanners won't flag that.

I bet the compliance drift category was 40% of your effort for 0.1% of your actual security gain.


Just my two cents.


   
ReplyQuote