@@ -29,6 +29,7 @@ The available filesets are:
2929* <<otx,otx>>: Supports gathering threat intel attributes from AlientVault OTX.
3030* <<anomali,anomali>>: Supports gathering threat intel attributes from Anomali Limo.
3131* <<anomalithreatstream,anomalithreatstream>>: Supports gathering threat intel attributes from Anomali ThreatStream.
32+ * <<recordedfuture,recordedfuture>>: Supports gathering threat intel attributes from Recorded Future.
3233
3334include::../include/gs-link.asciidoc[]
3435
@@ -223,7 +224,7 @@ How often the API is polled for updated information.
223224
224225*`var.first_interval`*::
225226
226- How far back to search when retrieving events the first time the beat starts up.
227+ How far back to search when retrieving events the first time {beatname_uc} starts up.
227228After the first interval has passed the module itself will use the timestamp
228229from the last response as the filter when retrieving new events.
229230
@@ -297,7 +298,7 @@ How often the API is polled for updated information.
297298
298299*`var.first_interval`*::
299300
300- How far back to search when retrieving events the first time the beat starts up.
301+ How far back to search when retrieving events the first time the {beatname_uc} starts up.
301302After the first interval has passed the module itself will use the timestamp
302303from the last response as the filter when retrieving new events.
303304
@@ -409,7 +410,7 @@ Anomali Threat Intel is mapped to the following ECS fields.
409410
410411To configure the ThreatStream integration you first need to define an output
411412in the Anomali ThreatStream Integrator using the Elastic SDK provided by Anomali.
412- It will deliver indicators via HTTP or HTTPS to a Filebeat instance running as
413+ It will deliver indicators via HTTP or HTTPS to a {beatname_uc} instance running as
413414a server.
414415
415416Configure an Integrator output with the following settings:
@@ -419,12 +420,12 @@ Configure an Integrator output with the following settings:
419420 Adjust the paths to the python executable and the directory where the Elastic SDK
420421 has been unpacked.
421422* Metadata in JSON Format: `{"url": "https://filebeat:8080/", "server_certificate": "/path/to/cert.pem", "secret": "my secret"}`.
422- - `url`: Use the host and port where Filebeat will be running, and `http` or `https` accordingly.
423+ - `url`: Use the host and port where {beatname_uc} will be running, and `http` or `https` accordingly.
423424 - `server_certificate`: If using HTTPS, absolute path to the server certificate. Otherwise don't set
424425 this field.
425- - `secret`: A shared secret string to authenticate messages between the SDK and Filebeat .
426+ - `secret`: A shared secret string to authenticate messages between the SDK and {beatname_uc} .
426427
427- Then configure the `anomalithreatstream` fileset in Filebeat accordingly:
428+ Then configure the `anomalithreatstream` fileset in {beatname_uc} accordingly:
428429[source,yaml]
429430----
430431- module: threatintel
@@ -449,11 +450,11 @@ Port number to use for the HTTP server.
449450
450451*`var.secret`*::
451452
452- Shared secret between the SDK and Filebeat , used to authenticate messages.
453+ Shared secret between the SDK and {beatname_uc} , used to authenticate messages.
453454
454455*`var.ssl_certificate`*::
455456
456- Path to the public SSL certificate for the HTTPS server. If unset, Filebeat
457+ Path to the public SSL certificate for the HTTPS server. If unset, {beatname_uc}
457458will use unsecure HTTP connections.
458459
459460*`var.ssl_key`*::
@@ -488,6 +489,94 @@ Anomali ThreatStream fields are mapped to the following ECS fields:
488489[[a]]
489490[small]#[1]: Field is used to derive a value for the ECS field but its original value is kept under `threatintel.anomalithreatstream`.#
490491
492+ [[recordedfuture]]
493+ [float]
494+ ==== `recordedfuture` fileset settings
495+
496+ The `recordedfuture` fileset fetches intelligence from the Recorded Future Connect API.
497+ It supports `domain`, `hash`, `ip` and `url` data types.
498+
499+ To enable it you need to define the URL to fetch data from. You can construct this URL
500+ using the https://api.recordedfuture.com/index.html[Recorded Future API Explorer.] The URL
501+ must point to the `/search` endpoint and contain a suitable `limit`
502+ (how many records to return from a single request) and `fields` parameters.
503+ The `entity` and `timestamps` fields are required.
504+
505+ Sample configuration:
506+ [source,yaml]
507+ ----
508+ - module: threatintel
509+ recordedfuture:
510+ enabled: true
511+ var.input: httpjson
512+ var.interval: 5m
513+ var.first_interval: 168h
514+ var.url: "https://api.recordedfuture.com/v2/ip/search?limit=200&fields=entity,timestamps,risk,intelCard,location&metadata=false"
515+ var.api_token: "<RF_TOKEN>"
516+ ----
517+
518+ To fetch threat intelligence from multiple data types, you must define more than
519+ one instance of the module:
520+ [source,yaml]
521+ ----
522+ - module: threatintel
523+ recordedfuture:
524+ enabled: true
525+ var.input: httpjson
526+ var.interval: 5m
527+ var.first_interval: 168h
528+ var.url: "https://api.recordedfuture.com/v2/ip/search?limit=200&fields=entity,timestamps,risk,intelCard,location&metadata=false"
529+ var.api_token: "<RF_TOKEN>"
530+ - module: threatintel
531+ recordedfuture:
532+ enabled: true
533+ var.input: httpjson
534+ var.interval: 1m
535+ var.first_interval: 168h
536+ var.url: "https://api.recordedfuture.com/v2/hash/search?limit=200&fields=entity,fileHashes,timestamps,risk,intelCard,location&metadata=false"
537+ var.api_token: "<RF_TOKEN>"
538+ ----
539+
540+ *`var.url`*::
541+
542+ The URL of the API endpoint to connect with.
543+
544+ *`var.api_token`*::
545+
546+ The API token used to access Recorded Future API.
547+
548+ *`var.interval`*::
549+
550+ How often the API is polled for updated information.
551+
552+ *`var.first_interval`*::
553+
554+ How far back to search when retrieving events the first time {beatname_uc} starts up.
555+ After the first interval has passed the module itself will use the timestamp
556+ from the last response as the filter when retrieving new events.
557+
558+ *`var.proxy_url`*::
559+
560+ Optional URL to use as HTTP proxy.
561+
562+
563+ Recorded Future fields are mapped to the following ECS fields:
564+
565+ [options="header"]
566+ |=============================================================
567+ | Recorded Future fields | ECS Fields
568+ | entity.name | threatintel.indicator.{url,ip,domain,file.hash}
569+ | entity.type | threatintel.indicator.type
570+ | fileHashes | threatintel.indicator.file.hash
571+ | intelCard | event.reference
572+ | location.asn | threatintel.indicator.as.number
573+ | location.location | threatintel.indicator.geo
574+ | location.organization | threatintel.indicator.as.organization.name
575+ | risk.score | event.risk_score
576+ | timestamps.firstSeen | threatintel.indicator.first_seen
577+ | timestamps.lastSeen | threatintel.indicator.last_seen
578+ |=============================================================
579+
491580:has-dashboards!:
492581
493582[float]
0 commit comments