Skip to content

Commit f74a5f6

Browse files
Merge branch 'main' into crwd_7
2 parents f600962 + d5b5ba3 commit f74a5f6

File tree

57 files changed

+463
-230
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+463
-230
lines changed
730 Bytes
Binary file not shown.
202 KB
Binary file not shown.

detection_rules/etc/non-ecs-schema.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,8 @@
150150
"logs-aws.cloudtrail-*": {
151151
"aws.cloudtrail.flattened.request_parameters.cidrIp": "keyword",
152152
"aws.cloudtrail.flattened.request_parameters.fromPort": "keyword",
153-
"aws.cloudtrail.flattened.request_parameters.roleArn": "keyword"
153+
"aws.cloudtrail.flattened.request_parameters.roleArn": "keyword",
154+
"aws.cloudtrail.flattened.request_parameters.serialNumber": "keyword"
154155
},
155156
"logs-azure.signinlogs-*": {
156157
"azure.signinlogs.properties.conditional_access_audiences.application_id": "keyword"

detection_rules/schemas/definitions.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ def validator(value):
7979
'sentinel_one_cloud_funnel',
8080
'ti_rapid7_threat_command',
8181
'm365_defender',
82-
'panw']
82+
'panw',
83+
'crowdstrike']
8384
NON_PUBLIC_FIELDS = {
8485
"related_integrations": (Version.parse('8.3.0'), None),
8586
"required_fields": (Version.parse('8.3.0'), None),

rules/integrations/aws/impact_iam_deactivate_mfa_device.toml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
creation_date = "2020/05/26"
33
integration = ["aws"]
44
maturity = "production"
5-
updated_date = "2024/05/21"
5+
updated_date = "2024/10/25"
66

77
[rule]
88
author = ["Elastic", "Austin Songer"]
@@ -80,6 +80,7 @@ tags = [
8080
"Data Source: AWS IAM",
8181
"Resources: Investigation Guide",
8282
"Tactic: Impact",
83+
"Tactic: Persistence",
8384
]
8485
timestamp_override = "event.ingested"
8586
type = "query"
@@ -101,4 +102,19 @@ reference = "https://attack.mitre.org/techniques/T1531/"
101102
id = "TA0040"
102103
name = "Impact"
103104
reference = "https://attack.mitre.org/tactics/TA0040/"
105+
[[rule.threat]]
106+
framework = "MITRE ATT&CK"
107+
[[rule.threat.technique]]
108+
id = "T1556"
109+
name = "Modify Authentication Process"
110+
reference = "https://attack.mitre.org/techniques/T1556/"
111+
[[rule.threat.technique.subtechnique]]
112+
id = "T1556.006"
113+
name = "Multi-Factor Authentication"
114+
reference = "https://attack.mitre.org/techniques/T1556/006/"
104115

116+
117+
[rule.threat.tactic]
118+
id = "TA0003"
119+
name = "Persistence"
120+
reference = "https://attack.mitre.org/tactics/TA0003/"
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
[metadata]
2+
creation_date = "2024/10/25"
3+
integration = ["aws"]
4+
maturity = "production"
5+
updated_date = "2024/10/25"
6+
7+
8+
[rule]
9+
author = ["Elastic"]
10+
description = """
11+
Identifies when a user has assumed a role using a new MFA device. Users can assume a role to obtain temporary credentials and access AWS resources using the AssumeRole API of AWS Security Token Service (STS).
12+
While a new MFA device is not always indicative of malicious behavior it should be verified as adversaries can use this technique for persistence and privilege escalation.
13+
"""
14+
false_positives = [
15+
"AWS administrators or automated processes might regularly assume roles for legitimate administrative purposes and to perform periodic tasks such as data backups, updates, or deployments.",
16+
]
17+
index = ["filebeat-*", "logs-aws.cloudtrail-*"]
18+
language = "kuery"
19+
license = "Elastic License v2"
20+
name = "AWS STS AssumeRole with New MFA Device"
21+
note = """## Setup
22+
23+
The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."""
24+
references = [
25+
"https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html",
26+
"https://github.com/RhinoSecurityLabs/cloudgoat/blob/d5863b80afd082d853f2e8df1955c6393695a4da/scenarios/iam_privesc_by_key_rotation/README.md",
27+
]
28+
risk_score = 21
29+
rule_id = "a22f566b-5b23-4412-880d-c6c957acd321"
30+
severity = "low"
31+
tags = [
32+
"Domain: Cloud",
33+
"Data Source: AWS",
34+
"Data Source: Amazon Web Services",
35+
"Data Source: AWS STS",
36+
"Use Case: Identity and Access Audit",
37+
"Tactic: Privilege Escalation",
38+
"Tactic: Persistence",
39+
"Tactic: Lateral Movement",
40+
]
41+
timestamp_override = "event.ingested"
42+
type = "new_terms"
43+
44+
query = '''
45+
event.dataset:aws.cloudtrail
46+
and event.provider:sts.amazonaws.com
47+
and event.action:(AssumeRole or AssumeRoleWithSAML or AssumeRoleWithWebIdentity)
48+
and event.outcome:success
49+
and user.id:*
50+
and aws.cloudtrail.flattened.request_parameters.serialNumber:*
51+
'''
52+
53+
54+
[[rule.threat]]
55+
framework = "MITRE ATT&CK"
56+
[[rule.threat.technique]]
57+
id = "T1556"
58+
name = "Modify Authentication Process"
59+
reference = "https://attack.mitre.org/techniques/T1556/"
60+
[[rule.threat.technique.subtechnique]]
61+
id = "T1556.006"
62+
name = "Multi-Factor Authentication"
63+
reference = "https://attack.mitre.org/techniques/T1556/006/"
64+
65+
66+
[rule.threat.tactic]
67+
id = "TA0003"
68+
name = "Persistence"
69+
reference = "https://attack.mitre.org/tactics/TA0003/"
70+
[[rule.threat]]
71+
framework = "MITRE ATT&CK"
72+
[[rule.threat.technique]]
73+
id = "T1548"
74+
name = "Abuse Elevation Control Mechanism"
75+
reference = "https://attack.mitre.org/techniques/T1548/"
76+
77+
78+
[rule.threat.tactic]
79+
id = "TA0004"
80+
name = "Privilege Escalation"
81+
reference = "https://attack.mitre.org/tactics/TA0004/"
82+
[[rule.threat]]
83+
framework = "MITRE ATT&CK"
84+
[[rule.threat.technique]]
85+
id = "T1550"
86+
name = "Use Alternate Authentication Material"
87+
reference = "https://attack.mitre.org/techniques/T1550/"
88+
[[rule.threat.technique.subtechnique]]
89+
id = "T1550.001"
90+
name = "Application Access Token"
91+
reference = "https://attack.mitre.org/techniques/T1550/001/"
92+
93+
94+
[rule.threat.tactic]
95+
id = "TA0008"
96+
name = "Lateral Movement"
97+
reference = "https://attack.mitre.org/tactics/TA0008/"
98+
99+
[rule.new_terms]
100+
field = "new_terms_fields"
101+
value = ["user.id", "aws.cloudtrail.flattened.request_parameters.serialNumber"]
102+
[[rule.new_terms.history_window_start]]
103+
field = "history_window_start"
104+
value = "now-10d"
105+
106+

rules/windows/collection_email_powershell_exchange_mailbox.toml

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
[metadata]
22
creation_date = "2020/12/15"
3-
integration = ["endpoint", "windows", "system", "sentinel_one_cloud_funnel", "m365_defender"]
3+
integration = ["endpoint", "windows", "system", "sentinel_one_cloud_funnel", "m365_defender", "crowdstrike"]
44
maturity = "production"
55
min_stack_comments = "Breaking change at 8.14.0 for the Windows Integration."
66
min_stack_version = "8.14.0"
7-
updated_date = "2024/10/15"
7+
updated_date = "2024/10/31"
88

99
[rule]
1010
author = ["Elastic"]
@@ -22,6 +22,7 @@ index = [
2222
"logs-system.security*",
2323
"logs-sentinel_one_cloud_funnel.*",
2424
"logs-m365_defender.event-*",
25+
"logs-crowdstrike.fdr*",
2526
]
2627
language = "eql"
2728
license = "Elastic License v2"
@@ -74,14 +75,6 @@ references = [
7475
]
7576
risk_score = 47
7677
rule_id = "6aace640-e631-4870-ba8e-5fdda09325db"
77-
setup = """## Setup
78-
79-
If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2,
80-
events will not define `event.ingested` and default fallback for EQL rules was not added until version 8.2.
81-
Hence for this rule to work effectively, users will need to add a custom ingest pipeline to populate
82-
`event.ingested` to @timestamp.
83-
For more details on adding a custom ingest pipeline refer - https://www.elastic.co/guide/en/fleet/current/data-streams-pipeline-tutorial.html
84-
"""
8578
severity = "medium"
8679
tags = [
8780
"Domain: Endpoint",
@@ -95,6 +88,7 @@ tags = [
9588
"Data Source: SentinelOne",
9689
"Data Source: Microsoft Defender for Endpoint",
9790
"Data Source: System",
91+
"Data Source: Crowdstrike",
9892
]
9993
timestamp_override = "event.ingested"
10094
type = "eql"

rules/windows/collection_winrar_encryption.toml

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[metadata]
22
creation_date = "2020/12/04"
3-
integration = ["endpoint", "windows"]
3+
integration = ["endpoint", "windows", "m365_defender", "sentinel_one_cloud_funnel"]
44
maturity = "production"
5-
updated_date = "2024/10/15"
5+
updated_date = "2024/11/02"
66
min_stack_version = "8.14.0"
77
min_stack_comments = "Breaking change at 8.14.0 for the Windows Integration."
88

@@ -13,7 +13,14 @@ Identifies use of WinRar or 7z to create an encrypted files. Adversaries will of
1313
preparation for exfiltration.
1414
"""
1515
from = "now-9m"
16-
index = ["logs-endpoint.events.process-*", "winlogbeat-*", "logs-windows.*", "endgame-*"]
16+
index = [
17+
"logs-endpoint.events.process-*",
18+
"winlogbeat-*",
19+
"logs-windows.sysmon_operational-*",
20+
"endgame-*",
21+
"logs-m365_defender.event-*",
22+
"logs-sentinel_one_cloud_funnel.*"
23+
]
1724
language = "eql"
1825
license = "Elastic License v2"
1926
name = "Encrypting Files with WinRar or 7z"
@@ -72,6 +79,9 @@ tags = [
7279
"Resources: Investigation Guide",
7380
"Data Source: Elastic Endgame",
7481
"Data Source: Elastic Defend",
82+
"Data Source: Sysmon",
83+
"Data Source: Microsoft Defender for Endpoint",
84+
"Data Source: SentinelOne"
7585
]
7686
timestamp_override = "event.ingested"
7787
type = "eql"
@@ -87,15 +97,19 @@ process where host.os.type == "windows" and event.type == "start" and
8797
process.args == "a" and process.args : ("-hp*", "-p*", "/hp*", "/p*")
8898
) or
8999
(
90-
?process.pe.original_file_name in ("7z.exe", "7za.exe") and
100+
(process.name : ("7z.exe", "7za.exe") or ?process.pe.original_file_name in ("7z.exe", "7za.exe")) and
91101
process.args == "a" and process.args : "-p*"
92102
)
93103
) and
94104
not process.parent.executable : (
95105
"C:\\Program Files\\*.exe",
96106
"C:\\Program Files (x86)\\*.exe",
97107
"?:\\ManageEngine\\*\\jre\\bin\\java.exe",
98-
"?:\\Nox\\bin\\Nox.exe"
108+
"?:\\Nox\\bin\\Nox.exe",
109+
"\\Device\\HarddiskVolume?\\Program Files\\*.exe",
110+
"\\Device\\HarddiskVolume?\\Program Files (x86)\\*.exe",
111+
"\\Device\\HarddiskVolume?\\ManageEngine\\*\\jre\\bin\\java.exe",
112+
"\\Device\\HarddiskVolume?\\Nox\\bin\\Nox.exe"
99113
)
100114
'''
101115

rules/windows/command_and_control_headless_browser.toml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[metadata]
22
creation_date = "2024/05/10"
3-
integration = ["endpoint", "windows", "system", "m365_defender", "sentinel_one_cloud_funnel"]
3+
integration = ["endpoint", "windows", "system", "m365_defender", "sentinel_one_cloud_funnel", "crowdstrike"]
44
maturity = "production"
5-
updated_date = "2024/10/15"
5+
updated_date = "2024/10/31"
66
min_stack_version = "8.14.0"
77
min_stack_comments = "Breaking change at 8.14.0 for the Windows Integration."
88

@@ -22,6 +22,7 @@ index = [
2222
"logs-system.security*",
2323
"logs-m365_defender.event-*",
2424
"logs-sentinel_one_cloud_funnel.*",
25+
"logs-crowdstrike.fdr*",
2526
]
2627
language = "eql"
2728
license = "Elastic License v2"
@@ -67,6 +68,7 @@ tags = [
6768
"Data Source: Microsoft Defender for Endpoint",
6869
"Data Source: SentinelOne",
6970
"Data Source: Sysmon",
71+
"Data Source: Crowdstrike",
7072
]
7173
timestamp_override = "event.ingested"
7274
type = "eql"

rules/windows/command_and_control_rdp_tunnel_plink.toml

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
[metadata]
22
creation_date = "2020/10/14"
3-
integration = ["endpoint", "windows", "sentinel_one_cloud_funnel", "m365_defender", "system"]
3+
integration = ["endpoint", "windows", "sentinel_one_cloud_funnel", "m365_defender", "system", "crowdstrike"]
44
maturity = "production"
55
min_stack_comments = "Breaking change at 8.14.0 for the Windows Integration."
66
min_stack_version = "8.14.0"
7-
updated_date = "2024/10/17"
7+
updated_date = "2024/10/31"
88

99
[rule]
1010
author = ["Elastic"]
@@ -13,7 +13,7 @@ Identifies potential use of an SSH utility to establish RDP over a reverse SSH T
1313
enable routing of network packets that would otherwise not reach their intended destination.
1414
"""
1515
from = "now-9m"
16-
index = ["logs-endpoint.events.process-*", "winlogbeat-*", "logs-windows.*", "endgame-*", "logs-system.security*", "logs-sentinel_one_cloud_funnel.*", "logs-m365_defender.event-*"]
16+
index = ["logs-endpoint.events.process-*", "winlogbeat-*", "logs-windows.*", "endgame-*", "logs-system.security*", "logs-sentinel_one_cloud_funnel.*", "logs-m365_defender.event-*", "logs-crowdstrike.fdr*"]
1717
language = "eql"
1818
license = "Elastic License v2"
1919
name = "Potential Remote Desktop Tunneling Detected"
@@ -54,14 +54,6 @@ This rule looks for command lines involving the `3389` port, which RDP uses by d
5454
references = ["https://blog.netspi.com/how-to-access-rdp-over-a-reverse-ssh-tunnel/"]
5555
risk_score = 73
5656
rule_id = "76fd43b7-3480-4dd9-8ad7-8bd36bfad92f"
57-
setup = """## Setup
58-
59-
If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2,
60-
events will not define `event.ingested` and default fallback for EQL rules was not added until version 8.2.
61-
Hence for this rule to work effectively, users will need to add a custom ingest pipeline to populate
62-
`event.ingested` to @timestamp.
63-
For more details on adding a custom ingest pipeline refer - https://www.elastic.co/guide/en/fleet/current/data-streams-pipeline-tutorial.html
64-
"""
6557
severity = "high"
6658
tags = [
6759
"Domain: Endpoint",
@@ -75,6 +67,7 @@ tags = [
7567
"Data Source: SentinelOne",
7668
"Data Source: Microsoft Defender for Endpoint",
7769
"Data Source: System",
70+
"Data Source: Crowdstrike",
7871
]
7972
timestamp_override = "event.ingested"
8073
type = "eql"

0 commit comments

Comments
 (0)