elastic / elastic/integrations

[New Integration] CrowdSec

Open
#21,086 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Handlebars
Stars
333
Forks
647
Avg merge
2d 18h
Merged PRs (30d)
182

Description

## Summary

[CrowdSec](https://www.crowdsec.net/) is an open-source intrusion prevention
system. It parses logs, detects aggressive behaviour using scenarios from the
CrowdSec Hub, and issues remediation decisions such as banning a source IP.
There is no integration for it here today.

People are already sending CrowdSec data into Elasticsearch by hand, and running
into the rough edges of doing it that way — for example
[crowdsecurity/crowdsec#1618](https://github.com/crowdsecurity/crowdsec/issues/1618)
(notifications not all arriving),
[#1649](https://github.com/crowdsecurity/crowdsec/issues/1649) (index naming),
and [#4427](https://github.com/crowdsecurity/crowdsec/issues/4427). An
integration would give them a supported path with ECS field mappings and a
dashboard instead.

I have built and tested a package for this, and I would be glad to contribute it
if it is something you would like to have.

## The package

https://github.com/TocharianOU/elastic-integrations-eu/tree/main/packages/crowdsec

One `alert` data stream, one document per CrowdSec alert. Two inputs:
`http_endpoint`, which receives alerts from CrowdSec's `notification-http`
plugin, and `logfile` for replaying captured alerts. Alerts are mapped to ECS
plus a `crowdsec.*` namespace, and the package ships a dashboard covering alert
volume, scenarios, source geography, repeat offenders and target paths.

It was built against a live CrowdSec 1.8.1 rather than from sample files. The
pipeline test fixtures are payloads captured from that instance, and the raw
captures are kept next to the package so the mapping can be checked against
them. `elastic-package test pipeline` and `elastic-package check` both pass, and
it installs into Kibana 9.5.

## How can I help move this forward?

I would be happy to open a pull request. I noticed that packages here are owned
by an Elastic team in `.github/CODEOWNERS`, so I would need to know which team
to put there before I can prepare one properly.

Please let me know how you would prefer to proceed, and I am glad to adjust
anything in the package to fit your conventions.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the proposed package at the linked CrowdSec repository and the ownership rules in .github/CODEOWNERS. Run elastic-package test pipeline and elastic-package check, then compare the package with existing integration conventions; done means the team and ownership path are agreed and the package is accepted with its alert data stream, ECS mappings, and dashboard.

Written by the indexing model from the issue text.

Assessment

Tech stack
elasticsearch
Domain
observability, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.