67
snyk.io Stranger Danger Guy Podjarny, Snyk @guypod

Stranger Danger: Securing Third Party Components (Tech2020)

Embed Size (px)

Citation preview

Page 1: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Stranger DangerGuy Podjarny, Snyk

@guypod

Page 2: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Open Source Is AwesomeShare Your Work

Reuse What Others Built Focus on Creating Your Own New Thing

Page 3: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Open Source Usage Has Exploded

Page 4: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

78% of Enterprisesuse Open Source

Page 5: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Is Security a Concern When Adopting OSS?

Number 1 concern: 13% Number 2 concern: 29% Number 3 concern: 21%

(Total: 63%)

Source: Wipro

Page 6: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Open Source != Closely Inspected

Page 7: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Open Source != SecureOpen Source != Insecure Either!

Page 8: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Heartbleed

Page 9: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Shellshock

Page 10: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Logjam

Page 11: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Open Source is Less Tested For Security

OS Project Owners not aware/budgeted for security OS consumers not engaged/aware of code

Page 12: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Attackers Are Targeting Open Source

One vulnerability, many victims

Page 13: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

How Do We Consume OSS?

Page 14: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

2000: Select Open Source Providers

Apache, Linux, IBM, OpenSSL…

Page 15: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

2015: Open Source Marketplaces

Everybody is a provider

Page 16: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Ubuntu apt:~54,000 packages

(trusty/LTS 14)

Page 17: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Docker Hub:~150,000 repos

~150M pulls (to-date)

Page 18: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Node.js npm:~250,000 packages

~10M downloads/day

Page 19: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Your App

Page 20: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Your Code

Your App

Page 21: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Each Dependency Is A Security Risk

Page 22: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Do You Know Which Dependencies

You Have?

Page 23: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Do you know, for EVERY SINGLE DEPENDENCY

if its developers have any

Security Expertise?

Page 24: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Do you know, for EVERY SINGLE DEPENDENCY

if it went through any

Security Testing?

Page 25: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Do you know, for EVERY SINGLE DEPENDENCY

if it has

Known Vulnerabilities?

Page 26: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

~30% of Docker Hub images carry

Known Vulnerabilities High Priority known vulnerabilites, to be exact

Source: BanyanOps Analysis

Page 27: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

~14% of npm Packages Carry Known Vulnerabilities

~80% of Snyk users found vulns in their apps

Source: Snyk data, Mar 2016

Page 28: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

~59% of Reported Vulnerabilities in Maven Packages Remain Unfixed Mean Time to Repair: 390 days

MTTR for CVSS 10: 265 days

Source: Josh Corman & Dan Geer

Page 29: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Do You Have Known Vulnerabilities In Your Code?

Do you even know?

Page 30: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

What Can You Do?

Page 31: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Not Use Third Parties

Page 32: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Third PartyBinaries

Third PartyCode

Page 33: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

1. Track & Update Your Dep’s

Page 34: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Aptitude-based (Ubuntu, Debian, etc): dpkg -l RPM-based (Fedora, RHEL, etc): rpm -qa

pkg*-based (OpenBSD, FreeBSD, etc): pkg_info Portage-based (Gentoo, etc): equery list or eix -I

pacman-based (Arch Linux, etc): pacman -Q Cygwin: cygcheck --check-setup --dump-only *

Slackware: slapt-get --installed

http://unix.stackexchange.com/questions/20979/how-do-i-list-all-installed-programs

Tracking Outdated Binaries

Page 35: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Node/Rubynpm/bundle outdated

Track Outdated Code(command line)

Python pip list --outdated

Java Maven Dep's Plugin

Page 36: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Track Outdated Code(SaaS)

GreenKeeper (Node.js) Gemnasium (Ruby)

Requires.io (Python)Libraries.io (all)

Page 37: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

1. Know What You’re Using 2. Drop What You Don’t Need

Page 38: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Find Unused Binaries (sort by last use date)

UbuntuUnusedPkg

Fedora rpmusage

Page 39: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Find Unused Code(show unreferenced packages)

Node.js depcheck

Rubygem stale

Java Maven Dep's Plugin

Page 40: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

1. Know What You’re Using 2. Drop What You Don’t Need

3. Find & Fix Current Vulns

Page 41: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Find Known Vulnerabilitiesin Binaries

(by checking security updates)

Ubuntu usn

Auto Sec Updates

Fedora yum security

Auto Sec Updates

Page 42: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Find Known Vulnerabilitiesin Code

(Looking in vuln DB, upgrade to fix)

Client Side JS RetireJS

Ruby rubysec

Java OWASP Dep's Check

Page 43: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Find & Fix Known Vulnerabilities

in npm dep’s

Page 44: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

To Fix, Upgrade Could be hard for

indirect dependencies

Page 45: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Can’t Upgrade? You can: - Drop The Dependency - Apply a security patch

- Prevent Exploits via WAF rules

Page 46: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Test for Known Vulnerabilities in Build (CI) & Deploys (CD)

Page 47: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

1. Know What You’re Using 2. Drop What You Don’t Need

3. Find & Fix Current Vulns4. Monitor For New Vulns

Page 48: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Newly Disclosed Vulnerabilities Are Found On Old Code

Page 50: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Snyk Monitor

Page 51: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

1. Know What You’re Using 2. Drop What You Don’t Need

3. Find & Fix Current Vulns4. Monitor For New Vulns

5. Stay Alert

Page 52: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

The Risk Doesn’t End withKnown Vulnerabilities

Page 53: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Your Code

Your App

Page 54: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

npm has 65,000+ publishers

Page 55: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Do you know, for EVERY SINGLE CONTRIBUTOR

if they’ve been…

Compromised?

Page 56: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Developers are targeted as a Distribution Channel

Ex: iOS Malware via Xcode Ghost

Page 57: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Do you know, for EVERY SINGLE CONTRIBUTOR

if they are…

MALICIOUS?

Page 58: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Open Source Maintenance is… complicated.

Page 59: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

If one component was evil, Would you know?

Page 60: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Isolate each system

Page 61: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

use low-privilege users

Page 62: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Monitor Outbound Communication

Page 63: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Don’t Trust Your Own AppTo the extent you can…

Page 64: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Stay Alert

Page 65: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

1. Know What You’re Using 2. Drop What You Don’t Need

3. Find & Fix Current Vulns4. Monitor For New Vulns

5. Stay Alert

Page 66: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Open Source Is Awesome

Page 67: Stranger Danger: Securing Third Party Components (Tech2020)

snyk.io

Open Source Is AwesomePlease Enjoy Responsibly

Questions? Guy Podjarny, Snyk

@guypod