<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/" >

<channel>
	<title>PortSys</title>
	<atom:link href="https://portsys.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://portsys.com</link>
	<description>Powerful Access Control. Simply Delivered.</description>
	<lastBuildDate>Fri, 06 Nov 2026 05:03:15 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://portsys.com/wp-content/uploads/2026/04/cropped-PortSys-Icon-Watermark-32x32.jpg</url>
	<title>PortSys</title>
	<link>https://portsys.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Why Identity Security Doesn&#8217;t Solve the Problem</title>
		<link>https://portsys.com/why-identity-security-doesnt-solve-the-problem/</link>
		
		<dc:creator><![CDATA[Michael Oldham]]></dc:creator>
		<pubDate>Mon, 02 Nov 2026 16:53:21 +0000</pubDate>
				<category><![CDATA[Access Control]]></category>
		<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Compliance]]></category>
		<category><![CDATA[Cybersecurity]]></category>
		<category><![CDATA[Identity Management]]></category>
		<category><![CDATA[Regulatory]]></category>
		<category><![CDATA[Security Risks]]></category>
		<category><![CDATA[Zero Trust]]></category>
		<guid isPermaLink="false">https://portsys.com/?p=9313</guid>

					<description><![CDATA[Identity tells you who is asking.  It doesn't tell you whether you should let them in.]]></description>
										<content:encoded><![CDATA[<p>For the past decade, companies have been told that identity is the new perimeter. Put single sign-on in place, turn on multi-factor authentication (MFA), and the hard part is done. Many organizations did exactly that. They’re still getting breached.</p>
<p>The data backs that up. Verizon’s 2025 Data Breach Investigations Report found that stolen credentials were the most common way attackers got in for the second year running, at 22% of breaches, and that 88% of attacks on basic web applications involved stolen credentials. Attackers aren’t breaking in. They’re logging in.</p>
<p>Identity security isn’t wrong. It’s incomplete. Here’s why it leaves companies exposed, and why the gap is about to get much wider.</p>
<h2>Identity is one factor. An access decision needs more.</h2>
<p>Identity answers one question: who is this? A sound access decision has to answer several more. Is this the device we expect? Is that device healthy? Does the location make sense? Is the behavior consistent with this person, or with a person at all? Should this session still be trusted ten minutes from now?</p>
<p>An example of how this plays out is Microsoft 365, Microsoft’s cloud suite for email, file storage (OneDrive and SharePoint) and collaboration (Teams). Sign-in is handled by Microsoft Entra ID, Microsoft’s identity service. When a user signs in, Entra confirms who they are, and from that point the user, or whoever holds the user’s session, can reach their mail, files and chats. Entra can add device and location rules, but only for the applications it fronts. The file server in the data center, the remote desktop host, the client-server ERP application and the operational technology (OT) network all sit outside that decision.</p>
<p>When identity is treated as the whole answer, the “who” becomes the only thing standing between an attacker and your data. Steal or spoof the who, and everything else follows.</p>
<h2>MFA helps. But steal the token and you’re home free.</h2>
<p>MFA is one of the most valuable controls a company can turn on, and nothing here argues against it. But MFA protects the moment of login. It does not protect what happens after.</p>
<p>When you sign in, the identity provider gives your browser a session token, a digital pass that says “this user has already proved who they are.” For hours, sometimes days, every request carries that pass instead of asking you to sign in again. The token is a bearer credential: whoever holds it can use it.</p>
<p>That is precisely what attackers go after. In an <strong>adversary-in-the-middle (AiTM)</strong> attack, a phishing site sits between the user and the real login page. It passes everything through, including the MFA prompt, and quietly copies the session token the moment the login succeeds. The user did everything right. The attacker walks in with a valid pass. A newer variant, <strong>device code phishing</strong>, skips the fake page entirely: the victim is tricked into entering a code on Microsoft’s genuine sign-in page, completes MFA themselves, and unknowingly hands the resulting tokens to the attacker. Infostealer malware does the same thing from the device side, lifting session cookies straight out of the browser. SpyCloud recaptured 8.6 billion stolen session cookies circulating in underground sources in 2025 alone.</p>
<p>This isn’t theoretical, and 2026 has made the point repeatedly:</p>
<ul>
<li><strong>April:</strong> Microsoft reported an AiTM campaign that, over just three days, targeted more than 35,000 users at over 13,000 organizations in 26 countries, built to capture authentication tokens that give immediate account access.</li>
<li><strong>July to September:</strong> Huntress tracked attackers replaying stolen Microsoft 365 sessions at 79 organizations, with at least 497 successful sign-ins. In 19 of those organizations, the attackers wiped the victim’s MFA methods and registered their own within three hours of getting in.</li>
<li><strong>September:</strong> Microsoft and its partners took down EvilTokens, a device code phishing service that had compromised more than 12,000 inboxes across over 10,000 organizations. Victims never gave up their passwords. Microsoft noted that access could persist even after a password reset if the sessions and tokens weren’t also revoked.</li>
</ul>
<p>It isn’t only user sessions. In August 2025, attackers used OAuth tokens stolen from the Salesloft Drift integration to pull data out of customers’ Salesforce environments. No password and no MFA prompt were involved; the tokens did all the work.</p>
<blockquote style="margin:2em 0;padding:1.1em 1.5em;border-left:5px solid #0E7C86;background:#F1F7F8;border-radius:0 6px 6px 0;">
<p style="margin:0;font-size:1.35em;line-height:1.4;font-weight:600;font-style:italic;color:#1B2A41;">Resetting the password doesn’t help when the attacker never needed it.</p>
</blockquote>
<h2>Authenticate and abdicate</h2>
<p>This is the core design flaw. Most identity solutions <strong>authenticate and abdicate</strong>. They do a careful job at the front door with a password, MFA and perhaps a device check, then issue a token and step out of the conversation. From that moment on, each application trusts the token, not the person. (We looked at the architecture side of this in an earlier post, <a href="https://portsys.com/deciding-is-not-enforcing/">Deciding Is Not Enforcing</a>.)</p>
<p>That creates three problems:</p>
<ul>
<li><strong>Trust is checked once and assumed for hours.</strong> Anything that changes after login goes unnoticed by the system that granted access: the device gets infected, the session is hijacked, the behavior turns strange.</li>
<li><strong>The identity provider never sees the traffic.</strong> It knows who signed in. It doesn’t know what they reached next, or whether the session is still in the right hands.</li>
<li><strong>A stronger front door raises the value of the token.</strong> The harder the login, the more attackers invest in stealing what the login produces. Strengthening authentication without controlling the session moves the risk downstream instead of removing it.</li>
</ul>
<h2>AI agents turn the gap into a highway</h2>
<p>Now add AI agents. Palo Alto Networks’ 2026 Identity Security Landscape report puts the ratio at 109 machine identities for every human identity, with roughly 79 of those being AI agents, and expects agent identities to grow about 85% in the next year. The same report found that nine out of ten organizations suffered a successful identity-related breach in the last 12 months.</p>
<p>Agents run on tokens. An AI assistant connected to your email, CRM and file shares holds OAuth tokens and API keys that give it standing access, often broad, often long-lived and rarely reviewed. There is no MFA prompt for an agent. Every one of those tokens is exactly the kind of credential already being stolen at scale. The Drift breach was a preview. And attackers are using AI too: Microsoft said EvilTokens used AI “at every step of the attack chain,” including a chatbot that combed stolen inboxes for payment approvals and drafted impersonation emails.</p>
<p>Two more factors make it worse:</p>
<ul>
<li><strong>Speed.</strong> An agent, or an attacker controlling one, can enumerate and extract in minutes what would take a human intruder weeks to find.</li>
<li><strong>Impersonation.</strong> The hardest case isn’t the agent you registered. It’s the one riding inside a user’s session: a browser extension or desktop AI tool acting with that user’s own token. To the identity provider, it is the user. An authenticate-and-abdicate model can’t tell the difference, because it stopped looking after login.</li>
</ul>
<h2>More control points, less control</h2>
<p>Most companies answered each new access problem by adding another product: a VPN for remote access, SSO for cloud apps, MFA on top, mobile device management (MDM) for devices, a privileged access tool for administrators, a separate portal for vendors and contractors, and native permissions inside every application.</p>
<p>Each has its own policy engine, its own console, its own logs and its own definition of who is allowed. The administrative workload is real, but it isn’t the biggest cost. The biggest cost is that nobody can answer a simple question with confidence: who can reach what, right now, from where, on which device?</p>
<ul>
<li><strong>Policies drift apart.</strong> A contractor removed from the VPN may still hold a valid token to a SaaS application.</li>
<li><strong>Gaps form at the seams.</strong> Attackers don’t challenge your strongest control. They look for the application that only one product covers, or none.</li>
<li><strong>Visibility is split.</strong> A token stolen in one system and used in another shows up as two unrelated, normal-looking events in two different consoles.</li>
<li><strong>Audits become archaeology.</strong> Proving who had access at a given moment means stitching together exports from half a dozen tools.</li>
</ul>
<p>I’ve worked in IT since 1985, and I’ve watched this pattern repeat with every generation of technology: mainframe terminals, client-server, VPNs, SSO, MDM and the cloud. Each new layer solved the problem in front of it and added one more place where access gets decided. Identity security is the latest layer, not the last word.</p>
<h2>What actually closes the gap</h2>
<p>The answer isn’t to throw out your identity provider. It’s to change where, and how often, the access decision is made.</p>
<ul>
<li><strong>One enforcement point for all access.</strong> Web, SaaS, remote desktop, SSH, client-server, legacy and OT systems under one policy, one log and one place to revoke.</li>
<li><strong>Bind more than identity to the session.</strong> Device validation, managed-device markers, location and behavior, so a stolen token alone isn’t enough to use the session from somewhere else.</li>
<li><strong>Decide on every request, not once.</strong> Each request is a decision point, not just the login.</li>
<li><strong>Treat AI agents as their own kind of principal.</strong> Identify them, scope what they can reach, and watch for software acting inside a human’s session.</li>
</ul>
<p>This is the architecture we built <strong>Total Access Control (TAC)</strong> on at PortSys. TAC sits in front of your applications as a secure reverse proxy, a single gateway every request passes through, so access is evaluated throughout the session rather than only at login. It works with the identity provider you already have; Entra, for example, can remain your identity store while TAC arbitrates access. TAC can bind multiple factors to each session beyond MFA, such as device validation and custom device markers, largely invisible to users. Because it fronts far more than web applications, customers can bring remote desktop, SSH, client-server, legacy and OT access under the same policy and retire overlapping products at their own pace, without a rip-and-replace. We’re extending the same model to AI agents, including detecting agents that operate inside a user’s session.</p>
<h2>Three questions worth asking</h2>
<ol type="1">
<li>If an attacker stole a valid session token from one of your users today, what would stop them from using it?</li>
<li>How many separate places decide who gets access in your environment, and do they agree?</li>
<li>Do you know which AI agents hold tokens to your systems, and what they can reach?</li>
</ol>
<p>If the answers are uncomfortable, identity security alone won’t fix them. Identity tells you who is knocking. Security is deciding, on every request, whether to let them in.</p>
<h3>Sources</h3>
<ol type="1">
<li><a href="https://www.stingrai.io/blog/breached-password-statistics-2026" target="_blank" rel="noopener">Verizon 2025 Data Breach Investigations Report (credential figures, summarized by Stingrai)</a></li>
<li><a href="https://spycloud.com/blog/2026-annual-identity-exposure-report/" target="_blank" rel="noopener">SpyCloud, 2026 Identity Exposure Report (Mar 2026)</a></li>
<li><a href="https://www.microsoft.com/en-us/security/blog/2026/05/04/breaking-the-code-multi-stage-code-of-conduct-phishing-campaign-leads-to-aitm-token-compromise/" target="_blank" rel="noopener">Microsoft Security Blog, code of conduct AiTM campaign (May 2026)</a></li>
<li><a href="https://www.huntress.com/blog/token-replay-spray" target="_blank" rel="noopener">Huntress, M365 token spray and replay campaign (Oct 2026)</a></li>
<li><a href="https://thehackernews.com/2026/09/microsoft-takes-down-eviltokens-device.html" target="_blank" rel="noopener">The Hacker News, Microsoft takes down EvilTokens (Sept 2026)</a></li>
<li><a href="https://cloud.google.com/blog/topics/threat-intelligence/data-theft-salesforce-instances-via-salesloft-drift" target="_blank" rel="noopener">Google Threat Intelligence Group, Salesloft Drift data theft</a></li>
<li><a href="https://www.paloaltonetworks.com/idira/identity-security-landscape-report" target="_blank" rel="noopener">Palo Alto Networks, 2026 Identity Security Landscape</a></li>
</ol>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Living Off The Cloud</title>
		<link>https://portsys.com/living-off-the-cloud/</link>
		
		<dc:creator><![CDATA[Michael Oldham]]></dc:creator>
		<pubDate>Fri, 23 Oct 2026 09:14:00 +0000</pubDate>
				<category><![CDATA[Access Control]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Compliance]]></category>
		<category><![CDATA[Cybersecurity]]></category>
		<category><![CDATA[Future Trends]]></category>
		<category><![CDATA[Identity Management]]></category>
		<category><![CDATA[Security Risks]]></category>
		<category><![CDATA[Zero Trust]]></category>
		<guid isPermaLink="false">https://portsys.com/?p=9318</guid>

					<description><![CDATA[Why a stolen credential should never be enough to get in.]]></description>
										<content:encoded><![CDATA[<p>This week, CSO Online published a rundown of 14 ways attackers are abusing cloud services to break into enterprises. The theme is a shift security teams can no longer ignore: attackers have moved from “living off the land,” abusing tools already on your systems, to “living off the cloud,” abusing the trusted SaaS platforms, cloud APIs and identity systems your business runs on every day.</p>
<p>Read the list closely and a pattern emerges. Many of these attacks don’t start with an exploit at all. They start when someone presents a valid credential or token, and the system believes them.</p>
<h2>The pattern behind the headlines</h2>
<p>Consider a few of the incidents the article describes:</p>
<ul>
<li><strong>Veradigm.</strong> Attackers used a third-party vendor’s credentials to reach patient data, including some Social Security numbers. The company says the impact was limited, but the path in was simple: a trusted identity with a route to sensitive data.</li>
<li><strong>Murky Panda.</strong> According to CrowdStrike, this China-nexus group compromised upstream IT service providers, then moved quietly into those providers’ customers through trusted connections between their Microsoft cloud identity environments.</li>
<li><strong>Stryker.</strong> Attackers reportedly gained access to Microsoft Intune, the cloud service the company used to manage employee laptops and phones, and remotely wiped thousands of employee devices. The disruption reached hospitals, which had to reschedule some surgical procedures.</li>
<li><strong>Phishing on trusted infrastructure.</strong> Phishing kits now run on legitimate developer platforms, and APT29 has sent victims through genuine Microsoft login pages. There is no suspicious domain to catch.</li>
</ul>
<p>In every case, the attacker didn’t have to break anything. They presented something the environment already trusted, and the environment let them in.</p>
<h2>We’ve seen this movie before</h2>
<p>I’ve worked in IT since 1985, and this pattern is older than the cloud. Mainframe passwords, VPN credentials, SSO tokens: each generation of access technology made a credential the key, and whoever held the key was trusted. The cloud didn’t create the problem. It multiplied the number of doors that open with a single key, and it made the traffic behind those doors look like normal business.</p>
<p>The lesson hasn’t changed. When one credential is treated as proof of identity, stealing that credential is all an attacker needs.</p>
<h2>A credential is evidence, not proof</h2>
<p>Total Access Control (TAC) takes a different approach. A username and password, even with MFA, is treated as one piece of evidence, not the whole case. TAC can bind multiple factors of authentication into every session, configured by each customer to fit their environment:</p>
<ul>
<li>Credentials and MFA</li>
<li>Device validation, confirming the session comes from a known, approved device</li>
<li>Registry entries and secret files that exist only on legitimate endpoints</li>
<li>Other unique, customer-defined markers</li>
</ul>
<p>Bound together, these factors change the math for an attacker. Credentials harvested in a breach, phished from a user or bought from an initial access broker don’t create an immediate opening. Without the validated device and the markers that live on it, the login doesn’t complete.</p>
<p><strong>Just as important, most of these factors work behind the scenes.</strong> Users don’t see extra prompts or juggle more codes. Security goes up without adding friction or feeding the MFA fatigue that attackers exploit.</p>
<h2>Where the access decision is made matters</h2>
<p>Strong authentication only protects what sits behind it, so architecture matters as much as features.</p>
<p>Organizations get the most protection when TAC is the front door. In that model, every session passes through TAC first, and TAC evaluates all of the configured factors before the user reaches any application or cloud service. If TAC protects only some applications, sessions that go directly to other services never pass through those checks.</p>
<p>An example of this is Microsoft 365, the cloud service many organizations use for email, documents and collaboration. Users typically sign in to Microsoft 365 directly, with their usernames and passwords verified by Microsoft Entra ID, Microsoft’s cloud identity service. With TAC as the front door, that sign-in is redirected from Microsoft to TAC. TAC sees the session first and checks the device, its markers and every other configured factor before the user ever reaches Microsoft 365. User accounts can stay in Entra ID; TAC simply decides who gets through.</p>
<p>Some organizations instead let users sign in to Microsoft 365 directly and use TAC to protect specific applications. Those applications are still protected, but Microsoft 365 sessions don’t pass through TAC’s checks. If credential theft and token abuse are on your risk list, and after this article they should be, it’s worth reviewing where your access decisions are actually made.</p>
<p>There’s a second benefit. Applications behind TAC aren’t exposed to the internet. The article describes attackers spinning up thousands of short-lived cloud functions to scan networks from high-reputation IP addresses that firewalls can’t block. Blocklists don’t matter when there’s nothing exposed to find.</p>
<h2>What this does and doesn’t solve</h2>
<p>Not every technique in the article is an access problem. Malware that hides its command channel in Google Sheets or AI APIs, data exfiltration through Slack or Discord, and attacks on cloud metadata services and snapshots call for endpoint, egress and cloud posture controls. And if an attacker is already running on a legitimate user’s device, device-based factors are present by definition. Defense in depth still applies.</p>
<p>But a large share of these attacks begin with an identity the environment trusts too easily. That part is solvable, and it’s where attackers get the most leverage for the least effort.</p>
<h2>Questions to ask about your environment</h2>
<ul>
<li>If a vendor’s credentials leaked today, what else would an attacker need to get in?</li>
<li>Which applications can be reached with a username, password and MFA alone?</li>
<li>Where is the access decision made: before users reach your applications and cloud services, or after?</li>
<li>Do your additional authentication factors add security without adding friction for users?</li>
</ul>
<p>If those answers aren’t comfortable, let’s talk. PortSys has been helping organizations control access since 2008, and we’re happy to walk through how TAC would fit your architecture.</p>
<h3>Source</h3>
<ul>
<li><a href="https://www.csoonline.com/article/4142001/12-ways-attackers-abuse-cloud-services-to-hack-your-enterprise.html" target="_blank" rel="noopener">John Leyden, “14 ways attackers abuse cloud services to hack your enterprise,” CSO Online, October 21, 2026</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>The Agent That Doesn&#8217;t Announce Itself</title>
		<link>https://portsys.com/agent-that-doesnt-announce-itself/</link>
		
		<dc:creator><![CDATA[Michael Oldham]]></dc:creator>
		<pubDate>Tue, 20 Oct 2026 13:00:00 +0000</pubDate>
				<category><![CDATA[Zero Trust]]></category>
		<category><![CDATA[Artificial Intelligence]]></category>
		<guid isPermaLink="false">https://portsys.com/?p=9009</guid>

					<description><![CDATA[A year on from the identity problem - and the half of it identity cannot solve.]]></description>
										<content:encoded><![CDATA[<p>A year ago we wrote here about the AI agent identity problem — agents handed a service account with a static key, broad permissions, no MFA challenge, no posture check and no meaningful audit trail, at a point when almost nobody was treating that as an access control question.</p>
<p>Since then the industry has caught up, and a category of products has formed to solve it. That is progress, and the argument we made stands.</p>
<p>This post is about the half of the problem those products do not reach.</p>
<p>Because almost everything being built to govern agents rests on the same assumption.</p>
<p>That the agent tells you what it is.</p>
<h2>What is being built</h2>
<p>The emerging approach is an identity approach, and on its own terms it is sensible. Agents get registered. They are issued their own credentials rather than borrowing a person’s. They attest to what they are. Their permissions are scoped to a defined task, and their activity is attributed to them rather than disappearing into a human’s audit trail.</p>
<p>If you are deploying agents deliberately — procured, catalogued, wired into systems on purpose — all of that is worth doing, and organizations that skip it will regret it. That is the case we made last October and we would make it again.</p>
<p>But every one of those controls begins at the same place: something arrives, declares itself, and is evaluated on the strength of that declaration.</p>
<h2>Two cases the declaration does not cover</h2>
<h3>The agent operating inside a human’s session</h3>
<p>A person authenticates. Correct credentials, compliant device, a session opened for entirely legitimate reasons. Something then acts through that session on their behalf — a browser extension, an assistant with access to the desktop, a tool the user connected to their own account last month because it saved them an hour a week.</p>
<p>At the front door there is nothing to see. The authentication was valid, because it was the human’s. No new principal appeared. No registry was consulted, because nothing asked to be registered.</p>
<p>This is not a hypothetical failure mode. It is the ordinary way agents are reaching enterprise systems today, in most organizations, without anybody having decided that it should be so.</p>
<h3>The thing that will not be declaring anything</h3>
<p>The second case is simpler. An attacker’s tooling has no interest in attestation. Neither does a script somebody wired up on a Friday, or malware behaving the way malware now behaves.</p>
<p>A governance model built on cooperative declaration governs the cooperative. That is worth saying plainly, because it is easy to buy a registry and believe the problem has been addressed.</p>
<h2>Why this cannot be closed at the front door</h2>
<p>If the only point at which a system observes access is the moment of authentication, then an agent operating inside an authenticated session is not a gap in the policy. It is invisible to the mechanism entirely.</p>
<p>There is nothing anomalous to detect. The credentials were right. The device was compliant. The decision was correct. Everything the system was designed to examine looked exactly as it should.</p>
<p>An architecture that is not in the path of the session cannot inspect what happens inside it — not because of a missing feature, but because that traffic never passes through it. This is the same structural limit that decides which applications a platform can front, arriving in a different form.</p>
<h2>Identification still matters — but only from inside the session</h2>
<p>None of this argues that identifying agents is unimportant. It matters a great deal, and the case that matters most is precisely the one a registry cannot help with: determining whether a session that authenticated as a person is actually being driven by one.</p>
<p>That determination is possible. But it cannot be made at the point of authentication, because at that point there is nothing to observe. It can only be made from inside the session, by watching what the session does — the pace and regularity of requests, the pattern of what is reached and in what order, behavior no person sitting at a keyboard would produce.</p>
<p>Which brings the argument back to position. If you authenticate and then abdicate, you have no way to identify malicious behavior during a session. You have a verdict on who knocked, and nothing whatsoever on what came through the door.</p>
<p>Being in the path is not only what lets you contain an agent you failed to identify. It is what gives you the chance to identify it in the first place.</p>
<h2>A different question</h2>
<p>And identification will sometimes fail regardless. So the second question, asked alongside the first rather than instead of it: what can any session reach if you do not spot what is driving it?</p>
<p>That reframing changes what a control has to accomplish. Identification is a race — new agent types, new tooling, new ways of blending into legitimate activity, and a detection model that must stay current with all of it. Containment is not a race. It does not depend on recognizing the thing at all.</p>
<h2>What containment looks like in practice</h2>
<p>Total Access Control publishes the resource, not the network.</p>
<p>A session is granted access to specific applications. It does not receive a route onto a network from which other things are reachable, because there is no route to receive. Everything the session does passes through the enforcement point, and the enforcement point is still there for the duration.</p>
<p>So if something is operating inside that session — an agent the user connected, an agent nobody knows about, or something considerably worse — it is confined to what the session was granted. Not because it was identified. Because there is nowhere else to go.</p>
<p>The blast radius stops being “whatever is reachable from the network” and becomes “the resources this session was granted”. For an undetected agent, that difference is the entire outcome.</p>
<h2>What is actually being argued</h2>
<p>Registering agents, issuing them their own credentials and attributing their activity are all good practice. We said so a year ago and nothing since has changed our view. An organization deploying agents deliberately should do all three.</p>
<p>The argument is about what you depend on, and where the work happens. A model that only works when the agent cooperates has a defined failure mode, and that failure mode is the adversarial case — the one that matters most. Observation from inside the session is what narrows it. Containment is what holds when it fails anyway.</p>
<p>Neither is available to something that stepped out of the path.</p>
<h2>The question worth asking</h2>
<p>Not: can we tell which agents are operating in our environment?</p>
<p>But: if one is operating that we cannot see, what can it reach — and how would we know what it reached?</p>
<p>If the answer to the first half is “whatever the user could reach from the network”, then the agent question is not really an agent question. It is the same architecture question, arriving with a new name.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Why Do You Still Have a VPN?</title>
		<link>https://portsys.com/why-do-you-still-have-a-vpn/</link>
		
		<dc:creator><![CDATA[Michael Oldham]]></dc:creator>
		<pubDate>Tue, 29 Sep 2026 18:00:00 +0000</pubDate>
				<category><![CDATA[Access Control]]></category>
		<category><![CDATA[Zero Trust]]></category>
		<guid isPermaLink="false">https://portsys.com/?p=9008</guid>

					<description><![CDATA[Not as a criticism. As a genuine question - because the answer describes your access architecture more accurately than most assessments will.]]></description>
										<content:encoded><![CDATA[<p>Not as a criticism. As a genuine question — and one worth sitting with for a moment, because the answer describes your access architecture more accurately than most assessments will.</p>
<p>You bought a modern access platform. It was deployed. It works. People are pleased with it.</p>
<p>And the VPN is still running.</p>
<h2>What it is still there for</h2>
<p>Ask which applications still require it and a list appears. It is never a long list, and it is never written down anywhere in full.</p>
<p>Thick clients. Something that expects a Kerberos ticket. An OT segment where the device initiates the session. A system a vendor supports on the condition that nothing about it changes. Possibly an acquisition that was never properly integrated and now never will be.</p>
<p>That list is the hard half of your estate. The new platform covered what it could cover, which was the applications that were easiest to cover — and that was a reasonable place to start, because it delivered value quickly and demonstrated the model worked.</p>
<p>Nobody did anything wrong. But the project that was supposed to retire the VPN did not retire the VPN.</p>
<h2>So you added. You did not replace.</h2>
<p>This is the point at which it stops being a procurement footnote and becomes an architecture problem.</p>
<p>You now run two access paths in parallel where you meant to run one. That is another internet-facing doorway on top of whatever was already exposed — another management plane, another set of credentials, another vulnerability stream, another thing to patch when an advisory lands on a Friday afternoon.</p>
<p>And it is worth being honest about the count. It is rarely two. Alongside the VPN and the new platform there are usually applications published directly to the internet, a remote-access route somebody set up for a supplier, an administrative interface that was only ever meant to be temporary. Every one of them is a doorway that has to be defended.</p>
<p>Both serve the same estate. Neither covers all of it.</p>
<p>The attack surface did not shrink. It grew — as the direct result of a project justified in part on shrinking it.</p>
<h2>The business case nobody restated</h2>
<p>Somewhere there is a paper that made the case for the new platform, and somewhere in that paper is an assumption that the VPN would be retired. License savings, perhaps. Reduced operational burden. One fewer thing exposed.</p>
<p>Nobody went back and revised it once the assumption turned out to be false.</p>
<p>That is not dishonesty. Nobody ever goes back. Projects are judged on whether they delivered what they said, and this one did — it just also left something behind that the case had assumed would go away.</p>
<p>The consequence is that the cost of the hard half has never actually been counted. It sits in the estate as a running expense and a standing exposure that no business case has ever had to justify.</p>
<h2>And now the VPN is neglected as well as exposed</h2>
<p>This is the part that should be uncomfortable.</p>
<p>Once a system is designated legacy and scheduled for removal, it stops attracting investment. The version upgrade is deferred — why upgrade something being retired next year. Access reviews slip, because the population using it is small and shrinking. Dormant accounts linger. The firmware is a version behind, then two. The engineer who understood it best moved to the team running the new platform.</p>
<p>Meanwhile it remains an internet-facing route onto your network.</p>
<p>A deprioritized front door is more dangerous than a maintained one. So the position is not simply that you failed to remove the VPN. It is that the VPN you still have is less well looked after than the VPN you had before the project started.</p>
<h2>Why it is still there is the actual problem</h2>
<p>The VPN persists for one reason: nothing available could front the awkward applications, so the old path had to stay for them.</p>
<p>That reason does not change by buying another platform with the same boundary. A second modern product, brokering access from outside your directory in the same way, produces the same outcome — another layer, another front door, and the same list left over at the end.</p>
<p>The list is the problem. Everything else is a symptom of the list.</p>
<h2>What actually removes it</h2>
<p>An enforcement point that can front the hard half.</p>
<p>Total Access Control terminates the session in front of the application, inside your environment — and it does that for the whole estate, not for a category of it. The SaaS and cloud applications your current platform already handles well, the internal web applications, and the ones that would not move.</p>
<p>Because it is inline — in the path of the transaction rather than alongside it, and operating within your identity environment rather than brokering from outside it — it can present the identity an application actually expects: a Kerberos ticket, an injected header, a session into an OT segment where the device initiates the connection. The awkward applications stop being awkward, because the thing in front of them speaks their language.</p>
<p>Where it runs is a separate question and a free one. Datacentre, private cloud, public cloud — that is a deployment decision to suit the estate. What matters architecturally is that it sits in the line between the user and the resource, for the whole session, rather than issuing a decision at the front door and stepping aside.</p>
<p>That distinction is the point. Something that fronted only the difficult applications would leave you with two platforms instead of one — which is the position you are already in, with better branding.</p>
<p>It goes in beside the VPN, not instead of it. One population moves — usually third parties or remote administrators, the group with the most risk and the least tolerance for a laptop rollout. Both paths run side by side. The next group moves once the first has become boring.</p>
<p>The VPN shrinks until it has nothing left to serve. At that point removing it is an administrative task rather than a project, which is the only way these things ever actually get removed.</p>
<p>Some estates keep one for a single purpose indefinitely, and that is a perfectly good outcome — provided it is a decision someone made rather than a residue nobody got around to clearing.</p>
<h2>And the next one is already being sold to you</h2>
<p>AI agents are arriving in production estates now. They act on behalf of people, they hold credentials, and they make requests against the same applications your staff use. A category of products is forming to govern them.</p>
<p>When one is put in front of you, the questions worth asking are the ones nobody asked about the platform that was supposed to reduce the number of doorways and instead added one:</p>
<ul>
<li>Does this make my life easier, or does it add another console to watch?</li>
<li>Does it give me more control over access, or does it move some of that control somewhere else?</li>
<li>Will people and agents be governed in one place, or in two?</li>
<li>When this is deployed, what is left over — and who owns it?</li>
</ul>
<p>None of those questions are about AI. They are the questions that should have been asked about the last platform, and the one before that.</p>
<p>The pattern is not the VPN. It is the assumption that covering part of the estate counts as progress.</p>
<h2>So: why do you still have a VPN?</h2>
<p>If the answer is a list of applications, that list is your architecture problem.</p>
<p>It is the thing to solve — not the VPN, and not with another platform that cannot reach the things keeping the VPN alive.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Stop the Madness</title>
		<link>https://portsys.com/stop-the-madness/</link>
		
		<dc:creator><![CDATA[Michael Oldham]]></dc:creator>
		<pubDate>Tue, 29 Sep 2026 15:00:00 +0000</pubDate>
				<category><![CDATA[Cybersecurity]]></category>
		<category><![CDATA[Zero Trust]]></category>
		<guid isPermaLink="false">https://portsys.com/?p=9007</guid>

					<description><![CDATA[Count them. How many separate products currently have a say in whether a given person can reach a given application?]]></description>
										<content:encoded><![CDATA[<p>Count them.</p>
<p>How many separate products currently have a say in whether a given person can reach a given application?</p>
<p>Firewall rules. A VPN. Perhaps an application gateway, perhaps a web gateway. Things published directly to the internet because at the time that was the pragmatic answer. SSO. MFA. MDM. Conditional access policies. And now, most likely, a cloud-delivered access platform bought in the last three years.</p>
<p>Most people get to seven or eight and become unsure whether they have missed one. That uncertainty is the finding. If the number cannot be stated confidently, nobody in the organization can answer the question those products exist to answer.</p>
<h2>I wrote this in 2019</h2>
<p>In March 2019 I published a post here called “The Madness of IT Security Sprawl”. I have just reread it, and the uncomfortable thing is not that parts of it are dated. It is that none of it is.</p>
<p>Here is what I wrote then:</p>
<blockquote>
<p>“The reality is that the more security products you have, the more fronts you must defend. That complexity is magnified with every additional security product you throw at this tidal wave of attacks.”</p>
</blockquote>
<p>And this, which I would now revise in only one respect:</p>
<blockquote>
<p>“There is no truth to the commonly held belief that the more solutions deployed, the harder it is for an attack to be successful. That approach has been tried for the past three or four decades, and it still doesn’t work.”</p>
</blockquote>
<p>The revision is the number. In 2019 it was three or four decades. It is now four or five.</p>
<h2>The list, then and now</h2>
<p>The 2019 post named what organizations were running. I listed: two-factor authentication, single sign-on, administrator access, partner access, customer access, file access, VPN, mobile device management, cloud access, RDP.</p>
<p>Read that list again and notice what is not on it.</p>
<p>No cloud-delivered access platform. No SASE. No agent governance of any kind. Those are the things that have been added since — and not one of the ten items on the original list has gone away in the meantime.</p>
<p>That is the whole argument in two lists. Seven and a half years, several new categories, nothing retired.</p>
<h2>What I got right, and what I would say differently</h2>
<p>The 2019 post said: consolidate your security. I still believe that, but the word has since been taken.</p>
<p>Every large vendor now sells consolidation. Platform, single pane, unified policy — the language is universal, and much of it is sincere. So “consolidate” is no longer a differentiating claim, and repeating it in 2026 would be joining a chorus rather than making a point.</p>
<p>What the chorus does not do is consolidate all of it. A platform consolidates the applications it can reach — and for most of them, that means the modern ones. The thick clients, the systems expecting a Kerberos ticket, the OT segments, the legacy applications behind an injected header stay outside, on whatever was there before.</p>
<p>Partial consolidation is not consolidation. It is a smaller number of larger pieces, which is an improvement in operations and no improvement at all in architecture. The platform becomes one more item on the list rather than a replacement for it.</p>
<p>That is the sharper version of the 2019 argument, and it took the intervening years to see it clearly.</p>
<h2>It used to be one place</h2>
<p>I have worked in IT since 1985. When I started, access control was centralized — not as a philosophy, but as a consequence. There was one system. A terminal, a mainframe, and one place that decided who could reach what.</p>
<p>Nobody called that an architecture. But it had a property worth naming: there was exactly one place where the question was answered, and therefore exactly one place to look when you needed to know the answer.</p>
<p>Everything since has been the story of losing that property, one reasonable decision at a time.</p>
<h2>Forty years of partial fixes</h2>
<p>Client-server distributed the decision across machines nobody controlled centrally. Connecting to the internet brought the firewall, to decide what could come in at all. Remote working brought the VPN — a second front door, with its own rules and its own administrators.</p>
<p>The VPN granted more than it should, so application gateways and web gateways arrived to constrain what happened after it. There were now too many places to authenticate, so SSO. Passwords stopped being sufficient, so MFA. The device stopped being ours, so MDM. The application stopped being ours, so cloud access brokers.</p>
<p>And when all of that still could not answer the question, the industry produced a new category to answer it properly.</p>
<p>Every one of those solved a real problem. Every one was, at the time, the right purchase. And every one answered part of the same question in a new place.</p>
<h2>The seams grow faster than the products</h2>
<p>This is why the estate feels harder to reason about every year even though each individual purchase was sound.</p>
<p>Three systems have three boundaries between them. Eight systems have twenty-eight. Each boundary is a place where two policy models meet and can diverge — and no boundary belongs to anybody. The team running each system owns the system. Nobody owns the space between them.</p>
<p>Policy divergence at those boundaries is not a failure of diligence. It is the arithmetic.</p>
<h2>And nothing is ever actually removed</h2>
<p>Products get replaced, in the sense that a newer one is bought. But the newer one covers a subset, so the incumbent survives for the remainder.</p>
<p>Look at what is still running in your estate right now. Firewall rules written by an engineer who left in 2017. An MDM deployment for a device population that has shrunk to forty handsets. A gateway kept alive for one application. A VPN that was supposed to be retired eighteen months ago.</p>
<p>None of it is anyone’s fault. Each was superseded rather than removed, because removing it entirely would have meant solving the awkward remainder — and the awkward remainder is always the expensive part.</p>
<h2>The current generation is doing it again</h2>
<p>Cloud-delivered access platforms cover what they can reach and leave the rest. The applications that could not move stay on the old path, and the old path stays with them.</p>
<p>That is not a criticism of a category. It is the same pattern, in the current decade, for the same structural reason. I have written separately about what it looks like from the inside — the question of why, after buying a modern access platform, you still have a VPN.</p>
<h2>Why I think this is the breach story</h2>
<p>I would argue — and it is an argument, not a citation — that this is the main reason breaches keep happening to organizations that are spending seriously on security.</p>
<p>Not because they underspend. Spending has risen steadily for two decades. Because the answer to “who can reach what” is distributed across a dozen systems that cannot see each other, and an intruder does not need to defeat that architecture. They need one seam between two parts of it.</p>
<p>Nobody is defending the seams, because the seams are not on anyone’s list.</p>
<h2>The next one is already here</h2>
<p>AI agents are being deployed into production estates now. They act on behalf of people. They hold credentials. They make requests at machine speed, against the same applications your staff use.</p>
<p>And a category of products is forming to secure them.</p>
<p>So here is the question worth asking before buying one: will governing what an AI agent can reach be a separate system from governing what a person can reach?</p>
<p>If the answer is yes, then to borrow my own words from 2019: that is one more front to defend. Humans decided in one place, agents in another, and a fresh seam between two populations that will increasingly do the same work against the same systems.</p>
<p>In five years someone will write a post about the AI access product nobody could remove, because it covered part of the estate and something had to stay behind for the rest.</p>
<p>The pattern never announces itself as a pattern. It arrives as a reasonable purchase, with a good demo, solving a real problem.</p>
<p>An AI agent is a principal making a request. If the place where access is decided already evaluates who is asking, in what context, against what policy, for every request — then an agent is another kind of requester, not another product category.</p>
<h2>This is not nostalgia</h2>
<p>The mainframe was not better. I am not proposing a return to 1985, and anyone who lived through it would not want one.</p>
<p>The point is narrower than that. One property of that era was worth keeping — that a single place decided who could reach what — and it was lost as a side effect of forty years of necessary changes, rather than because anyone decided it should be.</p>
<p>What has changed is that keeping it is now possible again. A single enforcement point can sit in front of the whole estate — and the word that matters there is whole.</p>
<p>The SaaS applications and cloud workloads a modern platform already handles well. The internal web applications. The thick clients. RDP and SSH sessions. OT environments. The legacy systems expecting a Kerberos ticket or an injected header. And the agents now arriving alongside the people.</p>
<p>That distinction is worth being precise about, because a product that covered only the difficult half would be another partial answer — one more item on the list, and exactly the thing this post argues against. The claim is not that we specialize in what others cannot reach. It is that one place decides, for everything.</p>
<p>Not as a migration. One population at a time, beside whatever is already there, until each old path has nothing left to serve.</p>
<h2>Count them again in two years</h2>
<p>That number should be going down.</p>
<p>For most organizations it has only ever gone up — and the next increment is already on the roadmap, wearing the word “AI”.</p>
<p>It does not have to. Stop the madness.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Deciding Is Not Enforcing</title>
		<link>https://portsys.com/deciding-is-not-enforcing/</link>
		
		<dc:creator><![CDATA[Michael Oldham]]></dc:creator>
		<pubDate>Tue, 29 Sep 2026 13:00:00 +0000</pubDate>
				<category><![CDATA[Access Control]]></category>
		<category><![CDATA[Zero Trust]]></category>
		<guid isPermaLink="false">https://portsys.com/?p=9006</guid>

					<description><![CDATA[Authenticate, then abdicate - and what that costs you two hours into a session.]]></description>
										<content:encoded><![CDATA[<p>Here is a question that sorts access products into two groups, and it is not one most evaluations ask.</p>
<p>After the product has decided someone may connect — where is it?</p>
<h2>Two architectures</h2>
<p>In the first, the product evaluates the request at connection time. Identity is checked, policy is applied, a decision is reached, and a path is established between the user and the resource. The product then steps out of the way. Traffic flows.</p>
<p>In the second, the product terminates the session. It is one of the two parties in the connection — the user connects to it, and it connects to the resource. It remains in that position for the life of the session.</p>
<p>That is the difference between a broker and a reverse proxy. Both are real designs with real deployments behind them, and the distinction is not about which vendor is more capable.</p>
<p>But the consequences diverge more than the diagrams suggest.</p>
<h2>What happens at the moment of connection</h2>
<p>A product that brokers access from outside your identity environment can establish a path to almost anything. Most handle RDP and SSH perfectly well — carrying a protocol is not the hard part, and any claim to the contrary is wrong.</p>
<p>The hard part is what the application expects to receive when the user arrives.</p>
<p>An application that authenticates users itself — a modern web application speaking SAML or OIDC — needs nothing more than to be reachable. For that, brokering is entirely sufficient.</p>
<p>An application that expects its environment to have already established who the user is needs something else. It wants a Kerberos ticket obtained for that user, for that service. Or a header set by a component it trusts, positioned where it expects that component to be. Something has to produce that, and producing it requires being a participant in the transaction rather than an observer of its beginning.</p>
<p>This is why the awkward applications are awkward. Not the protocol. The identity.</p>
<h2>What happens during the next four hours</h2>
<p>The second divergence is larger and gets discussed less.</p>
<p>A product that stepped aside made one decision, at one moment, based on the state of things at that moment. Everything after that is outside its view. It can decline the next connection. It can do nothing about this one.</p>
<p>That matters in three distinct ways, and only the first is usually discussed.</p>
<h3>The device stops being what it was</h3>
<p>Posture at connection is not posture an hour later. The endpoint agent is stopped. A drive is attached. Something is installed. The machine that satisfied policy at 09:00 would fail it at 11:20, and nothing is asking.</p>
<h3>The session reaches for things it was never granted</h3>
<p>This one is larger. A decision at the front door authorizes access to something. It cannot verify that the session is subsequently used only for that.</p>
<p>If what is inside the session begins reaching for resources that were never part of the request — scanning, enumerating, following a path sideways — an architecture still in the line sees those attempts, because they have to pass through it. An architecture that stepped aside sees nothing, because that traffic never comes near it.</p>
<p>This is the difference between authorizing access and controlling it.</p>
<h3>The attack begins after the connection</h3>
<p>The most consequential case, and the hardest for a front-door model to address at all.</p>
<p>The credentials were valid. The device was compliant. The decision was correct. And then the session becomes the delivery vehicle for something that starts afterwards — a compromised endpoint, a stolen token replayed from elsewhere, a process acting through a session a human legitimately opened.</p>
<p>Every check happened before the thing that matters began.</p>
<p>In all three cases the original decision was right. That is what makes this a hard problem rather than a careless one: nothing was wrong at the moment of the decision, and nothing after that moment was examined.</p>
<p>Authentication is a moment. Access is a duration. Most access products are excellent at the moment.</p>
<h2>And what ends up in the log</h2>
<p>A third consequence, and the one that surfaces during audits.</p>
<p>If the enforcement point is only present at the start, its records describe admissions: who authenticated, when, from where, and whether the request was granted. That is an authentication log wearing an access log’s name.</p>
<p>Something in the path for the whole session can record what was actually reached. Those are different questions, and only one of them is the question an auditor asks.</p>
<h2>Inline is a position, not a place</h2>
<p>One clarification, because the language invites a misreading.</p>
<p>Being inline is about where a product sits in the transaction, not where it sits geographically. A reverse proxy can run in a datacentre, a private cloud or a public cloud. That is a deployment decision, driven by where the applications are and how the organization prefers to operate.</p>
<p>What matters architecturally is that it is in the line between the user and the resource, and that it operates within the identity environment of what it protects rather than brokering from outside it. Both of those are true wherever it happens to run.</p>
<p>“Cloud-delivered” and “brokered from outside” are frequently the same thing in practice, but they are not the same claim, and it is worth keeping them apart when comparing products.</p>
<h2>Why this decides which half of your estate you can cover</h2>
<p>These two consequences are not independent of the coverage question. They are the reason for it.</p>
<p>The applications that resist migration to a modern platform are the ones that expect identity presented in a particular form. That is the connection-time consequence. And they are frequently the applications where a point-in-time decision is least adequate — administrative access, industrial systems, anything where a session running for hours does more than read a page.</p>
<p>So a product that is not in the path is not merely less thorough. It is structurally unable to reach part of the estate, and the part it cannot reach is disproportionately the part that matters.</p>
<h2>The question to ask any vendor</h2>
<p>Not “do you support RDP”. Everyone supports RDP.</p>
<p>Ask instead: two hours into a session your product authorized, where is your product? If the device has stopped being compliant, what happens? And if something inside that session starts reaching for resources it was never granted, which component sees the attempt?</p>
<p>Ask us the same question. The answer should be specific, and if a product cannot do something, that is far better learned in a conversation than in a pilot.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>The VPN Is the Cheapest Part</title>
		<link>https://portsys.com/the-vpn-is-the-cheapest-part/</link>
		
		<dc:creator><![CDATA[Michael Oldham]]></dc:creator>
		<pubDate>Mon, 28 Sep 2026 18:00:00 +0000</pubDate>
				<category><![CDATA[Zero Trust]]></category>
		<category><![CDATA[Business Value]]></category>
		<guid isPermaLink="false">https://portsys.com/?p=9005</guid>

					<description><![CDATA[Grant first, filter later - and pay for the difference every year.]]></description>
										<content:encoded><![CDATA[<p>A VPN grants access to the network, and then filters what can be reached from it.</p>
<p>That order is a decision. It was made a long time ago, by people solving a different problem, and almost nobody has revisited it since. But it is still being paid for — and the license is the smallest number in the story.</p>
<h2>What the order costs</h2>
<p>Consider what exists in a typical estate purely to constrain something that has already been granted.</p>
<p>Segmentation, to limit where a connected session can go. Micro-segmentation, because segmentation turned out to be too coarse. Network access control, to decide what is allowed to connect in the first place. Monitoring, to record where sessions went. Detection, to notice the ones that went somewhere they should not have. Lateral movement detection, which is a product category that exists because lateral movement is possible.</p>
<p>Every one of those is a sensible purchase in isolation. Each was bought by a competent person for a good reason. Together they represent a substantial share of a security budget, they each carry a console, a license and an owner, and they are all downstream of the same architectural choice: access is granted at the network level first, and constrained afterwards.</p>
<p>None of them are wrong. They are compensating controls, and what they are compensating for is the order.</p>
<p>So when the VPN comes up for renewal and the number looks reasonable, that number is not the cost of the VPN. It is the entry fee.</p>
<h2>Why it never gets cheaper</h2>
<p>The pattern is worth noticing, because it is the reason this line item grows every year and never shrinks.</p>
<p>Each layer is purchased to address the coarseness of the layer beneath it. Segmentation was too broad, so micro-segmentation. Rules became unmanageable, so a policy engine to manage the rules. Alerts outpaced the team, so a platform to triage the alerts. At no point is anything removed, because the thing beneath is still load-bearing.</p>
<p>This is the same accumulation described in “Stop the madness” — additions layered on additions — arriving here as a budget rather than as an attack surface. It is not a spending problem. The spending is the symptom.</p>
<h2>Reverse the order</h2>
<p>If a session reaches one application and no route onto the network exists, there is nothing to segment and nowhere to move sideways.</p>
<p>That is not a claim that detection and monitoring become unnecessary — you still want to know what happened, and no serious estate runs without them. It is a claim about how much work they are being asked to do. A control that constrains movement is doing very different work in an estate where movement was never possible in the first place.</p>
<p>The question this puts to any access product is a simple one: after it has decided, what does the session actually hold? A credential for one application, or a position on a network with an access control list drawn around it?</p>
<h2>Where this is sharpest</h2>
<p>Industrial and critical infrastructure environments, which is part of why they keep appearing in breach reporting.</p>
<p>Access into a plant network is frequently a VPN and a shared credential, with segmentation as the only thing standing between a contractor’s laptop and a controller. The access control was never designed. It was inherited — from a period when the plant network was not reachable from anywhere that mattered, and the assumption survived the thing that made it true.</p>
<p>The shape is identical in an office estate. It is simply less consequential when it fails.</p>
<h2>And it has to be the whole estate</h2>
<p>One caution, because this is where the argument is usually half-implemented.</p>
<p>Reversing the order for the applications that were easy to move, while the difficult ones stay behind a network-level path, does not reverse anything. It produces two orders running in parallel — per-application access for one group of systems, grant-then-filter for the rest — and the compensating control stack stays exactly where it was, because it is still holding up the half that did not move.</p>
<p>The saving is not in changing the order for some things. It is in not needing the compensating layer at all, and that only happens when there is nothing left underneath it. Which means the enforcement point has to be able to front the cloud and SaaS applications the organization has already modernized, the internal web applications, and the awkward ones that resisted every previous attempt — from one place.</p>
<h2>The objection, which is correct</h2>
<p>The VPN works. Everyone depends on it. Replacing it touches the whole organization at once, and the project would be judged on the week it went wrong rather than the two years it went right.</p>
<p>All of that is true, and it is why an architecture that everyone involved agrees is wrong outlives the people who inherited it. It is also why the sensible move is not a replacement. Total Access Control goes in alongside what is there and takes one population at a time — the mechanics of that are in “Why do you still have a VPN?”, and the point here is only that the order can be changed incrementally. It does not require a cutover date.</p>
<h2>The order decides the blast radius — including for things you cannot see</h2>
<p>There is a reason to settle this before the next wave of products arrives rather than after.</p>
<p>AI agents increasingly act inside sessions that a person opened legitimately. Whether any given one is identified, registered and well behaved is a separate question, and a real one. But what it can reach if it is not identified is decided entirely by the order.</p>
<p>On a grant-then-filter path, an agent operating inside an authenticated session inherits the network that session was placed on, and the compensating controls are the only thing standing in the way — the same controls that were already struggling with human sessions. On a per-application path, it inherits the application. Nothing about the agent changed. The ceiling did.</p>
<p>Products being built to govern agents will address identification. Very few of them will change what a session holds, and that is the half that determines the damage.</p>
<h2>The question this raises</h2>
<p>If someone had valid credentials for your VPN this afternoon, how far would they get before anything stopped them?</p>
<p>If the honest answer is “further than I would like, but segmentation would probably contain it”, that is the compensating control doing the work the architecture should be doing — and you are paying for both.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>You Do Not Own the Device</title>
		<link>https://portsys.com/you-do-not-own-the-device/</link>
		
		<dc:creator><![CDATA[Michael Oldham]]></dc:creator>
		<pubDate>Mon, 28 Sep 2026 13:00:00 +0000</pubDate>
				<category><![CDATA[Access Control]]></category>
		<category><![CDATA[Remote Work]]></category>
		<category><![CDATA[Security Risks]]></category>
		<guid isPermaLink="false">https://portsys.com/?p=9004</guid>

					<description><![CDATA[So stop trying to trust it, and decide how much it matters.]]></description>
										<content:encoded><![CDATA[<p>A contractor needs one application for six weeks. The machine they will use belongs to them.</p>
<p>That single fact removes every control the rest of your estate depends on, and the usual answers are all attempts to get it back. Ship them a laptop, and you have spent procurement, imaging, shipping and recovery on one application — and the device is out of your sight for six weeks. Make them install an agent, and their IT may refuse, their security policy may prohibit it, and a supplier with leverage will simply decline. Give them a VPN account, and you have placed an unmanaged machine on your network with an access control list as the only thing deciding where it can go.</p>
<p>And when all three are slow enough or contentious enough, the fourth answer happens instead: an account gets shared, a screen-share becomes the access method, or the data is extracted and emailed and now sits on that machine permanently with nothing attached to it at all. That one never appears in an access review, because from the system’s point of view no access was granted.</p>
<h2>The part that cannot be fixed</h2>
<p>Underneath all four is the same condition, and it is worth stating plainly because it does not go away.</p>
<p>You cannot see what is on that device. Not the browser extensions, not the assistant with access to their desktop, not the tools they connected to their own accounts last month, not whatever arrived with them. You cannot inventory it, you cannot mandate what may be installed, and anything the machine reports about itself is a claim from a system you do not control.</p>
<p>This is a permanent condition, not a gap waiting for a product. Every approach that depends on knowing what is running on the endpoint — including the emerging model for governing AI agents, which asks agents to register and declare themselves — is defeated here by definition. No registry you deploy covers a contractor’s laptop.</p>
<h2>So change the question</h2>
<p>The question is not how to make an untrusted device trustworthy. You cannot, and the effort spent trying is the reason third-party access takes six weeks to arrange.</p>
<p>The question is how much it matters that it is untrusted — and that is entirely within your control, because it is decided by what the session is allowed to be, not by what the device is.</p>
<p>There are four ways to reduce it. They apply in order, and they compound.</p>
<h2>First and second: validate, then bound</h2>
<p>We have covered these two before, so briefly.</p>
<p>The session is established against the enforcement point, where identity, authentication strength, context and whatever device signals are genuinely available are evaluated — at the point of access, per request, rather than on an endpoint you cannot instrument. Then the session is given the resource rather than the network: it reaches the one application it was granted and receives no route onto anything else, because there is no route to receive.</p>
<p>The consequence is the one we described when we wrote about contractor and third-party access last February. Whatever is riding along inside that session — an assistant the contractor connected, malware they do not know about, an agent that never declared itself — is confined to exactly what the contractor was granted. Not because it was detected. Because there is nowhere else to go.</p>
<p>One caveat worth stating plainly, because it is the claim a technical reader will test: the device signals available from an unmanaged machine are not the signal set a managed endpoint produces, and any vendor telling you otherwise is selling you something. The comparison that matters is not with a corporate laptop. It is with the VPN account that was the realistic alternative, which asked nothing at all.</p>
<h2>Third: move the critical path off the device entirely</h2>
<p>For the access where bounding the radius is not enough, there is a further step, and it is the one that changes the risk rather than limiting it.</p>
<p>The application is published so that it executes in a controlled environment you do own — delivered to the contractor as a remote session rather than run on their machine. They interact with it. The application, its data and its credentials never land on the endpoint. What they are holding is a window.</p>
<p>This is the answer for the access that would otherwise be refused outright: an administrative tool, a system holding regulated data, the thing a supplier needs that nobody is comfortable exposing. And critically, it is applied after the session has been identified and validated against policy, not instead of it. Isolation is where a validated session is placed. It is not a way of skipping the validation.</p>
<h2>Fourth: set the terms of the session yourself</h2>
<p>Which raises the question a security reviewer asks immediately, and it is the right question. A remote session that permits clipboard, drive mapping and printing has moved the application off the device and handed the data straight back.</p>
<p>So those are not defaults to be inherited. They are parameters, and Total Access Control carries them into the session it publishes — what may be copied, what may be printed, whether local drives are mapped, what the window is permitted to do at all. The terms of the remote session are set by your policy rather than by whatever the endpoint or the protocol would allow if nobody specified.</p>
<p>And the same applies to getting data out through the ordinary path. File download can be filtered on authentication strength, device posture and context — so the capability is not a property of the application, it is a property of this session, opened by this person, from this device, in these circumstances.</p>
<p>That conditionality is what makes the whole thing workable commercially, because it means you rarely have to answer no.</p>
<p>The supplier who will not install an agent is not refused. They are given a session with no clipboard, no drive mapping, no printing and no download, into an application running somewhere you control. The same person, later, from a managed device with stronger authentication, gets a session with more in it. Nobody negotiated. Nobody made an exception. The policy simply produced a different session, and both are recorded the same way.</p>
<p>That is the graduated response. Ordinary access gets a bounded session. Sensitive access gets an isolated one. Risky context gets an isolated one with the exits closed. Every one of them is a policy decision on the same platform, made per user, per application, per context — rather than a separate product bought for each tier of risk.</p>
<h2>And all of it stays in one place</h2>
<p>None of the above is a separate product, and that is the part that matters more than any individual control.</p>
<p>Solving third-party access by buying a dedicated third-party access product solves third-party access and leaves the estate worse — another console, another policy model, another set of logs that has to be correlated with the others during an audit. That is exactly the pattern that produced the sprawl in the first place.</p>
<p>The same enforcement point that handles the contractor handles employees, remote administrators, an OT segment, the cloud and SaaS applications already running well, and the internal applications nobody could move. One policy model. One set of logs recording what was actually reached, by whom, on what. One place to answer an auditor, and one place to change your mind when the contract ends.</p>
<p>Third-party access is simply the case where the argument is easiest to see, because it is the case where you can watch every assumption fail at once.</p>
<h2>Where to start</h2>
<p>Take the third-party access path you would least like to explain to an auditor, and ask two questions about it.</p>
<p>What does this grant beyond the one application it exists for — and if that machine is already compromised, what have we actually lost?</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Your Access Log Is an Authentication Log</title>
		<link>https://portsys.com/your-access-log-is-an-authentication-log/</link>
		
		<dc:creator><![CDATA[Michael Oldham]]></dc:creator>
		<pubDate>Tue, 14 Jul 2026 13:00:00 +0000</pubDate>
				<category><![CDATA[Access Control]]></category>
		<category><![CDATA[Compliance]]></category>
		<guid isPermaLink="false">https://portsys.com/?p=9003</guid>

					<description><![CDATA[It records who was admitted. The auditor is asking what they reached.]]></description>
										<content:encoded><![CDATA[<p>Someone asks for everything a named contractor accessed in the second quarter.</p>
<p>It is not an unreasonable request. It is close to the most ordinary request in security operations, it comes up in audits, investigations and offboarding reviews, and most organizations can eventually answer it. The word doing the work in that sentence is “eventually”.</p>
<h2>What comes back first</h2>
<p>The first answer is a list of authentication events. This person connected at these times, from these addresses, with these methods, and the connection was permitted.</p>
<p>That is a real record and it is genuinely useful. It also does not answer the question that was asked. The question was what they reached; the answer describes that they were admitted.</p>
<p>The distinction is easy to lose because the system producing those records is usually called an access log. It is an admissions log. Everything it knows, it learned at the door.</p>
<h2>Why the record stops at the door</h2>
<p>This is not a logging deficiency, and it will not be fixed by increasing the log level.</p>
<p>If a product evaluates a request at connection time, establishes a path, and then steps out of the way, its records can only describe what it observed — and what it observed was the connection. The traffic that followed did not pass through it. There is nothing for it to withhold.</p>
<p>A component that remains in the path for the duration of the session is in a different position. Every request traverses it, so its record can describe resources rather than admissions.</p>
<p>Same question, two architectures, two different kinds of answer — and the difference is decided long before anybody configures logging.</p>
<h2>So the answer gets assembled</h2>
<p>Because the primary record is incomplete, the real answer is built from fragments. Everybody who has done this recognizes the shape of it.</p>
<p>Connection records from the remote access platform, to establish when the person was on. Application logs from each system they might have used, in whatever format each one produces. Directory group membership, to determine what they could have reached — though membership today is not membership in April. Jump server records, if there is a jump server. Possibly a ticketing system, to establish what they were supposed to be doing.</p>
<p>Then somebody correlates it. Timestamps in different zones, identifiers that differ between systems, a person whose account name changed when they moved teams.</p>
<p>It is skilled work, it takes days, and it is done under time pressure by people who had other commitments that week. The output is a narrative rather than a record — and a narrative assembled by inference is a weaker thing to hand an auditor than a record that was simply kept.</p>
<h2>The gaps are structural</h2>
<p>The harder problem is what correlation cannot recover.</p>
<p>If a session reached a system that produces no useful application logging — and the applications that resisted modernization are disproportionately in that group — then nothing anywhere recorded it. The remote access platform saw a connection. The application recorded nothing worth having. The access happened and left no trace.</p>
<p>The honest answer to “did they reach this system?” is then “we cannot tell”, which nobody wants to write down and almost nobody does. What gets written instead is what the evidence supports, with the systems that produce no evidence quietly absent from the report.</p>
<p>This is the part worth sitting with. The absence is invisible. A report assembled from the systems that keep records looks complete, because the systems that keep no records contribute nothing to it — including no indication that they are missing.</p>
<h2>The three questions, and which ones you can answer</h2>
<p>Audit requests reduce to three, and they have different evidentiary requirements.</p>
<p><strong>Who had access to this system? </strong>Answerable from entitlements rather than logs, provided entitlements are reviewed and the review is evidenced. Most organizations manage this one.</p>
<p><strong>Who used it, and when? </strong>Requires records tied to the resource rather than to the connection. This is where the assembly work starts.</p>
<p><strong>What did they do while they were there? </strong>Belongs to the application, if it keeps such records and if they can be correlated to the person rather than to a service account.</p>
<p>An admissions log answers the first and gestures at the second. The gap between what the second question needs and what the connection record provides is the whole of the correlation exercise.</p>
<h2>What a record kept at the right place looks like</h2>
<p>If the enforcement point is in the path of every request, the request and the resource are in the same record, because it saw both.</p>
<p>That is the entire difference. Not a superior logging implementation — a position from which the useful facts are observable in the first place. Total Access Control terminates the session in front of the resource, so what it records is per-resource rather than per-connection, for every application it fronts.</p>
<p>The practical effect is that the quarter-of-a-contractor question becomes a query rather than a project. Which matters less for the audit than for everything else: the same record is what an investigation needs at two in the morning, and it is what a manager needs when somebody asks whether a leaver still had access to the thing they should not have.</p>
<h2>A test worth running before someone asks</h2>
<p>Pick a person and a quarter. Ask for everything they accessed, across every system, and note how long it takes and how many sources it draws on.</p>
<p>Then ask the harder half: which systems could they have reached that would not appear in that answer at all?</p>
<p>The first number tells you what an audit will cost. The second tells you what it will miss.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Nobody Owns the List</title>
		<link>https://portsys.com/nobody-owns-the-list/</link>
		
		<dc:creator><![CDATA[Michael Oldham]]></dc:creator>
		<pubDate>Tue, 12 May 2026 13:00:00 +0000</pubDate>
				<category><![CDATA[Access Control]]></category>
		<category><![CDATA[Best Practices]]></category>
		<guid isPermaLink="false">https://portsys.com/?p=9002</guid>

					<description><![CDATA[A problem that has never been written down in one place cannot be costed - and what cannot be costed never competes for budget.]]></description>
										<content:encoded><![CDATA[<p>Last September we wrote about why modern access platforms cannot front certain applications — the ones that expect a Kerberos ticket, the thick clients, the forms-based systems, the consoles and custom tools that never learned to speak SAML or OIDC. That post was about the technical boundary.</p>
<p>This one is about something more mundane and, in practice, more expensive. Almost nobody has written down which of their applications are on the wrong side of it.</p>
<h2>Everyone knows. Nobody owns the set.</h2>
<p>Ask any individual engineer about any individual application and you will get a precise answer. The knowledge exists. What does not exist is the set.</p>
<p>The reason is structural rather than careless. Each of these applications became an exception inside a different project — a migration, a platform rollout, an acquisition integration, a compliance remediation. Each exception was documented where that project documented things, approved by whoever was accountable at the time, and given a review date. Then the project closed. The people moved. The documents went wherever closed project documents go.</p>
<p>The exceptions persisted. The record of them dispersed. And because no single program ever owned the whole set, no single program was ever asked to produce it.</p>
<h2>What it costs to not have the list</h2>
<p>Three consequences, and the third is the one that keeps the situation stable for years.</p>
<h3>You cannot scope an evaluation</h3>
<p>Every access product will tell you it supports RDP and SSH, and most of them genuinely do. The discriminating question is not about protocols — it is whether a product can front the specific applications you have. Without the list you cannot ask that question, so you evaluate on features instead, and discover the gap during a pilot.</p>
<h3>You cannot describe the risk</h3>
<p>“Some older applications are still on the VPN” is not a statement anyone can act on. A page naming eleven systems, four of which hold regulated data and two of which are reachable by third parties, is a different kind of document entirely — and it is the same information, just assembled.</p>
<h3>You cannot cost it, so it never competes</h3>
<p>This is the important one.</p>
<p>Budget goes to problems with numbers attached. A problem that exists as scattered exceptions in closed project documentation has no number, cannot be put on a slide, and therefore never appears on the list of things being funded this year.</p>
<p>So it remains a running expense and a standing exposure that no business case has ever had to justify — not because anyone decided it was acceptable, but because nobody has ever been in a position to ask for the money. The cost is real and it is being paid. It is simply being paid invisibly, which is the only condition under which a cost survives indefinitely.</p>
<h2>Write the list</h2>
<p>One page. For each application that did not move, four columns:</p>
<ul>
<li>What it expects at the point of authentication — a Kerberos ticket, a header set by a trusted component, a local account, nothing at all.</li>
<li>Who needs to reach it, and from where. Staff, administrators, third parties, equipment.</li>
<li>What access path they use today — and what else that path also grants them.</li>
<li>What keeps it where it is. Technical constraint, vendor support agreement, or simply that nobody has had the time.</li>
</ul>
<p>The fourth column is the one that surprises people. A meaningful share of any such list turns out to be the third answer — no technical obstacle at all, just an item that has never been anyone’s priority. Those are free wins sitting in plain sight, and they are invisible until the list exists.</p>
<p>The third column is the one that changes the conversation. It is where somebody notices that the path serving four legacy applications also grants a route to everything else on that network segment.</p>
<h2>What the list is actually for</h2>
<p>With it in hand, the evaluation question changes shape. It stops being “which platform is best” and becomes “which of these could front every line on this page”.</p>
<p>That is a far more discriminating question, it can be asked of any vendor in a first conversation rather than discovered in month three of a pilot, and it is the question Total Access Control was built to answer — an enforcement point that presents identity in the form each of these applications expects, rather than one that can only route a connection to them.</p>
<p>But the list comes first, and it is worth producing whatever you conclude afterwards. The organizations that handle this well are not the ones with the best platform. They are the ones who know what is on the page.</p>
<p>Most have never seen it on one. The reaction when they do is consistent: shorter than feared, and more important than expected.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 

Served from: portsys.com @ 2026-11-11 12:39:10 by W3 Total Cache
-->