Skip to content
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

[Rule Tuning] 3rd Party EDR - Add Crowdstrike FDR support - 3 #4222

Merged
merged 2 commits into from
Nov 4, 2024
Merged

Conversation

w0rk3r
Copy link
Contributor

@w0rk3r w0rk3r commented Oct 31, 2024

Issues

Part of https://github.com/elastic/ia-trade-team/issues/242

Summary

Adjust simple (no sequence) rules to introduce support for Crowdstrike FDR. While full logic validation wasn't possible due to the lack of a test environment, the field population for each category was verified to ensure the data was correctly structured and populated as needed.

EDR field compatibility matrix may be of help to review, although the data provided by FDR is not consistent across event categories, and not even between event actions.

@w0rk3r w0rk3r added Rule: Tuning tweaking or tuning an existing rule OS: Windows windows related rules Domain: Endpoint backport: auto labels Oct 31, 2024
@w0rk3r w0rk3r self-assigned this Oct 31, 2024
@protectionsmachine
Copy link
Collaborator

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.

Copy link
Contributor

@Aegrah Aegrah left a comment

Choose a reason for hiding this comment

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

Just two questions. For the last 3 PRs, would it make sense changing the operators to be more efficient as well?

So changing : to like etc.

]
timestamp_override = "event.ingested"
type = "eql"

query = '''
process where host.os.type == "windows" and event.type == "start" and
process.executable : "C:\\*Program*Files*\\*.exe" and
process.executable : (
"C:\\*Program*Files*\\*.exe",
Copy link
Contributor

Choose a reason for hiding this comment

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

Any reason why there are wildcards?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

To match directories that masquerade as Program Files, not the original

@@ -56,6 +61,18 @@ process where host.os.type == "windows" and event.type == "start" and
"?:\\Windows\\Downloaded Program Files\\*.exe",
"?:\\Windows\\Temp\\.opera\\????????????\\CProgram?FilesOpera*\\*.exe",
"?:\\Windows\\Temp\\.opera\\????????????\\CProgram?Files?(x86)Opera*\\*.exe"
) and
not (
event.dataset == "crowdstrike.fdr" and
Copy link
Contributor

Choose a reason for hiding this comment

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

Just curious, what is this about?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

To not execute these wildcards unless the dataset is Crowdstrike, so we don't make the query more expensive by adding it

@w0rk3r
Copy link
Contributor Author

w0rk3r commented Nov 1, 2024

For the last 3 PRs, would it make sense changing the operators to be more efficient as well?

As we are dealing with multiple vendors and data sources, assuming they share a pattern when populating this data is very risky (Some may be lowercase in specific events, others, all uppercase, which can make the rules to not work). We can take a look at that in the future, but for now we don't have enough data to work on that

@w0rk3r w0rk3r merged commit 2b6116e into main Nov 4, 2024
9 checks passed
@w0rk3r w0rk3r deleted the crwd_2 branch November 4, 2024 14:55
protectionsmachine pushed a commit that referenced this pull request Nov 4, 2024
Removed changes from:
- rules/windows/defense_evasion_masquerading_trusted_directory.toml
- rules/windows/defense_evasion_wsl_child_process.toml
- rules/windows/execution_apt_solarwinds_backdoor_child_cmd_powershell.toml
- rules/windows/execution_enumeration_via_wmiprvse.toml
- rules/windows/execution_initial_access_foxmail_exploit.toml
- rules/windows/execution_suspicious_cmd_wmi.toml
- rules/windows/execution_suspicious_pdf_reader.toml
- rules/windows/execution_via_compiled_html_file.toml
- rules/windows/execution_via_mmc_console_file_unusual_path.toml

(selectively cherry picked from commit 2b6116e)
protectionsmachine pushed a commit that referenced this pull request Nov 4, 2024
Removed changes from:
- rules/windows/defense_evasion_masquerading_trusted_directory.toml
- rules/windows/defense_evasion_wsl_child_process.toml
- rules/windows/execution_apt_solarwinds_backdoor_child_cmd_powershell.toml
- rules/windows/execution_enumeration_via_wmiprvse.toml
- rules/windows/execution_initial_access_foxmail_exploit.toml
- rules/windows/execution_suspicious_cmd_wmi.toml
- rules/windows/execution_suspicious_pdf_reader.toml
- rules/windows/execution_via_compiled_html_file.toml
- rules/windows/execution_via_mmc_console_file_unusual_path.toml

(selectively cherry picked from commit 2b6116e)
protectionsmachine pushed a commit that referenced this pull request Nov 4, 2024
Removed changes from:
- rules/windows/defense_evasion_masquerading_trusted_directory.toml
- rules/windows/defense_evasion_wsl_child_process.toml
- rules/windows/execution_apt_solarwinds_backdoor_child_cmd_powershell.toml
- rules/windows/execution_enumeration_via_wmiprvse.toml
- rules/windows/execution_initial_access_foxmail_exploit.toml
- rules/windows/execution_suspicious_cmd_wmi.toml
- rules/windows/execution_suspicious_pdf_reader.toml
- rules/windows/execution_via_compiled_html_file.toml
- rules/windows/execution_via_mmc_console_file_unusual_path.toml

(selectively cherry picked from commit 2b6116e)
protectionsmachine pushed a commit that referenced this pull request Nov 4, 2024
Removed changes from:
- rules/windows/defense_evasion_masquerading_trusted_directory.toml
- rules/windows/defense_evasion_wsl_child_process.toml
- rules/windows/execution_apt_solarwinds_backdoor_child_cmd_powershell.toml
- rules/windows/execution_enumeration_via_wmiprvse.toml
- rules/windows/execution_initial_access_foxmail_exploit.toml
- rules/windows/execution_suspicious_cmd_wmi.toml
- rules/windows/execution_suspicious_pdf_reader.toml
- rules/windows/execution_via_compiled_html_file.toml
- rules/windows/execution_via_mmc_console_file_unusual_path.toml

(selectively cherry picked from commit 2b6116e)
protectionsmachine pushed a commit that referenced this pull request Nov 4, 2024
protectionsmachine pushed a commit that referenced this pull request Nov 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport: auto Domain: Endpoint OS: Windows windows related rules Rule: Tuning tweaking or tuning an existing rule
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants