Skip to content

Commit d8c91a6

Browse files
[ti_recordedfuture] Add Support for Playbook and Triggered Alerts (elastic#13494)
This adds support for the Playbook and Triggered Alerts event type as two new data streams to enhance the overall visibility of threat data in the Recorded Future integration. This changes also includes updating ecs version to 8.17.0 in all existing data streams. Sanitized test case inputs were obtained from the Recorded Future API for Playbook Alerts[1] and from the Recorded Future Connect API for Triggered Alerts[2]. [1] https://api.recordedfuture.com/playbook-alert [2] https://api.recordedfuture.com/v2/#!/Alerts/Alert_Notification_Search
1 parent 7fa0fcd commit d8c91a6

Some content is hidden

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

42 files changed

+11988
-93
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
dependencies:
22
ecs:
3-
reference: "git@v8.11.0"
3+
reference: "git@v8.17.0"

packages/ti_recordedfuture/_dev/build/docs/README.md

+39-2
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,52 @@ from multiple entities, it's necessary to define one integration for each.
1010
Alternatively, it's also possible to use the integration to fetch custom Fusion files
1111
by supplying the URL to the CSV file as the _Custom_ _URL_ configuration option.
1212

13+
It also fetches [Playbook Alerts](https://api.recordedfuture.com/playbook-alert) from the Recorded Future API, and [Triggered Alerts](https://api.recordedfuture.com/v2/#!/Alerts/Alert_Notification_Search) via the Recorded Future Connect API, ensuring comprehensive threat intelligence coverage.
14+
This allows for streamlined alert management and improved security monitoring.
15+
By accessing both alert types, it provides deeper insights into potential threats.
16+
1317
### Expiration of Indicators of Compromise (IOCs)
1418
The ingested IOCs expire after certain duration. An [Elastic Transform](https://www.elastic.co/guide/en/elasticsearch/reference/current/transforms.html) is created to faciliate only active IOCs be available to the end users. This transform creates a destination index named `logs-ti_recordedfuture_latest.threat-1` which only contains active and unexpired IOCs. The destination index also has an alias `logs-ti_recordedfuture_latest.threat`. When setting up indicator match rules, use this latest destination index to avoid false positives from expired IOCs. Please read [ILM Policy](#ilm-policy) below which is added to avoid unbounded growth on source `.ds-logs-ti_recordedfuture.threat-*` indices.
1519

1620
### ILM Policy
17-
To facilitate IOC expiration, source datastream-backed indices `.ds-logs-ti_recordedfuture.threat-*` are allowed to contain duplicates from each polling interval. ILM policy is added to these source indices so it doesn't lead to unbounded growth. This means data in these source indices will be deleted after `5 days` from ingested date.
18-
21+
To facilitate IOC expiration, source datastream-backed indices `.ds-logs-ti_recordedfuture.threat-*` are allowed to contain duplicates from each polling interval. ILM policy is added to these source indices so it doesn't lead to unbounded growth. This means data in these source indices will be deleted after `5 days` from ingested date.
1922

2023
**NOTE:** For large risklist downloads, adjust the timeout setting so that the Agent has enough time to download and process the risklist.
2124

25+
## Agentless Enabled Integration
26+
27+
Agentless integrations allow you to collect data without having to manage Elastic Agent in your cloud. They make manual agent deployment unnecessary, so you can focus on your data instead of the agent that collects it. For more information, refer to [Agentless integrations](https://www.elastic.co/guide/en/serverless/current/security-agentless-integrations.html) and the [Agentless integrations FAQ](https://www.elastic.co/guide/en/serverless/current/agentless-integration-troubleshooting.html).
28+
29+
Agentless deployments are only supported in Elastic Serverless and Elastic Cloud environments. This functionality is in beta and is subject to change. Beta features are not subject to the support SLA of official GA features.
30+
31+
## Logs reference
32+
33+
### threat
34+
35+
This is the `threat` dataset.
36+
37+
#### Example
38+
2239
{{event "threat"}}
2340

2441
{{fields "threat"}}
42+
43+
### triggered_alert
44+
45+
This is the `triggered_alert` dataset.
46+
47+
#### Example
48+
49+
{{event "triggered_alert"}}
50+
51+
{{fields "triggered_alert"}}
52+
53+
### playbook_alert
54+
55+
This is the `playbook_alert` dataset.
56+
57+
#### Example
58+
59+
{{event "playbook_alert"}}
60+
61+
{{fields "playbook_alert"}}

packages/ti_recordedfuture/_dev/deploy/docker/docker-compose.yml

+13
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,16 @@ services:
3030
- ./sample_logs:/sample_logs:ro
3131
- ${SERVICE_LOGS_DIR}:/var/log
3232
command: /bin/sh -c "cp /sample_logs/* /var/log/"
33+
recordedfuture-cel:
34+
image: docker.elastic.co/observability/stream:v0.17.1
35+
hostname: recordedfuture
36+
ports:
37+
- 8090
38+
volumes:
39+
- ./files:/files:ro
40+
environment:
41+
PORT: '8090'
42+
command:
43+
- http-server
44+
- --addr=:8090
45+
- --config=/files/config-cel.yml

0 commit comments

Comments
 (0)