Skip to content

Commit e0f0ea0

Browse files
joepeeplesmergify[bot]
authored andcommitted
Known Issues + Access requirements for Crowdstrike Connector (#5848)
* First draft * mdx to asciidoc * Apply suggestions from Nastasha's review Co-authored-by: Nastasha Solomon <[email protected]> --------- Co-authored-by: Colleen McGinnis <[email protected]> Co-authored-by: Nastasha Solomon <[email protected]> (cherry picked from commit 8b7467f) # Conflicts: # docs/serverless/endpoint-response-actions/response-actions-config.asciidoc # docs/serverless/endpoint-response-actions/third-party-actions.asciidoc
1 parent f1cdd4f commit e0f0ea0

File tree

5 files changed

+273
-4
lines changed

5 files changed

+273
-4
lines changed

docs/management/admin/response-actions-config.asciidoc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,16 @@ Expand a section below for your endpoint security system:
3838
. **Enable API access in CrowdStrike.** Create an API client in CrowdStrike to allow access to the system. Refer to CrowdStrike's docs for instructions.
3939
+
4040
- Give the API client the minimum privilege required to read CrowdStrike data and perform actions on enrolled hosts. Consider creating separate API clients for reading data and performing actions, to limit privileges allowed by each API client.
41+
* To isolate and release hosts, the API client must have `Read` access for Alerts, and `Read` and `Write` access for Hosts.
42+
4143
- 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.
4244
45+
- The base URL varies depending on your CrowdStrike account type:
46+
* US-1: `https://api.crowdstrike.com`
47+
* US-2: `https://api.us-2.crowdstrike.com`
48+
* EU-1: `https://api.eu-1.crowdstrike.com`
49+
* US-GOV-1: `https://api.laggar.gcw.crowdstrike.com`
50+
4351
. **Install the CrowdStrike integration and {agent}.** Elastic's {integrations-docs}/crowdstrike[CrowdStrike integration]
4452
collects and ingests logs into {elastic-sec}.
4553
+

docs/management/admin/third-party-actions.asciidoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ You can perform response actions on hosts enrolled in other third-party endpoint
1616
* Third-party response actions require an https://www.elastic.co/pricing[Enterprise subscription].
1717

1818
* Each response action type has its own user role privilege requirements. Find an action's role requirements at <<response-actions>>.
19+
20+
* Additional <<response-actions-config,configuration>> is required to connect {elastic-sec} with a third-party system.
1921
--
2022

2123
[discrete]

docs/release-notes/8.15.asciidoc

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ On October 17, 2024, this issue was resolved.
157157
==== Bug fixes
158158

159159
* Fixes an {elastic-defend} bug that affected CPU usage for Windows process events where the same executable is repeatedly launched, for example, during compilation workloads. With this fix, CPU usage is improved.
160-
* Fixes an {elastic-defend} bug that sometimes caused malware scan response actions to crash when they attempted to scan an inaccessible directory.
160+
* Fixes an {elastic-defend} bug that sometimes caused malware scan response actions to crash when they attempted to scan an inaccessible directory.
161161
* Fixes an {elastic-defend} bug that sometimes caused {elastic-endpoint} to report an incorrect version if it used an independent {agent} release.
162162
* Fixes an {elastic-defend} bug where the `process.thread.Ext.call_stack_final_user_module.protection_provenance_path` field might be populated with a non-path value. This fix is for Windows endpoints only.
163163
* Fixes an {elastic-defend} bug that can lead to {elastic-endpoint} reporting `STATUS_ACCESS_DENIED` when attempting to open files for `GENERIC_READ`. {elastic-endpoint} almost always recovered from this issue, but with this fix, it succeeds on the first try. This fix is for Windows endpoints only.
@@ -196,7 +196,7 @@ On August 1, 2024, it was discovered that Elastic AI Assistant's responses when
196196
[%collapsible]
197197
====
198198
*Details* +
199-
On August 20, 2024, it was discovered that the bulk actions menu on the Rules page erroneously had the option to manually run multiple rules.
199+
On August 20, 2024, it was discovered that the bulk actions menu on the Rules page erroneously had the option to manually run multiple rules.
200200
201201
*Workaround* +
202202
Upgrade to 8.15.1.
@@ -224,6 +224,20 @@ On September 5, 2024, this issue was resolved.
224224
====
225225
// end::known-issue-14686[]
226226

227+
// tag::known-issue-crowdstrike-response-actions[]
228+
[discrete]
229+
.CrowdStrike response actions (isolate and release host) not working
230+
[%collapsible]
231+
====
232+
*Details* +
233+
A bug prevented third-party response actions with CrowdStrike from working.
234+
235+
*Workaround* +
236+
Upgrade to 8.15.1 or later.
237+
238+
====
239+
// end::known-issue-crowdstrike-response-actions[]
240+
227241
// tag::known-issue-192084[]
228242
[discrete]
229243
.Alerts wrongfully inherit previously-selected tags
@@ -267,7 +281,7 @@ On October 17, 2024, this issue was resolved.
267281
* Adds an API that allows you to perform paginated KQL searches through asset criticality records ({kibana-pull}186568[#186568]).
268282
* Adds public APIs for managing asset criticality ({kibana-pull}186169[#186169]).
269283
* Allows you to edit the `max_signals`, `related_integrations`, and `required_fields` fields for custom rules ({kibana-pull}179680[#179680], {kibana-pull}178295[#178295], {kibana-pull}180682[#180682]).
270-
* Provides help from AI Assistant when you're correcting rule query errors ({kibana-pull}179091[#179091]).
284+
* Provides help from AI Assistant when you're correcting rule query errors ({kibana-pull}179091[#179091]).
271285
* Allows you to bulk update custom highlighted fields for rules ({kibana-pull}179312[#179312]).
272286
* Adds alert suppression for {ml} and {esql} rules ({kibana-pull}181926[#181926], {kibana-pull}180927[#180927]).
273287
* Provides previews of hosts, users, and alerts that you're examining in the alert details flyout ({kibana-pull}186850[#186850], {kibana-pull}186857[#186857]).
@@ -293,7 +307,7 @@ On October 17, 2024, this issue was resolved.
293307
* Updates the copy for bulk assigning asset criticality to multiple entities ({kibana-pull}181390[#181390]).
294308
* Improves visual and logic issues in the Findings table ({kibana-pull}184185[#184185]).
295309
* Enables the expandable alert details flyout by default and replaces the `securitySolution:enableExpandableFlyout` advanced setting with a feature flag that allows you to revert to the old flyout version ({kibana-pull}184169[#184169]).
296-
* Improves the UI design and copy of various places in the alert details flyout ({kibana-pull}187430[#187430], {kibana-pull}187920[#187920]).
310+
* Improves the UI design and copy of various places in the alert details flyout ({kibana-pull}187430[#187430], {kibana-pull}187920[#187920]).
297311
* Updates the MITRE ATT&CK framework to version 15.1 ({kibana-pull}183463[#183463]).
298312
* Improves the warning message about rule actions being unavailable after a rule ran ({kibana-pull}182741[#182741]).
299313
* Enables the `xMatters` and `Server Log connectors` rule actions ({kibana-pull}172933[#172933]).
Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
[[security-response-actions-config]]
2+
= Configure third-party response actions
3+
4+
// :description: Configure {elastic-sec} to perform response actions on hosts protected by third-party systems.
5+
// :keywords: serverless, security, how-to, configure
6+
7+
preview:[]
8+
9+
preview::[]
10+
11+
You can direct third-party endpoint protection systems to perform response actions on enrolled hosts, such as isolating a suspicious endpoint from your network, without leaving the {elastic-sec} UI. This page explains the configuration steps needed to enable response actions for these third-party systems:
12+
13+
* CrowdStrike
14+
* SentinelOne
15+
16+
Check out <<security-third-party-actions>> to learn which response actions are supported for each system.
17+
18+
.Prerequisites
19+
[NOTE]
20+
====
21+
* <<elasticsearch-manage-project,Project features add-on>>: Endpoint Protection Complete
22+
* <<general-assign-user-roles,User roles>>: **SOC manager** or **Endpoint operations analyst**
23+
* Endpoints must have actively running third-party agents installed.
24+
====
25+
26+
Select a tab below for your endpoint security system:
27+
28+
++++
29+
<div class="tabs" data-tab-group="endpoint-response-actions-response-actions-config">
30+
<div role="tablist" aria-label="endpoint-response-actions-response-actions-config">
31+
<button role="tab" aria-selected="true" aria-controls="endpoint-response-actions-response-actions-config-crowdstrike-panel" id="endpoint-response-actions-response-actions-config-crowdstrike-button">
32+
CrowdStrike
33+
</button>
34+
<button role="tab" aria-selected="false" aria-controls="endpoint-response-actions-response-actions-config-sentinelone-panel" id="endpoint-response-actions-response-actions-config-sentinelone-button" tabindex="-1">
35+
SentinelOne
36+
</button>
37+
</div>
38+
<div tabindex="0" role="tabpanel" id="endpoint-response-actions-response-actions-config-crowdstrike-panel" aria-labelledby="endpoint-response-actions-response-actions-config-crowdstrike-button">
39+
++++
40+
////
41+
/* NOTE TO CONTRIBUTORS: These DocTabs have very similar content. If you change anything
42+
in this tab, apply the change to the other tabs, too. */
43+
////
44+
45+
To configure response actions for CrowdStrike-enrolled hosts:
46+
47+
. **Enable API access in CrowdStrike.** Create an API client in CrowdStrike to allow access to the system. Refer to CrowdStrike's docs for instructions.
48+
+
49+
** Give the API client the minimum privilege required to read CrowdStrike data and perform actions on enrolled hosts. Consider creating separate API clients for reading data and performing actions, to limit privileges allowed by each API client.
50+
*** To isolate and release hosts, the API client must have `Read` access for Alerts, and `Read` and `Write` access for Hosts.
51+
** 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.
52+
** The base URL varies depending on your CrowdStrike account type:
53+
*** US-1: `https://api.crowdstrike.com`
54+
*** US-2: `https://api.us-2.crowdstrike.com`
55+
*** EU-1: `https://api.eu-1.crowdstrike.com`
56+
*** US-GOV-1: `https://api.laggar.gcw.crowdstrike.com`
57+
. **Install the CrowdStrike integration and {agent}.** Elastic's {integrations-docs}/crowdstrike[CrowdStrike integration] collects and ingests logs into {elastic-sec}.
58+
+
59+
.. Go to **Project Settings** → **Integrations**, search for and select **CrowdStrike**, then select **Add CrowdStrike**.
60+
.. Configure the integration with an **Integration name** and optional **Description**.
61+
.. Select **Collect CrowdStrike logs via API**, and enter the required **Settings**:
62+
+
63+
*** **Client ID**: Client ID for the API client used to read CrowdStrike data.
64+
*** **Client Secret**: Client secret allowing you access to CrowdStrike.
65+
*** **URL**: The base URL of the CrowdStrike API.
66+
.. Select the **Falcon Alerts** and **Hosts** sub-options under **Collect CrowdStrike logs via API**.
67+
.. Scroll down and enter a name for the agent policy in **New agent policy name**. If other agent policies already exist, you can click the **Existing hosts** tab and select an existing policy instead. For more details on {agent} configuration settings, refer to {fleet-guide}/agent-policy.html[{agent} policies].
68+
.. Click **Save and continue**.
69+
.. Select **Add {agent} to your hosts** and continue with the <<enroll-agent,{agent} installation steps>> to install {agent} on a resource in your network (such as a server or VM). {agent} will act as a bridge collecting data from CrowdStrike and sending it back to {elastic-sec}.
70+
. **Create a CrowdStrike connector.** Elastic's {kibana-ref}/crowdstrike-action-type.html[CrowdStrike connector] enables {elastic-sec} to perform actions on CrowdStrike-enrolled hosts.
71+
+
72+
[IMPORTANT]
73+
====
74+
Do not create more than one CrowdStrike connector.
75+
====
76+
+
77+
.. Go to **Stack Management** → **Connectors**, then select **Create connector**.
78+
.. Select the **CrowdStrike** connector.
79+
.. Enter the configuration information:
80+
+
81+
*** **Connector name**: A name to identify the connector.
82+
*** **CrowdStrike API URL**: The base URL of the CrowdStrike API.
83+
*** **CrowdStrike Client ID**: Client ID for the API client used to perform actions in CrowdStrike.
84+
*** **Client Secret**: Client secret allowing you access to CrowdStrike.
85+
.. Click **Save**.
86+
. **Create and enable detection rules to generate {elastic-sec} alerts.** (Optional) Create <<security-rules-create,detection rules>> to generate {elastic-sec} alerts based on CrowdStrike events and data. The {integrations-docs}/crowdstrike[CrowdStrike integration docs] list the available ingested logs and fields you can use to build a rule query.
87+
+
88+
This gives you visibility into CrowdStrike without needing to leave {elastic-sec}. You can perform supported endpoint response actions directly from alerts that a rule creates, by using the **Take action** menu in the alert details flyout.
89+
90+
++++
91+
</div>
92+
<div tabindex="0" role="tabpanel" id="endpoint-response-actions-response-actions-config-sentinelone-panel" aria-labelledby="endpoint-response-actions-response-actions-config-sentinelone-button" hidden="">
93+
++++
94+
////
95+
/* NOTE TO CONTRIBUTORS: These DocTabs have very similar content. If you change anything
96+
in this tab, apply the change to the other tabs, too. */
97+
////
98+
99+
To configure response actions for SentinelOne-enrolled hosts:
100+
101+
. **Generate API access tokens in SentinelOne.** You'll need these tokens in later steps, and they allow {elastic-sec} to collect data and perform actions in SentinelOne.
102+
+
103+
Create two API tokens in SentinelOne, and give them the minimum privilege required by the Elastic components that will use them:
104+
+
105+
** SentinelOne integration: Permission to read SentinelOne data.
106+
** SentinelOne connector: Permission to read SentinelOne data and perform actions on enrolled hosts (for example, isolating and releasing an endpoint).
107+
+
108+
Refer to the {integrations-docs}/sentinel_one[SentinelOne integration docs] or SentinelOne's docs for details on generating API tokens.
109+
. **Install the SentinelOne integration and {agent}.** Elastic's {integrations-docs}/sentinel_one[SentinelOne integration] collects and ingests logs into {elastic-sec}.
110+
+
111+
.. Go to **Project Settings** → **Integrations**, search for and select **SentinelOne**, then select **Add SentinelOne**.
112+
.. Configure the integration with an **Integration name** and optional **Description**.
113+
.. Ensure that **Collect SentinelOne logs via API** is selected, and enter the required **Settings**:
114+
+
115+
*** **URL**: The SentinelOne console URL.
116+
*** **API Token**: The SentinelOne API access token you generated previously, with permission to read SentinelOne data.
117+
.. Scroll down and enter a name for the agent policy in **New agent policy name**. If other agent policies already exist, you can click the **Existing hosts** tab and select an existing policy instead. For more details on {agent} configuration settings, refer to {fleet-guide}/agent-policy.html[{agent} policies].
118+
.. Click **Save and continue**.
119+
.. Select **Add {agent} to your hosts** and continue with the <<enroll-agent,{agent} installation steps>> to install {agent} on a resource in your network (such as a server or VM). {agent} will act as a bridge collecting data from SentinelOne and sending it back to {elastic-sec}.
120+
. **Create a SentinelOne connector.** Elastic's {kibana-ref}/sentinelone-action-type.html[SentinelOne connector] enables {elastic-sec} to perform actions on SentinelOne-enrolled hosts.
121+
+
122+
[IMPORTANT]
123+
====
124+
Do not create more than one SentinelOne connector.
125+
====
126+
+
127+
.. Go to **Stack Management** → **Connectors**, then select **Create connector**.
128+
.. Select the **SentinelOne** connector.
129+
.. Enter the configuration information:
130+
+
131+
*** **Connector name**: A name to identify the connector.
132+
*** **SentinelOne tenant URL**: The SentinelOne tenant URL.
133+
*** **API token**: The SentinelOne API access token you generated previously, with permission to read SentinelOne data and perform actions on enrolled hosts.
134+
.. Click **Save**.
135+
. **Create and enable detection rules to generate {elastic-sec} alerts.** (Optional) Create <<security-rules-create,detection rules>> to generate {elastic-sec} alerts based on SentinelOne events and data.
136+
+
137+
This gives you visibility into SentinelOne without needing to leave {elastic-sec}. You can perform supported endpoint response actions directly from alerts that a rule creates, by using the **Take action** menu in the alert details flyout.
138+
+
139+
When creating a rule, you can target any event containing a SentinelOne agent ID field. Use one or more of these index patterns:
140+
+
141+
|===
142+
| Index pattern| SentinelOne agent ID field
143+
144+
| `logs-sentinel_one.alert*`
145+
| `sentinel_one.alert.agent.id`
146+
147+
| `logs-sentinel_one.threat*`
148+
| `sentinel_one.threat.agent.id`
149+
150+
| `logs-sentinel_one.activity*`
151+
| `sentinel_one.activity.agent.id`
152+
153+
| `logs-sentinel_one.agent*`
154+
| `sentinel_one.agent.agent.id`
155+
|===
156+
+
157+
[NOTE]
158+
====
159+
Do not include any other index patterns.
160+
====
161+
162+
++++
163+
</div>
164+
</div>
165+
++++
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
[[security-third-party-actions]]
2+
= Third-party response actions
3+
4+
// :description: Respond to threats on hosts enrolled in third-party security systems.
5+
// :keywords: serverless, security, defend, reference, manage
6+
7+
preview:[]
8+
9+
preview::[]
10+
11+
You can perform response actions on hosts enrolled in other third-party endpoint protection systems, such as CrowdStrike or SentinelOne. For example, you can direct the other system to isolate a suspicious endpoint from your network, without leaving the {elastic-sec} UI.
12+
13+
.Requirements
14+
[NOTE]
15+
====
16+
* Third-party response actions require the Endpoint Protection Complete <<elasticsearch-manage-project,project feature>>.
17+
* Each response action type has its own user role privilege requirements. Find an action's role requirements at <<security-response-actions>>.
18+
* Additional <<security-response-actions-config,configuration>> is required to connect {elastic-sec} with a third-party system.
19+
====
20+
21+
[discrete]
22+
[[security-third-party-actions-supported-systems-and-response-actions]]
23+
== Supported systems and response actions
24+
25+
The following third-party response actions are supported for CrowdStrike and SentinelOne. <<security-response-actions-config,Prior configuration is required>> to connect each system with {elastic-sec}.
26+
27+
++++
28+
<div class="tabs" data-tab-group="endpoint-response-actions-third-party-actions">
29+
<div role="tablist" aria-label="endpoint-response-actions-third-party-actions">
30+
<button role="tab" aria-selected="true" aria-controls="endpoint-response-actions-third-party-actions-crowdstrike-panel" id="endpoint-response-actions-third-party-actions-crowdstrike-button">
31+
CrowdStrike
32+
</button>
33+
<button role="tab" aria-selected="false" aria-controls="endpoint-response-actions-third-party-actions-sentinelone-panel" id="endpoint-response-actions-third-party-actions-sentinelone-button" tabindex="-1">
34+
SentinelOne
35+
</button>
36+
</div>
37+
<div tabindex="0" role="tabpanel" id="endpoint-response-actions-third-party-actions-crowdstrike-panel" aria-labelledby="endpoint-response-actions-third-party-actions-crowdstrike-button">
38+
++++
39+
These response actions are supported for CrowdStrike-enrolled hosts:
40+
41+
* **Isolate and release a host** using any of these methods:
42+
+
43+
** From a detection alert
44+
** From the response console
45+
+
46+
Refer to the instructions on <<isolate-a-host,isolating>> and <<release-a-host,releasing>> hosts for more details.
47+
48+
++++
49+
</div>
50+
<div tabindex="0" role="tabpanel" id="endpoint-response-actions-third-party-actions-sentinelone-panel" aria-labelledby="endpoint-response-actions-third-party-actions-sentinelone-button" hidden="">
51+
++++
52+
These response actions are supported for SentinelOne-enrolled hosts:
53+
54+
* **Isolate and release a host** using any of these methods:
55+
+
56+
** From a detection alert
57+
** From the response console
58+
+
59+
Refer to the instructions on <<isolate-a-host,isolating>> and <<release-a-host,releasing>> hosts for more details.
60+
* **Retrieve a file from a host** with the <<get-file,`get-file` response action>>.
61+
+
62+
[NOTE]
63+
====
64+
For SentinelOne-enrolled hosts, you must use the password `Elastic@123` to open the retrieved file.
65+
====
66+
* **Get a list of processes running on a host** with the <<processes,`processes` response action>>. For SentinelOne-enrolled hosts, this command returns a link for downloading the process list in a file.
67+
* **Terminate a process running on a host** with the <<kill-process,`kill-process` response action>>.
68+
+
69+
[NOTE]
70+
====
71+
For SentinelOne-enrolled hosts, you must use the parameter `--processName` to identify the process to terminate. `--pid` and `--entityId` are not supported.
72+
73+
Example: `kill-process --processName cat --comment "Terminate suspicious process"`
74+
====
75+
* **View past response action activity** in the <<security-response-actions-history,response actions history>> log.
76+
77+
++++
78+
</div>
79+
</div>
80+
++++

0 commit comments

Comments
 (0)