Why Your VPN Is a Security Theater and What to Do About It
The corporate VPN is one of the most widely deployed security tools in enterprise software — and one of the most fundamentally misaligned with how modern organizations actually work.
I want to make the case for zero-trust network architecture, explain what the implementation landscape actually looks like in 2026, and be honest about the developer experience challenges that cause most ZTA rollouts to fail or get quietly abandoned.
The Fundamental Problem With VPNs
VPNs operate on a perimeter security model: the network inside the VPN tunnel is trusted; everything outside is not. This model made sense when all your infrastructure was in a data center and all your employees were in an office.
That world no longer exists.
Hybrid and remote work means your “trusted” network now extends to home offices, coffee shops, and hotel networks — none of which are actually trustworthy. Cloud infrastructure has dissolved the traditional perimeter entirely. And the most dangerous threat vector — lateral movement after an initial compromise — is completely unaddressed by VPNs. If an attacker compromises a single endpoint with VPN access, they have broad network access to move laterally toward your most sensitive systems.
The 2020 SolarWinds attack was a masterclass in lateral movement exploitation. The attackers moved for months inside “trusted” networks. The 2023 MGM breach followed a similar pattern. Perimeter security cannot stop these attacks.
Zero-Trust Principles
Zero-trust is not a product. It is an architectural philosophy built on three core principles:
- Never trust, always verify. Every access request — regardless of network origin — must be authenticated and authorized. Being on the VPN does not grant access to anything.
- Least privilege. Users and systems get access only to what they specifically need, nothing more.
- Assume breach. Design your controls assuming an attacker is already inside. Segment, log, and detect lateral movement.
The Tooling Landscape in 2026
Tailscale has become the developer-friendly darling for smaller teams and specific use cases. It is a WireGuard-based mesh network with an excellent developer experience, SSO integration, and granular ACLs. Its free tier and easy setup have driven adoption from the bottom up in many organizations. Limitation: it is best suited for internal service connectivity, not full ZTA replacement.
Cloudflare Access is excellent for protecting web applications and internal services with identity-aware proxying. It integrates cleanly with your IdP, handles MFA at the policy layer, and has good developer tooling. Cost scales well.
Zscaler is the enterprise incumbent — powerful, comprehensive, and notorious for breaking developer workflows when misconfigured. If your organization runs Zscaler and engineers are routing around it, that is a configuration and change management problem, not a fundamental tool problem.
Teleport is worth special mention for infrastructure access — SSH, Kubernetes, databases. Its audit trail, session recording, and short-lived certificate model are genuinely excellent for compliance-sensitive environments.
Device trust is the often-skipped component. Verifying user identity is necessary but not sufficient — device posture should gate access to sensitive resources.
What Developers Hate About ZTA Implementations
I will be direct: most ZTA rollouts fail not because of the security technology, but because of the developer experience failure modes.
- Re-authentication friction. If engineers have to re-authenticate every time they access a service or their session times out every hour, they will find workarounds.
- Broken local development environments. Local dev that talks to cloud services through a ZTA proxy will break in ways that are hard to debug. Engineers waste hours on TLS certificate errors, DNS resolution failures, and proxy timeouts.
- Certificate management. Client certificates for mTLS are powerful but operationally painful. Automate rotation or you will have 2 AM incidents when certs expire.
How to Implement Without Destroying Developer Experience
- SSO integration as the foundation. All access should flow through your IdP. Single sign-on means single authentication event with smart session management.
- Transparent proxy approaches. The less engineers have to think about the security layer, the more adoption you get.
- Good error messages. When access is denied, the error should say why and what to do. “Access denied” is a developer support ticket. “Access denied: your device is not enrolled in MDM — see go/device-enrollment” is self-service.
- Phased rollout with engineering input. Do not deploy ZTA to engineers without engineers involved in the design. Their workflows are the most complex and the most likely to break.
Zero-trust is the right direction. The implementation details determine whether it becomes a security win or an organizational disaster.
Questions welcome — happy to discuss specific tooling decisions or rollout approaches.