STRIDE across the four capture modes and the federated mirror architecture, plus the residual risks.
Status Pivot completed 2026-05-26Sourceconcept/threat-model.mdAudience Security · Architecture · Mirror operatorsReading time ~6 min
A STRIDE-based threat analysis of the four capture modes and the federated mirror architecture. For each component, threats are identified, mitigations named, and their effect on residual risk (see 03-risikoprofil.md) linked.
An attacker registers a "pseudo mirror" with forged aggregates
A federation registry with signature confirmation; on suspicion of an eclipse, disclosure in the mirror's own status endpoint. Risk: M-2-2.
T Tampering
An insider changes aggregates retroactively
Append-only log (Sigstore Rekor); manipulation would break the hash chain and is visible across mirrors.
R Repudiation
A mirror claims not to have received a submission
The submitter keeps the submission_hash locally; a gossip diff reveals the eclipse.
I Disclosure
Research attack: mosaic re-identification from aggregates
k-anon thresholds (k=5, k=25), DP noise in phase 2 (see the ZK building block), minimum cohort size. Risk: D-2-1.
D DoS
Sybil submissions flood the mirror
Rate limit per DID at the ingress (ADR-v2-0007: ≤ 24 submissions/DID/24 h for modes A/B/C); exceeding it → 429before acceptance, no audit log entry, and the aggregate stays in the submitter's egress buffer to be sent again. Plus cross-mode plausibility (track A vs. D) and burn-in for new DIDs. Proof of work is rejected with reasons in ADR-v2-0007. Risk: M-2-1.
E EoP
Malicious code in the mirror stack obtains write access to the aggregate store
Container isolation, signed releases, regular audits (Apache-2.0 open-source stack).
Even without PII fields, aggregates can identify people — mosaic inference is the primary attack vector:
Niche project + small cohort:pkg:npm/very-specific-tool has only 3 maintainers; even k=5 runtime sessions plausibly point at one person.
Correlation attack: a vendor with its own CRM data can cross-reference a reach snapshot with its customer metrics in order to de-anonymise individual end users.
Mitigations:
k_min = 5 as the lower bound, k_min = 25 for modes B/C because of the end-user depth.
A ban on combined cohort_id multi-axes that would effectively yield k=1 (e.g. region × OS × runtime-band).
DP noise (Laplace mechanism, ε ≤ 0.5) for particularly sensitive metrics in phase 2.
A research disclosure policy: every Open Data publication carries a statement on re-identification risk.
End-device compromise: if the host is already infected with malware, modes A/B are not trustworthy anyway. Protecting the device is a matter for the OS and AV.
Maintainer identity theft: whoever holds the maintainer key can sign. Key rotation and a hardware key (YubiKey or similar) are the maintainer's duty.
Upstream supply-chain attack: if npm install already ships a manipulated binary, that is an SBOM / supply-chain problem, not in Prometheus scope.