Slide 1

Slide 1 text

rainforest @rainforestqa Bitcoin + Ops Primer:! Understand your risk Manage attacks

Slide 2

Slide 2 text

@rainforestqa rainforest Rainforest Human powered QA SaaS Designed for ‘Continuous QA’ Built for PMs and Developers

Slide 3

Slide 3 text

@rainforestqa rainforest Us Team of 6 in SoMa All developers YC S12

Slide 4

Slide 4 text

@rainforestqa rainforest Understanding risk

Slide 5

Slide 5 text

rainforest @rainforestqa Understand the trade off More secure generally means more effort

Slide 6

Slide 6 text

@rainforestqa rainforest Risk vs Exposure

Slide 7

Slide 7 text

@rainforestqa rainforest High Risks Hot wallets / key storage Outgoing payments Physically shipped items Reversible payments (e.g. chargebacks)

Slide 8

Slide 8 text

@rainforestqa rainforest …more risks Shared hosting / VPS / “physical” security Staff

Slide 9

Slide 9 text

@rainforestqa rainforest Limiting Exposure Storing keys Hot wallets -> Cold wallets, where poss Principle of least privilege

Slide 10

Slide 10 text

@rainforestqa rainforest What risks?

Slide 11

Slide 11 text

rainforest @rainforestqa Internet connected = hackable (Though, the NSA can spy on you, even if you're not connected to the Internet)

Slide 12

Slide 12 text

@rainforestqa rainforest Top 5 >1k BTC hacks 46k / Linode (Bitcoinica): exploit in admin area / staff —> hotwallet 11k / Bitcoin7: “hacked” 4.5k / BTC-E: Insecure external API key 4k / Kronos: self hack / backdoor 2.6k / Gox 2011: exploit in admin area

Slide 13

Slide 13 text

@rainforestqa rainforest Top 3 reasons:

Slide 14

Slide 14 text

@rainforestqa rainforest Badly configured servers / services

Slide 15

Slide 15 text

@rainforestqa rainforest Poorly written software

Slide 16

Slide 16 text

@rainforestqa rainforest Exploits

Slide 17

Slide 17 text

@rainforestqa rainforest Attack vectors Your service Your customers You & your team

Slide 18

Slide 18 text

@rainforestqa rainforest Your service Domain Email Servers (app, db, etc) Network External services Backups

Slide 19

Slide 19 text

@rainforestqa rainforest Domain DNS hijacking MITM attacks Doppelganger domains / Typo-squatting Renewals

Slide 20

Slide 20 text

@rainforestqa rainforest HSTS Pinning / force-ssl Cloudflare, imho Firewall + IDS

Slide 21

Slide 21 text

@rainforestqa rainforest Email DKIM / SPF Account state Clear email policies Lockout policy

Slide 22

Slide 22 text

@rainforestqa rainforest Servers Shared / VPS / AWS Dedicated Co-lo >

Slide 23

Slide 23 text

@rainforestqa rainforest OS + software updates Automate provisioning Hire pen-testing Have a security program

Slide 24

Slide 24 text

@rainforestqa rainforest Transactions & locking (see Flexcoin / Poloniex)

Slide 25

Slide 25 text

@rainforestqa rainforest Network IDS / IDPS / HIDS Firewall (both ways) -complex-

Slide 26

Slide 26 text

@rainforestqa rainforest External services Verify SSL certs Limit IPs Work out what + who you can trust

Slide 27

Slide 27 text

@rainforestqa rainforest Backups Major security issue Encrypt them Test them

Slide 28

Slide 28 text

@rainforestqa rainforest Your customers Understand their behavior (Progressive) Account limits Policies KYC

Slide 29

Slide 29 text

@rainforestqa rainforest Primer

Slide 30

Slide 30 text

@rainforestqa rainforest Educate yourself

Slide 31

Slide 31 text

@rainforestqa rainforest Pick secure by default tech

Slide 32

Slide 32 text

@rainforestqa rainforest 2FA

Slide 33

Slide 33 text

@rainforestqa rainforest Avoid shared servers

Slide 34

Slide 34 text

@rainforestqa rainforest Honey pots

Slide 35

Slide 35 text

@rainforestqa rainforest Automate deployment

Slide 36

Slide 36 text

@rainforestqa rainforest Use SSH keys, rotate them

Slide 37

Slide 37 text

@rainforestqa rainforest Use a Firewall

Slide 38

Slide 38 text

@rainforestqa rainforest Use an IDS

Slide 39

Slide 39 text

@rainforestqa rainforest Encrypt (and take!) backups

Slide 40

Slide 40 text

@rainforestqa rainforest Subscribe to security lists

Slide 41

Slide 41 text

@rainforestqa rainforest Do as little as possible

Slide 42

Slide 42 text

@rainforestqa rainforest Staff opsec

Slide 43

Slide 43 text

@rainforestqa rainforest Principle of least privilege

Slide 44

Slide 44 text

@rainforestqa rainforest Split your servers

Slide 45

Slide 45 text

@rainforestqa rainforest Or consider LXC / KVM

Slide 46

Slide 46 text

@rainforestqa rainforest Split your app

Slide 47

Slide 47 text

@rainforestqa rainforest Server: partitions + noexec + nosuid split running users disable root remove packages SELinux

Slide 48

Slide 48 text

@rainforestqa rainforest Starting points Figure out your risk + exposure Implement low hanging fruit Reduce surface Plan the rest

Slide 49

Slide 49 text

@rainforestqa rainforest Conclusions Simpler = better Understand your exposure and limit it

Slide 50

Slide 50 text

@rainforestqa rainforest Further reading Hacks: https://bitcointalk.org/index.php?topic=83794.0 Flexcoin: http://hackingdistributed.com/2014/04/06/another-one-bites-the-dust- flexcoin/ Docker: http://www.slideshare.net/jpetazzo/linux-containers-lxc-docker-and- security CVE: http://web.nvd.nist.gov/view/vuln/search?execution=e2s1

Slide 51

Slide 51 text

rainforest @rainforestqa Questions? @rainforestqa @rhs