@@ -23,15 +23,17 @@ fields.
2323[float]
2424=== The available filesets are:
2525
26- * `abuseurl`: Supports gathering URL entities from Abuse.ch.
27- * `abusemalware`: Supports gathering Malware/Payload entities from Abuse.ch.
28- * `misp`: Supports gathering threat intel attributes from MISP (replaces MISP module).
29- * `malwarebazaar`: Supports gathering Malware/Payload entities from Malware Bazaar.
30- * `otx`: Supports gathering threat intel attributes from AlientVault OTX.
31- * `anomali`: Supports gathering threat intel attributes from Anomali.
26+ * <<abuseurl,abuseurl>>: Supports gathering URL entities from Abuse.ch.
27+ * <<abusemalware,abusemalware>>: Supports gathering Malware/Payload entities from Abuse.ch.
28+ * <<misp,misp>>: Supports gathering threat intel attributes from MISP (replaces MISP module).
29+ * <<malwarebazaar,malwarebazaar>>: Supports gathering Malware/Payload entities from Malware Bazaar.
30+ * <<otx,otx>>: Supports gathering threat intel attributes from AlientVault OTX.
31+ * <<anomali,anomali>>: Supports gathering threat intel attributes from Anomali Limo.
32+ * <<anomalithreatstream,anomalithreatstream>>: Supports gathering threat intel attributes from Anomali ThreatStream.
3233
3334include::../include/gs-link.asciidoc[]
3435
36+ [[abuseurl]]
3537[float]
3638==== `abuseurl` fileset settings
3739
@@ -71,6 +73,7 @@ Abuse.ch URL Threat Intel is mapped to the following ECS fields.
7173| host | threatintel.indicator.ip/domain
7274|==============================================================
7375
76+ [[abusemalware]]
7477[float]
7578==== `abusemalware` fileset settings
7679
@@ -110,6 +113,7 @@ Abuse.ch Malware Threat Intel is mapped to the following ECS fields.
110113| file_size | threatintel.indicator.file.size
111114|================================================================
112115
116+ [[malwarebazaar]]
113117[float]
114118==== `malwarebazaar` fileset settings
115119
@@ -164,6 +168,7 @@ Malware Bazaar Threat Intel is mapped to the following ECS fields.
164168| code_sign.serial_number | threatintel.indicator.file.x509.serial_number
165169|================================================================
166170
171+ [[misp]]
167172[float]
168173==== `misp` fileset settings
169174
@@ -241,6 +246,7 @@ MISP Threat Intel is mapped to the following ECS fields.
241246
242247`misp.value` is mapped to the appropriate field dependent on attribute type.
243248
249+ [[otx]]
244250[float]
245251==== `otx` fileset settings
246252
@@ -316,6 +322,7 @@ OTX Threat Intel is mapped to the following ECS fields.
316322
317323`otx.indicator` is mapped to the appropriate field dependent on attribute type.
318324
325+ [[anomali]]
319326[float]
320327==== `anomali` fileset settings
321328
@@ -397,6 +404,91 @@ Anomali Threat Intel is mapped to the following ECS fields.
397404
398405`anomali.pattern` is mapped to the appropriate field dependent on attribute type.
399406
407+ [[anomalithreatstream]]
408+ [float]
409+ ==== `anomalithreatstream` fileset settings
410+
411+ To configure the ThreatStream integration you first need to define an output
412+ in the Anomali ThreatStream Integrator using the Elastic SDK provided by Anomali.
413+ It will deliver indicators via HTTP or HTTPS to a Filebeat instance running as
414+ a server.
415+
416+ Configure an Integrator output with the following settings:
417+
418+ * Indicator Filter: `*` (or use any desired filter).
419+ * SDK Executable Command: `/path/to/python /path/to/anomali-sdk/main.py`.
420+ Adjust the paths to the python executable and the directory where the Elastic SDK
421+ has been unpacked.
422+ * Metadata in JSON Format: `{"url": "https://filebeat:8080/", "server_certificate": "/path/to/cert.pem", "secret": "my secret"}`.
423+ - `url`: Use the host and port where Filebeat will be running, and `http` or `https` accordingly.
424+ - `server_certificate`: If using HTTPS, absolute path to the server certificate. Otherwise don't set
425+ this field.
426+ - `secret`: A shared secret string to authenticate messages between the SDK and Filebeat.
427+
428+ Then configure the `anomalithreatstream` fileset in Filebeat accordingly:
429+ [source,yaml]
430+ ----
431+ - module: threatintel
432+ anomalithreatstream:
433+ enabled: true
434+ var.input: http_endpoint
435+ var.listen_address: 0.0.0.0 # Listen on all interfaces.
436+ var.listen_port: 8080
437+ var.secret: 'my secret'
438+ var.ssl_certificate: path/to/server_ssl_cert.pem
439+ var.ssl_key: path/to/ssl_key.pem
440+ ----
441+
442+ *`var.listen_address`*::
443+
444+ Local address to bind the HTTP server to. Use `0.0.0.0` to accept connections
445+ from all interfaces.
446+
447+ *`var.listen_port`*::
448+
449+ Port number to use for the HTTP server.
450+
451+ *`var.secret`*::
452+
453+ Shared secret between the SDK and Filebeat, used to authenticate messages.
454+
455+ *`var.ssl_certificate`*::
456+
457+ Path to the public SSL certificate for the HTTPS server. If unset, Filebeat
458+ will use unsecure HTTP connections.
459+
460+ *`var.ssl_key`*::
461+
462+ Path to the certificate's private key.
463+
464+ Anomali ThreatStream fields are mapped to the following ECS fields:
465+
466+ [options="header"]
467+ |=============================================================
468+ | ThreatStream fields | ECS Fields
469+ | asn | threatintel.indicator.as.number
470+ | classification<<a,[1]>> | threatintel.indicator.marking.tlp
471+ | confidence<<a,[1]>> | threatintel.indicator.confidence
472+ | country | threatintel.indicator.geo.country_iso_code
473+ | date_first | threatintel.indicator.first_seen
474+ | date_last | threatintel.indicator.last_seen
475+ | detail | tags
476+ | domain | threatintel.indicator.domain
477+ | email | threatintel.indicator.email.address
478+ | itype<<a,[1]>> | threatintel.indicator.type
479+ | lat | threatintel.indicator.geo.location.lat
480+ | lon | threatintel.indicator.geo.location.lon
481+ | md5 | threatintel.indicator.file.hash
482+ | org | threatintel.indicator.as.organization.name
483+ | severity<<a,[1]>> | event.severity
484+ | source | threatintel.indicator.provider
485+ | srcip | threatintel.indicator.ip
486+ | url | threatintel.indicator.url.original
487+ |=============================================================
488+
489+ [[a]]
490+ [small]#[1]: Field is used to derive a value for the ECS field but its original value is kept under `threatintel.anomalithreatstream`.#
491+
400492:has-dashboards!:
401493
402494[float]
0 commit comments