You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: packages/ti_abusech/_dev/build/docs/README.md
+64-30Lines changed: 64 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
-
# AbuseCH Integration for Elastic
1
+
# abuse.ch Integration for Elastic
2
2
3
3
## Overview
4
4
5
-
The AbuseCH integration for Elastic enables collection of logs from [abuse.ch](https://abuse.ch/). This integration facilitates the ingestion of threat intelligence indicators to be used for threat detection and event enrichment.
5
+
The abuse.ch integration for Elastic enables collection of logs from [abuse.ch](https://abuse.ch/). This integration facilitates the ingestion of threat intelligence indicators to be used for threat detection and event enrichment.
6
6
7
7
### Compatibility
8
8
This integration is compatible with `v1` version of URLhaus, MalwareBazaar, and ThreatFox APIs.
@@ -15,44 +15,31 @@ This integration periodically queries the abuse.ch APIs to retrieve threat intel
15
15
16
16
This integration collects threat intelligence indicators into the following datasets:
17
17
18
+
-`ja3_fingerprints`: Collects JA3 fingerprint based threat indicators identified by SSLBL via [SSLBL API endpoint](https://sslbl.abuse.ch/blacklist/ja3_fingerprints.csv).
18
19
-`malware`: Collects malware payloads from URLs tracked by URLhaus via [URLhaus Bulk API](https://urlhaus-api.abuse.ch/#payloads-recent).
19
20
-`malwarebazaar`: Collects malware payloads from MalwareBazaar via [MalwareBazaar API](https://bazaar.abuse.ch/api/#latest_additions).
21
+
-`sslblacklist`: Collects SSL certificate based threat indicators blacklisted on SSLBL via [SSLBL API endpoint](https://sslbl.abuse.ch/blacklist/sslblacklist.csv).
20
22
-`threatfox`: Collects threat indicators from ThreatFox via [ThreatFox API](https://threatfox.abuse.ch/api/#recent-iocs).
21
-
-`url`: Collects malware URL-based threat indicators from URLhaus via [URLhaus API](https://urlhaus.abuse.ch/api/#csv).
23
+
-`url`: Collects malware URLbased threat indicators from URLhaus via [URLhaus API](https://urlhaus.abuse.ch/api/#csv).
22
24
23
25
### Supported use cases
24
26
25
-
Integrating abuse.ch with Elastic enables the following use cases.
- Real-time threat detection and hunting through [Elastic Security for Threat Intelligence](https://www.elastic.co/security/tip)
29
-
- Real-time dashboards
27
+
The abuse.ch integration brings threat intel into Elastic Security, enabling detection alerts when indicators of compromise (IoCs) like malicious [IPs](https://www.elastic.co/docs/reference/security/prebuilt-rules/rules/threat_intel/threat_intel_indicator_match_address), [domains](https://www.elastic.co/docs/reference/security/prebuilt-rules/rules/threat_intel/threat_intel_indicator_match_url), or [hashes](https://www.elastic.co/docs/reference/security/prebuilt-rules/rules/threat_intel/threat_intel_indicator_match_hash) match your event or alert data. This data can also support threat hunting, enrich alerts with threat context, and power dashboards to track known threats in your environment.
30
28
31
29
## What do I need to use this integration?
32
30
33
31
### From Elastic
34
32
35
-
This integration supports both Elastic Agentless-based and Agent-based installations.
36
-
37
-
#### Agentless-based installation
38
-
39
-
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).
40
-
41
-
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.
42
-
43
-
#### Agent-based installation
44
-
45
-
Elastic Agent must be installed. For more details, check the Elastic Agent [installation instructions](docs-content://reference/fleet/install-elastic-agents.md). You can install only one Elastic Agent per host.
46
-
47
33
#### Transform
48
34
49
35
As this integration installs [Elastic latest transforms](https://www.elastic.co/docs/explore-analyze/transforms/transform-overview#latest-transform-overview), the requirements of transform must be met. For more details, check the [Transform Setup](https://www.elastic.co/docs/explore-analyze/transforms/transform-setup)
50
36
51
37
### From abuse.ch
52
38
53
-
abuse.ch requires using an `Auth-Key` (API Key) in the requests for authentication. Requests without authentication will be denied by the abuse.ch APIs.
39
+
abuse.ch requires using an `Auth Key` (API Key) in the requests for authentication. Requests without authentication will be denied by the abuse.ch APIs.
40
+
41
+
#### Obtain `Auth Key`
54
42
55
-
#### Obtain `Auth-Key`:
56
43
1. Sign up for new account or login into [abuse.ch authentication portal](https://auth.abuse.ch).
57
44
2. Connect with atleast one authentication provider, namely Google, Github, X, or LinkedIn.
58
45
3. Select **Save profile**.
@@ -63,15 +50,28 @@ For more details, check the abuse.ch [Community First - New Authentication](http
63
50
64
51
## How do I deploy this integration?
65
52
53
+
This integration supports both Elastic Agentless-based and Agent-based installations.
54
+
55
+
#### Agentless-based installation
56
+
57
+
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).
58
+
59
+
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.
60
+
61
+
#### Agent-based installation
62
+
63
+
Elastic Agent must be installed. For more details, check the Elastic Agent [installation instructions](docs-content://reference/fleet/install-elastic-agents.md). You can install only one Elastic Agent per host.
64
+
66
65
### Onboard / configure
67
66
68
-
1. In Kibana navigate to **Management** >**Integrations**.
69
-
2. In the search bar, type **AbuseCH**.
70
-
3. Select the **AbuseCH** integration from the search results.
71
-
4. Select **Add AbuseCH** to add the integration.
67
+
1. In the top search bar in Kibana, search for**Integrations**.
68
+
2. In the search bar, type **abuse.ch**.
69
+
3. Select the **abuse.ch** integration from the search results.
70
+
4. Select **Add abuse.ch** to add the integration.
72
71
5. Enable and configure only the collection methods which you will use.
73
72
74
-
* To **Collect AbuseCH logs via API**, you'll need to:
73
+
* To **Collect abuse.ch logs via API**, you'll need to:
74
+
75
75
- Configure **Auth Key**.
76
76
- Enable/Disable the required datasets.
77
77
- For each dataset, adjust the integration configuration parameters if required, including the URL, Interval, etc. to enable data collection.
@@ -83,14 +83,14 @@ For more details, check the abuse.ch [Community First - New Authentication](http
83
83
#### Dashboards populated
84
84
85
85
1. In Kibana, navigate to **Dashboards**.
86
-
2. In the search bar, type **AbuseCH**.
86
+
2. In the search bar, type **abuse.ch**.
87
87
3. Select a dashboard for the dataset you are collecting, and verify the dashboard information is populated.
88
88
89
89
#### Transforms healthy
90
90
91
91
1. In Kibana, navigate to **Management** > **Stack Management**.
92
92
2. Under **Data**, select **Transforms**.
93
-
3. In the search bar, type **AbuseCH**.
93
+
3. In the search bar, type **abuse.ch**.
94
94
4. All transforms from the search results should indicate **Healthy** under the **Health** column.
95
95
96
96
## Troubleshooting
@@ -113,22 +113,54 @@ For more information on architectures that can be used for scaling this integrat
113
113
114
114
### ECS field reference
115
115
116
+
#### JA3 Fingerprint Blacklist
117
+
118
+
{{fields "ja3_fingerprints"}}
119
+
120
+
#### Malware
121
+
116
122
{{fields "malware"}}
117
123
124
+
#### MalwareBazaar
125
+
118
126
{{fields "malwarebazaar"}}
119
127
128
+
#### SSL Certificate Blacklist
129
+
130
+
{{fields "sslblacklist"}}
131
+
132
+
#### ThreatFox
133
+
120
134
{{fields "threatfox"}}
121
135
136
+
#### URL
137
+
122
138
{{fields "url"}}
123
139
124
140
### Example event
125
141
142
+
#### JA3 Fingerprint Blacklist
143
+
144
+
{{event "ja3_fingerprints"}}
145
+
146
+
#### Malware
147
+
126
148
{{event "malware"}}
127
149
150
+
#### MalwareBazaar
151
+
128
152
{{event "malwarebazaar"}}
129
153
154
+
#### SSL Certificate Blacklist
155
+
156
+
{{event "sslblacklist"}}
157
+
158
+
#### ThreatFox
159
+
130
160
{{event "threatfox"}}
131
161
162
+
#### URL
163
+
132
164
{{event "url"}}
133
165
134
166
### Inputs used
@@ -141,14 +173,16 @@ These inputs can be used in this integration:
141
173
142
174
This integration datasets uses the following APIs:
All AbuseCH datasets now support indicator expiration. For the `URL` dataset, a full list of active threat indicators are ingested every interval. For other datasets namely `Malware`, `MalwareBazaar`, and `ThreatFox`, the threat indicators are expired after duration `IOC Expiration Duration` configured in the integration setting. An [Elastic Transform](https://www.elastic.co/guide/en/elasticsearch/reference/current/transforms.html) is created for every source index to facilitate only active threat indicators be available to the end users. Each transform creates a destination index named `logs-ti_abusech_latest.dest_*` which only contains active and unexpired threat indicators. The indicator match rules and dashboards are updated to list only active threat indicators.
185
+
All abuse.ch datasets now support indicator expiration. For the `URL` dataset, a full list of active threat indicators are ingested every interval. For other datasets namely `Malware`, `MalwareBazaar`, and `ThreatFox`, the threat indicators are expired after duration `IOC Expiration Duration` configured in the integration setting. An [Elastic Transform](https://www.elastic.co/guide/en/elasticsearch/reference/current/transforms.html) is created for every source index to facilitate only active threat indicators be available to the end users. Each transform creates a destination index named `logs-ti_abusech_latest.dest_*` which only contains active and unexpired threat indicators. The indicator match rules and dashboards are updated to list only active threat indicators.
152
186
Destinations indices are aliased to `logs-ti_abusech_latest.<data_stream_name>`.
153
187
154
188
| Source Data stream | Destination Index Pattern | Destination Alias |
description: Active JA3 Fingerprint API fetches malicious JA3 fingerprints identified by SSLBL.
10
+
title: URL
11
+
description: Base URL of the abuse.ch SSLBL API to collect active malicious JA3 fingerprints identified by SSLBL.
12
12
multi: false
13
13
required: true
14
14
show_user: false
@@ -35,7 +35,7 @@ streams:
35
35
required: true
36
36
show_user: true
37
37
default: 1h
38
-
description: Interval for polling threat indicators from AbuseCH data dump. As data dump is generated every 5 minutes, it should be greater than 5 minutes. Default `1h`.
38
+
description: Duration between requests to the SSLBL API. Supported units for this parameter are h/m/s. Example `24h`. As data dump is generated every 5 minutes, it should be greater than 5 minutes.
39
39
- name: ssl
40
40
type: yaml
41
41
title: SSL Configuration
@@ -70,5 +70,5 @@ streams:
70
70
Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details.
71
71
72
72
template_path: cel.yml.hbs
73
-
title: AbuseCH JA3 Fingerprint logs using Elastic Agent
74
-
description: Collect AbuseCH JA3 Fingerprint logs using Elastic Agent
73
+
title: JA3 Fingerprints
74
+
description: Collect malicious JA3 fingerprints from abuse.ch SSLBL.
description: Active SSL Blacklist API fetches malicious SSL certificates identified by SSLBL.
10
+
title: URL
11
+
description: Base URL of the abuse.ch SSLBL API to collect malicious SSL blacklisted certificates identified by SSLBL.
12
12
multi: false
13
13
required: true
14
14
show_user: false
@@ -35,7 +35,7 @@ streams:
35
35
required: true
36
36
show_user: true
37
37
default: 1h
38
-
description: Interval for polling threat indicators from AbuseCH data dump. As data dump is generated every 5 minutes, it should be greater than 5 minutes. Default `1h`.
38
+
description: Duration between requests to the SSLBL API. Supported units for this parameter are h/m/s. Example `24h`. As data dump is generated every 5 minutes, it should be greater than 5 minutes.
39
39
- name: ssl
40
40
type: yaml
41
41
title: SSL Configuration
@@ -70,5 +70,5 @@ streams:
70
70
Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details.
71
71
72
72
template_path: cel.yml.hbs
73
-
title: AbuseCH SSL Blacklist logs using Elastic Agent
74
-
description: Collect AbuseCH SSL Blacklist logs using Elastic Agent
73
+
title: SSL Blacklisted Certificates
74
+
description: Collect malicious SSL blacklisted certificates from abuse.ch SSLBL.
0 commit comments