towerops/lib/towerops_web/plugs
Graham McIntire 4d73e77f3a
Add 404-based brute force protection system
Implements automated detection and blocking of IPs exhibiting scanning behavior (5+ unique 404s within 1 minute).

Key features:
- Progressive ban escalation (5 min → 1 hour → permanent)
- CIDR range and exact IP whitelisting
- Redis-backed 404 path tracking with 60s TTL
- Cloudflare WAF integration for permanent bans
- Admin UI for whitelist and blocked IP management
- Oban cron jobs for cleanup (expired bans, stale violations)
- ETS caching for whitelist performance

Components:
- Plug: ToweropsWeb.Plugs.BruteForceProtection
- Context: Towerops.Security.BruteForce
- Schemas: IpBlock, IpWhitelist
- Workers: CloudflareBanWorker, ExpiredBanCleanupWorker, StaleViolationCleanupWorker
- Admin UI: /admin/security (superuser only)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 16:31:48 -06:00
..
api_auth.ex refactor: use API token auth for profile imports instead of session cookies 2026-01-18 09:30:21 -06:00
brute_force_protection.ex Add 404-based brute force protection system 2026-02-10 16:31:48 -06:00
capture_timezone.ex Use detected timezone from session in user registration 2026-02-01 12:18:33 -06:00
check_policy_consent.ex gdpr consent tracking 2026-01-29 11:12:35 -06:00
detect_eu_user.ex snmp v3 support 2026-02-04 12:02:38 -06:00
mobile_auth.ex Add comprehensive Dialyzer type specifications 2026-01-17 10:52:02 -06:00
rate_limit.ex update hammer 2026-02-08 10:08:31 -06:00
remote_ip_logger.ex nif ci fixes and dialyzer fixes 2026-01-30 12:38:50 -06:00
security_headers.ex add security headers 2026-01-29 10:33:24 -06:00
update_session_activity.ex security: add session inactivity timeout and comprehensive security documentation 2026-02-08 10:47:44 -06:00
webhook_auth.ex Add CI-triggered mass agent update webhook 2026-02-10 13:40:32 -06:00