@@ -22,15 +22,17 @@ fields.
2222
2323The available filesets are:
2424
25- * `abuseurl`: Supports gathering URL entities from Abuse.ch.
26- * `abusemalware`: Supports gathering Malware/Payload entities from Abuse.ch.
27- * `misp`: Supports gathering threat intel attributes from MISP (replaces MISP module).
28- * `malwarebazaar`: Supports gathering Malware/Payload entities from Malware Bazaar.
29- * `otx`: Supports gathering threat intel attributes from AlientVault OTX.
30- * `anomali`: Supports gathering threat intel attributes from Anomali.
25+ * <<abuseurl,abuseurl>>: Supports gathering URL entities from Abuse.ch.
26+ * <<abusemalware,abusemalware>>: Supports gathering Malware/Payload entities from Abuse.ch.
27+ * <<misp,misp>>: Supports gathering threat intel attributes from MISP (replaces MISP module).
28+ * <<malwarebazaar,malwarebazaar>>: Supports gathering Malware/Payload entities from Malware Bazaar.
29+ * <<otx,otx>>: Supports gathering threat intel attributes from AlientVault OTX.
30+ * <<anomali,anomali>>: Supports gathering threat intel attributes from Anomali Limo.
31+ * <<anomalithreatstream,anomalithreatstream>>: Supports gathering threat intel attributes from Anomali ThreatStream.
3132
3233include::../include/gs-link.asciidoc[]
3334
35+ [[abuseurl]]
3436[float]
3537==== `abuseurl` fileset settings
3638
@@ -70,6 +72,7 @@ Abuse.ch URL Threat Intel is mapped to the following ECS fields.
7072| host | threatintel.indicator.ip/domain
7173|==============================================================
7274
75+ [[abusemalware]]
7376[float]
7477==== `abusemalware` fileset settings
7578
@@ -109,6 +112,7 @@ Abuse.ch Malware Threat Intel is mapped to the following ECS fields.
109112| file_size | threatintel.indicator.file.size
110113|================================================================
111114
115+ [[malwarebazaar]]
112116[float]
113117==== `malwarebazaar` fileset settings
114118
@@ -163,6 +167,7 @@ Malware Bazaar Threat Intel is mapped to the following ECS fields.
163167| code_sign.serial_number | threatintel.indicator.file.x509.serial_number
164168|================================================================
165169
170+ [[misp]]
166171[float]
167172==== `misp` fileset settings
168173
@@ -240,6 +245,7 @@ MISP Threat Intel is mapped to the following ECS fields.
240245
241246`misp.value` is mapped to the appropriate field dependent on attribute type.
242247
248+ [[otx]]
243249[float]
244250==== `otx` fileset settings
245251
@@ -315,6 +321,7 @@ OTX Threat Intel is mapped to the following ECS fields.
315321
316322`otx.indicator` is mapped to the appropriate field dependent on attribute type.
317323
324+ [[anomali]]
318325[float]
319326==== `anomali` fileset settings
320327
@@ -396,6 +403,91 @@ Anomali Threat Intel is mapped to the following ECS fields.
396403
397404`anomali.pattern` is mapped to the appropriate field dependent on attribute type.
398405
406+ [[anomalithreatstream]]
407+ [float]
408+ ==== `anomalithreatstream` fileset settings
409+
410+ To configure the ThreatStream integration you first need to define an output
411+ in 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+ a server.
414+
415+ Configure an Integrator output with the following settings:
416+
417+ * Indicator Filter: `*` (or use any desired filter).
418+ * SDK Executable Command: `/path/to/python /path/to/anomali-sdk/main.py`.
419+ Adjust the paths to the python executable and the directory where the Elastic SDK
420+ has been unpacked.
421+ * 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+ - `server_certificate`: If using HTTPS, absolute path to the server certificate. Otherwise don't set
424+ this field.
425+ - `secret`: A shared secret string to authenticate messages between the SDK and Filebeat.
426+
427+ Then configure the `anomalithreatstream` fileset in Filebeat accordingly:
428+ [source,yaml]
429+ ----
430+ - module: threatintel
431+ anomalithreatstream:
432+ enabled: true
433+ var.input: http_endpoint
434+ var.listen_address: 0.0.0.0 # Listen on all interfaces.
435+ var.listen_port: 8080
436+ var.secret: 'my secret'
437+ var.ssl_certificate: path/to/server_ssl_cert.pem
438+ var.ssl_key: path/to/ssl_key.pem
439+ ----
440+
441+ *`var.listen_address`*::
442+
443+ Local address to bind the HTTP server to. Use `0.0.0.0` to accept connections
444+ from all interfaces.
445+
446+ *`var.listen_port`*::
447+
448+ Port number to use for the HTTP server.
449+
450+ *`var.secret`*::
451+
452+ Shared secret between the SDK and Filebeat, used to authenticate messages.
453+
454+ *`var.ssl_certificate`*::
455+
456+ Path to the public SSL certificate for the HTTPS server. If unset, Filebeat
457+ will use unsecure HTTP connections.
458+
459+ *`var.ssl_key`*::
460+
461+ Path to the certificate's private key.
462+
463+ Anomali ThreatStream fields are mapped to the following ECS fields:
464+
465+ [options="header"]
466+ |=============================================================
467+ | ThreatStream fields | ECS Fields
468+ | asn | threatintel.indicator.as.number
469+ | classification<<a,[1]>> | threatintel.indicator.marking.tlp
470+ | confidence<<a,[1]>> | threatintel.indicator.confidence
471+ | country | threatintel.indicator.geo.country_iso_code
472+ | date_first | threatintel.indicator.first_seen
473+ | date_last | threatintel.indicator.last_seen
474+ | detail | tags
475+ | domain | threatintel.indicator.domain
476+ | email | threatintel.indicator.email.address
477+ | itype<<a,[1]>> | threatintel.indicator.type
478+ | lat | threatintel.indicator.geo.location.lat
479+ | lon | threatintel.indicator.geo.location.lon
480+ | md5 | threatintel.indicator.file.hash
481+ | org | threatintel.indicator.as.organization.name
482+ | severity<<a,[1]>> | event.severity
483+ | source | threatintel.indicator.provider
484+ | srcip | threatintel.indicator.ip
485+ | url | threatintel.indicator.url.original
486+ |=============================================================
487+
488+ [[a]]
489+ [small]#[1]: Field is used to derive a value for the ECS field but its original value is kept under `threatintel.anomalithreatstream`.#
490+
399491:has-dashboards!:
400492
401493[float]
0 commit comments