Skip to content

Commit 2fce395

Browse files
committed
Rebrand AbuseCH to abuse.ch and incorporate changes for new data streams
1 parent 3277302 commit 2fce395

File tree

5 files changed

+337
-81
lines changed

5 files changed

+337
-81
lines changed

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

Lines changed: 64 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# AbuseCH Integration for Elastic
1+
# abuse.ch Integration for Elastic
22

33
## Overview
44

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.
66

77
### Compatibility
88
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
1515

1616
This integration collects threat intelligence indicators into the following datasets:
1717

18+
- `ja3_fingerprints`: Collects JA3 fingerprint based threat indicators identified by SSLBL via [SSLBL API endpoint](https://sslbl.abuse.ch/blacklist/ja3_fingerprints.csv).
1819
- `malware`: Collects malware payloads from URLs tracked by URLhaus via [URLhaus Bulk API](https://urlhaus-api.abuse.ch/#payloads-recent).
1920
- `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).
2022
- `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 URL based threat indicators from URLhaus via [URLhaus API](https://urlhaus.abuse.ch/api/#csv).
2224

2325
### Supported use cases
2426

25-
Integrating abuse.ch with Elastic enables the following use cases.
26-
27-
- [Prebuilt threat intel detection rules](https://www.elastic.co/docs/reference/security/prebuilt-rules)
28-
- 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.
3028

3129
## What do I need to use this integration?
3230

3331
### From Elastic
3432

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-
4733
#### Transform
4834

4935
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)
5036

5137
### From abuse.ch
5238

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`
5442

55-
#### Obtain `Auth-Key`:
5643
1. Sign up for new account or login into [abuse.ch authentication portal](https://auth.abuse.ch).
5744
2. Connect with atleast one authentication provider, namely Google, Github, X, or LinkedIn.
5845
3. Select **Save profile**.
@@ -63,15 +50,28 @@ For more details, check the abuse.ch [Community First - New Authentication](http
6350

6451
## How do I deploy this integration?
6552

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+
6665
### Onboard / configure
6766

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.
7271
5. Enable and configure only the collection methods which you will use.
7372

74-
* To **Collect AbuseCH logs via API**, you'll need to:
73+
* To **Collect abuse.ch logs via API**, you'll need to:
74+
7575
- Configure **Auth Key**.
7676
- Enable/Disable the required datasets.
7777
- 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
8383
#### Dashboards populated
8484

8585
1. In Kibana, navigate to **Dashboards**.
86-
2. In the search bar, type **AbuseCH**.
86+
2. In the search bar, type **abuse.ch**.
8787
3. Select a dashboard for the dataset you are collecting, and verify the dashboard information is populated.
8888

8989
#### Transforms healthy
9090

9191
1. In Kibana, navigate to **Management** > **Stack Management**.
9292
2. Under **Data**, select **Transforms**.
93-
3. In the search bar, type **AbuseCH**.
93+
3. In the search bar, type **abuse.ch**.
9494
4. All transforms from the search results should indicate **Healthy** under the **Health** column.
9595

9696
## Troubleshooting
@@ -113,22 +113,54 @@ For more information on architectures that can be used for scaling this integrat
113113

114114
### ECS field reference
115115

116+
#### JA3 Fingerprint Blacklist
117+
118+
{{fields "ja3_fingerprints"}}
119+
120+
#### Malware
121+
116122
{{fields "malware"}}
117123

124+
#### MalwareBazaar
125+
118126
{{fields "malwarebazaar"}}
119127

128+
#### SSL Certificate Blacklist
129+
130+
{{fields "sslblacklist"}}
131+
132+
#### ThreatFox
133+
120134
{{fields "threatfox"}}
121135

136+
#### URL
137+
122138
{{fields "url"}}
123139

124140
### Example event
125141

142+
#### JA3 Fingerprint Blacklist
143+
144+
{{event "ja3_fingerprints"}}
145+
146+
#### Malware
147+
126148
{{event "malware"}}
127149

150+
#### MalwareBazaar
151+
128152
{{event "malwarebazaar"}}
129153

154+
#### SSL Certificate Blacklist
155+
156+
{{event "sslblacklist"}}
157+
158+
#### ThreatFox
159+
130160
{{event "threatfox"}}
131161

162+
#### URL
163+
132164
{{event "url"}}
133165

134166
### Inputs used
@@ -141,14 +173,16 @@ These inputs can be used in this integration:
141173

142174
This integration datasets uses the following APIs:
143175

176+
- `ja3_fingerprints`: [SSLBL API](https://sslbl.abuse.ch/blacklist/ja3_fingerprints.csv).
144177
- `malware`: [URLhaus Bulk API](https://urlhaus-api.abuse.ch/#payloads-recent).
145178
- `malwarebazaar`: [MalwareBazaar API](https://bazaar.abuse.ch/api/#latest_additions).
179+
- `sslblacklist`: [SSLBL API](https://sslbl.abuse.ch/blacklist/sslblacklist.csv).
146180
- `threatfox`: [ThreatFox API](https://threatfox.abuse.ch/api/#recent-iocs).
147181
- `url`: [URLhaus API](https://urlhaus.abuse.ch/api/#csv).
148182

149183
### Expiration of Indicators of Compromise (IOCs)
150184

151-
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.
152186
Destinations indices are aliased to `logs-ti_abusech_latest.<data_stream_name>`.
153187

154188
| Source Data stream | Destination Index Pattern | Destination Alias |

packages/ti_abusech/data_stream/ja3_fingerprints/manifest.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
type: logs
2-
title: AbuseCH JA3 Fingerprint logs
2+
title: JA3 Fingerprints
33
ilm_policy: logs-ti_abusech.ja3_fingerprints-default_policy
44
streams:
55
- input: cel
66
enabled: true
77
vars:
88
- name: url
99
type: text
10-
title: AbuseCH JA3 Fingerprint API
11-
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.
1212
multi: false
1313
required: true
1414
show_user: false
@@ -35,7 +35,7 @@ streams:
3535
required: true
3636
show_user: true
3737
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.
3939
- name: ssl
4040
type: yaml
4141
title: SSL Configuration
@@ -70,5 +70,5 @@ streams:
7070
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.
7171
7272
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.

packages/ti_abusech/data_stream/sslblacklist/manifest.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
type: logs
2-
title: AbuseCH SSL Blacklist logs
2+
title: SSL Blacklisted Certificates
33
ilm_policy: logs-ti_abusech.sslblacklist-default_policy
44
streams:
55
- input: cel
66
enabled: true
77
vars:
88
- name: url
99
type: text
10-
title: AbuseCH SSL Blacklist API
11-
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.
1212
multi: false
1313
required: true
1414
show_user: false
@@ -35,7 +35,7 @@ streams:
3535
required: true
3636
show_user: true
3737
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.
3939
- name: ssl
4040
type: yaml
4141
title: SSL Configuration
@@ -70,5 +70,5 @@ streams:
7070
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.
7171
7272
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

Comments
 (0)