SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
Threat Modeling the CI/CD
Pipeline to Improve Software
Supply Chain Security
Dan Cornell
CTO, Denim Group
Agenda
• Risk Exposure from Software Build Pipeline
• Constituents and Stakeholders
• Drivers for Change
• Threat Modeling Overview
• Supporting Infrastructure
• Pipeline Threat Model
• Using the Threat Model
• Questions
Notable Incidents
• SolarWinds
• Compromised server in build infrastructure
• CodeCov
• Compromised container server
• Potentially spawning Executive Order, other government activity
Fundamental Disconnect
• We have developed tremendous tooling and automation that allows
us to create secure, reliable software at a scale not previously
considered
• The way we deploy and deliver this tooling puts us in a situation
where we can't actually trust anything that comes out of it
• Oops
Fractal Attack Surface
The closer you look, the more you find
Confidentiality Impact
• IP disclosure
• Leaked secrets
• Vulnerability disclosure
Integrity Impact
• Backdoors
• Other unwanted behaviors
• Compromised cryptography
Availability Impact
• Development pipeline infrastructure is hyper-connected
• Release delays
• Absence or misbehavior of supporting services
Threat Modeling Overview
• Full overview beyond the scope of this talk
• Some background for reference
• https://www.denimgroup.com/resources/blog/2014/07/modeling-builders-breakers/
• Let's learn as we go
Supporting Infrastructure
• Fixed assets vs ephemeral assets
• Scanning/patching regimen
• Who is responsible for this infrastructure?
• "Corporate" or a DevOps team?
The Perimeter is the Problem
• Critical part of threat modeling process – what is in/what is out?
• For modern CI/CD pipelines: turns out to be maddeningly hard
(impossible) to determine the boundary
• Many steps with lots of moving parts
• Dynamic attack surface: tomorrow may be different than today
• DevOps team members can often add stages/tools/elements with minimal supervision
• Fractal complexity
• Approach: Start with code commit and follow the workflow
Example CI/CD Pipeline Dataflow
General/Overarching Concerns
• Lots of network traffic
• Protect with TLS to guard Confidentiality, Integrity
• Lots of authentication points / IAM concerns
• Often multiple methods/avenues per system: interactive + API (+ other?)
• User <-> System
• System <-> System
• Is there a comprehensive IAM paradigm in place, or a combination of
overlapping approaches?
General/Overarching Concerns
• Data storage concerns
• How is data at rest protected? (Especially file/block storage)
• What are your unknown-unknowns
• External services and provides that are (generally) unknown but part of the
process
• Any developer with a GitHub account is now their own purchasing agent
Source Repository and Workflow Engine
Source Repository and Workflow Engine
• Sources of (custom) code
• In-house developers
• 3rd party development teams
• Likely different risk profiles
• Do contributions go through different workflows?
Source Repository and Workflow Engine
• Authentication
• Developers authenticating to push/pull code
• Developers authenticating to evaluate/approve merge requests
• External system API access
• Webhooks
• Additionally for Hosted Repositories/Workflows
• GitHub: Apps and Actions
• GitLab: Integrations
• Both: External collaborators
Open Source Component Management
Open Source Component Management
• Are you:
• Directly pulling from Central repositories
• Proxying requests through a Remote repository
• Ability to enforce policies
• Known security vulnerabilities in open source components
• License restrictions on open source components
Open Source Backdoor Concerns
• PHP example
• https://arstechnica.com/gadgets/2021/03/hackers-backdoor-php-source-code-after-breaching-internal-git-server/
• Linux kernel example
• https://www.techrepublic.com/article/linux-kernel-security-uproar-what-some-people-missed/
• Not realistic to detect
• Maintainers don't even have the bandwidth
• Have to be able to respond
• Pulling from Remote vs directly from Central
• Policies on acceptable (and unacceptable) versions
Build Management
Build Management
• Combining source code and open source components to create a new
build
• How often run:
• Every merge request
• Accepted merge requests
• Specific branches/tags
• Maven plugins – yet another source of code you can't trust that runs
in your environment!
Automated Testing
Automated Testing
• Most common types of testing:
• Unit testing
• Acceptance testing
• Other common analysis:
• Code quality ("smells")
• Code metrics (complexity, etc)
• Code coverage
Automated Testing: Security Testing
• SAST
• What is being analyzed: source or binary
• For a given language: is "binary" even a thing?
• Where is the analysis being performed: on-network, in the cloud
• Where are the results being stored: on-network, in the cloud
• DAST
• Where is the server being tested: on-network, in the cloud
• Where is the test traffic being generated: on-network, in the cloud, proxied
onto-network
• Where are the results being storoed: on-network, in the cloud
Automated Testing: Security Testing (cont'd)
• IAST
• Where is the server being tested: on-network, in the cloud
• Where is the test traffic being generated: on-network, in the cloud,
proxied onto-network
• Where are the results being stored: on-network, in the cloud
• SCA
• Where is the analysis being performed: on-network, in the cloud
• Where are the results being stored: on-network, in the cloud
Security Testing and Backdoors
• Best backdoor: Normal-looking security vulnerability
• "Oops, sorry I introduced that [SQL injection|missing auth check|etc]
• Other types of backdoor detection
• Static analysis – see the theoretical behavior of the application
• Look for suspicious behavior patterns
• References:
• https://www.acsac.org/2007/workshop/Wysopal.pdf
• https://www.veracode.com/sites/default/files/Resources/Whitepapers/static-detection-of-
backdoors-1.0.pdf
• https://owasp.org/www-pdf-archive/Protecting_the_Enterprise_-_Software_Backdoors.pdf
• https://owasp.org/www-pdf-archive/Protecting_Your_Applications_From_Backdoors.pdf
Software Packaging and Distribution
Software Packaging
• Monolithic applications vs. Microservice applications
• Application binary vs. Application binaries combined with containers
• Source container management is very similar to open source
component management
• Code signing is important
• But signed malicious/vulnerable code is still malicious/vulnerable code
Software Distribution
• Now the software should be ready too distribute to customers
• Internal
• External
• How is the software distributed?
• Binary
• Binary + Container
• Binaries + Containers + orchestration
• How are builds verified?
• Checksums
Two Exercises
• Passive: Grab netflow data from your build environment and see
what it talks to
• Active: Follow code change from checkout to release
• Spoiler alert: the active exercise where I engaged the development
team was more productive
Reviewing Netflow Data
• Pull netflow logs from network where development infrastructure is hosted
• Look at what the build infrastructure talks to
• Code repositories
• Open source component repositories
• Testing services
• Other services <- Area of concern
• Container repositories
• In practice
• Identified some interesting communications
• "Expensive" to run down results
• "High" false positive rate
Netflow Data Review
[Run through cleaned up data from build infrastructure netflow review]
Follow a Code Change
• Change code
• Check out code (and make changes)
• Create merge request
• Review merge request
• Run build
• Pull code
• Pull open source components
• Automated testing
• Unit tests
• Acceptance tests
• Security tests
• Other tests
• Accept build
• Push to distribution
• Distribute software
Questions to ask at each stage
• How does this user/system authenticate to
the next step
• Where is the server/service that performs this
step
• Where possible: show, don't tell
• Look at the UI developers look at
• Ask questions about where data comes from
GitLab Walkthrough
Jenkins Walkthrough
GitHub Walkthrough
Parallel Build Pipelines
• Have two or more separate, parallel build pipelines
• Compare artifacts at the end
• Goal is to force attackers to compromise multiple pathways
• Best way to get budget for this is to have a public breach of epic
proportions and suggest that your successor try it out
• How do you compare the outputs from multiple toolchains?
• Compare SBOM
• Asset enumeration
• Reverse engineering
• Live/behaviral testing
Using the Threat Model
• Identify gaps in your own pipeline security
• What can you shore up?
• What do you have to live with?
• How do you respond to incidents?
• Have meaningful conversations with suppliers of your software
• Understand their practices
• Push for change – vote with your wallet
• Be better able to detect malicious behavior
Vendor Management
Questions

Más contenido relacionado

La actualidad más candente

DevSecOps reference architectures 2018
DevSecOps reference architectures 2018DevSecOps reference architectures 2018
DevSecOps reference architectures 2018Sonatype
 
Bridging the Security Testing Gap in Your CI/CD Pipeline
Bridging the Security Testing Gap in Your CI/CD PipelineBridging the Security Testing Gap in Your CI/CD Pipeline
Bridging the Security Testing Gap in Your CI/CD PipelineDevOps.com
 
Ch 6: Attacking Authentication
Ch 6: Attacking AuthenticationCh 6: Attacking Authentication
Ch 6: Attacking AuthenticationSam Bowne
 
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP IndonesiaStrengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP IndonesiaMohammed A. Imran
 
Secure SDLC Framework
Secure SDLC FrameworkSecure SDLC Framework
Secure SDLC FrameworkRishi Kant
 
The New Security Playbook: DevSecOps
The New Security Playbook: DevSecOpsThe New Security Playbook: DevSecOps
The New Security Playbook: DevSecOpsJames Wickett
 
Security DevOps - Staying secure in agile projects // OWASP AppSecEU 2015 - A...
Security DevOps - Staying secure in agile projects // OWASP AppSecEU 2015 - A...Security DevOps - Staying secure in agile projects // OWASP AppSecEU 2015 - A...
Security DevOps - Staying secure in agile projects // OWASP AppSecEU 2015 - A...Christian Schneider
 
DevSecOps : an Introduction
DevSecOps : an IntroductionDevSecOps : an Introduction
DevSecOps : an IntroductionPrashanth B. P.
 
DEVSECOPS: Coding DevSecOps journey
DEVSECOPS: Coding DevSecOps journeyDEVSECOPS: Coding DevSecOps journey
DEVSECOPS: Coding DevSecOps journeyJason Suttie
 
DevSecOps - Integrating Security in the Development Process (with memes) - Ma...
DevSecOps - Integrating Security in the Development Process (with memes) - Ma...DevSecOps - Integrating Security in the Development Process (with memes) - Ma...
DevSecOps - Integrating Security in the Development Process (with memes) - Ma...Magno Logan
 
DevSecOps Implementation Journey
DevSecOps Implementation JourneyDevSecOps Implementation Journey
DevSecOps Implementation JourneyDevOps Indonesia
 
Practical DevSecOps - Arief Karfianto
Practical DevSecOps - Arief KarfiantoPractical DevSecOps - Arief Karfianto
Practical DevSecOps - Arief Karfiantoidsecconf
 
Checkmarx meetup API Security - API Security top 10 - Erez Yalon
Checkmarx meetup API Security -  API Security top 10 - Erez YalonCheckmarx meetup API Security -  API Security top 10 - Erez Yalon
Checkmarx meetup API Security - API Security top 10 - Erez YalonAdar Weidman
 
Application Security Architecture and Threat Modelling
Application Security Architecture and Threat ModellingApplication Security Architecture and Threat Modelling
Application Security Architecture and Threat ModellingPriyanka Aash
 

La actualidad más candente (20)

Benefits of DevSecOps
Benefits of DevSecOpsBenefits of DevSecOps
Benefits of DevSecOps
 
DevSecOps reference architectures 2018
DevSecOps reference architectures 2018DevSecOps reference architectures 2018
DevSecOps reference architectures 2018
 
Bridging the Security Testing Gap in Your CI/CD Pipeline
Bridging the Security Testing Gap in Your CI/CD PipelineBridging the Security Testing Gap in Your CI/CD Pipeline
Bridging the Security Testing Gap in Your CI/CD Pipeline
 
Ch 6: Attacking Authentication
Ch 6: Attacking AuthenticationCh 6: Attacking Authentication
Ch 6: Attacking Authentication
 
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP IndonesiaStrengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
 
DevSecOps 101
DevSecOps 101DevSecOps 101
DevSecOps 101
 
Secure SDLC Framework
Secure SDLC FrameworkSecure SDLC Framework
Secure SDLC Framework
 
The New Security Playbook: DevSecOps
The New Security Playbook: DevSecOpsThe New Security Playbook: DevSecOps
The New Security Playbook: DevSecOps
 
Security DevOps - Staying secure in agile projects // OWASP AppSecEU 2015 - A...
Security DevOps - Staying secure in agile projects // OWASP AppSecEU 2015 - A...Security DevOps - Staying secure in agile projects // OWASP AppSecEU 2015 - A...
Security DevOps - Staying secure in agile projects // OWASP AppSecEU 2015 - A...
 
DevSecOps : an Introduction
DevSecOps : an IntroductionDevSecOps : an Introduction
DevSecOps : an Introduction
 
DevSecOps: What Why and How : Blackhat 2019
DevSecOps: What Why and How : Blackhat 2019DevSecOps: What Why and How : Blackhat 2019
DevSecOps: What Why and How : Blackhat 2019
 
DEVSECOPS: Coding DevSecOps journey
DEVSECOPS: Coding DevSecOps journeyDEVSECOPS: Coding DevSecOps journey
DEVSECOPS: Coding DevSecOps journey
 
DevSecOps - Integrating Security in the Development Process (with memes) - Ma...
DevSecOps - Integrating Security in the Development Process (with memes) - Ma...DevSecOps - Integrating Security in the Development Process (with memes) - Ma...
DevSecOps - Integrating Security in the Development Process (with memes) - Ma...
 
DevSecOps Implementation Journey
DevSecOps Implementation JourneyDevSecOps Implementation Journey
DevSecOps Implementation Journey
 
DevSecOps - The big picture
DevSecOps - The big pictureDevSecOps - The big picture
DevSecOps - The big picture
 
SRE From Scratch
SRE From ScratchSRE From Scratch
SRE From Scratch
 
Threat Modelling
Threat ModellingThreat Modelling
Threat Modelling
 
Practical DevSecOps - Arief Karfianto
Practical DevSecOps - Arief KarfiantoPractical DevSecOps - Arief Karfianto
Practical DevSecOps - Arief Karfianto
 
Checkmarx meetup API Security - API Security top 10 - Erez Yalon
Checkmarx meetup API Security -  API Security top 10 - Erez YalonCheckmarx meetup API Security -  API Security top 10 - Erez Yalon
Checkmarx meetup API Security - API Security top 10 - Erez Yalon
 
Application Security Architecture and Threat Modelling
Application Security Architecture and Threat ModellingApplication Security Architecture and Threat Modelling
Application Security Architecture and Threat Modelling
 

Similar a Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security (Raw Slides)

Web App Security Presentation by Ryan Holland - 05-31-2017
Web App Security Presentation by Ryan Holland - 05-31-2017Web App Security Presentation by Ryan Holland - 05-31-2017
Web App Security Presentation by Ryan Holland - 05-31-2017TriNimbus
 
Thick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash CourseThick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash CourseNetSPI
 
AppSec in an Agile World
AppSec in an Agile WorldAppSec in an Agile World
AppSec in an Agile WorldDavid Lindner
 
Supply Chain Security for Developers.pdf
Supply Chain Security for Developers.pdfSupply Chain Security for Developers.pdf
Supply Chain Security for Developers.pdfssuserc5b30e
 
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald BelchamGetting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham.NET Conf UY
 
Code Quality - Security
Code Quality - SecurityCode Quality - Security
Code Quality - Securitysedukull
 
Aleksei Dremin - Application Security Pipeline - phdays9
Aleksei Dremin - Application Security Pipeline - phdays9Aleksei Dremin - Application Security Pipeline - phdays9
Aleksei Dremin - Application Security Pipeline - phdays9Alexey Dremin
 
Do you lose sleep at night?
Do you lose sleep at night?Do you lose sleep at night?
Do you lose sleep at night?Nathan Van Gheem
 
12 Factor App Methodology
12 Factor App Methodology12 Factor App Methodology
12 Factor App Methodologylaeshin park
 
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly DavidoffDevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly DavidoffDevSecCon
 
Terrascan - Cloud Native Security Tool
Terrascan - Cloud Native Security Tool Terrascan - Cloud Native Security Tool
Terrascan - Cloud Native Security Tool sangam biradar
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAdam Getchell
 
Protecting Against Web App Attacks
Protecting Against Web App AttacksProtecting Against Web App Attacks
Protecting Against Web App AttacksAlert Logic
 
Thick client pentesting_the-hackers_meetup_version1.0pptx
Thick client pentesting_the-hackers_meetup_version1.0pptxThick client pentesting_the-hackers_meetup_version1.0pptx
Thick client pentesting_the-hackers_meetup_version1.0pptxAnurag Srivastava
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle ManagementAmazon Web Services
 
Thick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash CourseThick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash CourseScott Sutherland
 
Protecting Against Web Attacks
Protecting Against Web AttacksProtecting Against Web Attacks
Protecting Against Web AttacksAlert Logic
 
Started In Security Now I'm Here
Started In Security Now I'm HereStarted In Security Now I'm Here
Started In Security Now I'm HereChristopher Grayson
 

Similar a Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security (Raw Slides) (20)

Web App Security Presentation by Ryan Holland - 05-31-2017
Web App Security Presentation by Ryan Holland - 05-31-2017Web App Security Presentation by Ryan Holland - 05-31-2017
Web App Security Presentation by Ryan Holland - 05-31-2017
 
Thick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash CourseThick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash Course
 
AppSec in an Agile World
AppSec in an Agile WorldAppSec in an Agile World
AppSec in an Agile World
 
Supply Chain Security for Developers.pdf
Supply Chain Security for Developers.pdfSupply Chain Security for Developers.pdf
Supply Chain Security for Developers.pdf
 
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald BelchamGetting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
 
Code Quality - Security
Code Quality - SecurityCode Quality - Security
Code Quality - Security
 
Devops architecture
Devops architectureDevops architecture
Devops architecture
 
Aleksei Dremin - Application Security Pipeline - phdays9
Aleksei Dremin - Application Security Pipeline - phdays9Aleksei Dremin - Application Security Pipeline - phdays9
Aleksei Dremin - Application Security Pipeline - phdays9
 
Do you lose sleep at night?
Do you lose sleep at night?Do you lose sleep at night?
Do you lose sleep at night?
 
12 Factor App Methodology
12 Factor App Methodology12 Factor App Methodology
12 Factor App Methodology
 
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly DavidoffDevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
 
Terrascan - Cloud Native Security Tool
Terrascan - Cloud Native Security Tool Terrascan - Cloud Native Security Tool
Terrascan - Cloud Native Security Tool
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
 
Protecting Against Web App Attacks
Protecting Against Web App AttacksProtecting Against Web App Attacks
Protecting Against Web App Attacks
 
Thick client pentesting_the-hackers_meetup_version1.0pptx
Thick client pentesting_the-hackers_meetup_version1.0pptxThick client pentesting_the-hackers_meetup_version1.0pptx
Thick client pentesting_the-hackers_meetup_version1.0pptx
 
DevOps intro
DevOps introDevOps intro
DevOps intro
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
Thick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash CourseThick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash Course
 
Protecting Against Web Attacks
Protecting Against Web AttacksProtecting Against Web Attacks
Protecting Against Web Attacks
 
Started In Security Now I'm Here
Started In Security Now I'm HereStarted In Security Now I'm Here
Started In Security Now I'm Here
 

Más de Denim Group

Long-term Impact of Log4J
Long-term Impact of Log4JLong-term Impact of Log4J
Long-term Impact of Log4JDenim Group
 
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...Denim Group
 
Optimizing Security Velocity in Your DevSecOps Pipeline at Scale
Optimizing Security Velocity in Your DevSecOps Pipeline at ScaleOptimizing Security Velocity in Your DevSecOps Pipeline at Scale
Optimizing Security Velocity in Your DevSecOps Pipeline at ScaleDenim Group
 
Application Asset Management with ThreadFix
 Application Asset Management with ThreadFix Application Asset Management with ThreadFix
Application Asset Management with ThreadFixDenim Group
 
OWASP San Antonio Meeting 10/2/20
OWASP San Antonio Meeting 10/2/20OWASP San Antonio Meeting 10/2/20
OWASP San Antonio Meeting 10/2/20Denim Group
 
AppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA Program
AppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA ProgramAppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA Program
AppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA ProgramDenim Group
 
Using Collaboration to Make Application Vulnerability Management a Team Sport
Using Collaboration to Make Application Vulnerability Management a Team SportUsing Collaboration to Make Application Vulnerability Management a Team Sport
Using Collaboration to Make Application Vulnerability Management a Team SportDenim Group
 
Managing Penetration Testing Programs and Vulnerability Time to Live with Thr...
Managing Penetration Testing Programs and Vulnerability Time to Live with Thr...Managing Penetration Testing Programs and Vulnerability Time to Live with Thr...
Managing Penetration Testing Programs and Vulnerability Time to Live with Thr...Denim Group
 
Security Champions: Pushing Security Expertise to the Edges of Your Organization
Security Champions: Pushing Security Expertise to the Edges of Your OrganizationSecurity Champions: Pushing Security Expertise to the Edges of Your Organization
Security Champions: Pushing Security Expertise to the Edges of Your OrganizationDenim Group
 
The As, Bs, and Four Cs of Testing Cloud-Native Applications
The As, Bs, and Four Cs of Testing Cloud-Native ApplicationsThe As, Bs, and Four Cs of Testing Cloud-Native Applications
The As, Bs, and Four Cs of Testing Cloud-Native ApplicationsDenim Group
 
An Updated Take: Threat Modeling for IoT Systems
An Updated Take: Threat Modeling for IoT SystemsAn Updated Take: Threat Modeling for IoT Systems
An Updated Take: Threat Modeling for IoT SystemsDenim Group
 
Continuous Authority to Operate (ATO) with ThreadFix – Bringing Commercial In...
Continuous Authority to Operate (ATO) with ThreadFix – Bringing Commercial In...Continuous Authority to Operate (ATO) with ThreadFix – Bringing Commercial In...
Continuous Authority to Operate (ATO) with ThreadFix – Bringing Commercial In...Denim Group
 
A New View of Your Application Security Program with Snyk and ThreadFix
A New View of Your Application Security Program with Snyk and ThreadFixA New View of Your Application Security Program with Snyk and ThreadFix
A New View of Your Application Security Program with Snyk and ThreadFixDenim Group
 
Enabling Developers in Your Application Security Program With Coverity and Th...
Enabling Developers in Your Application Security Program With Coverity and Th...Enabling Developers in Your Application Security Program With Coverity and Th...
Enabling Developers in Your Application Security Program With Coverity and Th...Denim Group
 
AppSec in a World of Digital Transformation
AppSec in a World of Digital TransformationAppSec in a World of Digital Transformation
AppSec in a World of Digital TransformationDenim Group
 
The As, Bs, and Four Cs of Testing Cloud-Native Applications
The As, Bs, and Four Cs of Testing Cloud-Native ApplicationsThe As, Bs, and Four Cs of Testing Cloud-Native Applications
The As, Bs, and Four Cs of Testing Cloud-Native ApplicationsDenim Group
 
Enabling Developers in Your Application Security Program With Coverity and Th...
Enabling Developers in Your Application Security Program With Coverity and Th...Enabling Developers in Your Application Security Program With Coverity and Th...
Enabling Developers in Your Application Security Program With Coverity and Th...Denim Group
 
AppSec in a World of Digital Transformation
 AppSec in a World of Digital Transformation AppSec in a World of Digital Transformation
AppSec in a World of Digital TransformationDenim Group
 
Enumerating Enterprise Attack Surface
Enumerating Enterprise Attack SurfaceEnumerating Enterprise Attack Surface
Enumerating Enterprise Attack SurfaceDenim Group
 
Enumerating Enterprise Attack Surface
Enumerating Enterprise Attack SurfaceEnumerating Enterprise Attack Surface
Enumerating Enterprise Attack SurfaceDenim Group
 

Más de Denim Group (20)

Long-term Impact of Log4J
Long-term Impact of Log4JLong-term Impact of Log4J
Long-term Impact of Log4J
 
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
 
Optimizing Security Velocity in Your DevSecOps Pipeline at Scale
Optimizing Security Velocity in Your DevSecOps Pipeline at ScaleOptimizing Security Velocity in Your DevSecOps Pipeline at Scale
Optimizing Security Velocity in Your DevSecOps Pipeline at Scale
 
Application Asset Management with ThreadFix
 Application Asset Management with ThreadFix Application Asset Management with ThreadFix
Application Asset Management with ThreadFix
 
OWASP San Antonio Meeting 10/2/20
OWASP San Antonio Meeting 10/2/20OWASP San Antonio Meeting 10/2/20
OWASP San Antonio Meeting 10/2/20
 
AppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA Program
AppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA ProgramAppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA Program
AppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA Program
 
Using Collaboration to Make Application Vulnerability Management a Team Sport
Using Collaboration to Make Application Vulnerability Management a Team SportUsing Collaboration to Make Application Vulnerability Management a Team Sport
Using Collaboration to Make Application Vulnerability Management a Team Sport
 
Managing Penetration Testing Programs and Vulnerability Time to Live with Thr...
Managing Penetration Testing Programs and Vulnerability Time to Live with Thr...Managing Penetration Testing Programs and Vulnerability Time to Live with Thr...
Managing Penetration Testing Programs and Vulnerability Time to Live with Thr...
 
Security Champions: Pushing Security Expertise to the Edges of Your Organization
Security Champions: Pushing Security Expertise to the Edges of Your OrganizationSecurity Champions: Pushing Security Expertise to the Edges of Your Organization
Security Champions: Pushing Security Expertise to the Edges of Your Organization
 
The As, Bs, and Four Cs of Testing Cloud-Native Applications
The As, Bs, and Four Cs of Testing Cloud-Native ApplicationsThe As, Bs, and Four Cs of Testing Cloud-Native Applications
The As, Bs, and Four Cs of Testing Cloud-Native Applications
 
An Updated Take: Threat Modeling for IoT Systems
An Updated Take: Threat Modeling for IoT SystemsAn Updated Take: Threat Modeling for IoT Systems
An Updated Take: Threat Modeling for IoT Systems
 
Continuous Authority to Operate (ATO) with ThreadFix – Bringing Commercial In...
Continuous Authority to Operate (ATO) with ThreadFix – Bringing Commercial In...Continuous Authority to Operate (ATO) with ThreadFix – Bringing Commercial In...
Continuous Authority to Operate (ATO) with ThreadFix – Bringing Commercial In...
 
A New View of Your Application Security Program with Snyk and ThreadFix
A New View of Your Application Security Program with Snyk and ThreadFixA New View of Your Application Security Program with Snyk and ThreadFix
A New View of Your Application Security Program with Snyk and ThreadFix
 
Enabling Developers in Your Application Security Program With Coverity and Th...
Enabling Developers in Your Application Security Program With Coverity and Th...Enabling Developers in Your Application Security Program With Coverity and Th...
Enabling Developers in Your Application Security Program With Coverity and Th...
 
AppSec in a World of Digital Transformation
AppSec in a World of Digital TransformationAppSec in a World of Digital Transformation
AppSec in a World of Digital Transformation
 
The As, Bs, and Four Cs of Testing Cloud-Native Applications
The As, Bs, and Four Cs of Testing Cloud-Native ApplicationsThe As, Bs, and Four Cs of Testing Cloud-Native Applications
The As, Bs, and Four Cs of Testing Cloud-Native Applications
 
Enabling Developers in Your Application Security Program With Coverity and Th...
Enabling Developers in Your Application Security Program With Coverity and Th...Enabling Developers in Your Application Security Program With Coverity and Th...
Enabling Developers in Your Application Security Program With Coverity and Th...
 
AppSec in a World of Digital Transformation
 AppSec in a World of Digital Transformation AppSec in a World of Digital Transformation
AppSec in a World of Digital Transformation
 
Enumerating Enterprise Attack Surface
Enumerating Enterprise Attack SurfaceEnumerating Enterprise Attack Surface
Enumerating Enterprise Attack Surface
 
Enumerating Enterprise Attack Surface
Enumerating Enterprise Attack SurfaceEnumerating Enterprise Attack Surface
Enumerating Enterprise Attack Surface
 

Último

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 

Último (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 

Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security (Raw Slides)

  • 1. Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security Dan Cornell CTO, Denim Group
  • 2. Agenda • Risk Exposure from Software Build Pipeline • Constituents and Stakeholders • Drivers for Change • Threat Modeling Overview • Supporting Infrastructure • Pipeline Threat Model • Using the Threat Model • Questions
  • 3. Notable Incidents • SolarWinds • Compromised server in build infrastructure • CodeCov • Compromised container server • Potentially spawning Executive Order, other government activity
  • 4. Fundamental Disconnect • We have developed tremendous tooling and automation that allows us to create secure, reliable software at a scale not previously considered • The way we deploy and deliver this tooling puts us in a situation where we can't actually trust anything that comes out of it • Oops
  • 5. Fractal Attack Surface The closer you look, the more you find
  • 6. Confidentiality Impact • IP disclosure • Leaked secrets • Vulnerability disclosure
  • 7. Integrity Impact • Backdoors • Other unwanted behaviors • Compromised cryptography
  • 8. Availability Impact • Development pipeline infrastructure is hyper-connected • Release delays • Absence or misbehavior of supporting services
  • 9. Threat Modeling Overview • Full overview beyond the scope of this talk • Some background for reference • https://www.denimgroup.com/resources/blog/2014/07/modeling-builders-breakers/ • Let's learn as we go
  • 10. Supporting Infrastructure • Fixed assets vs ephemeral assets • Scanning/patching regimen • Who is responsible for this infrastructure? • "Corporate" or a DevOps team?
  • 11. The Perimeter is the Problem • Critical part of threat modeling process – what is in/what is out? • For modern CI/CD pipelines: turns out to be maddeningly hard (impossible) to determine the boundary • Many steps with lots of moving parts • Dynamic attack surface: tomorrow may be different than today • DevOps team members can often add stages/tools/elements with minimal supervision • Fractal complexity • Approach: Start with code commit and follow the workflow
  • 13. General/Overarching Concerns • Lots of network traffic • Protect with TLS to guard Confidentiality, Integrity • Lots of authentication points / IAM concerns • Often multiple methods/avenues per system: interactive + API (+ other?) • User <-> System • System <-> System • Is there a comprehensive IAM paradigm in place, or a combination of overlapping approaches?
  • 14. General/Overarching Concerns • Data storage concerns • How is data at rest protected? (Especially file/block storage) • What are your unknown-unknowns • External services and provides that are (generally) unknown but part of the process • Any developer with a GitHub account is now their own purchasing agent
  • 15. Source Repository and Workflow Engine
  • 16. Source Repository and Workflow Engine • Sources of (custom) code • In-house developers • 3rd party development teams • Likely different risk profiles • Do contributions go through different workflows?
  • 17. Source Repository and Workflow Engine • Authentication • Developers authenticating to push/pull code • Developers authenticating to evaluate/approve merge requests • External system API access • Webhooks • Additionally for Hosted Repositories/Workflows • GitHub: Apps and Actions • GitLab: Integrations • Both: External collaborators
  • 18. Open Source Component Management
  • 19. Open Source Component Management • Are you: • Directly pulling from Central repositories • Proxying requests through a Remote repository • Ability to enforce policies • Known security vulnerabilities in open source components • License restrictions on open source components
  • 20. Open Source Backdoor Concerns • PHP example • https://arstechnica.com/gadgets/2021/03/hackers-backdoor-php-source-code-after-breaching-internal-git-server/ • Linux kernel example • https://www.techrepublic.com/article/linux-kernel-security-uproar-what-some-people-missed/ • Not realistic to detect • Maintainers don't even have the bandwidth • Have to be able to respond • Pulling from Remote vs directly from Central • Policies on acceptable (and unacceptable) versions
  • 22. Build Management • Combining source code and open source components to create a new build • How often run: • Every merge request • Accepted merge requests • Specific branches/tags • Maven plugins – yet another source of code you can't trust that runs in your environment!
  • 24. Automated Testing • Most common types of testing: • Unit testing • Acceptance testing • Other common analysis: • Code quality ("smells") • Code metrics (complexity, etc) • Code coverage
  • 25. Automated Testing: Security Testing • SAST • What is being analyzed: source or binary • For a given language: is "binary" even a thing? • Where is the analysis being performed: on-network, in the cloud • Where are the results being stored: on-network, in the cloud • DAST • Where is the server being tested: on-network, in the cloud • Where is the test traffic being generated: on-network, in the cloud, proxied onto-network • Where are the results being storoed: on-network, in the cloud
  • 26. Automated Testing: Security Testing (cont'd) • IAST • Where is the server being tested: on-network, in the cloud • Where is the test traffic being generated: on-network, in the cloud, proxied onto-network • Where are the results being stored: on-network, in the cloud • SCA • Where is the analysis being performed: on-network, in the cloud • Where are the results being stored: on-network, in the cloud
  • 27. Security Testing and Backdoors • Best backdoor: Normal-looking security vulnerability • "Oops, sorry I introduced that [SQL injection|missing auth check|etc] • Other types of backdoor detection • Static analysis – see the theoretical behavior of the application • Look for suspicious behavior patterns • References: • https://www.acsac.org/2007/workshop/Wysopal.pdf • https://www.veracode.com/sites/default/files/Resources/Whitepapers/static-detection-of- backdoors-1.0.pdf • https://owasp.org/www-pdf-archive/Protecting_the_Enterprise_-_Software_Backdoors.pdf • https://owasp.org/www-pdf-archive/Protecting_Your_Applications_From_Backdoors.pdf
  • 28. Software Packaging and Distribution
  • 29. Software Packaging • Monolithic applications vs. Microservice applications • Application binary vs. Application binaries combined with containers • Source container management is very similar to open source component management • Code signing is important • But signed malicious/vulnerable code is still malicious/vulnerable code
  • 30. Software Distribution • Now the software should be ready too distribute to customers • Internal • External • How is the software distributed? • Binary • Binary + Container • Binaries + Containers + orchestration • How are builds verified? • Checksums
  • 31. Two Exercises • Passive: Grab netflow data from your build environment and see what it talks to • Active: Follow code change from checkout to release • Spoiler alert: the active exercise where I engaged the development team was more productive
  • 32. Reviewing Netflow Data • Pull netflow logs from network where development infrastructure is hosted • Look at what the build infrastructure talks to • Code repositories • Open source component repositories • Testing services • Other services <- Area of concern • Container repositories • In practice • Identified some interesting communications • "Expensive" to run down results • "High" false positive rate
  • 33. Netflow Data Review [Run through cleaned up data from build infrastructure netflow review]
  • 34. Follow a Code Change • Change code • Check out code (and make changes) • Create merge request • Review merge request • Run build • Pull code • Pull open source components • Automated testing • Unit tests • Acceptance tests • Security tests • Other tests • Accept build • Push to distribution • Distribute software Questions to ask at each stage • How does this user/system authenticate to the next step • Where is the server/service that performs this step • Where possible: show, don't tell • Look at the UI developers look at • Ask questions about where data comes from
  • 38. Parallel Build Pipelines • Have two or more separate, parallel build pipelines • Compare artifacts at the end • Goal is to force attackers to compromise multiple pathways • Best way to get budget for this is to have a public breach of epic proportions and suggest that your successor try it out • How do you compare the outputs from multiple toolchains? • Compare SBOM • Asset enumeration • Reverse engineering • Live/behaviral testing
  • 39. Using the Threat Model • Identify gaps in your own pipeline security • What can you shore up? • What do you have to live with? • How do you respond to incidents? • Have meaningful conversations with suppliers of your software • Understand their practices • Push for change – vote with your wallet • Be better able to detect malicious behavior