SlideShare une entreprise Scribd logo
1  sur  101
LONDON 18-19 OCT 2018
Introducing Salus: How Coinbase
Scales Security Automation
LONDON 18-19 OCT 2018
Julian Borrey, Security @ Coinbase
LONDON 18-19 OCT 2018
A story of scaling security
LONDON 18-19 OCT 2018
A story of scaling security
“100% of services deployed to production must have a security scan.”
LONDON 18-19 OCT 2018
A story of scaling security
“100% of services deployed to production must have a security scan.”
LONDON 18-19 OCT 2018
A story of scaling security
“100% of services deployed to production must have a security scan.”
I join
&
Multi-service
LONDON 18-19 OCT 2018
Overview
● Review of security scanners
LONDON 18-19 OCT 2018
Overview
● Review of security scanners
● Problems with security scanners at scale
LONDON 18-19 OCT 2018
Overview
● Review of security scanners
● Problems with security scanners at scale
● What Salus does and how Salus works
LONDON 18-19 OCT 2018
Overview
● Review of security scanners
● Problems with security scanners at scale
● What Salus does and how Salus works → free, no vendors/accounts
LONDON 18-19 OCT 2018
Overview
● Review of security scanners
● Problems with security scanners at scale
● What Salus does and how Salus works → free, no vendors/accounts
● Salus details
○ Configuration
○ Custom scanners
○ Metrics & reporting
LONDON 18-19 OCT 2018
Overview
● Review of security scanners
● Problems with security scanners at scale
● What Salus does and how Salus works → free, no vendors/accounts
● Salus details
○ Configuration
○ Custom scanners
○ Metrics & reporting
● Pointers to source code & more resources
LONDON 18-19 OCT 2018
Software Scanners
LONDON 18-19 OCT 2018
Software Scanners
A scanner is software that analyses other software.
LONDON 18-19 OCT 2018
Software Scanners
A scanner is software that analyses other software.
Source Code
LONDON 18-19 OCT 2018
Software Scanners
A scanner is software that analyses other software.
ScannerSource Code
LONDON 18-19 OCT 2018
Software Scanners
A scanner is software that analyses other software.
Scanner
Pass
Fail
Source Code
LONDON 18-19 OCT 2018
Software Scanners
A scanner is software that analyses other software.
Scanner
Pass
Fail
Source Code
LONDON 18-19 OCT 2018
Software Scanners
Linter - checks syntax follows certain policies.
LONDON 18-19 OCT 2018
Software Scanners
Linter - checks syntax follows certain policies.
LONDON 18-19 OCT 2018
Software Scanners
Linter - checks syntax follows certain policies.
Rubocop
(Ruby Linter)
LONDON 18-19 OCT 2018
Software Scanners
Linter - checks syntax follows certain policies.
Rubocop
(Ruby Linter)
LONDON 18-19 OCT 2018
Software Scanners
Linter - checks syntax follows certain policies.
Rubocop
(Ruby Linter)
LONDON 18-19 OCT 2018
Security Scanners
CVE scanner - looks for known vulnerabilities in dependencies
LONDON 18-19 OCT 2018
Security Scanners
CVE scanner - looks for known vulnerabilities in dependencies
CVE = Common Vulnerability Enumeration -
some documented vulnerability
LONDON 18-19 OCT 2018
Security Scanners
CVE scanner - looks for known vulnerabilities in dependencies
LONDON 18-19 OCT 2018
Security Scanners
CVE scanner - looks for known vulnerabilities in dependencies
LONDON 18-19 OCT 2018
Security Scanners
CVE scanner - looks for known vulnerabilities in dependencies
BundlerAudit
LONDON 18-19 OCT 2018
Security Scanners
CVE scanner - looks for known vulnerabilities in dependencies
BundlerAudit
LONDON 18-19 OCT 2018
Security Scanners
CVE scanner - looks for known vulnerabilities in dependencies
BundlerAudit
LONDON 18-19 OCT 2018
Security Scanners
Scanners are important:
LONDON 18-19 OCT 2018
Security Scanners
Scanners are important:
● Powerful - can search huge CVE databases
LONDON 18-19 OCT 2018
Security Scanners
Scanners are important:
● Powerful - can search huge CVE databases
Verizon Data Breach Investigations Report, 2015
LONDON 18-19 OCT 2018
Security Scanners
Scanners are important:
● Powerful - can search huge CVE databases
Verizon Data Breach Investigations Report, 2018
Verizon Data Breach Investigations Report, 2015
LONDON 18-19 OCT 2018
Security Scanners
Scanners are important:
● Powerful - can search huge CVE databases
● Some anti-patterns are obvious and scanners can do
the job. E.g. using `eval()` on user controlled input.
LONDON 18-19 OCT 2018
Security Scanners
Scanners are important:
● Powerful - can search huge CVE databases
● Some anti-patterns are obvious and scanners can do
the job. E.g. using `eval()` on user controlled input.
● Not fatigued like humans
LONDON 18-19 OCT 2018
Security Scanners
Scanners are important:
● Powerful - can search huge CVE databases
● Some anti-patterns are obvious and scanners can do
the job. E.g. using `eval()` on user controlled input.
● Not fatigued like humans
● Can run on every build round the clock
LONDON 18-19 OCT 2018
Security Scanners
Scanners are important:
● Powerful - can search huge CVE databases
● Some anti-patterns are obvious and scanners can do
the job. E.g. using `eval()` on user controlled input.
● Not fatigued like humans
● Can run on every build round the clock
● Not silver bullets, use in tandem with human review
LONDON 18-19 OCT 2018
How might you deploy a scanner?
LONDON 18-19 OCT 2018
How might you deploy a scanner?
● Execute the scanner manually.
$ cd /path/to/repo
$ bundle-audit check
LONDON 18-19 OCT 2018
How might you deploy a scanner?
● Execute the scanner manually.
$ cd /path/to/repo
$ bundle-audit check
Name: activesupport
Version: 3.2.10
Advisory: CVE-2013-1856
Criticality: High
URL: http://www.osvdb.org/show/osvdb/91451
Title: XML Parsing Vulnerability affecting JRuby users
Solution: upgrade to ~> 3.1.12, >= 3.2.13
LONDON 18-19 OCT 2018
How might you deploy a scanner?
● Execute the scanner manually.
● Could be slightly better with pre-commit hook
$ cd /path/to/repo
$ bundle-audit check
Name: activesupport
Version: 3.2.10
Advisory: CVE-2013-1856
Criticality: High
URL: http://www.osvdb.org/show/osvdb/91451
Title: XML Parsing Vulnerability affecting JRuby users
Solution: upgrade to ~> 3.1.12, >= 3.2.13
LONDON 18-19 OCT 2018
How might you deploy a scanner?
● Run the scanner in the CI/CD pipeline via the repo’s test suite.
LONDON 18-19 OCT 2018
How might you deploy a scanner?
● Run the scanner in the CI/CD pipeline via the repo’s test suite.
LONDON 18-19 OCT 2018
● Run the scanner in the CI/CD pipeline via the repo’s test suite.
How might you deploy a scanner?
developer
LONDON 18-19 OCT 2018
● Run the scanner in the CI/CD pipeline via the repo’s test suite.
How might you deploy a scanner?
developer source control
LONDON 18-19 OCT 2018
● Run the scanner in the CI/CD pipeline via the repo’s test suite.
How might you deploy a scanner?
developer source control CI servers
LONDON 18-19 OCT 2018
● Run the scanner in the CI/CD pipeline via the repo’s test suite.
How might you deploy a scanner?
developer source control CI servers
AWS / GCP
/ etc
production servers
LONDON 18-19 OCT 2018
How might you deploy a scanner?
...
“100% of services deployed to production must have a security scan.”
LONDON 18-19 OCT 2018
Upgrading the fleet
LONDON 18-19 OCT 2018
Upgrading the fleet
● Have to make M x N code changes.
LONDON 18-19 OCT 2018
Upgrading the fleet
● Have to make M x N code changes.
● Want to avoid asking the service owners:
○ Lots of work to keep asking for this.
○ Requires a fair bit of context to understand
the tool and configure it correctly.
LONDON 18-19 OCT 2018
Upgrading the fleet
● Have to make M x N code changes.
● Want to avoid asking the service owners:
○ Lots of work to keep asking for this.
○ Requires a fair bit of context to understand
the tool and configure it correctly.
● So do it yourself?
LONDON 18-19 OCT 2018
Upgrading the fleet
● Have to make M x N code changes.
● Want to avoid asking the service owners:
○ Lots of work to keep asking for this.
○ Requires a fair bit of context to understand
the tool and configure it correctly.
● So do it yourself?
LONDON 18-19 OCT 2018
"All problems in computer science can be solved
by another level of indirection." - David Wheeler
LONDON 18-19 OCT 2018
Enter Salus
"All problems in computer science can be solved
by another level of indirection." - David Wheeler
LONDON 18-19 OCT 2018
How might you deploy a scanner?
Run Latest
Salus
Container
● Run the scanner in the CI/CD pipeline via the repo’s test suite.
LONDON 18-19 OCT 2018
What is Salus
LONDON 18-19 OCT 2018
What is Salus
$ docker run --rm -t -v $(pwd):/home/repo coinbase/salus
LONDON 18-19 OCT 2018
What is Salus
$ docker run --rm -t -v $(pwd):/home/repo coinbase/salus
● docker run
● --rm
● -t
● -v $(pwd):/home/repo
● coinbase/salus
LONDON 18-19 OCT 2018
What is Salus
LONDON 18-19 OCT 2018
Ruby app in container:
How Salus works
LONDON 18-19 OCT 2018
Ruby app in container:
● Initializes with configuration (more on this later)
How Salus works
LONDON 18-19 OCT 2018
Ruby app in container:
● Initializes with configuration (more on this later)
● Loops through each scanner
○ Ruby app? → run `bundle-audit check`
○ Rails app? → run `brakeman`
○ Node app? → run `npm audit`
How Salus works
LONDON 18-19 OCT 2018
Ruby app in container:
● Initializes with configuration (more on this later)
● Loops through each scanner
○ Ruby app? → run `bundle-audit check`
○ Rails app? → run `brakeman`
○ Node app? → run `npm audit`
● Compiles report, prints to STDOUT and HTTP post
How Salus works
LONDON 18-19 OCT 2018
Ruby app in container:
● Initializes with configuration (more on this later)
● Loops through each scanner
○ Ruby app? → run `bundle-audit check`
○ Rails app? → run `brakeman`
○ Node app? → run `npm audit`
● Compiles report, prints to STDOUT and HTTP post
● Exits !0 if issues are found (which could fail CI)
How Salus works
LONDON 18-19 OCT 2018
Why is Salus useful?
● Have to make M x N code changes.
LONDON 18-19 OCT 2018
Why is Salus useful?
● Have to make M x N code changes.
● Make 1 code change.
LONDON 18-19 OCT 2018
Why is Salus useful?
Latest Salus
Pass
Fail
Source Code
Container Registry or
Configuration Host
LONDON 18-19 OCT 2018
Why is Salus useful?
Latest Salus
Pass
Fail
Source Code
Container Registry or
Configuration Host
LONDON 18-19 OCT 2018
Why is Salus useful?
LONDON 18-19 OCT 2018
Why is Salus useful?
LONDON 18-19 OCT 2018
Salus Configuration
LONDON 18-19 OCT 2018
Salus Configuration
● Salus has a bunch of scanners:
○ BundlerAudit
○ Brakeman
○ npm audit
○ PatternSearch (grep)
LONDON 18-19 OCT 2018
Salus Configuration
● Salus has a bunch of scanners:
○ BundlerAudit
○ Brakeman
○ npm audit
○ PatternSearch (grep)
● You can choose what fails a Salus run → leads to !0 exit status
(useful for CI pipelines to fail)
LONDON 18-19 OCT 2018
Salus Configuration
● Salus has a bunch of scanners:
○ BundlerAudit
○ Brakeman
○ npm audit
○ PatternSearch (grep)
● You can choose what fails a Salus run → leads to !0 exit status
(useful for CI pipelines to fail)
● Each scanner could also be customized
LONDON 18-19 OCT 2018
Salus Configuration
● Salus has a bunch of scanners:
○ BundlerAudit
○ Brakeman
○ npm audit
○ PatternSearch (grep)
● You can choose what fails a Salus run → leads to !0 exit status
(useful for CI pipelines to fail)
● Each scanner could also be customized
● Salus has a --config flag
LONDON 18-19 OCT 2018
Salus Configuration
● Config can also be provided via:
○ A salus.yaml file in the repository’s root will be automatically parsed.
○ URI in the environment variable SALUS_CONFIGURATION
docker run 
--rm 
-v $(pwd):/home/repo 
coinbase/salus --config file://tests/salus.yaml
LONDON 18-19 OCT 2018
Salus Configuration
LONDON 18-19 OCT 2018
Salus Configuration
● For global security policies that every repository should follow, use a remote URI.
docker run 
--rm 
-v $(pwd):/home/repo 
coinbase/salus --config https://internal.net/salus.yaml
LONDON 18-19 OCT 2018
Salus Configuration
● For global security policies that every repository should follow, use a remote URI.
● Especially useful for testing out new security policies before enforcing them.
docker run 
--rm 
-v $(pwd):/home/repo 
coinbase/salus --config https://internal.net/salus.yaml
LONDON 18-19 OCT 2018
Salus Configuration
● But what if we need to allow an exception to the global policy for just one repo?
docker run 
--rm 
-v $(pwd):/home/repo 
coinbase/salus --config https://internal.net/salus.yaml
LONDON 18-19 OCT 2018
Salus Configuration
● But what if we need to allow an exception to the global policy for just one repo?
● You can concatenate configuration files to allow for local customization.
docker run 
--rm 
-v $(pwd):/home/repo 
coinbase/salus --config “https://internal.net/salus.yaml
file://tests/salus.yaml”
LONDON 18-19 OCT 2018
Building a custom Salus
LONDON 18-19 OCT 2018
Building a custom Salus
Dockerfile
LONDON 18-19 OCT 2018
Building a custom Salus
Dockerfile
your_scanner.rb
LONDON 18-19 OCT 2018
Building a custom Salus - provide custom messages for devs
LONDON 18-19 OCT 2018
Building a custom Salus - provide custom messages for devs
LONDON 18-19 OCT 2018
Salus Reports
LONDON 18-19 OCT 2018
Salus Reports
Reports include:
● Which scanners pass/failed
● Reasons for failure
● Which dependencies are present
(name + verison + source)
● Which Salus configuration they it used
LONDON 18-19 OCT 2018
Salus Reports
Reports include:
● Which scanners pass/failed
● Reasons for failure
● Which dependencies are present
(name + verison + source)
● Which Salus configuration they it used
LONDON 18-19 OCT 2018
Salus Reports
Reports include:
● Which scanners pass/failed
● Reasons for failure
● Which dependencies are present
(name + verison + source)
● Which Salus configuration they it used
STDOUT (default)
LONDON 18-19 OCT 2018
Salus Reports
Reports include:
● Which scanners pass/failed
● Reasons for failure
● Which dependencies are present
(name + verison + source)
● Which Salus configuration they it used
STDOUT (default)
LONDON 18-19 OCT 2018
Salus Reports
Reports include:
● Which scanners pass/failed
● Reasons for failure
● Which dependencies are present
(name + verison + source)
● Which Salus configuration they it used
STDOUT (default)
LONDON 18-19 OCT 2018
Salus Reports
TXT format to STDOUT (developer) JSON format for consumer
LONDON 18-19 OCT 2018
Salus Reports
Screenshot of Kibana displaying the results of Salus scans
LONDON 18-19 OCT 2018
More resources
● Github: coinbase/salus
● Docker Hub: coinbase/salus
● Blog post: https://blog.coinbase.com/engineering/home
LONDON 18-19 OCT 2018
Why is Salus useful?
Latest Salus
Pass
Fail
Source Code
Container Registry or
Configuration Host
LONDON 18-19 OCT 2018
Why is Salus useful?
Latest Salus
Pass
Fail
Source Code
Container Registry or
Configuration Host
Security team can keep up
metrics
LONDON 18-19 OCT 2018
Why is Salus useful?
Latest Salus
Pass
Fail
Source Code
Container Registry or
Configuration Host
Quick developer
feedback loop
Security team can keep up
metrics
LONDON 18-19 OCT 2018
Thank you:
● Developers of open source scanners
● Ryan Sears, Adam Richardson, Slava
Kim - all contributors of Salus
● DevSecCon Organizers

Contenu connexe

Plus de DevSecCon

DevSecCon Singapore 2019: Four years of reflection: How (not) to secure Web A...
DevSecCon Singapore 2019: Four years of reflection: How (not) to secure Web A...DevSecCon Singapore 2019: Four years of reflection: How (not) to secure Web A...
DevSecCon Singapore 2019: Four years of reflection: How (not) to secure Web A...DevSecCon
 
DevSecCon Singapore 2019: crypto jacking: An evolving threat for cloud contai...
DevSecCon Singapore 2019: crypto jacking: An evolving threat for cloud contai...DevSecCon Singapore 2019: crypto jacking: An evolving threat for cloud contai...
DevSecCon Singapore 2019: crypto jacking: An evolving threat for cloud contai...DevSecCon
 
DevSecCon Singapore 2019: Can "dev", "sec" and "ops" really coexist in the wi...
DevSecCon Singapore 2019: Can "dev", "sec" and "ops" really coexist in the wi...DevSecCon Singapore 2019: Can "dev", "sec" and "ops" really coexist in the wi...
DevSecCon Singapore 2019: Can "dev", "sec" and "ops" really coexist in the wi...DevSecCon
 
DevSecCon Singapore 2019: Workshop - Burp extension writing workshop
DevSecCon Singapore 2019: Workshop - Burp extension writing workshopDevSecCon Singapore 2019: Workshop - Burp extension writing workshop
DevSecCon Singapore 2019: Workshop - Burp extension writing workshopDevSecCon
 
DevSecCon Singapore 2019: Embracing Security - A changing DevOps landscape
DevSecCon Singapore 2019: Embracing Security - A changing DevOps landscapeDevSecCon Singapore 2019: Embracing Security - A changing DevOps landscape
DevSecCon Singapore 2019: Embracing Security - A changing DevOps landscapeDevSecCon
 
DevSecCon Singapore 2019: Web Services aren’t as secure as we think
DevSecCon Singapore 2019: Web Services aren’t as secure as we thinkDevSecCon Singapore 2019: Web Services aren’t as secure as we think
DevSecCon Singapore 2019: Web Services aren’t as secure as we thinkDevSecCon
 
DevSecCon Singapore 2019: An attacker's view of Serverless and GraphQL apps S...
DevSecCon Singapore 2019: An attacker's view of Serverless and GraphQL apps S...DevSecCon Singapore 2019: An attacker's view of Serverless and GraphQL apps S...
DevSecCon Singapore 2019: An attacker's view of Serverless and GraphQL apps S...DevSecCon
 
DevSecCon Singapore 2019: The journey of digital transformation through DevSe...
DevSecCon Singapore 2019: The journey of digital transformation through DevSe...DevSecCon Singapore 2019: The journey of digital transformation through DevSe...
DevSecCon Singapore 2019: The journey of digital transformation through DevSe...DevSecCon
 
DevSecCon Singapore 2019: Preventative Security for Kubernetes
DevSecCon Singapore 2019: Preventative Security for KubernetesDevSecCon Singapore 2019: Preventative Security for Kubernetes
DevSecCon Singapore 2019: Preventative Security for KubernetesDevSecCon
 
DevSecCon London 2018: Is your supply chain your achille's heel
DevSecCon London 2018: Is your supply chain your achille's heelDevSecCon London 2018: Is your supply chain your achille's heel
DevSecCon London 2018: Is your supply chain your achille's heelDevSecCon
 
DevSecCon London 2018: Get rid of these TLS certificates
DevSecCon London 2018: Get rid of these TLS certificatesDevSecCon London 2018: Get rid of these TLS certificates
DevSecCon London 2018: Get rid of these TLS certificatesDevSecCon
 
DevSecCon London 2018: Open DevSecOps
DevSecCon London 2018: Open DevSecOpsDevSecCon London 2018: Open DevSecOps
DevSecCon London 2018: Open DevSecOpsDevSecCon
 
DevSecCon London 2018: Building effective DevSecOps teams through role-playin...
DevSecCon London 2018: Building effective DevSecOps teams through role-playin...DevSecCon London 2018: Building effective DevSecOps teams through role-playin...
DevSecCon London 2018: Building effective DevSecOps teams through role-playin...DevSecCon
 
DevSecCon London 2018: Variant Analysis – A critical step in handling vulnera...
DevSecCon London 2018: Variant Analysis – A critical step in handling vulnera...DevSecCon London 2018: Variant Analysis – A critical step in handling vulnera...
DevSecCon London 2018: Variant Analysis – A critical step in handling vulnera...DevSecCon
 
DevSecCon London 2018: Lessons from the legion (the DevSecCon London Remix)
DevSecCon London 2018: Lessons from the legion (the DevSecCon London Remix)DevSecCon London 2018: Lessons from the legion (the DevSecCon London Remix)
DevSecCon London 2018: Lessons from the legion (the DevSecCon London Remix)DevSecCon
 
DevSecCon London 2018: Security in the serverless world
DevSecCon London 2018: Security in the serverless worldDevSecCon London 2018: Security in the serverless world
DevSecCon London 2018: Security in the serverless worldDevSecCon
 
DevSecCon London 2018: Enabling shift-left for 12k banking developers from sc...
DevSecCon London 2018: Enabling shift-left for 12k banking developers from sc...DevSecCon London 2018: Enabling shift-left for 12k banking developers from sc...
DevSecCon London 2018: Enabling shift-left for 12k banking developers from sc...DevSecCon
 
DevSecCon London 2018: Whatever happened to attack aware applications?
DevSecCon London 2018: Whatever happened to attack aware applications?DevSecCon London 2018: Whatever happened to attack aware applications?
DevSecCon London 2018: Whatever happened to attack aware applications?DevSecCon
 
DevSecCon London 2018: A Journey to Continuous Cloud Compliance
DevSecCon London 2018: A Journey to Continuous Cloud ComplianceDevSecCon London 2018: A Journey to Continuous Cloud Compliance
DevSecCon London 2018: A Journey to Continuous Cloud ComplianceDevSecCon
 
DevSecCon London 2018: Securing a web app: business security VS the OWASP top 10
DevSecCon London 2018: Securing a web app: business security VS the OWASP top 10DevSecCon London 2018: Securing a web app: business security VS the OWASP top 10
DevSecCon London 2018: Securing a web app: business security VS the OWASP top 10DevSecCon
 

Plus de DevSecCon (20)

DevSecCon Singapore 2019: Four years of reflection: How (not) to secure Web A...
DevSecCon Singapore 2019: Four years of reflection: How (not) to secure Web A...DevSecCon Singapore 2019: Four years of reflection: How (not) to secure Web A...
DevSecCon Singapore 2019: Four years of reflection: How (not) to secure Web A...
 
DevSecCon Singapore 2019: crypto jacking: An evolving threat for cloud contai...
DevSecCon Singapore 2019: crypto jacking: An evolving threat for cloud contai...DevSecCon Singapore 2019: crypto jacking: An evolving threat for cloud contai...
DevSecCon Singapore 2019: crypto jacking: An evolving threat for cloud contai...
 
DevSecCon Singapore 2019: Can "dev", "sec" and "ops" really coexist in the wi...
DevSecCon Singapore 2019: Can "dev", "sec" and "ops" really coexist in the wi...DevSecCon Singapore 2019: Can "dev", "sec" and "ops" really coexist in the wi...
DevSecCon Singapore 2019: Can "dev", "sec" and "ops" really coexist in the wi...
 
DevSecCon Singapore 2019: Workshop - Burp extension writing workshop
DevSecCon Singapore 2019: Workshop - Burp extension writing workshopDevSecCon Singapore 2019: Workshop - Burp extension writing workshop
DevSecCon Singapore 2019: Workshop - Burp extension writing workshop
 
DevSecCon Singapore 2019: Embracing Security - A changing DevOps landscape
DevSecCon Singapore 2019: Embracing Security - A changing DevOps landscapeDevSecCon Singapore 2019: Embracing Security - A changing DevOps landscape
DevSecCon Singapore 2019: Embracing Security - A changing DevOps landscape
 
DevSecCon Singapore 2019: Web Services aren’t as secure as we think
DevSecCon Singapore 2019: Web Services aren’t as secure as we thinkDevSecCon Singapore 2019: Web Services aren’t as secure as we think
DevSecCon Singapore 2019: Web Services aren’t as secure as we think
 
DevSecCon Singapore 2019: An attacker's view of Serverless and GraphQL apps S...
DevSecCon Singapore 2019: An attacker's view of Serverless and GraphQL apps S...DevSecCon Singapore 2019: An attacker's view of Serverless and GraphQL apps S...
DevSecCon Singapore 2019: An attacker's view of Serverless and GraphQL apps S...
 
DevSecCon Singapore 2019: The journey of digital transformation through DevSe...
DevSecCon Singapore 2019: The journey of digital transformation through DevSe...DevSecCon Singapore 2019: The journey of digital transformation through DevSe...
DevSecCon Singapore 2019: The journey of digital transformation through DevSe...
 
DevSecCon Singapore 2019: Preventative Security for Kubernetes
DevSecCon Singapore 2019: Preventative Security for KubernetesDevSecCon Singapore 2019: Preventative Security for Kubernetes
DevSecCon Singapore 2019: Preventative Security for Kubernetes
 
DevSecCon London 2018: Is your supply chain your achille's heel
DevSecCon London 2018: Is your supply chain your achille's heelDevSecCon London 2018: Is your supply chain your achille's heel
DevSecCon London 2018: Is your supply chain your achille's heel
 
DevSecCon London 2018: Get rid of these TLS certificates
DevSecCon London 2018: Get rid of these TLS certificatesDevSecCon London 2018: Get rid of these TLS certificates
DevSecCon London 2018: Get rid of these TLS certificates
 
DevSecCon London 2018: Open DevSecOps
DevSecCon London 2018: Open DevSecOpsDevSecCon London 2018: Open DevSecOps
DevSecCon London 2018: Open DevSecOps
 
DevSecCon London 2018: Building effective DevSecOps teams through role-playin...
DevSecCon London 2018: Building effective DevSecOps teams through role-playin...DevSecCon London 2018: Building effective DevSecOps teams through role-playin...
DevSecCon London 2018: Building effective DevSecOps teams through role-playin...
 
DevSecCon London 2018: Variant Analysis – A critical step in handling vulnera...
DevSecCon London 2018: Variant Analysis – A critical step in handling vulnera...DevSecCon London 2018: Variant Analysis – A critical step in handling vulnera...
DevSecCon London 2018: Variant Analysis – A critical step in handling vulnera...
 
DevSecCon London 2018: Lessons from the legion (the DevSecCon London Remix)
DevSecCon London 2018: Lessons from the legion (the DevSecCon London Remix)DevSecCon London 2018: Lessons from the legion (the DevSecCon London Remix)
DevSecCon London 2018: Lessons from the legion (the DevSecCon London Remix)
 
DevSecCon London 2018: Security in the serverless world
DevSecCon London 2018: Security in the serverless worldDevSecCon London 2018: Security in the serverless world
DevSecCon London 2018: Security in the serverless world
 
DevSecCon London 2018: Enabling shift-left for 12k banking developers from sc...
DevSecCon London 2018: Enabling shift-left for 12k banking developers from sc...DevSecCon London 2018: Enabling shift-left for 12k banking developers from sc...
DevSecCon London 2018: Enabling shift-left for 12k banking developers from sc...
 
DevSecCon London 2018: Whatever happened to attack aware applications?
DevSecCon London 2018: Whatever happened to attack aware applications?DevSecCon London 2018: Whatever happened to attack aware applications?
DevSecCon London 2018: Whatever happened to attack aware applications?
 
DevSecCon London 2018: A Journey to Continuous Cloud Compliance
DevSecCon London 2018: A Journey to Continuous Cloud ComplianceDevSecCon London 2018: A Journey to Continuous Cloud Compliance
DevSecCon London 2018: A Journey to Continuous Cloud Compliance
 
DevSecCon London 2018: Securing a web app: business security VS the OWASP top 10
DevSecCon London 2018: Securing a web app: business security VS the OWASP top 10DevSecCon London 2018: Securing a web app: business security VS the OWASP top 10
DevSecCon London 2018: Securing a web app: business security VS the OWASP top 10
 

Dernier

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 

Dernier (20)

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

DevSecCon London 2018: Introducing Salus: How Coinbase scales security automation

  • 1. LONDON 18-19 OCT 2018 Introducing Salus: How Coinbase Scales Security Automation
  • 2. LONDON 18-19 OCT 2018 Julian Borrey, Security @ Coinbase
  • 3. LONDON 18-19 OCT 2018 A story of scaling security
  • 4. LONDON 18-19 OCT 2018 A story of scaling security “100% of services deployed to production must have a security scan.”
  • 5. LONDON 18-19 OCT 2018 A story of scaling security “100% of services deployed to production must have a security scan.”
  • 6. LONDON 18-19 OCT 2018 A story of scaling security “100% of services deployed to production must have a security scan.” I join & Multi-service
  • 7. LONDON 18-19 OCT 2018 Overview ● Review of security scanners
  • 8. LONDON 18-19 OCT 2018 Overview ● Review of security scanners ● Problems with security scanners at scale
  • 9. LONDON 18-19 OCT 2018 Overview ● Review of security scanners ● Problems with security scanners at scale ● What Salus does and how Salus works
  • 10. LONDON 18-19 OCT 2018 Overview ● Review of security scanners ● Problems with security scanners at scale ● What Salus does and how Salus works → free, no vendors/accounts
  • 11. LONDON 18-19 OCT 2018 Overview ● Review of security scanners ● Problems with security scanners at scale ● What Salus does and how Salus works → free, no vendors/accounts ● Salus details ○ Configuration ○ Custom scanners ○ Metrics & reporting
  • 12. LONDON 18-19 OCT 2018 Overview ● Review of security scanners ● Problems with security scanners at scale ● What Salus does and how Salus works → free, no vendors/accounts ● Salus details ○ Configuration ○ Custom scanners ○ Metrics & reporting ● Pointers to source code & more resources
  • 13. LONDON 18-19 OCT 2018 Software Scanners
  • 14. LONDON 18-19 OCT 2018 Software Scanners A scanner is software that analyses other software.
  • 15. LONDON 18-19 OCT 2018 Software Scanners A scanner is software that analyses other software. Source Code
  • 16. LONDON 18-19 OCT 2018 Software Scanners A scanner is software that analyses other software. ScannerSource Code
  • 17. LONDON 18-19 OCT 2018 Software Scanners A scanner is software that analyses other software. Scanner Pass Fail Source Code
  • 18. LONDON 18-19 OCT 2018 Software Scanners A scanner is software that analyses other software. Scanner Pass Fail Source Code
  • 19. LONDON 18-19 OCT 2018 Software Scanners Linter - checks syntax follows certain policies.
  • 20. LONDON 18-19 OCT 2018 Software Scanners Linter - checks syntax follows certain policies.
  • 21. LONDON 18-19 OCT 2018 Software Scanners Linter - checks syntax follows certain policies. Rubocop (Ruby Linter)
  • 22. LONDON 18-19 OCT 2018 Software Scanners Linter - checks syntax follows certain policies. Rubocop (Ruby Linter)
  • 23. LONDON 18-19 OCT 2018 Software Scanners Linter - checks syntax follows certain policies. Rubocop (Ruby Linter)
  • 24. LONDON 18-19 OCT 2018 Security Scanners CVE scanner - looks for known vulnerabilities in dependencies
  • 25. LONDON 18-19 OCT 2018 Security Scanners CVE scanner - looks for known vulnerabilities in dependencies CVE = Common Vulnerability Enumeration - some documented vulnerability
  • 26. LONDON 18-19 OCT 2018 Security Scanners CVE scanner - looks for known vulnerabilities in dependencies
  • 27. LONDON 18-19 OCT 2018 Security Scanners CVE scanner - looks for known vulnerabilities in dependencies
  • 28. LONDON 18-19 OCT 2018 Security Scanners CVE scanner - looks for known vulnerabilities in dependencies BundlerAudit
  • 29. LONDON 18-19 OCT 2018 Security Scanners CVE scanner - looks for known vulnerabilities in dependencies BundlerAudit
  • 30. LONDON 18-19 OCT 2018 Security Scanners CVE scanner - looks for known vulnerabilities in dependencies BundlerAudit
  • 31. LONDON 18-19 OCT 2018 Security Scanners Scanners are important:
  • 32. LONDON 18-19 OCT 2018 Security Scanners Scanners are important: ● Powerful - can search huge CVE databases
  • 33. LONDON 18-19 OCT 2018 Security Scanners Scanners are important: ● Powerful - can search huge CVE databases Verizon Data Breach Investigations Report, 2015
  • 34. LONDON 18-19 OCT 2018 Security Scanners Scanners are important: ● Powerful - can search huge CVE databases Verizon Data Breach Investigations Report, 2018 Verizon Data Breach Investigations Report, 2015
  • 35. LONDON 18-19 OCT 2018 Security Scanners Scanners are important: ● Powerful - can search huge CVE databases ● Some anti-patterns are obvious and scanners can do the job. E.g. using `eval()` on user controlled input.
  • 36. LONDON 18-19 OCT 2018 Security Scanners Scanners are important: ● Powerful - can search huge CVE databases ● Some anti-patterns are obvious and scanners can do the job. E.g. using `eval()` on user controlled input. ● Not fatigued like humans
  • 37. LONDON 18-19 OCT 2018 Security Scanners Scanners are important: ● Powerful - can search huge CVE databases ● Some anti-patterns are obvious and scanners can do the job. E.g. using `eval()` on user controlled input. ● Not fatigued like humans ● Can run on every build round the clock
  • 38. LONDON 18-19 OCT 2018 Security Scanners Scanners are important: ● Powerful - can search huge CVE databases ● Some anti-patterns are obvious and scanners can do the job. E.g. using `eval()` on user controlled input. ● Not fatigued like humans ● Can run on every build round the clock ● Not silver bullets, use in tandem with human review
  • 39. LONDON 18-19 OCT 2018 How might you deploy a scanner?
  • 40. LONDON 18-19 OCT 2018 How might you deploy a scanner? ● Execute the scanner manually. $ cd /path/to/repo $ bundle-audit check
  • 41. LONDON 18-19 OCT 2018 How might you deploy a scanner? ● Execute the scanner manually. $ cd /path/to/repo $ bundle-audit check Name: activesupport Version: 3.2.10 Advisory: CVE-2013-1856 Criticality: High URL: http://www.osvdb.org/show/osvdb/91451 Title: XML Parsing Vulnerability affecting JRuby users Solution: upgrade to ~> 3.1.12, >= 3.2.13
  • 42. LONDON 18-19 OCT 2018 How might you deploy a scanner? ● Execute the scanner manually. ● Could be slightly better with pre-commit hook $ cd /path/to/repo $ bundle-audit check Name: activesupport Version: 3.2.10 Advisory: CVE-2013-1856 Criticality: High URL: http://www.osvdb.org/show/osvdb/91451 Title: XML Parsing Vulnerability affecting JRuby users Solution: upgrade to ~> 3.1.12, >= 3.2.13
  • 43. LONDON 18-19 OCT 2018 How might you deploy a scanner? ● Run the scanner in the CI/CD pipeline via the repo’s test suite.
  • 44. LONDON 18-19 OCT 2018 How might you deploy a scanner? ● Run the scanner in the CI/CD pipeline via the repo’s test suite.
  • 45. LONDON 18-19 OCT 2018 ● Run the scanner in the CI/CD pipeline via the repo’s test suite. How might you deploy a scanner? developer
  • 46. LONDON 18-19 OCT 2018 ● Run the scanner in the CI/CD pipeline via the repo’s test suite. How might you deploy a scanner? developer source control
  • 47. LONDON 18-19 OCT 2018 ● Run the scanner in the CI/CD pipeline via the repo’s test suite. How might you deploy a scanner? developer source control CI servers
  • 48. LONDON 18-19 OCT 2018 ● Run the scanner in the CI/CD pipeline via the repo’s test suite. How might you deploy a scanner? developer source control CI servers AWS / GCP / etc production servers
  • 49. LONDON 18-19 OCT 2018 How might you deploy a scanner? ... “100% of services deployed to production must have a security scan.”
  • 50. LONDON 18-19 OCT 2018 Upgrading the fleet
  • 51. LONDON 18-19 OCT 2018 Upgrading the fleet ● Have to make M x N code changes.
  • 52. LONDON 18-19 OCT 2018 Upgrading the fleet ● Have to make M x N code changes. ● Want to avoid asking the service owners: ○ Lots of work to keep asking for this. ○ Requires a fair bit of context to understand the tool and configure it correctly.
  • 53. LONDON 18-19 OCT 2018 Upgrading the fleet ● Have to make M x N code changes. ● Want to avoid asking the service owners: ○ Lots of work to keep asking for this. ○ Requires a fair bit of context to understand the tool and configure it correctly. ● So do it yourself?
  • 54. LONDON 18-19 OCT 2018 Upgrading the fleet ● Have to make M x N code changes. ● Want to avoid asking the service owners: ○ Lots of work to keep asking for this. ○ Requires a fair bit of context to understand the tool and configure it correctly. ● So do it yourself?
  • 55. LONDON 18-19 OCT 2018 "All problems in computer science can be solved by another level of indirection." - David Wheeler
  • 56. LONDON 18-19 OCT 2018 Enter Salus "All problems in computer science can be solved by another level of indirection." - David Wheeler
  • 57. LONDON 18-19 OCT 2018 How might you deploy a scanner? Run Latest Salus Container ● Run the scanner in the CI/CD pipeline via the repo’s test suite.
  • 58. LONDON 18-19 OCT 2018 What is Salus
  • 59. LONDON 18-19 OCT 2018 What is Salus $ docker run --rm -t -v $(pwd):/home/repo coinbase/salus
  • 60. LONDON 18-19 OCT 2018 What is Salus $ docker run --rm -t -v $(pwd):/home/repo coinbase/salus ● docker run ● --rm ● -t ● -v $(pwd):/home/repo ● coinbase/salus
  • 61. LONDON 18-19 OCT 2018 What is Salus
  • 62. LONDON 18-19 OCT 2018 Ruby app in container: How Salus works
  • 63. LONDON 18-19 OCT 2018 Ruby app in container: ● Initializes with configuration (more on this later) How Salus works
  • 64. LONDON 18-19 OCT 2018 Ruby app in container: ● Initializes with configuration (more on this later) ● Loops through each scanner ○ Ruby app? → run `bundle-audit check` ○ Rails app? → run `brakeman` ○ Node app? → run `npm audit` How Salus works
  • 65. LONDON 18-19 OCT 2018 Ruby app in container: ● Initializes with configuration (more on this later) ● Loops through each scanner ○ Ruby app? → run `bundle-audit check` ○ Rails app? → run `brakeman` ○ Node app? → run `npm audit` ● Compiles report, prints to STDOUT and HTTP post How Salus works
  • 66. LONDON 18-19 OCT 2018 Ruby app in container: ● Initializes with configuration (more on this later) ● Loops through each scanner ○ Ruby app? → run `bundle-audit check` ○ Rails app? → run `brakeman` ○ Node app? → run `npm audit` ● Compiles report, prints to STDOUT and HTTP post ● Exits !0 if issues are found (which could fail CI) How Salus works
  • 67. LONDON 18-19 OCT 2018 Why is Salus useful? ● Have to make M x N code changes.
  • 68. LONDON 18-19 OCT 2018 Why is Salus useful? ● Have to make M x N code changes. ● Make 1 code change.
  • 69. LONDON 18-19 OCT 2018 Why is Salus useful? Latest Salus Pass Fail Source Code Container Registry or Configuration Host
  • 70. LONDON 18-19 OCT 2018 Why is Salus useful? Latest Salus Pass Fail Source Code Container Registry or Configuration Host
  • 71. LONDON 18-19 OCT 2018 Why is Salus useful?
  • 72. LONDON 18-19 OCT 2018 Why is Salus useful?
  • 73. LONDON 18-19 OCT 2018 Salus Configuration
  • 74. LONDON 18-19 OCT 2018 Salus Configuration ● Salus has a bunch of scanners: ○ BundlerAudit ○ Brakeman ○ npm audit ○ PatternSearch (grep)
  • 75. LONDON 18-19 OCT 2018 Salus Configuration ● Salus has a bunch of scanners: ○ BundlerAudit ○ Brakeman ○ npm audit ○ PatternSearch (grep) ● You can choose what fails a Salus run → leads to !0 exit status (useful for CI pipelines to fail)
  • 76. LONDON 18-19 OCT 2018 Salus Configuration ● Salus has a bunch of scanners: ○ BundlerAudit ○ Brakeman ○ npm audit ○ PatternSearch (grep) ● You can choose what fails a Salus run → leads to !0 exit status (useful for CI pipelines to fail) ● Each scanner could also be customized
  • 77. LONDON 18-19 OCT 2018 Salus Configuration ● Salus has a bunch of scanners: ○ BundlerAudit ○ Brakeman ○ npm audit ○ PatternSearch (grep) ● You can choose what fails a Salus run → leads to !0 exit status (useful for CI pipelines to fail) ● Each scanner could also be customized ● Salus has a --config flag
  • 78. LONDON 18-19 OCT 2018 Salus Configuration ● Config can also be provided via: ○ A salus.yaml file in the repository’s root will be automatically parsed. ○ URI in the environment variable SALUS_CONFIGURATION docker run --rm -v $(pwd):/home/repo coinbase/salus --config file://tests/salus.yaml
  • 79. LONDON 18-19 OCT 2018 Salus Configuration
  • 80. LONDON 18-19 OCT 2018 Salus Configuration ● For global security policies that every repository should follow, use a remote URI. docker run --rm -v $(pwd):/home/repo coinbase/salus --config https://internal.net/salus.yaml
  • 81. LONDON 18-19 OCT 2018 Salus Configuration ● For global security policies that every repository should follow, use a remote URI. ● Especially useful for testing out new security policies before enforcing them. docker run --rm -v $(pwd):/home/repo coinbase/salus --config https://internal.net/salus.yaml
  • 82. LONDON 18-19 OCT 2018 Salus Configuration ● But what if we need to allow an exception to the global policy for just one repo? docker run --rm -v $(pwd):/home/repo coinbase/salus --config https://internal.net/salus.yaml
  • 83. LONDON 18-19 OCT 2018 Salus Configuration ● But what if we need to allow an exception to the global policy for just one repo? ● You can concatenate configuration files to allow for local customization. docker run --rm -v $(pwd):/home/repo coinbase/salus --config “https://internal.net/salus.yaml file://tests/salus.yaml”
  • 84. LONDON 18-19 OCT 2018 Building a custom Salus
  • 85. LONDON 18-19 OCT 2018 Building a custom Salus Dockerfile
  • 86. LONDON 18-19 OCT 2018 Building a custom Salus Dockerfile your_scanner.rb
  • 87. LONDON 18-19 OCT 2018 Building a custom Salus - provide custom messages for devs
  • 88. LONDON 18-19 OCT 2018 Building a custom Salus - provide custom messages for devs
  • 89. LONDON 18-19 OCT 2018 Salus Reports
  • 90. LONDON 18-19 OCT 2018 Salus Reports Reports include: ● Which scanners pass/failed ● Reasons for failure ● Which dependencies are present (name + verison + source) ● Which Salus configuration they it used
  • 91. LONDON 18-19 OCT 2018 Salus Reports Reports include: ● Which scanners pass/failed ● Reasons for failure ● Which dependencies are present (name + verison + source) ● Which Salus configuration they it used
  • 92. LONDON 18-19 OCT 2018 Salus Reports Reports include: ● Which scanners pass/failed ● Reasons for failure ● Which dependencies are present (name + verison + source) ● Which Salus configuration they it used STDOUT (default)
  • 93. LONDON 18-19 OCT 2018 Salus Reports Reports include: ● Which scanners pass/failed ● Reasons for failure ● Which dependencies are present (name + verison + source) ● Which Salus configuration they it used STDOUT (default)
  • 94. LONDON 18-19 OCT 2018 Salus Reports Reports include: ● Which scanners pass/failed ● Reasons for failure ● Which dependencies are present (name + verison + source) ● Which Salus configuration they it used STDOUT (default)
  • 95. LONDON 18-19 OCT 2018 Salus Reports TXT format to STDOUT (developer) JSON format for consumer
  • 96. LONDON 18-19 OCT 2018 Salus Reports Screenshot of Kibana displaying the results of Salus scans
  • 97. LONDON 18-19 OCT 2018 More resources ● Github: coinbase/salus ● Docker Hub: coinbase/salus ● Blog post: https://blog.coinbase.com/engineering/home
  • 98. LONDON 18-19 OCT 2018 Why is Salus useful? Latest Salus Pass Fail Source Code Container Registry or Configuration Host
  • 99. LONDON 18-19 OCT 2018 Why is Salus useful? Latest Salus Pass Fail Source Code Container Registry or Configuration Host Security team can keep up metrics
  • 100. LONDON 18-19 OCT 2018 Why is Salus useful? Latest Salus Pass Fail Source Code Container Registry or Configuration Host Quick developer feedback loop Security team can keep up metrics
  • 101. LONDON 18-19 OCT 2018 Thank you: ● Developers of open source scanners ● Ryan Sears, Adam Richardson, Slava Kim - all contributors of Salus ● DevSecCon Organizers