Most engineers think…
Most engineers hear "Zero Trust" and picture it as just "a better VPN with MFA bolted on" — same tunnel onto the network, you just log in harder.
Wrong — and it's the misread that sinks interviews. A VPN's whole job is to put you on the network; ZTNA never puts you on the network at all. It brokers a connection to one specific application after checking identity and device posture on every request (NIST SP 800-207: never trust, always verify, least privilege, assume breach). The app sits behind an outbound-only connector, so it has no public listener for an attacker to even find. MFA is a feature; per-app least-privilege access to a dark app is the architecture.
① Why the VPN had to die — flat access is one stolen password from disaster
Picture Sneha, an L1 engineer at Infosys. A sales colleague works from home, fires up the corporate VPN, types a password (plus an OTP), and is in. Convenient. But notice what the VPN actually did: it dropped that laptop onto the office LAN. From that moment the laptop can reach the file server, the HR portal, the finance app, the lab switches — the whole flat internal network — because the VPN's job was to put the user on the network, not in front of one app.
Now phish that one password. The attacker connects over the same VPN and inherits the same broad reach. This is lateral movement: from one foothold they scan the subnet, harvest more credentials, and pivot toward the crown-jewel servers. The VPN never re-asks "should this session reach finance?" — it already said yes to the whole LAN at login. One stolen credential = the whole network.
This is not theoretical. Through 2025 attackers hammered internet-facing VPN appliances as their front door: Ivanti Connect Secure CVE-2025-0282 (unauthenticated RCE) and CVE-2025-22457, plus an actively-exploited FortiOS SSL-VPN 2FA-bypass flaw disclosed in December 2025. Once in, crews like the Akira ransomware group used the VPN foothold to move laterally with freerdp, ssh and nmap and detonate ransomware. The VPN was both the exposed door and the flat hallway behind it.
The fix is a mindset, written down as NIST SP 800-207: Zero Trust. Its slogan is never trust, always verify, and it rests on a few tenets you must be able to recite. Access is granted per-request (every request is evaluated, not just the first). It follows least privilege (only the access the task needs, and access to one resource never auto-grants another). No network location is inherently trusted — being "inside" means nothing. And you assume breach: design as if an attacker is already in, so you shrink the blast radius rather than trusting a perimeter.
The four Zero Trust tenets, in one tap each
Tap each card — these are straight out of NIST SP 800-207 and they are exactly what an interviewer probes when they say 'define Zero Trust'.
Every request is checked on identity, device and context — the first packet and the thousandth. So: a valid login is the start of verification, not the end.
Grant only what the task needs, time-bound; access to one app never implies another. So: a stolen session can't roam.
Being 'inside the network' earns no trust. So: the VPN's 'you're in, you're trusted' assumption is exactly what Zero Trust deletes.
Design as if the attacker is already in: segment, scope, verify continuously. So: you minimise blast radius instead of betting on a wall.
A VPN is handing a visitor the master key to your whole apartment society after one check at the gate — once inside, they can try every flat. ZTNA is the modern society gate-pass register: the guard verifies who you are and which flat you're visiting, escorts you to that one flat, and the other flats' doors never even appear to you. Lose the gate-pass and an intruder reaches one flat, not the building. Same visitor, very different blast radius.
Aditya at TCS argues: "We added MFA to the VPN, so we're basically Zero Trust now." What's the flaw in that claim?
Pause & Predict
Predict: if 'no network location is inherently trusted', what does that imply for traffic between two servers sitting in the SAME data centre, behind the same firewall? Type your guess.
② How ZTNA actually works — verify, grant one app, keep it dark
So what does ZTNA do differently, mechanically? Three moves. First, before any access, it evaluates identity (who you are, via your IdP) and device posture (is this laptop healthy — disk encrypted, patched, EDR running?). Second, on success it grants access to one specific application, not the network. Third, the application sits behind a connector that only ever makes outbound connections to the broker — so the app has no inbound listening port exposed to the internet.
That last point is the quiet superpower. Because the connector dials out, your app is dark to the internet: a port scan of your public range finds nothing to attack. Compare that to a VPN concentrator or a reverse proxy, which must expose a public port — exactly the port the 2025 Ivanti and FortiOS bugs were hit on. You cannot exploit a door that never opens from the outside.
The piece in the middle is the broker. In NIST language this is the Policy Decision Point (PDP) plus policy administrator; it decides allow/deny and then tells the Policy Enforcement Point (PEP) — the agent or connector — to stitch the user to the app. That split (PDP decides, PEP enforces) is the Zero Trust control plane vs data plane, and it's prime Security+ exam vocabulary.
ZTNA comes in two flavours that hinge on who owns the device. Endpoint-initiated puts a lightweight agent on a managed laptop and feeds the broker rich posture signals. Service-initiated is clientless — a connector dials out from inside the network and the user reaches the app from a browser, so it fits BYOD and third parties you can't put software on. Most real deployments run both (a hybrid): agent for staff, clientless for everyone else.
▶ Watch one ZTNA request get verified and brokered
Karthik at Wipro, working from a café, opens the internal HR portal through ZTNA. Follow the request from his laptop to the one app it's allowed to reach. Press Play for the healthy path, then Break it to see the failure.
{
"application": "hr.internal.wipro",
"session_duration": "30m",
"policies": [
{
"name": "hr-team-compliant-only",
"action": "allow",
"include": [ { "group": ["hr-team@wipro.com"] } ],
"require": [
{ "device_posture": ["disk_encrypted", "edr_running", "os_patched"] },
{ "auth_method": "mfa" }
]
}
],
"default_action": "deny"
}POST /access/apps/hr.internal.wipro/policies 201 Created policy "hr-team-compliant-only" attached (precedence 1) default_action = deny (all non-matching requests blocked) note: app reachable only via outbound connector wpr-conn-01 (no public ingress)
Symptom: you onboard hr.internal but users can suddenly also ping the database and the file server next to it. Cause: you defined the app as a network range / CIDR (e.g. 10.20.0.0/16) instead of a single hostname or host — that's a VPN habit, and it re-creates flat access. Fix: scope each ZTNA app to a specific hostname or /32 (or a precise port on one host) so a session reaches exactly that app and nothing else. ZTNA's whole point is per-app, not per-subnet — if you map subnets you've built a fancier VPN.
Meera at HCL asks: "With service-initiated ZTNA, how does the app stay invisible to internet attackers even though remote users reach it?"
Pause & Predict
Predict: a contractor on their own unmanaged laptop needs browser access to one internal tool. Which ZTNA flavour fits, and what signal do you LOSE compared with a managed laptop? Type your guess.
③ ZTNA 1.0 vs 2.0 — 'allow and forget' is the gap attackers use
Early ZTNA products (call them ZTNA 1.0) fixed the biggest VPN sin — they stopped dumping users onto the network. But they kept a dangerous habit: allow once, then trust forever. Once a session was permitted, the allowed traffic was waved through with no further inspection, and access was often coarse — a whole app or a port range rather than a precise function. Palo Alto bluntly calls this allow and ignore.
Why does that matter? Because, as the data goes, roughly 100% of breaches occur on allowed activity. Stolen-but-valid credentials, a compromised but "approved" laptop, malware riding a permitted session — all of it looks allowed. If you stop inspecting the moment you say yes, you're blind to exactly the attacks that matter most. "Allow and forget" is the seam attackers slip through.
ZTNA 2.0 closes it with three changes. Continuous trust verification: after access is granted, the broker keeps watching device posture, user behaviour and app behaviour, and can revoke access in real time if something turns suspicious — trust is a dial, not a one-time gate. Continuous security inspection: all allowed traffic is inspected deeply and continuously to catch threats (even zero-days) and data leakage, not just at connection time. And true least privilege: access is granted at the app and sub-app level by identifying the application at Layer 7 (App-ID), independent of IP and port — so you can allow "read the wiki" without allowing "admin the wiki."
ZTNA 1.0 → 2.0, the three upgrades
Tap each card. These are the exact three gaps ZTNA 2.0 was built to close — and the lines that win the interview question 'what's wrong with first-gen ZTNA?'.
1.0 stops inspecting once allowed; 2.0 inspects allowed traffic deeply, the whole session. So: malware on a permitted session gets caught, not waved through.
1.0 trusts the session forever; 2.0 re-checks posture/behaviour and can revoke mid-session. So: trust is a dial that drops, not a one-time gate.
1.0 grants a whole app/port; 2.0 uses L7 App-ID to allow a function, not the box. So: 'read the wiki' without 'admin the wiki'.
~100% of breaches ride allowed activity. So: stopping at 'allow' is being blind to the attacks that actually land.
Arjun at ICICI faces this
Arjun, an L2 analyst, sees an alert: a developer's laptop — already granted ZTNA access to an internal Git app this morning — is now exfiltrating large volumes from it at 2 a.m., long after the dev went home.
The session was legitimately allowed at login (valid identity, MFA), but the laptop was compromised afterward. Under a ZTNA 1.0 'allow and forget' model, the allowed session keeps flowing uninspected — exactly the 'breach on allowed activity' pattern.
Arjun checks whether continuous trust verification and inspection are even on. He looks at the session's posture/behaviour signals and the data-volume anomaly the broker should be flagging in real time.
Broker console → Zero Trust → Access controls → Sessions → (this user/app) → Trust signals & inspection logsEnable ZTNA 2.0 controls on the app: continuous trust verification (posture + behaviour re-checked) plus continuous inspection/DLP on allowed traffic, with an auto-revoke rule when behaviour deviates. Tighten the app scope to least privilege at the function level.
Re-test: simulate an off-hours bulk pull → the broker's behaviour engine flags the anomaly, revokes the session in real time, and the inspection/DLP log shows the blocked transfer instead of a silent success.
app: git.internal.icici
continuous_access:
reevaluate_every: 60s
device_posture:
require: [ disk_encrypted, edr_running ]
on_fail: revoke_session
inspection:
threat_prevention: true
dlp: true # inspect ALLOWED traffic, not just at login
behaviour:
anomaly: high
on_trigger: revoke_session
least_privilege:
app_function: read # L7 App-ID: allow read, deny admin/pushpolicy applied to git.internal.icici (ZTNA 2.0) continuous trust verification: ENABLED (60s re-eval) continuous inspection: threat-prevention + DLP ON for allowed traffic sub-app least privilege: function=read (admin/push denied) test event: off-hours bulk read -> anomaly high -> session REVOKED
An interviewer asks Neha: "Give the single biggest reason ZTNA 1.0 still gets breached even though it doesn't put users on the network." Best answer?
Pause & Predict
Predict: ZTNA 2.0 inspects even the ALLOWED traffic continuously. Name one threat that catches which 'verify identity once at login' would completely miss. Type your guess.
④ Rolling out ZTNA — connectors, app mapping, and retiring the VPN
You won't rip the VPN out on a Friday. A real rollout is a ladder. Step 1 — place connectors. Put a connector beside each pool of apps — one (ideally two for HA) per data centre, per cloud VPC, per branch with private apps. They dial out, so you open no inbound firewall ports. Step 2 — map your apps. Inventory every private app and define each as a specific hostname or host, never a subnet (that subnet habit is what re-creates flat VPN access).
Step 3 — write posture policies. For each app, decide who (IdP group) plus device requirements (encryption, EDR, patch level) plus auth (MFA), all deny-by-default. Step 4 — pilot and phase. Move one low-risk app and a friendly user group onto ZTNA, prove it, then peel apps off the VPN one cohort at a time. Step 5 — shrink, then retire the VPN. As apps move, the VPN's scope collapses to a small, monitored island; when the last app is mapped, you switch it off. Running both during the migration is normal and expected.
Where does this sit in the bigger stack? ZTNA is the private-app access engine inside SSE (ZTNA + SWG + CASB). Add the networking side — SD-WAN — and SSE becomes SASE. So ZTNA handles your private apps, SWG handles the open internet, CASB handles sanctioned SaaS — three lanes of one cloud edge.
On the Security+ SY0-701 blueprint, this is Domain 3 territory. Map the words: the broker = Policy Decision Point + policy administrator (the control plane), the agent/connector = Policy Enforcement Point (the data plane), and the policy engine makes the allow/deny call using adaptive identity and least privilege. Get that mapping cold and you've nailed both the exam language and the wiring you'll touch on the job.
Old VPN thinking is giving a delivery rider a key to the restaurant kitchen so they can grab your order themselves — now they can wander anywhere inside. ZTNA is how Swiggy actually works: the rider is verified, handed one specific order at the counter, and never sees the kitchen, the till or other customers' food. The restaurant's back door stays shut (outbound-only). Scale that to apps and you've got per-app least-privilege access with the building kept dark.
Cold, in 30 seconds: (1) why a stolen VPN password beats a stolen ZTNA session — flat LAN vs one app; (2) the three ZTNA moves — verify identity + device, grant one app, outbound connector keeps it dark; (3) ZTNA 1.0 vs 2.0 — allow-and-forget vs continuous trust + inspection + sub-app least privilege; (4) where ZTNA sits — the private-app lane of SSE; SSE + SD-WAN = SASE. If you can say those without notes, you're ready for the Security+ Zero Trust objective and your first SASE rollout.
Sneha is planning ICICI's VPN-to-ZTNA migration. Which ordering and choice is the SAFE rollout?
🤖 Ask the AI Tutor
Tap any question — instant, scoped to this lesson. No login, no waiting.
Pre-curated from Zero Trust docs + community Q&A, scoped to this lesson. For a live prod issue, paste your export into chat.techclick.in.
📝 Wrap-up assessment — six more
You've answered 4 inline. Six left. 70% (7 of 10) marks the lesson complete on your profile. Tap Submit all answers at the end.
🧠 In your own words
Type one line: In one line, why does a stolen VPN password expose far more than a stolen ZTNA session? Then compare to the expert version.
🗣 Teach a friend
Best way to lock it in — explain it in one line to a teammate. Tap to generate a paste-ready summary.
📖 Glossary
- Zero Trust
- Security model with no implicit trust by network location: verify identity, device and context on every request (NIST SP 800-207).
- ZTNA
- Zero Trust Network Access — brokers per-app access after verifying identity + device, instead of putting a user on the network like a VPN.
- Lateral movement
- An attacker hopping from a first foothold to other hosts across a flat network; the damage a VPN's broad access enables.
- Least privilege
- Granting only the access needed for the task, time-bound; access to one resource never implies access to another.
- Assume breach
- Design as if attackers are already inside: minimise blast radius, segment access, verify continuously rather than trusting a perimeter.
- Connector
- A lightweight component beside the app that makes an outbound-only connection to the ZTNA broker, so the app has no inbound public port.
- Broker / trust broker
- The ZTNA control point that evaluates policy and stitches a verified user to one app; in NIST terms the Policy Decision Point.
- Device posture
- The health of the connecting device — disk encryption, patch level, EDR running, OS version — checked before and during access.
- Service-initiated ZTNA
- Clientless model: a connector dials out from inside the network; no agent on the user. Good for BYOD, contractors, third parties.
- Endpoint-initiated ZTNA
- Agent-based model: software on a managed device gives rich posture signals. Good for corporate laptops.
- PDP / PEP
- Policy Decision Point (decides allow/deny) and Policy Enforcement Point (enforces it at the connection); the control vs data plane of Zero Trust.
- SSE / SASE
- SSE = cloud security bundle (ZTNA + SWG + CASB). SASE = SSE + SD-WAN networking, converged at one cloud edge.
📚 Sources
- NIST SP 800-207 — Zero Trust Architecture (the seven tenets: per-request access, least privilege, no implicit trust by location, dynamic policy, continuous monitoring; control/data plane, PDP/PEP, policy engine + administrator). csrc.nist.gov/pubs/sp/800/207/final · nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-207.pdf
- Palo Alto Networks — "What is ZTNA 2.0" + ZTNA 2.0 launch (allow-and-ignore gap of ZTNA 1.0; ZTNA 2.0 = least-privilege via App-ID at L7 to sub-app level, continuous trust verification, continuous security inspection of allowed traffic; '100% of breaches occur on allowed activity'). paloaltonetworks.com/cyberpedia/what-is-zero-trust-network-access-2-0 · paloaltonetworks.com/sase/ztna
- CISA Zero Trust Maturity Model v2.0 — five pillars (Identity, Devices, Networks, Applications & Workloads, Data) across four stages (Traditional, Initial, Advanced, Optimal); the Networks pillar is where VPN-style broad access matures toward per-app micro-segmented access. cisa.gov/zero-trust-maturity-model · cisa.gov/sites/default/files/2023-04/zero_trust_maturity_model_v2_508.pdf
- Cloudflare One docs — "Add a self-hosted application" + Access policies (Zero Trust → Access controls → Applications → Add an application → Self-hosted; deny-by-default; policies under Access controls → Policies). Real console path used for the recreated screenshot. developers.cloudflare.com/cloudflare-one/access-controls/applications/http-apps/ · developers.cloudflare.com/cloudflare-one/access-controls/policies/policy-management/
- Mandiant / Google Cloud + CISA + The Hacker News — active exploitation of VPN appliances feeding lateral movement: Ivanti Connect Secure CVE-2025-0282 (unauth RCE, zero-day from Dec 2024) and CVE-2025-22457 (UNC5221), and FortiOS SSL VPN 2FA-bypass exploitation (Dec 2025); attackers used VPN footholds to pivot with freerdp/ssh/nmap and deploy ransomware (e.g. Akira). cloud.google.com/blog/topics/threat-intelligence/ivanti-connect-secure-vpn-zero-day · cisa.gov/news-events/cybersecurity-advisories/aa24-060b
- CompTIA Security+ SY0-701 exam objectives — Domain 3 Security Architecture: Zero Trust control plane vs data plane, Policy Decision Point / Policy Enforcement Point, policy engine + policy administrator, implicit trust zones, adaptive identity, least privilege. comptia.org/certifications/security · comptia.org/landing/security-plus/exam-objectives
- TechTarget + Gartner Market Guide for ZTNA (described) — service-initiated (clientless, connector dials out, good for BYOD/third parties) vs endpoint-initiated (agent, rich posture, managed devices); outbound-only connections make apps a 'darknet'. Gartner recommends hybrid support. techtarget.com/searchnetworking/feature/Choosing-ZTNA-vendors-amid-zero-trust-confusion
What's next?
ZTNA contains user-to-app access, but what about attackers and workloads already inside your data centre talking east-west? Next we segment the inside itself — so a foothold on one server can't fan out to the rest.