Skip to content

[Rule Tunings] Google Workspace Admin Role lifecycle rules#6214

Open
imays11 wants to merge 1 commit into
mainfrom
gws_admin_role_lifecycle_rules
Open

[Rule Tunings] Google Workspace Admin Role lifecycle rules#6214
imays11 wants to merge 1 commit into
mainfrom
gws_admin_role_lifecycle_rules

Conversation

@imays11
Copy link
Copy Markdown
Contributor

@imays11 imays11 commented May 29, 2026

Pull Request

Issue link(s):

Summary - What I changed

Refreshes four Google Workspace admin role lifecycle rules with updated descriptions, structured investigation guides, and Admin console / Kibana triage steps. Detection logic is unchanged except for alert suppression on the Role Modified rule. All four rules were tested in trade-lab and behave as expected.

Shared changes - no major query changes:

  • update, Description
  • update Investigation guide — structured triage with Google Admin console steps, Kibana/KQL examples for correlated audit events
  • Added highlighted fields
  • added mitre tag
  • Admin Role Assigned also had a minor metadata tweak: rule title updated to reflect group assignments as this rule also triggers for group assignments.
  • added .admin-* to index
  • Admin Role Deletion guide emphasizes historical log review since the deleted role will no longer appear in the Admin console.

Google Workspace Role Modified

  • includes everything above, plus alert suppression:
[rule.alert_suppression]
group_by = ["user.email", "google_workspace.admin.role.name", "source.ip"]
duration = {value = 130, unit = "m"}
missing_fields_strategy = "suppress"

Testing and telemetry showed that a single Admin console action (e.g., selecting a privilege category like Organization Units) generates multiple ADD_PRIVILEGE events, one per privilege bucketed under the privilege category. Without suppression, analysts get one alert per privilege change for what is effectively one modification session, which creates alert fatigue without adding investigative value.

Chose 130m window to match the 130-minute lookback. A shorter suppression window (e.g., 5 minutes) still allows the same events to re-alert on subsequent rule executions as they remain in the lookback window. Setting suppression duration to 130 minutes ensures one alert per actor + role + source IP for the full evaluation window, while still capturing all related events in the merged alert.

The investigation guide documents this behavior and includes KQL to enumerate all privileges changed in a session.

How To Test

Tested all the rules manually in the GWS console, data is in our shared stack for testing. I've also edited the Google Workspace Role Modified to include the alert suppression updates to test those changes. The alerts for that are in the stack as well.

suppressed alerts

Screenshot 2026-05-29 at 5 45 54 PM

example of multiple privileges under a single privilege category

Screenshot 2026-05-29 at 3 46 04 PM

each individual privilege as an event (would each be a distinct alert w/o suppression)

image

Refreshes four Google Workspace admin role lifecycle rules with updated descriptions, structured investigation guides, and Admin console / Kibana triage steps. Detection logic is unchanged except for alert suppression on the Role Modified rule. All four rules were tested in trade-lab and behave as expected.

Shared changes (3 rules) no major query changes:
- update, Description
- update Investigation guide — structured triage with Google Admin console steps, Kibana/KQL examples for correlated audit events
- Admin Role Assigned also had a minor metadata tweak: rule title updated to reflect group assignments as this rule also triggers for group assignments.
- added `.admin-*` to index
- Admin Role Deletion guide emphasizes historical log review since the deleted role will no longer appear in the Admin console.

#### Google Workspace Role Modified
- includes everything above, plus alert suppression:
```
[rule.alert_suppression]
group_by = ["user.email", "google_workspace.admin.role.name", "source.ip"]
duration = {value = 130, unit = "m"}
missing_fields_strategy = "suppress"
```

Testing and telemetry showed that a single Admin console action (e.g., selecting a privilege category like Organization Units) generates multiple ADD_PRIVILEGE events, one per privilege bucketed under the privilege category. Without suppression, analysts get one alert per privilege change for what is effectively one modification session, which creates alert fatigue without adding investigative value.

Chose 130m window to match the 130-minute lookback. A shorter suppression window (e.g., 5 minutes) still allows the same events to re-alert on subsequent rule executions as they remain in the lookback window. Setting suppression duration to 130 minutes ensures one alert per actor + role + source IP for the full evaluation window, while still capturing all related events in the merged alert.

The investigation guide documents this behavior and includes KQL to enumerate all privileges changed in a session.
@github-actions
Copy link
Copy Markdown
Contributor

Rule: Tuning - Guidelines

These guidelines serve as a reminder set of considerations when tuning an existing rule.

Documentation and Context

  • Detailed description of the suggested changes.
  • Provide example JSON data or screenshots.
  • Provide evidence of reducing benign events mistakenly identified as threats (False Positives).
  • Provide evidence of enhancing detection of true threats that were previously missed (False Negatives).
  • Provide evidence of optimizing resource consumption and execution time of detection rules (Performance).
  • Provide evidence of specific environment factors influencing customized rule tuning (Contextual Tuning).
  • Provide evidence of improvements made by modifying sensitivity by changing alert triggering thresholds (Threshold Adjustments).
  • Provide evidence of refining rules to better detect deviations from typical behavior (Behavioral Tuning).
  • Provide evidence of improvements of adjusting rules based on time-based patterns (Temporal Tuning).
  • Provide reasoning of adjusting priority or severity levels of alerts (Severity Tuning).
  • Provide evidence of improving quality integrity of our data used by detection rules (Data Quality).
  • Ensure the tuning includes necessary updates to the release documentation and versioning.

Rule Metadata Checks

  • updated_date matches the date of tuning PR merged.
  • min_stack_version should support the widest stack versions.
  • name and description should be descriptive and not include typos.
  • query should be inclusive, not overly exclusive. Review to ensure the original intent of the rule is maintained.

Testing and Validation

  • Validate that the tuned rule's performance is satisfactory and does not negatively impact the stack.
  • Ensure that the tuned rule has a low false positive rate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant