SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

Más 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
 

Más 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
 

Último

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Último (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

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