Agent wrapper for radegast EDR — syncs detection packs and forwards encrypted alerts
Project description
Radegast Agent
Agent wrapper for the rustinel EDR binary. This project syncs detection packs from a backend, extracts rules into the local rules/ tree, and forwards encrypted alert lines from logs/ to the backend.
Features
- Syncs detection packs via backend API
- Extracts
sigma,yara, and mergediocrules - Tracks IOC ownership across packs so removed pack IOC files are cleaned up safely
- Tails
alerts.jsonlogs and forwards encrypted alerts to the backend - Optional local
rustinelprocess startup controlled by configuration
Requirements
- Python 3.11+
hatchlingbuild backend for packaging
Installation
You can also install this project as a UV tool directly from GitHub:
uv tool install git+https://github.com/radegast-edr/radegast-agent-python
radegast-edr-agent --version
Configuration
The agent uses environment variables prefixed with RADEGAST_AGENT_.
| Variable | Default | Description |
|---|---|---|
RADEGAST_AGENT_BACKEND_URL |
http://localhost:8000/api/v1 |
Backend API URL, including the default /api/v1 path |
RADEGAST_AGENT_DEVICE_TOKEN |
`` | Device token for authenticating to the backend |
RADEGAST_AGENT_RUSTINEL_BINARY |
./rustinel |
Local path to the rustinel binary |
RADEGAST_AGENT_RULES_DIR |
./rules |
Base directory for extracted rules |
RADEGAST_AGENT_ALERTS_DIR |
./logs |
Directory containing alert files |
RADEGAST_AGENT_ALERTS_FILENAME |
alerts.json |
Alert file base name |
RADEGAST_AGENT_SEND_SEVERITY |
true |
If true, parse the severity of the alert and send it unencrypted in the request |
RADEGAST_AGENT_SEND_RULE_ID |
true |
If true, parse rule.id from the alert and sends it unencrypted in the request |
RADEGAST_AGENT_SEND_EXCLUDED_BY |
true |
If true, send the exclusion ID for soft exclusions unencrypted in the request |
RADEGAST_AGENT_MAX_LOG_SIZE_MB |
10 |
Maximum size of the rustinel log file in MB before rotation |
RADEGAST_AGENT_MAX_LOG_AGE_DAYS |
720 |
Maximum age of rotated rustinel log archives in days before deletion |
RADEGAST_AGENT_SYNC_INTERVAL |
300 |
Seconds between pack sync checks |
RADEGAST_AGENT_AUTOUPDATE_INITIAL_DELAY |
300 (5 minutes) |
Seconds until first autoupdate check after startup |
RADEGAST_AGENT_AUTOUPDATE_INTERVAL |
86400 (24 hours) |
Seconds between subsequent autoupdate checks |
RADEGAST_AGENT_SIGNING_KEY_PATH |
${RADEGAST_AGENT_STATE_DIR:-./.radegast-agent}/device_key |
Path to the device signing keypair |
RADEGAST_AGENT_STATE_DIR |
./.radegast-agent |
Local state directory for manifests, offsets, and the default signing key location |
Notes
- The agent does not launch
rustinel— it must be started separately. The agent only tails alerts from the configuredalerts_dir. - If
RADEGAST_AGENT_SIGNING_KEY_PATHis unset, it defaults to${RADEGAST_AGENT_STATE_DIR:-./.radegast-agent}/device_key. - IOC files are merged into
rules/ioc/and an ownership registry is kept inrules/ioc/ioc_packs.json.
Usage
Run the agent via the console script:
radegast-edr-agent
Print the installed version:
radegast-edr-agent --version
Or with Python directly:
python -m radegast_edr_agent.cli
Project layout
radegast_edr_agent/— application packagecli.py— main entry pointconfig.py— environment-backed config schemaclient.py— backend API clientpacks.py— pack synchronization and extractionprocess.py— subprocess management forrustineltailer.py— alert file tailing and forwardingversion.py— version reporting and detection utilitiesautoupdate.py— agent autoupdate functionality
tests/— unit testspyproject.toml— package metadata and build config
Testing
Run the test suite with:
.venv/bin/python -m pytest
License
This project does not include a license file by default. Add a LICENSE file if you want to define reuse terms.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file radegast_edr_agent-0.4.0.tar.gz.
File metadata
- Download URL: radegast_edr_agent-0.4.0.tar.gz
- Upload date:
- Size: 83.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1e6892f37bea2ae8b07158f1159354e112ed96918599a58e850e584f62db2db
|
|
| MD5 |
4cb30cc2616fdec33e72cbdb42eb9942
|
|
| BLAKE2b-256 |
e50354232aff47ffac1a9c94d929a01a670603864ad66d400d659af3e2fb5695
|
Provenance
The following attestation bundles were made for radegast_edr_agent-0.4.0.tar.gz:
Publisher:
ci-cd.yml on radegast-edr/radegast-agent-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
radegast_edr_agent-0.4.0.tar.gz -
Subject digest:
b1e6892f37bea2ae8b07158f1159354e112ed96918599a58e850e584f62db2db - Sigstore transparency entry: 1924383330
- Sigstore integration time:
-
Permalink:
radegast-edr/radegast-agent-python@f1ed39eb94c7b04e64417f04c8c55b0bef6327dd -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/radegast-edr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci-cd.yml@f1ed39eb94c7b04e64417f04c8c55b0bef6327dd -
Trigger Event:
push
-
Statement type:
File details
Details for the file radegast_edr_agent-0.4.0-py3-none-any.whl.
File metadata
- Download URL: radegast_edr_agent-0.4.0-py3-none-any.whl
- Upload date:
- Size: 25.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8dd813dbae8269f1921780a933f8b1d17b1fd053b306a44514aa540f7dbbb391
|
|
| MD5 |
9289cf5a5bda8c3518e54490e8be427a
|
|
| BLAKE2b-256 |
6fa32786904cb8a892067780e350eab0820ba292ad132dbf81df1468ff744893
|
Provenance
The following attestation bundles were made for radegast_edr_agent-0.4.0-py3-none-any.whl:
Publisher:
ci-cd.yml on radegast-edr/radegast-agent-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
radegast_edr_agent-0.4.0-py3-none-any.whl -
Subject digest:
8dd813dbae8269f1921780a933f8b1d17b1fd053b306a44514aa540f7dbbb391 - Sigstore transparency entry: 1924383442
- Sigstore integration time:
-
Permalink:
radegast-edr/radegast-agent-python@f1ed39eb94c7b04e64417f04c8c55b0bef6327dd -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/radegast-edr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci-cd.yml@f1ed39eb94c7b04e64417f04c8c55b0bef6327dd -
Trigger Event:
push
-
Statement type: