Repository navigation
fix: route captured network decisions through Tessera - #1419
Richie Gomez (richiemsft) wants to merge 6 commits into
Conversation
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
ff0d00b to
d66c3b4
Compare
33bf935 to
731c328
Compare
Gudge (MGudgin)
left a comment
There was a problem hiding this comment.
Verified review notes
The substantive issue is treating the normalized network_egress Option as evidence that a caller explicitly requested egress; the second comment asks for a negative control on the separate no-capture guard. This is a comment-only review, not a change request.
Verified clean: GitHub's patch matches the local delta. The new tests preserve the proxy posture and prove that the default-deny egress table is still serialized. ensure_capability avoids duplicate capability strings. The runner gains only two new tests (48 to 50); neither covers a parsed request with absent or ingress-only network policy. I did not reproduce a brokered-DNS/Tessera bypass on a PSEC host and am not asserting one.
Verified pre-existing — not attributed to this PR
src/mxc-sdk/src/core/mxc_common/network_parser.rs:159-175 is byte-identical at base and head. Its normalization of absent egress to Some(default) is not itself charged to this PR; the new gate's reliance on presence is the introduced defect. The existing egress-rule serializer and guarded AppContainer capability helper are also unchanged and are not being treated as regressions.
d66c3b4 to
b3f6785
Compare
731c328 to
cd9e80a
Compare
b3f6785 to
31a0195
Compare
cdbd9d6 to
82dce5d
Compare
05c16d0 to
183a905
Compare
72c85b5 to
67e25e8
Compare
|
Gudge (@MGudgin) The remaining capability-presence finding is fixed in a01d125. network.egress absence now remains distinct through parsing, and the parse-to-PSEC matrix covers absent network, ingress-only, explicit deny-default egress, plus the no-capture negative control. The complete mxc-sdk library run passed 2,775 tests; one unrelated host-dependent loopback proxy test timed out consistently on this machine. Please re-review the updated tip. |
a01d125 to
7f147b9
Compare
There was a problem hiding this comment.
🔵 Needs a closer look
Security-sensitive network enforcement changes depend on preceding stacked ABI and decoder changes, warranting final human validation.
0 open findings
What changed in this PR
Routes ProcessContainer denial-capture network decisions through Tessera while preserving authoritative PSEC enforcement and proxy isolation.
Changes:
- Synthesizes direct-egress capability only for eligible network-aware captures.
- Emits and validates version 5 capture diagnostics.
- Adds regression coverage for direct, proxy, and legacy postures.
| File | Description |
|---|---|
src/tools/wxc/src/audit.rs |
Validates and publishes versioned verbose diagnostics. |
src/mxc-sdk/src/core/mxc_common/network_parser.rs |
Preserves explicit egress-section presence. |
src/mxc-sdk/src/core/mxc_common/mod.rs |
Exposes the parser within the crate. |
src/mxc-sdk/src/backends/process_container/common/capture_output.rs |
Writes version 5 native-capture diagnostics. |
src/mxc-sdk/src/backends/process_container/common/base_container_runner.rs |
Selects network-aware capture routing and decoding. |
src/mxc-sdk/src/backends/process_container/common/base_container_helpers/tests.rs |
Updates helper invocations for capture routing. |
src/mxc-sdk/src/backends/process_container/common/base_container_helpers.rs |
Adds conditional internetClient synthesis. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
2492bb0 to
aa925c7
Compare
6150aa6 to
7bc39c7
Compare
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: e408b60b-e267-416c-806d-0a7e119fe53f
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: e408b60b-e267-416c-806d-0a7e119fe53f
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: e408b60b-e267-416c-806d-0a7e119fe53f
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: e408b60b-e267-416c-806d-0a7e119fe53f
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: e408b60b-e267-416c-806d-0a7e119fe53f
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: e408b60b-e267-416c-806d-0a7e119fe53f
7bc39c7 to
4ce4047
Compare
📖 Description
Routes direct ProcessContainer denial-capture traffic through Tessera so WFP Learning Mode can observe the policy decision without weakening enforcement.
internetClientonly for direct directionalcaptureDenialsrequests.This is PR 3 of 4 in the WFP Learning Mode stack. Its base is the decoder-layer branch.
🔗 References
Related to #1286.
Depends on the preceding decoder PR in this stack.
🔍 Validation
cargo test -p mxc-sdk --lib 'capture_denials_'— 25 passed.cargo test -p mxc-sdk --lib 'network_policy_helpers::tests::'— 5 passed.✅ Checklist
Cargo.lock, thedependency-feed-checkcheck passes (not applicable)📋 Issue Type
🧱 Stack
Review and merge in this order.
Microsoft Reviewers: Open in CodeFlow