Skip to content

feat: add PumbaLP/adguardhome-dot collection for DoT scanner detection#1797

Open
PumbaLP wants to merge 1 commit into
crowdsecurity:masterfrom
PumbaLP:feature/adguardhome-dot
Open

feat: add PumbaLP/adguardhome-dot collection for DoT scanner detection#1797
PumbaLP wants to merge 1 commit into
crowdsecurity:masterfrom
PumbaLP:feature/adguardhome-dot

Conversation

@PumbaLP
Copy link
Copy Markdown

@PumbaLP PumbaLP commented May 12, 2026

Adds a parser and scenario to detect port 853 (DNS-over-TLS) scanners targeting AdGuard Home instances.

Port scanners that probe DoT without completing a proper TLS handshake cause repeated "connection reset by peer" errors in AdGuard Home logs. This collection extracts the remote IP from these errors and bans IPs that trigger 5+ resets within 10 minutes.

Components

  • Parser PumbaLP/adguardhome-dot-errors: extracts remote_ip, log_type and service from AdGuard Home DoT error logs
  • Scenario PumbaLP/adguardhome-dot-scan: leaky bucket, capacity 5, leakspeed 10m, grouped by source_ip
  • Collection PumbaLP/adguardhome-dot: bundles both components

What it detects

Port scanners and probers that connect to port 853 (DoT) without completing a proper TLS handshake. These appear as repeated connection reset by peer errors in AdGuard Home logs.

What it does NOT detect

  • DoQ (port 8853 or 853/udp) – no remote IP in logs
  • Direct DoH (port 443) – no remote IP in logs
  • DoH via Nginx reverse proxy – use crowdsecurity/nginx-logs instead

Testing

Two hubtests are included:

  • adguardhome-dot-errors: validates parser extracts source_ip, log_type and service correctly
  • adguardhome-dot-scan: validates scenario coverage with 6 events from same IP

Tested in production against AdGuard Home v0.107.x running in Docker.

Closes #1753

Checklist

  • I have read the contributing guide
  • I have tested my changes locally
  • For new parsers or scenarios, tests have been added
  • I have run the hub linter and no issues were reported (see contributing guide)
  • Automated tests are passing
  • AI was used to generate any/all content of this PR

Parser: PumbaLP/adguardhome-dot-errors
- Extracts remote IP from AdGuard Home DoT connection reset errors
- Detects port 853 scanners that fail TLS handshake

Scenario: PumbaLP/adguardhome-dot-scan
- Bans after 5 resets within 10 minutes from same IP
- Tested against AdGuard Home v0.107.x in production

Closes: crowdsecurity#1753
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.

[Hub] Add PumbaLP/adguardhome-dot collection

1 participant