Skip to content

Commit 48d59b7

Browse files
joepeeplesjmikell821nastasha-solomon
authored
Interactive investigation guides (#2821)
* Incomplete first draft * Expands first draft, still in progress * Complete first draft * Correct screenshot, some edits * Apply line edits Co-authored-by: Janeen Mikell Roberts <57149392+jmikell821@users.noreply.github.com> * Revision based on Janeen's comments * Apply suggestions from review Co-authored-by: nastasha-solomon <79124755+nastasha-solomon@users.noreply.github.com> * Add draft statement about escape characters * Edits from Paul, et al Co-authored-by: Janeen Mikell Roberts <57149392+jmikell821@users.noreply.github.com> Co-authored-by: nastasha-solomon <79124755+nastasha-solomon@users.noreply.github.com>
1 parent 3d0edd6 commit 48d59b7

File tree

8 files changed

+83
-0
lines changed

8 files changed

+83
-0
lines changed

docs/experimental-features/experimental-features-intro.asciidoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ The features in this section are experimental and may be changed or removed comp
77
include::host-risk-score.asciidoc[]
88
include::user-risk-score.asciidoc[]
99
include::beaconing-detection.asciidoc[]
10+
include::investigation-guide-actions.asciidoc[]
281 KB
Loading
820 Bytes
Loading
95.3 KB
Loading
175 KB
Loading
159 KB
Loading
632 KB
Loading
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
[[interactive-investigation-guides]]
2+
== Interactive investigation guides
3+
4+
NOTE: This feature is available for {stack} versions 8.6.0 and newer.
5+
6+
Detection rule investigation guides suggest steps for triaging, analyzing, and responding to potential security issues. For custom rules, you can create an interactive investigation guide that includes buttons for launching runtime queries in <<timelines-ui,Timeline>>, using alert data and hard-coded literal values. This allows you to start detailed Timeline investigations directly from an alert using relevant data.
7+
8+
[role="screenshot"]
9+
image::images/ig-alert-flyout.png[Alert details flyout with interactive investigation guide,550]
10+
11+
Each query button displays in parentheses the number of documents found. Click the button to automatically create the query in Timeline based on settings specified in the investigation guide.
12+
13+
[role="screenshot"]
14+
image::images/ig-timeline.png[Timeline with query pre-loaded from investigation guide action]
15+
16+
[discrete]
17+
[[add-ig-actions-rule]]
18+
=== Add investigation guide actions to a rule
19+
20+
NOTE: You can only create interactive investigation guides with custom rules because Elastic prebuilt rules can't be edited. However, you can duplicate a prebuilt rule, then configure the investigation guide for the duplicated rule.
21+
22+
You can configure an interactive investigation guide when you <<rules-ui-create,create a new rule>> or <<edit-rules-settings,edit an existing rule>>. When configuring the rule's settings (the *About rule* step for a new rule, or the *About* tab for an existing rule), expand the *Advanced settings*, then scroll down to the *Investigation guide* field.
23+
24+
[role="screenshot"]
25+
image::images/ig-investigation-guide-editor.png[Investigation guide editor field]
26+
27+
Add the following syntax to the *Investigation guide* Markdown editor to configure a query. The syntax will appear as a clickable button in the investigation guide.
28+
29+
[width="100%",options="header"]
30+
|===
31+
|Field |Description
32+
33+
|`!{insight{ }}` |The container object holding all the configuration attributes for the button and the query.
34+
|`label` |Text to identify the button.
35+
|`description` |Additional text to include on the button.
36+
|`providers` a|A two-level nested array that defines the query you want to run in Timeline. Similar to the structure of queries in Timeline, items in the outer level are joined by an `OR` relationship, and items in the inner level are joined by an `AND` relationship.
37+
38+
Each item in `providers` is defined by these attributes:
39+
40+
* `field`: The name of a field to query.
41+
* `value`: The value to search for. Either a hard-coded literal value, or the name of the field on the alert whose value you want to use as a query parameter.
42+
* `type`: Either `literal` or `parameter`.
43+
|===
44+
45+
NOTE: Some characters must be escaped with a backslash, such as `\"` for a quotation mark and `\\` for a literal backslash. Windows paths must be divided with double backslashes (for example, `C:\\Windows\\explorer.exe`), and paths that already include double backslashes might require four backslashes for each divider. A clickable error icon (image:images/ig-error-icon.png[Error icon,19,18]) displays below the Markdown editor if there are any syntax errors.
46+
47+
[discrete]
48+
==== Example syntax
49+
50+
[source,json]
51+
----
52+
!{insight{
53+
"label": "Test action",
54+
"description": "Click to investigate",
55+
"providers": [
56+
[
57+
{"field": "event.id", "value": "kibana.alert.original_event.id", "type": "parameter"}
58+
],
59+
[
60+
{"field": "event.action", "value": "rename", "type": "literal"},
61+
{"field": "process.pid", "value": "process.pid", "type": "parameter"}
62+
]
63+
]
64+
}}
65+
----
66+
67+
This example creates the following Timeline query, as illustrated below:
68+
69+
`(event.id : <alert value>)` +
70+
`OR (event.action : "rename" AND process.pid : <alert value>)`
71+
72+
[role="screenshot"]
73+
image::images/ig-timeline-query.png[Timeline query,500]
74+
75+
[discrete]
76+
==== Timeline template fields
77+
78+
When viewing an interactive investigation guide in contexts unconnected to a specific alert (such a rule's details page), queries open as <<timeline-templates-ui,Timeline templates>>, and `parameter` fields are treated as Timeline template fields.
79+
80+
[role="screenshot"]
81+
image::images/ig-timeline-template-fields.png[Timeline template,500]
82+

0 commit comments

Comments
 (0)