microsegment.io

segment all the things

Most segmentation reviews prove that allowed traffic still works.

The application opens. The database responds. Monitoring is green. The change ticket closes.

None of that proves containment.

Containment depends on the traffic that must not work: the workstation that cannot reach the database, the web tier that cannot administer the hypervisor, the compromised build runner that cannot query production secrets, and the ransomware process that cannot discover every file server.

A policy document describes intent. A rule set describes configuration. A successful negative-path test provides evidence that an unwanted path is actually closed.

That distinction matters because microsegmentation operates in a changing system. Workloads move. Labels drift. Cloud security groups change. New routes appear. Service accounts gain access. Emergency exceptions survive long after the incident. An enforcement point can be healthy while the containment outcome is wrong.

If the deny has not been tested from the real source, through the real path, against the real destination, the blast radius is still an assumption.

Authoritative Guidance Now Says To Validate The Boundary

CISA’s Microsegmentation in Zero Trust guidance describes microsegmentation as a way to reduce attack surface, limit lateral movement, and improve visibility. It also makes a less comfortable point: a Zero Trust architecture must be continuously evaluated as technologies, threats, and risk tolerances change.

The NSA’s current Zero Trust Network and Environment implementation guidance is more explicit. It calls for isolation testing, validation that unapproved communication is blocked, analysis of flow logs for violations, and recurring security assessments of microsegmentation controls. The guidance strongly recommends quarterly assessment for application and device microsegmentation.

This changes the definition of done.

Microsegmentation is not complete when policy is deployed. It becomes operationally credible when the organization can repeatedly demonstrate four things:

  1. required communication succeeds;
  2. unapproved communication fails;
  3. the failure is enforced at the intended control point;
  4. the attempt produces useful, trustworthy evidence.

All four are necessary. A blocked connection without telemetry is hard to operate. An alert without enforcement is detection, not containment. A deny enforced by an unexpected upstream firewall may disappear during a routing change. A policy that blocks the test but breaks during enforcement failure has not established a dependable boundary.

Start With A Containment Claim

Testing every possible source and destination pair is rarely practical. Start with the security outcome the architecture is supposed to deliver.

A good containment claim is specific and falsifiable:

If an Internet-facing web workload is compromised, it cannot initiate administrative connections, reach unrelated applications, contact the virtualization management plane, or connect directly to production databases outside its declared dependency set.

That claim identifies a source, a failure assumption, protected destinations, and expected behavior.

Weak claims sound like “the production network is segmented” or “east-west traffic is controlled.” They are impossible to verify precisely because nobody knows which paths, identities, protocols, or failure conditions count as success.

For each critical application or trust zone, document:

  • the workload or identity assumed compromised;
  • the approved dependencies that must remain available;
  • the destinations and administrative planes that must remain unreachable;
  • the protocols, ports, and direction of each flow;
  • the enforcement point expected to make the decision;
  • the telemetry expected when the request is allowed or denied;
  • the owner who accepts the residual reachability.

This turns a firewall review into a blast-radius test.

Test From The Workload, Not From The Diagram

Architecture diagrams simplify. Attack paths do not.

A diagram may show two isolated zones while a shared load balancer, service mesh, cloud transit gateway, backup interface, management agent, or IPv6 route quietly connects them. A central scanner may report a path as blocked even though it tests from a different subnet, identity, or enforcement context than the workload an attacker would control.

Run tests as close as possible to the real execution context:

  • from a representative host, pod, virtual machine, or serverless workload;
  • with the workload identity and labels that policy actually evaluates;
  • across the production routing and name-resolution path;
  • against both the service endpoint and the underlying infrastructure endpoint;
  • over IPv4 and IPv6 where both are enabled;
  • through private, public, peered, VPN, and service-mesh paths that exist in production.

NIST SP 800-207A explains why network location alone is insufficient in cloud-native and multi-cloud environments. Granular policy may depend on application and service identities as well as network parameters. Testing must therefore preserve the identity context. A connection from a generic scanner does not prove how the policy treats the actual service account, workload label, certificate, or API identity.

Positive tests still matter. They prove that the intended application graph remains functional. But every approved edge in that graph should be surrounded by tested negative paths.

If the web tier needs HTTPS to one API, test that it cannot use SSH, SMB, database protocols, or HTTPS to neighboring APIs. If the API needs one database, test that it cannot reach the database management interface, replicas owned by another application, or the cloud metadata and control-plane endpoints it does not require.

Least privilege is a graph with explicit missing edges. Test the missing edges.

Verify The Decision, Not Just The Symptom

A timeout is not enough evidence.

The connection might fail because of DNS, routing, an application outage, a host firewall, a cloud security group, or the intended microsegmentation control. Those failures have different owners and different persistence.

For each negative test, collect evidence from both sides of the decision:

  • the source and destination identity;
  • resolved addresses and route selection;
  • protocol, port, and direction;
  • the policy rule or default action that matched;
  • the enforcement point that denied the flow;
  • a timestamp shared across workload, network, and policy systems;
  • the deny event in the operational telemetry;
  • confirmation that no alternate path succeeded.

The evidence should answer a direct question: “Which control prevented this compromised workload from reaching that asset?”

If the answer is unclear, incident responders will face the same uncertainty under pressure.

This is also where shadow controls become visible. A network firewall may block a path before the host-based policy sees it. That is useful defense in depth, but it does not prove the host boundary works. Temporarily controlled test conditions may be needed to validate each layer without weakening production protection.

Include Failure Behavior

Security teams often test policy while every controller, agent, identity provider, cloud API, and telemetry pipeline is healthy.

Attackers do not owe us a healthy control plane.

The test plan should cover predictable failures:

  • loss of connectivity between an enforcement agent and its controller;
  • stale or missing workload labels;
  • policy compilation or distribution delay;
  • a restarted host, pod, or enforcement service;
  • failure of DNS, identity, or certificate validation;
  • a cloud region or transit dependency becoming unavailable;
  • an emergency policy change or incident-isolation action;
  • rollback to the last known policy.

For each condition, decide whether the control fails closed, preserves its last known policy, or permits traffic. Then verify the behavior.

Availability requirements can make a universal fail-closed design unrealistic. That does not justify undefined behavior. Critical flows may need carefully bounded continuity while administrative, lateral, and Internet paths remain denied.

The correct behavior is a risk decision. An untested behavior is an accident waiting for the worst possible moment.

Make Validation Continuous Enough To Catch Change

A yearly penetration test is too sparse for environments that change every day.

Validation should happen at several speeds:

Before policy deployment: Test proposed rules against observed dependencies and a representative environment. Confirm that the intended application graph works and obvious lateral paths remain absent.

After deployment: Run focused positive and negative tests from affected workloads. Verify rule matching and telemetry before closing the change.

On material change: Retest when workloads move, labels change, routes or peers are added, new cloud accounts connect, identities are replaced, or exceptions are approved.

On a recurring schedule: Exercise high-value containment claims even when no change is known. The NSA guidance’s quarterly recommendation is a useful minimum reference for formal assessment, not a reason to wait three months after a risky change.

During incident exercises: Assume a workload in each critical zone is compromised and attempt the paths the attacker would value: identity systems, management planes, backup infrastructure, orchestration platforms, file services, and Internet egress.

Automate the repeatable tests, but keep human review around the claims. A test that always passes can still become meaningless if its source identity, target, or routing context no longer represents production.

Track Evidence, Not Rule Count

Rule count is an operating metric. It is not a security outcome.

A stronger microsegmentation scorecard tracks:

  • percentage of critical applications with an approved dependency map;
  • percentage of high-impact containment claims tested successfully;
  • age of the last negative-path test;
  • unauthorized paths discovered per test cycle;
  • time from environment change to policy validation;
  • exceptions by owner, expiry, and reachable asset value;
  • deny events with complete source and destination identity context;
  • time required to isolate a compromised workload without breaking approved dependencies.

These metrics show whether blast radius is controlled in practice.

They also expose a common failure mode: the organization has deployed a sophisticated enforcement platform but cannot prove which attack paths it closes. That is a tooling implementation, not yet a containment capability.

The Deny Is The Product

Applications are designed around allowed communication. Security architecture is judged by the communication that remains impossible after one component is compromised.

That is why the deny deserves first-class engineering:

  • define it as a containment claim;
  • test it from the real workload and identity context;
  • identify the exact enforcement decision;
  • preserve evidence of the attempt;
  • exercise control-plane failure;
  • repeat the test as the environment changes.

Microsegmentation does not reduce breach impact because a console contains a clean policy.

It reduces breach impact when an attacker reaches the boundary and cannot cross it.

Test that boundary before the attacker does.

Sources

This article was generated with the assistance of AI and reviewed by the author.