Side-channel analysis or exfiltration of GPG keys or other sensitive data partially mitigated
THREATQW29
· Partially mitigated: Some controls are in place, but the risk is still too high.
· Defined in catalog.py:3434
- Risk
- High impact × Low likelihood = 6 medium
- After mitigations
- High impact × Low likelihood = 6 medium (unchanged)
Code in any VM may obtain information about the underlying host, and perform side-channel analysis (e.g. cryptanalysis via power/cpu/acoustic cryptanalysis to obtain submission key.)
Threat actors: Nation State / Law Enforcement
Mitigations
| Mitigation | Status |
|---|---|
| Use non-networked disposible VMs for opening all decrypted files. MITIGQW18 | implemented |
Where it applies
Applies to 9 components in 3 scenarios.
- sd-app (SecureDrop Client)
- sd-devices (export and print)
- sd-gpg
- sd-log
- sd-proxy
- sd-viewer (disposable VMs)
- sys-firewall
- sys-net
- sys-usb
Workstation: reading submissions · sd-app (SecureDrop Client), sd-proxy, sys-firewall, sys-net, sd-gpg, sd-viewer (disposable VMs), sd-log
Workstation: export and print · sd-app (SecureDrop Client), sd-devices (export and print), sys-usb, sd-viewer (disposable VMs), sd-log
Notes
In scope for audit: No. Existing mitigations: Display VM (sd-viewer) is a disposable VM and is recreated for each submission (MITIGQW18), Qubes uses Xen-based PVH virtualization for VMs. Display VM, App VM, and GPG VM do not have network access. Further mitigations: Strip down hardware to reduce likelihood of side-channel exfiltration: (remove wireless cards and used wired LAN, inpug/desolder microphones and disconnect speakers). Decrease the time the VM is allowed to request decryption from the sd-gpg VM, or change the RPC policy to always ask: side channel attacks reconstructing private keys require many. Display VM is denied access to mic. decryptions (Genken, Shamir & Tromer 2013 was a CCA attack that required ~30k ciphertexts = an hour to reconstruct a 4096-bit RSA GPG key).
How this threat is matched
Listed for these components. A boundary covers every component inside it.