Improving the SecureDrop System Architecture heartsucker SecureDrop - - PowerPoint PPT Presentation

improving the securedrop system architecture
SMART_READER_LITE
LIVE PREVIEW

Improving the SecureDrop System Architecture heartsucker SecureDrop - - PowerPoint PPT Presentation

Improving the SecureDrop System Architecture heartsucker SecureDrop Maintainer FOSDEM 2018 SecureDrop Release Signing Key Fingerprint: 2224 5C81 E3BA EB41 38B3 6061 310F 5612 00F4 AD77 SecureDrop is an open-source whistleblower submission


slide-1
SLIDE 1

Improving the SecureDrop System Architecture

heartsucker

SecureDrop Maintainer

FOSDEM 2018

SecureDrop Release Signing Key Fingerprint: 2224 5C81 E3BA EB41 38B3 6061 310F 5612 00F4 AD77

slide-2
SLIDE 2

SecureDrop is an open-source whistleblower submission system that media organizations can use to securely accept documents from and communicate with anonymous sources.

slide-3
SLIDE 3

picture of all the presidents men

In the past, journalists could protect their sources by simply not revealing their identities when asked.

Still from “All the Presidents Men”, a film adaptation of Carl Bernstein and Bob Woodward’s reporting on the Watergate break-in
slide-4
SLIDE 4
slide-5
SLIDE 5
slide-6
SLIDE 6 GCHQ surveillance base in Bude, UK. Image credit: Trevor Paglen

Threat Model

slide-7
SLIDE 7

What are we trying to protect? Source Anonymity Document Confidentiality

slide-8
SLIDE 8

Who do we want to protect it from?

Nation States Large Corporations Local Law Enforcement & Government

EVERYONE

slide-9
SLIDE 9

What are their capabilities?

Intercept Network Traffic Hack Into the Servers Send Agents to Seize Hardware

EVERYTHING

Submit Malware to Journalists via SecureDrop

slide-10
SLIDE 10 Image: Guram Mikaberidze
slide-11
SLIDE 11

Current State of SecureDrop

slide-12
SLIDE 12 App Server Monitor Server Firewall Journalist Source Secure Viewing Station
slide-13
SLIDE 13

Develop, Deliver, Deploy

  • 1. Write a feature
  • 2. Write tests
  • a. Unit tests
  • b. Functional tests w/ Selenium
  • c. Multi-stage tests with Molecule
  • 3. Write docs
  • 4. Mandatory code review for all developers
  • 5. Automated testing with CircleCI
  • a. Linting
  • b. Unit & functional tests
  • c. Debian packaging, test deployment scripts
  • 6. Manual testing of release candidates
  • 7. Publish packages to apt repo

NOTHING SPECIAL HERE

slide-14
SLIDE 14
slide-15
SLIDE 15

Failures and Fixes

slide-16
SLIDE 16
slide-17
SLIDE 17

What went wrong

  • Root cause: Nautilus allowing .desktop files to execute arbitrary code
  • SVS is not a true airgap

○ dirty USBs to Journalist Workstation ○ USBs to publishing/editing workstation

  • Failure to adhere to principle of least privilege / imperfect isolation

○ GPG keys accessible by untrusted files

slide-18
SLIDE 18
slide-19
SLIDE 19 Internet-connected VM Disposable VM not connected to the internet Journalist Workstation
slide-20
SLIDE 20
slide-21
SLIDE 21

:(

slide-22
SLIDE 22
slide-23
SLIDE 23
slide-24
SLIDE 24
slide-25
SLIDE 25

Localization

  • Code changes
  • Dependency changes
  • Build update to support translations
  • Weblate for external translators
  • String freezes in preparation for a release
slide-26
SLIDE 26
slide-27
SLIDE 27
slide-28
SLIDE 28
slide-29
SLIDE 29
slide-30
SLIDE 30
slide-31
SLIDE 31

Postgres Alembic Flask-SQLAlchemy pytest Source App Refactor Journalist App Refactor

slide-32
SLIDE 32
slide-33
SLIDE 33

App Server

slide-34
SLIDE 34

App Server

Gateway Source App Journalist App Database Workstation

slide-35
SLIDE 35

Open Questions & Research

slide-36
SLIDE 36
slide-37
SLIDE 37
slide-38
SLIDE 38

TODO SD is super boring to write and it’s bs grunt work but the end resutl is super important

slide-39
SLIDE 39

can prevent press freedom violations.

slide-40
SLIDE 40

Current SecureDrop Team

Ford-Mozilla Open Web Fellow

+ contributors

prototyping next generation SecureDrop workstation

slide-41
SLIDE 41

Come join us!

  • Please come and talk to one of us after if you are interested in helping out!
  • Translation: https://weblate.securedrop.club
  • Code and documentation:
  • https://github.com/freedomofpress/securedrop
  • https://github.com/freedomofpress/securedropworkstation
  • Chat with us:
  • https://forum.securedrop.club (forum)
  • https://gitter.im/freedomofpress/securedrop (team chat)
  • securedrop@freedom.press
  • Donate: https://securedrop.org/donate
  • Follow: @SecureDrop and @FreedomOfPress
slide-42
SLIDE 42

Contact

heartsucker@freedom.press 0CEC 9368 88A6 0171 4611 74C5 C0A2 586F 09D7 7C82