Skip to content

feat(rules): detect composite read exfiltration - #64

Merged
limaronaldo merged 1 commit into
mainfrom
feature/shield-020-contextual-detection
Jul 24, 2026
Merged

feat(rules): detect composite read exfiltration#64
limaronaldo merged 1 commit into
mainfrom
feature/shield-020-contextual-detection

Conversation

@limaronaldo

Copy link
Copy Markdown
Collaborator

Summary

  • register SHIELD-020 as a contextual scanner rule without changing the public target-only RuleEngine contract
  • emit a high-confidence finding only for complete tool-scoped arbitrary-read-to-HTTP-payload chains
  • use semantic source and sink anchors in deterministic evidence and fingerprints
  • add scanner-catalog, feature-off, fingerprint-stability, SHIELD-004 coexistence, and end-to-end fixture coverage
  • document the twentieth built-in detector and its MCP06 mapping

Why

The composite value-flow graph and contextual transport are already merged.
This PR consumes those precomputed candidates to detect proven arbitrary
file-read exfiltration chains without reparsing source, adding shared state, or
exposing sidecar internals publicly.

Compatibility

  • RuleEngine::run and RuleEngine::list_rules remain target-only and coherent
  • scanner metadata, CLI, SARIF, and certification include SHIELD-020 through list_scanner_rules
  • no public IR or serialization changes
  • TypeScript-disabled scans retain targets and emit no SHIELD-020

Validation

  • cargo fmt --all --check
  • cargo check --workspace --all-targets --locked
  • cargo clippy --workspace --all-targets --all-features --locked -- -D warnings
  • cargo test --workspace --all-targets --locked — 372 passed
  • cargo test --workspace --all-targets --no-default-features --locked — 338 passed

@limaronaldo
limaronaldo marked this pull request as ready for review July 24, 2026 01:25
@limaronaldo

Copy link
Copy Markdown
Collaborator Author

Self-review verdict: no blocking findings. Verified contextual-only registration, complete-chain gating, semantic-anchor fingerprint stability, scanner/public catalog separation, SHIELD-004 coexistence, and TypeScript feature-off behavior. Local gates: fmt, workspace check, all-feature clippy, 372 default tests, and 338 no-default-feature tests all pass. Awaiting remote CI before merge.

@limaronaldo
limaronaldo merged commit e7f75f0 into main Jul 24, 2026
22 checks passed
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