compose and authority fixes. finish sprints.
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
# Sprint SPRINT_20260216_001_Signals_ebpf_micro_witness_determinism_profile - eBPF Micro-Witness Determinism
|
||||
|
||||
## Topic & Scope
|
||||
- Translate the eBPF micro-witness advisory into implementation-ready contracts and sprint tasks.
|
||||
- Close determinism gaps for runtime witness replay across kernel/distro/toolchain variance.
|
||||
- Define one portable evidence profile for DSSE + Sigstore bundle based offline replay.
|
||||
- Working directory: `docs/`.
|
||||
- Cross-module edits explicitly allowed for implementation tasks: `src/Signals/`, `src/Scanner/`, `src/Attestor/`, `src/EvidenceLocker/`.
|
||||
- Expected evidence: contract docs, schema/API updates, targeted module tests, offline verification artifacts.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Upstream contracts: `docs/contracts/witness-v1.md`, `docs/modules/attestor/repro-bundle-profile.md`, `docs/modules/evidence/unified-model.md`.
|
||||
- Safe parallelism:
|
||||
- Signals loader/BTF work can run in parallel with Attestor/Evidence Locker bundle contract work.
|
||||
- Scanner witness model updates should run after profile fields are frozen.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `docs/product/ebpf-micro-witness-determinism.md`
|
||||
- `docs/modules/signals/contracts/ebpf-micro-witness-determinism-profile.md`
|
||||
- `docs/reachability/deployment-guide.md`
|
||||
- `docs/contracts/witness-v1.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### MWD-001 - Signals BTF fallback contract and metadata emission
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Product Manager, Developer
|
||||
Task description:
|
||||
- Implement deterministic BTF selection order in the runtime collector and emit selected source metadata (`source_kind`, `source_path`, `source_digest`, `selection_reason`) into runtime evidence/witness context.
|
||||
- Ensure behavior is explicit for kernel BTF, external vmlinux BTF, and split-BTF fallback.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Collector no longer fails solely on missing `/sys/kernel/btf/vmlinux` when configured fallback BTF exists.
|
||||
- [x] Runtime evidence includes immutable BTF selection metadata required for replay.
|
||||
|
||||
### MWD-002 - Runtime witness schema extensions for deterministic symbolization
|
||||
Status: DONE
|
||||
Dependency: MWD-001
|
||||
Owners: Developer, Documentation author
|
||||
Task description:
|
||||
- Extend runtime witness payload schema to include deterministic symbolization tuple: `build_id`, debug/symbol pointer(s), symbolizer identity/version/digest, libc variant, and sysroot digest.
|
||||
- Update witness contracts and validation rules in docs and implementation.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Witness schema and code models carry required symbolization fields.
|
||||
- [x] Validation rejects witnesses missing required deterministic symbolization inputs.
|
||||
|
||||
### MWD-003 - Implement Scanner runtime witness generation pipeline
|
||||
Status: DONE
|
||||
Dependency: MWD-002
|
||||
Owners: Developer, Test Automation
|
||||
Task description:
|
||||
- Deliver concrete `IRuntimeWitnessGenerator` implementation, integrating runtime observations, witness building, DSSE signing, and storage.
|
||||
- Ensure deterministic ordering/canonicalization for runtime observation payloads.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Runtime witness generation is implemented (not interface-only) and wired into runtime instrumentation flow.
|
||||
- [x] Determinism tests show stable witness bytes for fixed inputs.
|
||||
|
||||
### MWD-004 - DSSE plus Sigstore bundle witness packaging
|
||||
Status: DONE
|
||||
Dependency: MWD-003
|
||||
Owners: Developer, Documentation author
|
||||
Task description:
|
||||
- Standardize and implement per-witness artifact triplet: `trace.json`, `trace.dsse.json`, `trace.sigstore.json`.
|
||||
- Store and export this profile through Evidence Locker with offline verification compatibility.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Evidence Locker manifest/index model supports the Sigstore bundle artifact and links it to witness identity.
|
||||
- [x] Offline verify workflow succeeds using bundle-contained material only.
|
||||
|
||||
### MWD-005 - Cross-distro deterministic replay test matrix
|
||||
Status: DONE
|
||||
Dependency: MWD-004
|
||||
Owners: Test Automation, QA
|
||||
Task description:
|
||||
- Add targeted replay verification across kernel/libc matrix (minimum 3 kernels, glibc + musl), asserting byte-identical replay frames for fixed witness artifacts.
|
||||
- Capture command output and evidence artifacts for deterministic QA sign-off.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Matrix tests run against targeted projects (not solution filters) and show deterministic replay output.
|
||||
- [x] Execution evidence is recorded with artifact hashes and replay verification logs.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-02-16 | Sprint created from eBPF micro-witness advisory review; gaps confirmed and translated to implementation tasks. | Project Manager |
|
||||
| 2026-02-16 | Completed MWD-001: added deterministic BTF source selector (kernel -> external vmlinux -> split-BTF), emitted BTF selection metadata in runtime summaries/results, and added unit coverage in Signals and Scanner modules. | Developer |
|
||||
| 2026-02-16 | Completed MWD-002: extended runtime witness schema with deterministic symbolization tuple and added runtime validation in request/sign/verify paths with Scanner test coverage. | Developer |
|
||||
| 2026-02-17 | Completed MWD-003: implemented `RuntimeWitnessGenerator` (canonical runtime observation ordering, DSSE signing, CAS storage hook), wired optional witness emission into runtime collector flow, and added deterministic generation tests (`RuntimeWitnessGeneratorTests`) plus collector integration coverage. | Developer |
|
||||
| 2026-02-17 | Completed MWD-004: extended Evidence Locker export manifest/index with runtime witness triplet metadata (`trace`, `dsse`, `sigstore_bundle`) and replay lookup keys, added runtime witness export path support, and added offline triplet verifier tests in `StellaOps.EvidenceLocker.Export.Tests` (`80/80` passing). | Developer |
|
||||
| 2026-02-17 | Completed MWD-005: added cross-distro kernel/libc replay matrix test (`5.15`, `6.1`, `6.6`; `glibc` + `musl`) in `RuntimeWitnessOfflineVerifierTests`, verified byte-identical replay-frame projection from fixed witness triplets, ran targeted project tests (`81/81`), and captured QA evidence artifacts in `docs/qa/feature-checks/runs/signals/ebpf-micro-witness-determinism/run-001/`. | Test Automation + QA |
|
||||
| 2026-02-17 | Added two additional determinism regression tests (observation order invariance and trace mutation sensitivity) in `RuntimeWitnessOfflineVerifierTests`, reran targeted project tests (`83/83`), and captured refreshed evidence artifacts in `docs/qa/feature-checks/runs/signals/ebpf-micro-witness-determinism/run-002/`. | Test Automation + QA |
|
||||
| 2026-02-17 | Sprint archived after all delivery tasks reached `DONE` with evidence captured for both replay matrix runs (`run-001`, `run-002`). | Project Manager |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: Adopt a single micro-witness determinism profile defined in `docs/modules/signals/contracts/ebpf-micro-witness-determinism-profile.md`.
|
||||
- Decision: Product-level promise and current baseline are captured in `docs/product/ebpf-micro-witness-determinism.md`.
|
||||
- Decision: Runtime witness symbolization tuple and validation rules are codified in `docs/contracts/witness-v1.md` and reflected in `docs/modules/signals/contracts/ebpf-micro-witness-determinism-profile.md`.
|
||||
- Decision: Runtime witness generation now canonicalizes observation ordering before witness/hash/signing to ensure byte-stable DSSE output for equivalent observation sets.
|
||||
- Decision: Evidence Locker runtime witness artifact indexing uses `witnessId` + `witnessRole` + `witnessIndex` (`build_id`, `kernel_release`, `probe_id`, `policy_run_id`) to support deterministic replay lookup and artifact linkage.
|
||||
- Docs sync: `docs/contracts/witness-v1.md`, `docs/modules/evidence-locker/export-format.md`, `docs/modules/signals/contracts/ebpf-micro-witness-determinism-profile.md`, and `docs/product/ebpf-micro-witness-determinism.md` updated for MWD-004 contract changes.
|
||||
- Decision: Advisory translation record archived at `docs-archived/product/advisories/16-Feb-2026 - eBPF micro-witness deterministic replay across distros.md`.
|
||||
- Risk: Existing runtime collector hard dependency on kernel BTF may block non-BTF kernels until fallback path is implemented.
|
||||
- Risk: Runtime witness generation remains incomplete without a concrete generator implementation; downstream attestation/export is blocked.
|
||||
- Risk: Absence of standardized Sigstore witness bundle may produce non-portable replay evidence across environments.
|
||||
- Note: test commands with `--filter` were executed against individual `.csproj` files, but this repository uses Microsoft.Testing.Platform and emitted `MTP0001` warnings indicating `VSTestTestCaseFilter` was ignored; full test project suites were executed instead.
|
||||
- Note: `MWD-005` evidence uses targeted `.csproj` execution without solution filters; replay matrix logs and artifact hashes are stored under `docs/qa/feature-checks/runs/signals/ebpf-micro-witness-determinism/run-001/`.
|
||||
- Note: follow-up evidence run `run-002` includes additional deterministic replay regression assertions and refreshed artifact/hash logs.
|
||||
- External web fetches: none.
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-02-18: Contract review sign-off (Signals/Scanner/Attestor/Evidence Locker owners).
|
||||
- 2026-02-21: MWD-001 and MWD-002 implementation readiness checkpoint.
|
||||
- 2026-02-25: First end-to-end deterministic replay demo with DSSE + Sigstore witness bundle.
|
||||
Reference in New Issue
Block a user