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

CrowdStrike bidirectional response actions (isolate & release) #5529

Merged
merged 16 commits into from
Aug 7, 2024

Conversation

joepeeples
Copy link
Contributor

@joepeeples joepeeples commented Jul 8, 2024

Contributes to #5446 and https://github.com/elastic/security-docs-internal/issues/21 (internal).

Previews

The format is a little different between serverless and stateful docs, due to each system's limitations. The serverless version uses a neat tabbed format to display one EDR system at a time, while stateful docs use separate sections or collapsible sections. The goal in both approaches is to avoid overwhelming the reader by limiting the amount of text displayed (one EDR system at at time).

Serverless docs:

  • Click the link below, then in the Security card click View serverless docs.
  • Navigate to Endpoint response actions, then:
    • Third-party response actions
    • Configure third-party response actions

Stateful/ESS docs:

@joepeeples joepeeples added Team: EDR Workflows Formerly Defend Workflows, Onboarding and Lifecycle Management Feature: Response actions also includes response console Docset: Serverless Issues for Serverless Security Docset: ESS Issues that apply to docs in the Stack release v8.15.0 ci:doc-build labels Jul 8, 2024
@joepeeples joepeeples self-assigned this Jul 8, 2024
Copy link

github-actions bot commented Jul 8, 2024

A documentation preview will be available soon.

Request a new doc build by commenting
  • Rebuild this PR: run docs-build
  • Rebuild this PR and all Elastic docs: run docs-build rebuild

run docs-build is much faster than run docs-build rebuild. A rebuild should only be needed in rare situations.

If your PR continues to fail for an unknown reason, the doc build pipeline may be broken. Elastic employees can check the pipeline status here.

@elasticdocs
Copy link

elasticdocs commented Jul 8, 2024

🚀 Built elastic-dot-co-docs-preview-docs successfully!

Issues? Visit #next-docs in Slack

@joepeeples joepeeples requested review from tomsonpl, caitlinbetz and a team July 12, 2024 20:06
@joepeeples joepeeples marked this pull request as ready for review July 12, 2024 20:06
@joepeeples joepeeples requested a review from a team as a code owner July 12, 2024 20:06
Copy link
Contributor

@nastasha-solomon nastasha-solomon left a comment

Choose a reason for hiding this comment

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

Just left a handful of optional edits and some questions. Looks great overall though, and good use of the tabbed and collapse/expand components to organize information!

docs/management/admin/response-actions-config.asciidoc Outdated Show resolved Hide resolved
docs/management/admin/response-actions-config.asciidoc Outdated Show resolved Hide resolved
docs/management/admin/response-actions-config.asciidoc Outdated Show resolved Hide resolved
docs/management/admin/response-actions-config.asciidoc Outdated Show resolved Hide resolved
docs/management/admin/response-actions-config.asciidoc Outdated Show resolved Hide resolved
docs/management/admin/response-actions-config.asciidoc Outdated Show resolved Hide resolved
Co-authored-by: Nastasha Solomon <79124755+nastasha-solomon@users.noreply.github.com>
Copy link
Contributor

@paul-tavares paul-tavares left a comment

Choose a reason for hiding this comment

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

Hi @joepeeples ,
I took a pass at these docs, but really I'm hopping that you can wait until sometime next week to get @tomsonpl 's review since he's the most knowledgeable with CrowdStrike.


. **Create an API client in CrowdStrike.** Refer to CrowdStrike's docs for instructions on creating an API client.
+
- Give the API client the minimum privilege required to read CrowdStrike data and perform actions on enrolled hosts.
Copy link
Contributor

Choose a reason for hiding this comment

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

Lets double check this step is correct, because this currently states that the 1 API key with full privileges to read and also execute response actions. This provides the integration policy with a token that IMO has too many unnecessary privileges.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Makes sense. The demo video and other materials I was able to find for CrowdStrike didn't specify multiple API clients, but we recommend 2 API keys for SentinelOne and could do something similar for CrowdStrike.

Copy link

Choose a reason for hiding this comment

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

Unfortunately I cannot confirm this - but you both may be right. Ingesting data might use a different clientId/secret than response actions - but it's rather Crowdstrike specific that I do not have information of ;/

Copy link
Contributor Author

Choose a reason for hiding this comment

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

OK, I can try to reword this to be a little less prescriptive about exact number of API clients, give more general guidelines and leave it up to the user's discretion.

- Give the API client the minimum privilege required to read CrowdStrike data and perform actions on enrolled hosts.
- Take note of the client ID, client secret, and base URL; you'll need them in later steps when you configure {elastic-sec} components to access CrowdStrike.

. **Install the CrowdStrike integration and {agent}.** Elastic's {integrations-docs}/crowdstrike[CrowdStrike integration]
Copy link
Contributor

Choose a reason for hiding this comment

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

NOTE: there are two crowdstrike integrations. Lets confirm that the only needed one is this one you documented here (the other one is called 'CrowdStrike Falcon Intelligence')

- **Client Secret**: Client secret allowing you access to CrowdStrike.
.. Click **Save**.

. **Create and enable a rule to generate {elastic-sec} alerts.** (Optional) Create a <<create-custom-rule,custom query detection rule>> to generate {elastic-sec} alerts based on CrowdStrike events and data. Use the index pattern `logs-crowdstrike*`.
Copy link
Contributor

Choose a reason for hiding this comment

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

This, IMO, is not a good suggestion for the index name - it essentially says "create alerts for any type of crowdstrike data". I think (but you would need to confirm with @tomsonpl ) that there are specific indicates for crowdstrike alerts and other malware data, so perhaps using a more specific example would be best.

The other alternative would be to refer the customer tot he Integration overview page which describes the different types of data collected by the integration - that should give the user a good starting point on how to setup their Rule to only promote valid threats to SIEM alerts in kibana.


@caitlinbetz - it would be great if we could get an example rule from one of our customers that run CrowdStrike just to see how they have setup their rule

Copy link
Contributor Author

@joepeeples joepeeples Jul 24, 2024

Choose a reason for hiding this comment

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

A sample index pattern or query would be preferable, I think — linking to the integration's docs could be overwhelming since it just lists every possible fields ingested, but doesn't recommend any particular pattern.

Is there an alert-specific pattern we could suggest, similar to how for SentinelOne we suggest logs-sentinel_one.alert*? That way the query only targets alerts, not all CrowdStrike data.

Copy link

Choose a reason for hiding this comment

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

I would agree with @paul-tavares here, it's really up to user what query they want to use and most of the times they are pretty specific. For the docs I would suggest using something like this: 'use a query or index pattern that could find Crowdstrike data' - of course in better English ;p

WDYT @joepeeples ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Similar to above, I'll reword this to be more general guidance, and probably link to our CrowdStrike integration docs page since it lists all the available fields. Even if it's up to the user to write queries however they see fit, it'd be ideal if we could at least give some example queries to illustrate how to detect specific things, but maybe we can add that in a later revision once we know more about the data.

tomsonpl
tomsonpl previously approved these changes Aug 1, 2024
Copy link

@tomsonpl tomsonpl left a comment

Choose a reason for hiding this comment

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

Added my 2 cents to Paul's great comments, but other than that - LGTM 👍 thank you!

caitlinbetz
caitlinbetz previously approved these changes Aug 1, 2024
@joepeeples joepeeples dismissed stale reviews from caitlinbetz and tomsonpl via 88e373b August 1, 2024 16:04
@joepeeples
Copy link
Contributor Author

joepeeples commented Aug 1, 2024

@paul-tavares @tomsonpl I pushed some revisions to address your feedback above (API client privs, rule query suggestions). Please check out the updated preview page and let me know if this works. We can always add more details later to fine-tune our guidance for customers. Thanks!

.. Enter the configuration information:
- **Connector name**: A name to identify the connector.
- **CrowdStrike API URL**: The base URL of the CrowdStrike API.
- **CrowdStrike Client ID**: Client ID for the API client used to perform actions in CrowdStrike.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Wondering if the API client used to perform actions also needs privs to read CrowdStrike data?

Copy link

Choose a reason for hiding this comment

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

🤷 no idea, but I would assume it's nicely explained in CrowdStrike when creating credentials, so imho the users shouldn't be confused by this 👍

paul-tavares
paul-tavares previously approved these changes Aug 6, 2024
Copy link

@tomsonpl tomsonpl left a comment

Choose a reason for hiding this comment

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

LGTM 👍 thank you !

@joepeeples joepeeples merged commit 7c23048 into main Aug 7, 2024
4 checks passed
mergify bot pushed a commit that referenced this pull request Aug 7, 2024
* Incomplete first draft, serverless only

* Fills in config details, edits

* First draft of classic version

* Apply suggestions from Nastasha's review

Co-authored-by: Nastasha Solomon <79124755+nastasha-solomon@users.noreply.github.com>

* Revise link to CrowdStrike connector docs

* Revise API client guidelines

* Revise detection rule guidelines

* Update serverless with revisions from feedback

* Fix typo on serverless side

---------

Co-authored-by: Nastasha Solomon <79124755+nastasha-solomon@users.noreply.github.com>
(cherry picked from commit 7c23048)

# Conflicts:
#	docs/serverless/endpoint-response-actions/response-actions-config.mdx
#	docs/serverless/endpoint-response-actions/response-actions.mdx
#	docs/serverless/endpoint-response-actions/third-party-actions.mdx
@joepeeples joepeeples deleted the 5446-crowdstrike-response-actions branch August 7, 2024 14:03
joepeeples added a commit that referenced this pull request Aug 7, 2024
… (backport #5529) (#5671)

* CrowdStrike bidirectional response actions (isolate & release) (#5529)

* Incomplete first draft, serverless only

* Fills in config details, edits

* First draft of classic version

* Apply suggestions from Nastasha's review

Co-authored-by: Nastasha Solomon <79124755+nastasha-solomon@users.noreply.github.com>

* Revise link to CrowdStrike connector docs

* Revise API client guidelines

* Revise detection rule guidelines

* Update serverless with revisions from feedback

* Fix typo on serverless side

---------

Co-authored-by: Nastasha Solomon <79124755+nastasha-solomon@users.noreply.github.com>
(cherry picked from commit 7c23048)

# Conflicts:
#	docs/serverless/endpoint-response-actions/response-actions-config.mdx
#	docs/serverless/endpoint-response-actions/response-actions.mdx
#	docs/serverless/endpoint-response-actions/third-party-actions.mdx

* Delete docs/serverless directory and its contents

---------

Co-authored-by: Joe Peeples <joe.peeples@elastic.co>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Docset: ESS Issues that apply to docs in the Stack release Docset: Serverless Issues for Serverless Security Feature: Response actions also includes response console Team: EDR Workflows Formerly Defend Workflows, Onboarding and Lifecycle Management v8.15.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants