Skip to content

feat: add Proxmox Backup Server (PBS) support#1701

Merged
sabban merged 4 commits intocrowdsecurity:masterfrom
nicoh88:master
Mar 16, 2026
Merged

feat: add Proxmox Backup Server (PBS) support#1701
sabban merged 4 commits intocrowdsecurity:masterfrom
nicoh88:master

Conversation

@nicoh88
Copy link
Contributor

@nicoh88 nicoh88 commented Feb 25, 2026

Includes:

  • Parser for PBS API auth logs (pbs_failed-auth / pbs_success-auth)
  • Bruteforce scenario (triggers on 6 failed logins within 10s)
  • Complete hubtests for parser and scenario
  • Collection bundling the PBS setup and documentation

Thanks:
@fulljackz for Proxmox parsers and scenarios.

Includes:
- Parser for PBS API auth logs (pbs_failed-auth / pbs_success-auth)
- Bruteforce scenario (triggers on 6 failed logins within 10s)
- Complete hubtests for parser and scenario
- Collection bundling the PBS setup and documentation
@sabban
Copy link
Contributor

sabban commented Mar 3, 2026

Hi,

Thank you for your contribution!

It seems the tests are not passing; something is off with the parsed IP:

(L.34)  🔴  => results["s01-parse"]["nicoh88/proxmox-backup-auth-logs"][0].Evt.Parsed["client_ip"] == "31.54.38.23"
        Actual expression values:
            results["s01-parse"]["nicoh88/proxmox-backup-auth-logs"][0].Evt.Parsed["client_ip"] = '::ffff:31.54.38.23'

(L.46)  🔴  => results["s01-parse"]["nicoh88/proxmox-backup-auth-logs"][0].Evt.Meta["source_ip"] == "31.54.38.23"
        Actual expression values:
            results["s01-parse"]["nicoh88/proxmox-backup-auth-logs"][0].Evt.Meta["source_ip"] = '::ffff:31.54.38.23'

(L.50)  🔴  => results["s01-parse"]["nicoh88/proxmox-backup-auth-logs"][1].Evt.Parsed["client_ip"] == "31.54.38.23"
        Actual expression values:
            results["s01-parse"]["nicoh88/proxmox-backup-auth-logs"][1].Evt.Parsed["client_ip"] = '::ffff:31.54.38.23'

(L.62)  🔴  => results["s01-parse"]["nicoh88/proxmox-backup-auth-logs"][1].Evt.Meta["source_ip"] == "31.54.38.23"
        Actual expression values:
            results["s01-parse"]["nicoh88/proxmox-backup-auth-logs"][1].Evt.Meta["source_ip"] = '::ffff:31.54.38.23'

(L.66)  🔴  => results["s01-parse"]["nicoh88/proxmox-backup-auth-logs"][2].Evt.Parsed["client_ip"] == "31.54.38.23"
        Actual expression values:
            results["s01-parse"]["nicoh88/proxmox-backup-auth-logs"][2].Evt.Parsed["client_ip"] = '::ffff:31.54.38.23'

(L.78)  🔴  => results["s01-parse"]["nicoh88/proxmox-backup-auth-logs"][2].Evt.Meta["source_ip"] == "31.54.38.23"
        Actual expression values:
            results["s01-parse"]["nicoh88/proxmox-backup-auth-logs"][2].Evt.Meta["source_ip"] = '::ffff:31.54.38.23'

(L.95)  🔴  => results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["client_ip"] == "31.54.38.23"
        Actual expression values:
            results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["client_ip"] = '::ffff:31.54.38.23'

(L.107)  🔴  => results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "31.54.38.23"
        Actual expression values:
            results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] = '::ffff:31.54.38.23'

(L.113)  🔴  => results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["client_ip"] == "31.54.38.23"
        Actual expression values:
            results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["client_ip"] = '::ffff:31.54.38.23'

(L.125)  🔴  => results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "31.54.38.23"
        Actual expression values:
            results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] = '::ffff:31.54.38.23'

(L.131)  🔴  => results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["client_ip"] == "31.54.38.23"
        Actual expression values:
            results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["client_ip"] = '::ffff:31.54.38.23'

(L.143)  🔴  => results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "31.54.38.23"
        Actual expression values:
            results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] = '::ffff:31.54.38.23'

Did I miss something?

Regards,

@nicoh88
Copy link
Contributor Author

nicoh88 commented Mar 3, 2026

@sabban fixed. re-run.

@sabban sabban merged commit 1007103 into crowdsecurity:master Mar 16, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants