Skip to content

[Rule Tuning] Tuning Azure Entra Sign-in Brute Force against Microsoft 365 Accounts #4737

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
May 28, 2025

Conversation

terrancedejesus
Copy link
Contributor

@terrancedejesus terrancedejesus commented May 20, 2025

Pull Request

Issue link(s):

Summary - What I changed

Tunes the Azure Entra Sign-in Brute Force against Microsoft 365 Accounts based on community feedback in linked issue and testing. Also adjusts lookback window for Potential Microsoft 365 User Account Brute Force to be accurate with temporal logic.

Additional info:

  • Reduced time window from 30 to 5 minutes to improve detection granularity and responsiveness.
  • Replaced basic count logic with behavior-based classification (bf_type) to detect password spraying, credential stuffing, and guessing.
  • Added filtering on known brute-force-related result_type error codes (e.g., 50126, 50034, 50053) to reduce noise.
  • Excluded benign or noisy user agents, such as "Mozilla/5.0 (compatible; MSAL 1.0) PKeyAuth/1.0".
  • Included additional application and token context like client_app_display_name, incoming_token_type, and authentication_requirement.
  • Expanded output with device, session, and geo fields for better triage (device_detail_device_id, session_id, source_orgs, etc.).
  • Ensured user ID is present and valid by checking user_id IS NOT NULL AND user_id != "".
  • Switched to COUNT_DISTINCT(source.ip) instead of total count to accurately track unique login sources.
  • Added duration calculation (duration_seconds) and tracked the first/last seen timestamps.
  • Grouped and enriched statistics by broader dimensions, improving alert value and context in Elastic's UI.

How To Test

Checklist

  • Added a label for the type of pr: bug, enhancement, schema, maintenance, Rule: New, Rule: Deprecation, Rule: Tuning, Hunt: New, or Hunt: Tuning so guidelines can be generated
  • Added the meta:rapid-merge label if planning to merge within 24 hours
  • Secret and sensitive material has been managed correctly
  • Automated testing was updated or added to match the most common scenarios
  • Documentation and comments were added for features that require explanation

Contributor checklist

@terrancedejesus terrancedejesus self-assigned this May 20, 2025
@terrancedejesus terrancedejesus added Integration: Azure azure related rules Domain: Cloud Workloads Rule: Tuning tweaking or tuning an existing rule labels May 20, 2025
Copy link
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.

@terrancedejesus terrancedejesus marked this pull request as ready for review May 21, 2025 14:01
@terrancedejesus terrancedejesus requested review from w0rk3r, DefSecSentinel, imays11, Samirbous and Mikaayenson and removed request for w0rk3r May 21, 2025 14:01
Copy link
Contributor

@Samirbous Samirbous left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

@terrancedejesus terrancedejesus requested a review from Aegrah May 27, 2025 13:20
Copy link
Contributor

@imays11 imays11 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great!

@terrancedejesus terrancedejesus merged commit 17d98cc into main May 28, 2025
11 checks passed
@terrancedejesus terrancedejesus deleted the rule-tuning-m365-brute-force-via-entra-logs branch May 28, 2025 17:45
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.

[Rule Tuning] Azure Entra Sign-in Brute Force against Microsoft 365 Accounts
3 participants