Scenario: Source submission

Defined in model.py:482

Anonymous source submits over Tor; app encrypts and stores it.

5 open threats, highest risk 9 high · 30 threats in all · 5 data flows · 4 affected components

Data Flow Diagram

Sequence Diagram

Show data flows
ID Name Source Sink Type
1 Submit over Tor Source Dedicated Hardware Firewall Request
2 Reach Source Interface Dedicated Hardware Firewall Source Interface Request
3 Hand to app Source Interface SecureDrop Application Request
4 Encrypt & store SecureDrop Application Encrypted submission store Request
5 Record metadata SecureDrop Application Metadata DB Request

Applicable threats

Threat Component Status Risk After mitigations Mitigations
Configuration vulnerability in Source interface THREAT5 SecureDrop Application partially mitigated 9 high 9 high Config managed by securedrop-client sdconfig CLI tool
Application-server DDoS THREAT148 Source Interface accepted 8 high 8 high
Application server configuration error THREAT169 SecureDrop Application partially mitigated 9 high 6 medium Use of Ansible for configuration management for servers
Configuration vulnerability in Journalist interface THREAT9 SecureDrop Application mitigated 6 medium 6 medium Config managed by securedrop-client sdconfig CLI tool
Unknown vulnerabilities in Python or libraries used by SecureDrop THREAT38 Source Interface accepted 6 medium 6 medium AppArmor on Tor; AppArmor on Apache; Use of grsecurity-hardened kernels on servers; Use of OSSEC monitoring software
Admin modifies Source interface Application code THREAT104 Source Interface accepted 6 medium 6 medium
Application server full of submissions THREAT108 Encrypted submission store partially mitigated 6 medium 6 medium SecureDrop submissions limited to 500 MB; Source interface only available as a Tor onion service; OSSEC alert sent when server almost full
App server processes submission in plaintext THREAT109 Source Interface partially mitigated 6 medium 6 medium Secure Temporary Wrapper to stream submissions encrypted on disk; Nighly reboot occurs to clear secrets stored in memory
Website fingerprinting of source interface THREAT137 Source Interface transferred 6 medium 6 medium
Source submits large / invalid messages THREAT166 Source Interface mitigated 12 high 4 medium Forms use WTForms validators; Source interface only available as a Tor onion service
File and resource vulnerability in Source interface THREAT25 Source Interface mitigated 9 high 4 medium No external URL redirection; Untrusted uploaded data is directly encrypted and not executed
Firewall not up to date THREAT47 Dedicated Hardware Firewall inform 8 high 4 medium Restrictive iptables rules on servers; Admins instructed to subscribe to RSS feed
Business logic vulnerability in Source interface THREAT24 Source Interface mitigated 6 medium 4 medium Simple source interface application logic
Authentication vulnerability in Source interface THREAT10 Source Interface mitigated 4 medium 4 medium Source codename is 7 word diceware passphrase; Source codenames stored hashed in the database; No source codename reset functionality; Sources instructed to delete journalist replies after they read them; Source account does not display their submitted documents
Access control vulnerability in Source interface THREAT11 Source Interface mitigated 4 medium 4 medium Source codename is 7 word diceware passphrase; Source interface: Has a single role; CSRF from Flask used; Apache autoindex module disabled
Data protection vulnerability in Source interface THREAT12 Source Interface mitigated 4 medium 4 medium Secure Temporary Wrapper to stream submissions encrypted on disk; Use of strong encryption key for encrypted documents; Logging off for source interface; Source interface: Cache-Control nostore; Sensitive data sent in POST requests
Communications vulnerability in Source interface THREAT16 Source Interface mitigated 4 medium 4 medium Source interface only available as a Tor onion service; Support for HTTPS on source interface
Session management vulnerability in Source interface THREAT19 Source Interface mitigated 4 medium 4 medium Use of Flask session management; Session timeout on both interfaces; All session data deleted upon logout except language so the logout messages can be localized; Sources instructed to restart browser or clear the session to delete session cookie
Malicious input vulnerability in Source interface THREAT20 Source Interface mitigated 4 medium 4 medium Tor security slider set to high; X-XSS-protection, CSP set to self; SQLAlchemy as an ORM; Use of Flask/Jinja for templating escaping
Failure to encrypt submissions as they are written to disk THREAT21 Source Interface mitigated 4 medium 4 medium Logging off for source interface
Error handling and logging vulnerability in Source interface THREAT22 Source Interface mitigated 4 medium 4 medium Debugging is disabled; Logging off for source interface
HTTP security configuration vulnerability in Source interface THREAT23 SecureDrop Application mitigated 4 medium 4 medium Only GET, POST, HEAD, (DELETE for JI) HTTP methods allowed; HTTP headers do not expose version information; Source interface: X-Content-Type-Options: nosniff; X-XSS-protection, CSP set to self
HTTP security configuration vulnerability in Journalist interface THREAT27 SecureDrop Application mitigated 4 medium 4 medium Only GET, POST, HEAD, (DELETE for JI) HTTP methods allowed; HTTP headers do not expose version information; Journalist interface: X-Content-Type-Options: nosniff; X-XSS-protection, CSP set to self
Firewall logs are not monitored THREAT149 Dedicated Hardware Firewall inform 4 medium 4 medium
Hardware Firewall Supply chain attack THREAT150 Dedicated Hardware Firewall accepted 4 medium 4 medium Source interface only available as a Tor onion service; Journalist interface only available as a Tor onion service; Admin interface traffic goes over Tor; apt performs GPG signature verification as long as it's not explicitly disabled; Restrictive iptables rules on servers
Submission interface is framed THREAT32 Source Interface mitigated 6 medium 3 low X-FRAME-OPTIONS DENY HTTP header
Web services vulnerability in Source interface THREAT30 Source Interface mitigated 4 medium 2 low Minimal information exposed on Source Interface API endpoints
Vulnerabilities/Compromise of Hardware Firewall THREAT48 Dedicated Hardware Firewall mitigated 4 medium 2 low apt performs GPG signature verification as long as it's not explicitly disabled; Restrictive iptables rules on servers; Admins instructed to subscribe to RSS feed; app, mon server cannot access admin interface of hardware firewall; Source interface only available as a Tor onion service; Journalist interface only available as a Tor onion service
Hardware Firewall Misconfiguration THREAT49 Dedicated Hardware Firewall mitigated 4 medium 2 low Restrictive iptables rules on servers
Impersonation/clone of SecureDrop Instance to phish sources/journalists THREAT173 Source Interface unmanaged Unknown Unknown

Back to Summary