Printed from CheckTick DSPT Compliance Documentation
Infrastructure Hardening & Configuration Standard
1. Network Hardening (Sovereign Defense)
- Zero-Trust Ingress: Only HTTPS (443) is permitted. All other ports (SSH, DB, FTP) are blocked at the Northflank platform edge.
- Database Isolation: The PostgreSQL database is not assigned a public IP address and is only reachable via the internal virtual private network (VPC) from the application containers.
- TLS Enforcement: We enforce TLS 1.3 for all data in transit, with HSTS enabled to prevent protocol downgrade attacks.
2. Operating System & Container Hardening
- Minimal Base Images: We use Ubuntu 22.04 LTS "slim" images to reduce the attack surface (removing unnecessary shells, compilers, and tools).
- Non-Root Execution: All application processes within containers run as a non-privileged user.
- Immutability: Production containers are immutable; changes are only permitted via a fresh CI/CD deployment after security scans pass.
3. Application-Layer Protection
- Brute Force:
django-axesis configured to lock accounts and IPs after 5 failed login attempts. - DoS Protection: Rate-limiting is applied to all sensitive endpoints (Login, Reset Password, Survey Submission).
- Dependency Auditing: Daily cron jobs run
pip-auditto ensure zero 'Critical' vulnerabilities exist in the production stack.
4. Logical Separation (Mitigations)
Where dependencies cannot be patched due to upstream constraints (e.g., development tools):
- Build-Time Isolation: These tools are excluded from the production build.
- Local Development Isolation: Developers use isolated Python virtual environments (Poetry) to ensure local vulnerabilities do not leak into the production codebase.