App server processes submission in plaintext partially mitigated

THREAT109 · Partially mitigated: Some controls are in place, but the risk is still too high. · Defined in catalog.py:1898

Risk
High impact × Low likelihood = 6 medium
After mitigations
High impact × Low likelihood = 6 medium (unchanged)

How statuses and scores work

Should the appserver be compromised, an adversary may be able to access future submissions in unencrypted form

Threat actors: Nation State / Law Enforcement

Mitigations

Mitigation Status
Secure Temporary Wrapper to stream submissions encrypted on disk MITIG69 implemented
Nighly reboot occurs to clear secrets stored in memory MITIG136 implemented

Possible further mitigations

Residual risk

Attacker able to compromise the app server can observe the plaintext of all submissions past the point of compromise.

Where it applies

Applies to 1 component in 2 scenarios.

Source submission · Source Interface
Supply chain and dependencies · Source Interface

Notes

Existing mitigations: Temporary secure file wrapper (symmetric key when file is streamed to disk, prior to re-encrypting with asymmetric submission key) but memory still contains plaintext (MITIG69). Reboot every 24 hours to wipe memory (MITIG136). Further mitigations: User could manually GPG-encrypt the submission with the submission public key prior to uploading it to the SecureDrop instance. In the future, a Tor browser extension to automatically GPG-encrypt submisions client-side (MITIG140). Automated test for mitigation: Yes.

How this threat is matched

Listed for these components. A boundary covers every component inside it.