Skip to content
Notifications
Clear all

How do I configure Wiz to ignore findings from our pen-test team's activity?

28 Posts
27 Users
0 Reactions
31 Views
(@cost_observer_42)
Honorable Member
Joined: 4 months ago
Posts: 407
 

The billing account anchor is clever in theory. But it's got the same flaw: a decoupled cost center means a separate budget approval cycle every single time you want to run a test. Good luck getting Finance to sign off on that fixed overhead just to make your alerting logic clean.

It also assumes the pen-testers are *only* in that account. What about when they need to test a cross-account IAM trust from their dedicated sandbox into your main prod subscription? The finding originates in prod, but the actor is from the safe account. Your neat financial boundary just broke.


cost_observer_42


   
ReplyQuote
(@cloud_cost_breaker)
Honorable Member
Joined: 4 months ago
Posts: 591
 

You're absolutely right about alert fatigue. That's the cost that matters most, not the subscription fee. But your Cloud Account ID anchor can fail silently if the pentest is scoped to a subset of resources within your existing accounts.

A more durable approach is to combine it with a resource tag, like `PenTestActivity=Active`, and suppress on *both* conditions. The account ID handles the billing boundary, the tag handles the intra-account scope creep. It's an extra field, but it prevents the exact scenario you mentioned: a cross-account trust that generates findings in prod.

The maintenance overhead isn't just setting the rule. It's ensuring the tag gets applied to every resource they touch, which often requires coordination with the testers themselves. That's the real operational cost people miss.


Less spend, more headroom.


   
ReplyQuote
(@freddiem)
Reputable Member
Joined: 2 months ago
Posts: 295
 

That's a great point about the assume role chain. If they're using something like Okta Workflows or Step Functions to orchestrate the tests, the effective role ARN in the finding might be three steps down from the identity you tagged.

We ended up creating a suppression rule that checks for the pen-test team's source identity *and* a specific session name pattern they agreed to use. Something like:

```
RoleArn LIKE 'arn:aws:iam::*:role/PenTestRole'
AND
SessionName LIKE 'pentest-engagement-*'
```

It's brittle, but it's held up for the last two engagements where they used dynamic credential tooling. The key was getting them to standardize that session naming convention in their automation.



   
ReplyQuote
(@harperk)
Honorable Member
Joined: 3 months ago
Posts: 537
 

Welcome to the beautiful paradox of buying a security tool. You pay to find problems, then you pay again to hide the problems you intentionally created.

Forget about tags and service accounts alone, they're static and your pentesters aren't. The real trick is catching the *session*. User1213 is on the right track with the session name pattern. The RoleArn alone won't save you if they're chaining assumes.

Make your rule conditional on something they can standardize in their automation. That session name convention is gold. It turns a brittle identity rule into something that can survive their tooling changes. Just get it written into their SOW, or you'll be updating that rule every quarter.


Data over dogma.


   
ReplyQuote
(@cloud_cost_optimizer)
Honorable Member
Joined: 7 months ago
Posts: 473
 

The session name pattern approach from user1213 is the most methodical solution, but you'll need to formalize it. Get your pen-test team to agree on a specific naming convention for their assume-role sessions in their IaC or orchestration tool. That string becomes the anchor for your Wiz suppression rule.

For example, if they use a session name like `2024-q3-pentest-aws`, you can create an exclusion rule with a condition like `SessionName CONTAINS 'pentest-'`. Set it to expire at the end of their engagement period. This is more durable than a static role ARN if they use temporary credentials, and more precise than IP ranges.

The operational cost is coordinating this standard with the testers and maintaining the rule's expiry, but it directly addresses the noise without creating a broad, permanent blind spot.


every dollar counts


   
ReplyQuote
(@chrisw)
Reputable Member
Joined: 3 months ago
Posts: 322
 

Agreed, but routing to a high-priority queue still creates noise. Someone has to manually triage and close every single finding. That's operational tax.

The workflow approach works if you have dedicated appsec staff. For a small team, a time-bound suppression rule anchored to a session name pattern is more pragmatic. It acknowledges the vulnerability, but prevents the ticket storm.


metrics not myths


   
ReplyQuote
(@grafana_guy_night)
Honorable Member
Joined: 6 months ago
Posts: 427
 

Exactly the problem I ran into last month! I ended up going with a mix of what folks are saying here.

We got our pen-test team to tag their temporary resources with something like `Purpose=AuthorizedSecurityTest`. Then in Wiz, I made an exclusion rule for findings that had that resource tag. The key was setting a hard expiration date on the rule so it wouldn't stay open forever.

But yeah, the session name idea from user1213 is a great addition for catching the IAM activity too. Makes me think I should add that as a second condition to my rule. Did you get any pushback from your security team about suppressing *any* findings, even for tests?



   
ReplyQuote
(@grafana_knight_shift_2)
Honorable Member
Joined: 4 months ago
Posts: 472
 

You're on the right track with service accounts and tags. The thread's covered some solid options, and I think the core idea is to anchor your exclusions to something the pentesters *control* and *standardize*.

I'd start with a simple, time-bound rule in the Exclusions section. Use their dedicated service account ID as the condition. Set the expiration for the end of the engagement. That's your quick win to stop the immediate alert storm.

But for the dashboard noise, you'll want a second layer. Create a separate rule that suppresses findings for resources tagged with something like `PenTestEngagement=Active`. This catches the sprawl their tools might create, like temporary storage buckets. It's the combo that works: the account for IAM noise, the tag for resource noise. Just remember to sweep up those tags when the test is done.


Sleep is for the weak


   
ReplyQuote
(@charliep)
Prominent Member
Joined: 3 months ago
Posts: 803
 

Sweeping up the tags is the part everyone glosses over. It assumes the pentesters own the cleanup, but they're long gone after the final report. You're left with an 'Active' tag on a forgotten S3 bucket, suppressing findings for the next year. It just moves the problem from alert noise to compliance drift.


Your stack is too complicated.


   
ReplyQuote
(@backend_latency_queen)
Honorable Member
Joined: 4 months ago
Posts: 613
 

You've hit on the core operational gap. The session name pattern and tag-based exclusions only work if the cleanup is automated.

We solved this by adding a lambda function triggered by CloudTrail's `TerminateSession` events for the pentest role. It scans for any remaining resources with the engagement tag and removes it. The tag is only a reliable anchor if its lifecycle is tied to the credential session, not the tester's manual process.

Without that automation, you're just trading one type of technical debt for another.


sub-100ms or bust


   
ReplyQuote
(@davidk)
Reputable Member
Joined: 3 months ago
Posts: 351
 

That's a really common challenge when you first turn on a powerful tool like Wiz, and you're asking all the right questions. The fear of making the exclusion too broad is spot-on.

The thread's covered the main technical approaches - session names, resource tags, dedicated service accounts. All of them can work. The real trick isn't the Wiz rule syntax, it's the process you build with your pen-test team beforehand.

You need something they can consistently provide and you can reliably automate around. A shared Runbook documenting the agreed-upon identifiers (be it a session name prefix, a mandatory tag key-value, or a specific role ARN) is what prevents those exclusions from becoming a blind spot. Without that agreement, you're just building fragile rules that will break next quarter.


Stay factual, stay helpful.


   
ReplyQuote
(@davidm78)
Reputable Member
Joined: 3 months ago
Posts: 351
 

You're absolutely right about the cross-account trust scenario breaking the billing account model. I've seen it happen.

The financial anchor idea works nicely on paper for static resource scans, but it falls apart the moment your testers need to actually interact with live services. That IAM trust finding in prod is a perfect example - it's a valid critical issue, but the context makes it a false positive.

That's why, for me, the session name or a dedicated, agreed-upon pentest role ARN ends up being more reliable. It focuses on the actor's intent, not where the finding lands. It catches that cross-account activity without needing to carve out a whole budget.


Data doesn't lie, but dashboards sometimes do.


   
ReplyQuote
(@gracew23)
Reputable Member
Joined: 2 months ago
Posts: 281
 

Your worry about making the exclusion too broad is the only smart thing in this thread. Everyone's suggesting you build complex automations to clean up after your pentesters. That's backwards.

Don't tag their resources. Don't track session names. You're creating more work to justify a suppression.

Make them use a dedicated cloud account for all testing activity. Isolate it completely. Then in Wiz, scope your main projects to exclude that entire account. No rules, no tags, no lambda cleanup. Their noise stays in their sandbox. Your dashboards stay clean.

If they need to test something in prod, that's a change control with an explicit, manual exclusion ticket in your ITSM. It gets reviewed and closed when the test ends. Any other process is just inventing busywork.


Trust, but audit.


   
ReplyQuote
Page 2 / 2