Closed terrancedejesus closed 1 month 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.
Pull Request
Issue link(s): https://github.com/elastic/ia-trade-team/issues/272
Summary - What I changed
Added a new linux detection rule for AWS CLI command execution where arguments include
--endpoint-url
. This is a new terms rule to only alert if the user on that endpoint has not been seen using this CLI command and specific argument in the last 10 days.This stems from Sysdig research on adversary SCARLETEEL where a compromised EC2 instance with AWS cli installed was used to configure authentication to an external AWS environment or environment with applicable protocols for S3. Afterwards AWS CLI commands were executed for data exfiltration and tool installation however, pointed towards the remote site with the use of
--endpoint-url
.If
--endpoint-url
is not used, the AWS CLI will attempt to interact with default AWS services and endpoint's based on either the compromised environment or default public AWS addresses. It is uncommon to leverage an external endpoint that is not default to AWS or custom to the target environment.An ES|QL query was not used because of the truncated results it presents:
NOTE - The reason a Linux-based rule for Elastic Defend was created was due to no visibility from CloudTrail logs as AWS will only log the SOAP API calls for services like IAM and S3. As a result, there were no logs available for this from the AWS integration.
How To Test
NOTE - Global telemetry was checked for
event.category: "process" and process.name: "aws" and process.args: "--endpoint-url"
with no matches in the last 6 months for both SIEM and EDR.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