-
Notifications
You must be signed in to change notification settings - Fork 573
[Rule Tuning] Expand Scope of Entra ID Brute Force Sign-In Attempts #4777
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
base: main
Are you sure you want to change the base?
Conversation
Rule: Tuning - GuidelinesThese guidelines serve as a reminder set of considerations when tuning an existing rule. Documentation and Context
Rule Metadata Checks
Testing and Validation
|
rules/integrations/azure/credential_access_entra_signin_brute_force_microsoft_365.toml
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very cool rule/query @terrancedejesus !
rules/integrations/azure/credential_access_entra_id_brute_force_activity.toml
Outdated
Show resolved
Hide resolved
country = source.geo.country_name, | ||
user_agent = user_agent.original, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are these EVAL
's costly in terms of performance, or not at all?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That is a great question. I assume it does increase performance as it is another task to execute in the pipeline, how performant - I am not sure.
incoming_token_type, risk_state, session_id, user_id, | ||
user_principal_name, result_description, result_signature, result_type | ||
|
||
| WHERE bf_type != "other" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This excludes any other
bf_type
's from the results?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it is meant to exclude all else. Since we are only aggregating by a time window and relying on CASE()
to determine what type of BF - if we include other it would include signals for a bucket of failed logins which is just noise.
incoming_token_type, risk_state, session_id, user_id, | ||
user_principal_name, result_description, result_signature, result_type | ||
|
||
| WHERE bf_type != "other" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure if we want to do any sorting/limiting at the end.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For sorting, I don't see any value added to sorting by failed login count, unique user count or alphabetically that would enable better action or prioritization. Limiting wise, I do not see any reason to limit the results since it is already aggregation-based unless we expect this to be noisy. Do you have any suggestions on limiting and why?
Pull Request
Issue link(s):
Summary - What I changed
Adjusts the
Azure Entra ID Password Spraying (Non-Interactive SFA)
rule to expand scope and limit error codes while adding additional columns for finalized dataset to help with post-investigation. Please see development linked issue (not meta) for more details.How To Test
Checklist
bug
,enhancement
,schema
,maintenance
,Rule: New
,Rule: Deprecation
,Rule: Tuning
,Hunt: New
, orHunt: Tuning
so guidelines can be generatedmeta:rapid-merge
label if planning to merge within 24 hoursContributor checklist