Vulnerabilities maliciously introduced in python libraries partially mitigated
THREAT86
· Partially mitigated: Some controls are in place, but the risk is still too high.
· Defined in catalog.py:1491
- Risk
- High impact × Medium likelihood = 9 high
- After mitigations
- High impact × Medium likelihood = 9 high (unchanged)
An attacker could maliciously introduce vulnerabilities in the code used by Python dependencies of SecureDrop.
Threat actors: Any
Mitigations
| Mitigation | Status |
|---|---|
| Dependencies are kept to a minimum and only commonly used dependencies are used in SecureDrop MITIG92 | implemented |
| Hashes of dependencies are stored in source control. MITIG93 | implemented |
| Python wheels rebuilt from source tarballs at debian package build time. MITIG94 | implemented |
Possible further mitigations
- Diff and changelog review performed on Python dependencies when they are updated. MITIG95 proposed
- Scan / static analysis against Python dependency source code MITIG243 proposed
Where it applies
Applies to 1 component in 1 scenario.
Supply chain and dependencies · SecureDrop source repository
Notes
Existing mitigations: SecureDrop uses the least amount of Python packages as possible (MITIG92). Hashes are pinned in requirements files (MITIG93) and used at wheel build-time to validate integrity of upstream source tarballs (MITIG94). Further mitigations: Investigate a more formalized peer-review process for the inclusion of pip packages in SecureDrop app code. Diff review performed when packages are updated (MITIG95). Run static analysis and scanning to dependency source code (MITIG243). Automated test for mitigation: No.
How this threat is matched
Listed for these components. A boundary covers every component inside it.