TM Labs · Policy hardening

Maximum Protection

Every device category that already had a specific reason to talk to something now also has an explicit reason to talk to nothing else.

3 new policies3 device tags0 gaps left open

01

The gap this closes

What was possible before today

TM Labs' cameras had a permit rule to reach the NVR subnet — and nothing telling them they couldn't reach anywhere else. A compromised camera beaconing out to iot-c2-relay.xyzwouldn't have hit a single deny rule on its way out. Same story for badge readers and NVRs: one narrow permit each, no floor underneath it.

02

Every category, permit over its own floor

Each device type gets the same two-rule shape: the narrow permit it already had, and a new deny-all-else beneath it, both scoped to that device's own tag so nothing else in the org is affected.

900

Cameras → NVR

egress · 10.10.2.0/24

permit
50

Cameras — Deny All Else

egress · 0.0.0.0/0

block

tag: camera

900

Badge Readers → Corporate LAN

egress · 10.50.0.0/16

permit
50

Badge Readers — Deny All Else

egress · 0.0.0.0/0

block

tag: badge-reader

800

NVR → Corporate Backup

egress · 10.50.0.0/16

permit
50

NVR — Deny All Else

egress · 0.0.0.0/0

block

tag: nvr

03

Why the weight gap matters

Higher weightevaluates first — confirmed against real WFP behavior this session, correcting netra's own docs, which had it backwards. That's why each permit sits at 800–900 and its floor sits at 50: the specific rule always gets first look at matching traffic, and the deny-all-else only fires on whatever falls through unmatched.

A policy with zero assignments does nothing, no matter how it's configured — each of these three is assigned via a device-tag, not left bare.

Live on TM Labs now — audited, actor-attributed, reversible like any other policy.
← Back to The Wire