Closed terrancedejesus closed 3 weeks ago
These guidelines serve as a reminder set of considerations when proposing a new rule.
creation_date
matches the date of creation PR initially 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, considering performance for diverse environments. Non ecs fields should be added to non-ecs-schema.json
if not available in an integration.min_stack_comments
and min_stack_version
should be included if the rule is only compatible starting from a specific stack version.index
pattern should be neither too specific nor too vague, ensuring it accurately matches the relevant data stream (e.g., use logs-endpoint.process-* for process data).integration
should align with the index
. If the integration is newly introduced, ensure the manifest, schemas, and new_rule.yaml
template are updated.setup
should include the necessary steps to configure the integration.note
should include any additional information (e.g. Triage and analysis investigation guides, timeline templates).tags
should be relevant to the threat and align/added to the EXPECTED_RULE_TAGS
in the definitions.py file.threat
, techniques
, and subtechniques
should map to ATT&CK always if possible.building_block_type
should be included if the rule is a building block and the rule should be located in the rules_building_block
folder.bypass_bbr_timing
should be included if adding custom lookback timing to the rule.@elastic/trade-admins - Can someone approve please.
…lient credentials
Pull Request
Issue link(s):
Summary - What I changed
Adds a new rule for the first occurrence of an Okta public client app requested an OAuth token with client credentials from an unrecognized source.
Custom applications meant to interact with Okta's API can be registered in the admin console, where Oauth granting types can be specified. In this instance, a custom client application
suspiciousApp
was created and does not require DPoP, therefore tokens can be obtained by simply providing the client key and secret in any request to/oauth2/default/v1/token
endpoint. Adversaries may gain access to these credentials via environment variables or other various discovery methods and then attempt to obtain an access token with unauthorized OAuth scopes.Potential false-positives: Could occur from devs or testing where the incorrect scope was requested, however, repeat activity would not fire due to the new terms rule focusing on source ip (if someone uses a proxy during dev though, this would fire for sure). If this happens often, we could change the new terms field to the actual client application ID, indicating the first time this application had such as error because of compromised secrets
How To Test
Checklist
bug
,enhancement
,schema
,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