network-local-segment-reach

A source co-located with the destination in the same Subnet reaches it when the destination's SG/NSG/firewall admits the source segment on a listening port.

derived any cloud emits CanNetworkReach

match

A conjunctive graph pattern. Variables (?x) bind node ids; every clause must hold.

{'sg': None} CanReachPort {'dst': None} {'src': None} LocatedIn {'net': None} {'dst': None} LocatedIn {'net': None}

where

node_class(?src) in [Compute, Network] node_class(?dst) in [Compute, Data, Storage] node_type(?net) == Subnet node_type(?sg) in [SecurityGroup, Firewall]

emit

source typeCompute Network
target typeCompute Data Storage
source?src
target?dst
conditionsnetwork_reachability
state logicACTIVE when both endpoints are confirmed in the same Subnet and the destination's ingress rule (SG/NSG/firewall) admits the source segment on the port. CONDITIONAL(network_reachability) if placement or the ingress rule is unconfirmed from collection, or if the SG-to-source-segment join is not fully evaluated (see MODELING LIMITATIONS: CANREACHPORT SOURCE SHAPE). BLOCKED if a subnet NACL / stateless firewall DENY covers the source range on the port. Inherit the weakest state of the contributing CanReachPort.

Narrative

{src.name} is co-located with {dst.name} in subnet {net.name} and the destination's security group/NSG admits it on the service port, so {src.name} can reach {dst.name} over the network without traversing any gateway.

Raw rule rules/derived/network-chains.yaml

id: network-local-segment-reach
emits: CanNetworkReach
description: A source co-located with the destination in the same Subnet reaches it when the destination's
  SG/NSG/firewall admits the source segment on a listening port.
applies_to:
- '*'
match:
- - sg: null
  - CanReachPort
  - dst: null
- - src: null
  - LocatedIn
  - net: null
- - dst: null
  - LocatedIn
  - net: null
where:
- node_class(?src) in [Compute, Network]
- node_class(?dst) in [Compute, Data, Storage]
- node_type(?net) == Subnet
- node_type(?sg) in [SecurityGroup, Firewall]
emit:
  source_type:
  - Compute
  - Network
  target_type:
  - Compute
  - Data
  - Storage
  source: ?src
  target: ?dst
  permissions: []
  conditions:
  - network_reachability
  state_logic: 'ACTIVE when both endpoints are confirmed in the same Subnet and the destination''s ingress
    rule (SG/NSG/firewall) admits the source segment on the port. CONDITIONAL(network_reachability) if
    placement or the ingress rule is unconfirmed from collection, or if the SG-to-source-segment join
    is not fully evaluated (see MODELING LIMITATIONS: CANREACHPORT SOURCE SHAPE). BLOCKED if a subnet
    NACL / stateless firewall DENY covers the source range on the port. Inherit the weakest state of the
    contributing CanReachPort.'
  confidence: min(contributing_confidences)
  derived_from:
  - ?sg CanReachPort ?dst
  - ?src LocatedIn ?net
  - ?dst LocatedIn ?net
  false_positive_note: "The judgment is (a) the destination ingress rule genuinely admits THIS source\
    \ segment (a 0.0.0.0/0 SG is internet exposure \u2014 rule 5 \u2014 not intra-segment; a source-SG\
    \ reference or the source's own CIDR/subnet must match) and (b) both endpoints are truly in the same\
    \ L3 Subnet (node_type == Subnet). Do NOT emit for endpoints in different subnets that lack a route\
    \ (that is rule 2). A NACL or stateless firewall DENY is a real control: emit BLOCKED, not ACTIVE.\
    \ This edge is the reachability PRECONDITION only \u2014 the exploit of the listening service is the\
    \ service adapter's / can-control's job."
  narrative: '{src.name} is co-located with {dst.name} in subnet {net.name} and the destination''s security
    group/NSG admits it on the service port, so {src.name} can reach {dst.name} over the network without
    traversing any gateway.'
move · open · esc close