Skip to content

docs(egress): plan Wardnet outbound site reputation engine - #173

Open
seonghobae wants to merge 1 commit into
mainfrom
docs/outbound-site-reputation-20260905
Open

docs(egress): plan Wardnet outbound site reputation engine#173
seonghobae wants to merge 1 commit into
mainfrom
docs/outbound-site-reputation-20260905

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Product request

Plan and design a Wardnet-owned outbound site reputation engine so internal users, services, and agents do not contact destinations with adverse security reputation.

This remains a documentation-only architecture/design PR. It does not implement an engine, enable a proxy, change production traffic, or claim company-wide interception. The ADR remains Proposed rather than shipped architecture truth.

Architecture boundary

Outbound destination maliciousness, evidence lifecycle, organizational admission policy, and SOC accountability belong to Wardnet. EgressWeave remains the canonical owner of executable URL/address/DNS/peer, redirect, proxy, TLS/trust and resource authorization. A controlled enforcement point must compose both authorities before protected connect/send; neither allow can override the other's deny. A policy decision is not evidence that traffic was actually blocked.

The pure Rust reputation core and offline evidence/policy work may develop independently. Production transport integration requires an immutable compatible Rust-consumer boundary from ContextualWisdomLab/EgressWeave#237 or its verified successor. EgressWeave still exposes no immutable GitHub Release, so this PR cannot imply runtime enforcement or consume mutable owner source.

Documents and security contract

The protected-main-relative delta remains exactly four Markdown files:

  • docs/adr/2026-09-05-outbound-site-reputation-engine.md
  • docs/superpowers/specs/2026-09-05-outbound-site-reputation-design.md
  • docs/superpowers/plans/2026-09-05-outbound-site-reputation.md
  • docs/papers/outbound-site-reputation-sources.md

The design separates malicious/suspicious/unknown assessment, evidence health, policy action and actual enforcement outcome; binds decisions/cache entries to authenticated tenant/workload/purpose/canonical destination/revisions/observation scope/actual peer; preserves source confidence/lineage/validity/deletion/markings/licensing; requires every redirected/coalesced/new authority to be rechecked; fails protected traffic closed when required authority/evidence/audit is unavailable; and retains explicit CONNECT/opaque-HTTPS/direct-egress/encrypted-DNS/QUIC/proxy limitations and hostile zero-upstream-hit/rollback/replay/cross-tenant/false-positive tests.

#130 remains the sole product-gap ledger writer. #136/#115 preserve Wardnet consumer/feed evidence but their local reusable transport policy is not adopted. Merged #171 now establishes the complementary protected-main boundary: anti-bot browser acquisition/challenge handling stays outside Wardnet while destination maliciousness/reputation policy and evidence remain Wardnet-owned.

Exact state — 2026-09-06 KST

Protected main advanced through #171 from 5829a0f08d78de464dd24393ce5d0f25fba9d126 to verified squash a52ccd0a24a727d9349bb32def7713882d8cad1e. This PR's source head is unchanged at a14b28a10ea87dbcc1939fe0fdca6ce5b02259ed; a fresh GitHub mergeability computation after the base advance is mergeable=true, and the four-file delta does not overlap #171's two-file anti-bot ADR/index delta. The prior repository-owned workflows remain exact-source-head evidence from before the base advance and therefore are not treated as final candidate-base admission evidence:

  • CI 33949463493 — SUCCESS;
  • Security Scan 33949463487 — SUCCESS;
  • SAST Semgrep 33949463505 — SUCCESS;
  • CodeQL PR 33949463499 — SUCCESS;
  • Required PR Review Merge Scheduler 33949463529 — SUCCESS.

Required central OpenCode workflow 33949463777 is terminal FAILURE, but the earlier runner_id=0 diagnosis is superseded. opencode-review job 101340969657 acquired Ubuntu 24.04, completed bootstrap/exact-head admission and coverage evidence, obtained OIDC, exchanged a repository-scoped app token, and successfully dispatched opencode-review to ContextualWisdomLab/.github. It then failed closed because no authenticated exact-head APPROVED or CHANGES_REQUESTED verdict from opencode-agent had been published for #173@a14b28a10ea87dbcc1939fe0fdca6ce5b02259ed when the admission check ran. The current causal boundary is delegated review execution/verdict publication or its wake/rerun path, not hosted-runner acquisition or Wardnet source. Fresh exact evidence and GREEN acceptance are already on .github#712; do not create a no-op redispatch commit.

Live ruleset 18156473 still requires one unnamed generic approval and gives OrganizationAdmin an always-on bypass. #171 demonstrated that the currently authorized principal can make an ordinary expected-head merge call succeed despite no human APPROVED review, so such a call cannot safely be used as a governance probe. .github#772 now carries this exact specimen and acceptance criteria. Wardnet will not use further merge calls until central policy makes ordinary protected admission distinguishable from explicit emergency bypass and the solo-maintainer review rule is compatible with the declared operating model.

Merge only after the unchanged/current successor head has an authenticated current-head OpenCode verdict, the required workflow is terminal-valid, central governance is repaired, every then-live workflow/review/thread gate is valid, and candidate-base compatibility is freshly verified. No force push/destructive rebase, gate weakening, predecessor-evidence reuse, implicit routine bypass, or runtime-enforcement claim.

Add a proposed ADR, product/technical design, six-slice implementation
plan, and primary-source research register for Wardnet-owned outbound
site security reputation. Preserve EgressWeave transport authority and
make interception, evidence lifecycle, policy, and rollout gates explicit.

Documentation only; no runtime or workflow changes.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@coderabbitai

coderabbitai Bot commented Sep 5, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 56 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: c04f2a1d-15b6-4996-881c-265bcfaef506

📥 Commits

Reviewing files that changed from the base of the PR and between 5829a0f and a14b28a.

📒 Files selected for processing (4)
  • docs/adr/2026-09-05-outbound-site-reputation-engine.md
  • docs/papers/outbound-site-reputation-sources.md
  • docs/superpowers/plans/2026-09-05-outbound-site-reputation.md
  • docs/superpowers/specs/2026-09-05-outbound-site-reputation-design.md

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant