Skip to content

EPIC: neutral network egress tiers (strict/balanced/open) across all sandbox backends #303

Description

@wz-gsa

Give every acq sandbox (sbx, msb, future ppp) ONE consistent, deny-by-default egress surface via a neutral network.tier vocabulary, with a curated shared balanced baseline. Design in ADR 0002 (isolation) — patterns PR #299. Approved 3/3 (consensus + tradeoff panel); default set to balanced for sbx/msb backend consistency.

Design (see ADR 0002 / PR #299)

  • network.tier = strict | balanced | open; all tiers deny-by-default.
  • balanced = deny-by-default + curated SHA-pinned IN-REPO baseline ∪ per-kit caps.network.allow.
  • No runtime threat-feed; reputation feed = CI-time check on proposed additions.
  • Default balanced (maintainer decision 2026-08-07) — matches sbx baseline + quickstart ADR-0018 msb default-on. strict/open explicitly selectable; GFE SHOULD pin strict.

Existing implementation to adopt (do NOT re-implement)

Bret's feat/msb-balanced-egress (quickstart, ADR-0018) already ships the msb half, default-on:

  • Vendored acq.backends/msb-balanced-hosts.txt (verbatim sbx-balanced mirror).
  • _acq_msb_balanced_rules_into emitter: --net-default deny + translated --net-rule allow@…, DNS grant, crl**.digicert.com widening (logged), SI-10 input hardening, ACQ_MSB_BALANCED_EGRESS toggle.
    The follow-up work should adopt this emitter + host-list under the neutral network.tier contract and decide the canonical baseline location (ADR-0018 anticipates migrating the vendored file into a patterns kit).

Sub-issues

Governance

What belongs on the federally-shipped balanced allowlist is a human/CODEOWNERS + security-review decision. Agents propose (with the CI reputation signal); never self-approve.

Sequencing

ADR #299 → schema #300 → baseline #301 + CI #302 (parallel) → quickstart adapter #294 (depends on #300/#301; converge with feat/msb-balanced-egress).

AI-assisted (OpenCode); consensus-reviewed (3/3). Requires human review.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions