Centrifuge
Introduction
Centrifuge is designed to enrich multiple types of data indicators (atoms) using a wide variety of enrichers and can be seamlessly extended by registering new ones at runtime to fit your specific workflow.
Atom Types
- URL
- UUID
- CVE IDs
- CWE IDs
- Domain Names
- IP Addresses
- MAC Addresses
- Phone Numbers
- Email Addresses
- USB Vendor and Product IDs
- Digests (MD5, SHA-1, SHA-256, SHA-512)
Enrichment Sources
Centrifuge relies on several types of sources to provide deep enrichment data.
- Enrichment data from a dynamic source requires requesting data from servers during enrichment
- Enrichment data from a static source can be cached prior to enrichment
- An external source provides enrichment data for elements outside the organization
- An internal source provides enrichment data related to the organization
Lets illustrate these concepts with some examples.
- Onyphe, Censys and VirusTotal are dynamic external sources
- Geolocus database
geolocus.mmdbis a static external source - OpenCTI and Hashlookup are dynamic internal or external source depending on your own setup
- Known Identity, Known Network, Known Endpoint, Known Service, Known Entity are static internal sources
- Known CVE, Known CWE, Known MAC, Known User-Agent, Known Public Network and more are static external sources
You are expected to populate static internal sources if you need them.
Getting Started
Centrifuge releases are available on Github and Pypi.
Use Python 3.12+ and a virtual environment for best experience.
# setup centrifuge using python3 from your virtual environment
python3 -m pip install edf-centrifuge
# setup a postgresql database (if needed) using docker compose
# copy test/compose.yml to compose.yml and customize it to fit your needs
# then start containers using the following command
sudo docker compose up -d
# copy centrifuge.dist.json to centrifuge.json and customize it to fit your needs
# then populate the database before calling enrich for the first time
centrifuge populate
# enrich the atom of your choice
centrifuge enrich 'https://github.com/cert-edf/centrifuge' | jq
Configuration
You can find a template in centrifuge.dist.json.
License
Distributed under the MIT License.
Contributing
Contributions are welcome, see CONTRIBUTING.md for more information.
Security
To report a (suspected) security issue, see SECURITY.md for more information.
Metadata
Release files for edf-centrifuge 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| edf_centrifuge-1.0.1-py3-none-any.whl | Python 3 | none | any | Details for edf_centrifuge-1.0.1-py3-none-any.whl |
Release files / edf_centrifuge-1.0.1-py3-none-any.whl
| Download URL | edf_centrifuge-1.0.1-py3-none-any.whl |
|---|---|
| Size | 83.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0c164fbab1d6db7bede790e078e8ced24c73ade4e77b2de923e3f4a6dea2258c
|
|
BLAKE2b-256 checksum How to use checksums |
37b502b6d429738b13f6d2dd64edd844733c92f22da6d0159e46d321ddaf70d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for edf-centrifuge 1.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.