sudo cscli collections install crowdsecurity/openbsdInstalls 6 parsers and 6 scenarios, via SSHD - Bruteforce Protection.
View OpenBSD →sudo cscli scenarios install crowdsecurity/ssh-time-based-bfThen reload CrowdSec: sudo systemctl reload crowdsec
Sign in to see which of your engines run it →Hover a line or a note to see what each field does.
# ssh time-based bruteforce with false positive reductiontype: conditionalname: crowdsecurity/ssh-time-based-bfdescription: "Detect time-based ssh bruteforce attempts that evade rate limiting (with false positive reduction)"filter: "evt.Meta.service == 'ssh' && evt.Meta.log_type in ['ssh_failed-auth', 'auth_success']"groupby: evt.Meta.source_ipcapacity: -1cancel_on: "evt.Meta.log_type == 'auth_success'"condition: |let failedAuths = filter(queue.Queue, {#.Meta.log_type == 'ssh_failed-auth'});len(failedAuths) >= 4 &&MedianInterval(map(failedAuths[-4:], {#.Time})) > duration("10m")leakspeed: 2hblackhole: 5mreprocess: truelabels:service: sshbehavior: "ssh:bruteforce"spoofable: 0confidence: 1classification:- attack.T1110label: "SSH Time-Based Bruteforce"remediation: false---# ssh user-enum time-based with false positive reductiontype: conditionalname: crowdsecurity/ssh-time-based-bf_user-enumdescription: "Detect time-based ssh user enum bruteforce attempts (with false positive reduction)"filter: "evt.Meta.service == 'ssh' && evt.Meta.log_type in ['ssh_failed-auth', 'auth_success']"groupby: evt.Meta.source_ipdistinct: evt.Meta.target_usercapacity: -1cancel_on: "evt.Meta.log_type == 'auth_success'"condition: |let failedAuths = filter(queue.Queue, {#.Meta.log_type == 'ssh_failed-auth'});len(failedAuths) >= 4 &&MedianInterval(map(failedAuths[-4:], {#.Time})) > duration("10m")leakspeed: 2hblackhole: 5m
Sign in to see the Security Engines that run this attack scenario, the version they run and whether it was modified locally.
Detect time-based ssh bruteforce attempts that evade traditional rate limiting with false positive reduction:
cancel_on to cancel bucket if user successfully authenticates
remediation: false)MedianInterval() helper to detect consistent timing patterns (more robust against outliers)crowdsecurity/sshd-success-logs parser for cancel_on functionalityTwo variants:
This scenario complements the standard ssh-bf (capacity 5, leakspeed 10s) and ssh-slow-bf (capacity 10, leakspeed 60s) scenarios with no overlap: