SlideShare a Scribd company logo
1 of 21
#ossummit
(Micro)chips and SLSA
Securing the software supply chain
@riichardboydii
About Me
● Technical Principal at Liatrio
● DevOpsDays Austin Organizer and Cloud
Austin Meetup Organizer
● Two decades of experience in systems
engineering and DevOps / SRE / Whatever
Comes Next
● Husband, Father, and Cat Dad
● OIF Veteran
● @richardboyii on all the things
@richardboydii
Agenda
● Recent Attacks
● A changing compliance landscape
● SLSA, In-Toto, and Attestations
● OPA and Rego Policies
● Putting it All Together
● Q&A
@richardboydii
If you think technology can solve your
security problems, then you don't
understand the problems and you don't
understand the technology.
- Bruce Schneier
@richardboydii
Remember SolarWinds?
@richardboydii
xz
@richardboydii
The Software Supply Chain Attack Surface
@richardboydii
Executive Order 14028
@richardboydii
NIST SP 800-218 and 204D
@richardboydii
Making SBOMs Actionable
@richardboydii
● Human readable != having time to read
them
● Choose a format and stick to it (SPDX vs
CycloneDX vs SWID)
● Index them and make them searchable
using OSS tools like Manticore Search,
Apache Solr, or OpenSearch
● Don’t forget about data retention
requirements; plan ahead (this SBOM is
2.2 MB alone)
Mixing up Some SLSA
● Supply-chain Levels for Software Artifacts (SLSA)
● A checklist of standards and controls to prevent
tampering, improve integrity, and secure packages
and infrastructure
● Software Supply Chains should be tamper proof, e.g.
no injections or overrides; hermetic
● Build levels validate the security of the software supply
chain
● Generate provenance about the build process
● Just hit version 1.0.0, still evolving
@richardboydii
Attestations for the Win
● Attestations are like affidavits for how a software
artifact was produced
○ Authenticated metatdata
● In-Toto is the common framework for attestations
backed by the Linux Foundation
● Provide provenance - Verifiable information about
software artifacts describing how it was produced
● Has four common parts
○ Predicate
○ Statement
○ Envelope
○ Bundle
@richardboydii
Types of In-Toto Predicates
● SLSA Provenance: Describes how an artifact or set of artifacts was produced.
● Link: For migration from in-toto 0.9.
● SCAI Report: Evidence-based assertions about software artifact and supply chain attributes
or behavior.
● Runtime Traces: Captures runtime traces of software supply chain operations.
● SLSA Verification Summary: SLSA verification decision about a software artifact.
● SPDX: SPDX-formatted BOM for software artifacts.
● CycloneDX: CycloneDX BOM for software artifacts.
● Vulnerability: Defines the metadata to share the results of vulnerability scanning on software
artifacts.
● Release: Details an artifact that is part of a given release version.
● Test Result: A generic schema to express results of any type of tests.
● OR create your own following the conventions
@richardboydii
Extension Fields for the Win
● Extension fields can be added to an attestation as
long as
○ They SHOULD follow the naming convention of
<vendor>_<fieldname>
○ MUST NOT alter the meaning of any other field
○ Deleting or ignoring the extension SHOULD NOT turn a
policy DENY into an ALLOW
● Gives you the ability to increase the usability / utility
of attestations
@richardboydii
The Sigstore Stack
● Cosign is used to sign OCI containers and other
artifacts
○ Can also generate and sign attestations
● Fulcio is a certificate signing authority for
generating short-lived certificates
● Rekor is an “immutable, tamper-resistant ledger
of metadata generated within a software
project’s supply chain”
@richardboydii
OPA!
● Open Policy Agent (OPA) unifies policy
statements across the stack
● CNCF graduated project
● Provides a common language (Rego (pronounced
RAY-go)) for policies at every level of the software
supply chain
● Decouples policy decisions from policy
enforcement
@richardboydii
Rego Policy Tips
● Leverage the custom metadata fields in the
header to add more contextual information
● Your main.rego file can act as a router to match
policy based on input fields
● Use the msg fields to add helper messages to
policy allow and deny results
● Deny only policies simplify the policies that you
need to write
@richardboydii
Putting the Pieces Together
@richardboydii
Recap
● Software supply chain attacks will continue to increase because they’re
effective
● Securing your software supply chain is a Day 0 duty
● Regulations and compliance frameworks are finally catching up to software
supply chain attacks
● Generating SBOMs is not enough, you have to make them actionable
● Attestations provide provenance about how an artifact was constructed and
are an essential component of software supply chain security
● Rego policies allow you to articulate compliance and governance and
evaluate attestations
@richardboydii
Links
Executive Order on Improving the
Nation’s Cybersecurity
NIST SP 800-218: Secure Software
Development Framework (SSDF)
Version 1.1
NIST SP 800-204D Strategies for the
Integration of Software Supply Chain
Security in DevSecOps CI/CD pipelines
Supply-chain Levels for Software
Artifacts (SLSA)
Sigstore
Open Policy Agent
#ossummit
Questions?
@richardboydii on all the things

More Related Content

Similar to (Micro)chips and SLSA: Securing the Software Supply Chain

Enterprise-Grade DevOps Solutions for a Start Up Budget
Enterprise-Grade DevOps Solutions for a Start Up BudgetEnterprise-Grade DevOps Solutions for a Start Up Budget
Enterprise-Grade DevOps Solutions for a Start Up BudgetDevOps.com
 
Summit 16: NetIDE: Integrating and Orchestrating SDN Controllers
Summit 16: NetIDE: Integrating and Orchestrating SDN ControllersSummit 16: NetIDE: Integrating and Orchestrating SDN Controllers
Summit 16: NetIDE: Integrating and Orchestrating SDN ControllersOPNFV
 
IoT Development from Prototype to Production
IoT Development from Prototype to ProductionIoT Development from Prototype to Production
IoT Development from Prototype to ProductionMender.io
 
Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO Chandan Kumar
 
RTI/Cisco response to the Software Defined Networks (SDN) OMG RFI
RTI/Cisco response to the Software Defined Networks (SDN) OMG RFIRTI/Cisco response to the Software Defined Networks (SDN) OMG RFI
RTI/Cisco response to the Software Defined Networks (SDN) OMG RFIGerardo Pardo-Castellote
 
Top 10 Software to Detect & Prevent Security Vulnerabilities from BlackHat US...
Top 10 Software to Detect & Prevent Security Vulnerabilities from BlackHat US...Top 10 Software to Detect & Prevent Security Vulnerabilities from BlackHat US...
Top 10 Software to Detect & Prevent Security Vulnerabilities from BlackHat US...Mobodexter
 
Security in CI/CD Pipelines: Tips for DevOps Engineers
Security in CI/CD Pipelines: Tips for DevOps EngineersSecurity in CI/CD Pipelines: Tips for DevOps Engineers
Security in CI/CD Pipelines: Tips for DevOps EngineersDevOps.com
 
CHIPS Alliance_Object Automation Inc_workshop
CHIPS Alliance_Object Automation Inc_workshopCHIPS Alliance_Object Automation Inc_workshop
CHIPS Alliance_Object Automation Inc_workshopObject Automation
 
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...sparkfabrik
 
E bpf and profilers
E bpf and profilersE bpf and profilers
E bpf and profilersLibbySchulze
 
Deepfence.pdf
Deepfence.pdfDeepfence.pdf
Deepfence.pdfVishwas N
 
Webinar: Code Faster on Kubernetes
Webinar: Code Faster on KubernetesWebinar: Code Faster on Kubernetes
Webinar: Code Faster on KubernetesAmbassador Labs
 
Pareto will tell you to stop using your ORM - Mateo Collina
Pareto will tell you to stop using your ORM - Mateo CollinaPareto will tell you to stop using your ORM - Mateo Collina
Pareto will tell you to stop using your ORM - Mateo CollinaWey Wey Web
 
DevOps State of the Union 2015
DevOps State of the Union 2015DevOps State of the Union 2015
DevOps State of the Union 2015Ernest Mueller
 
Optimizing The Cost Of Open Source Software Management
Optimizing The Cost Of Open Source Software ManagementOptimizing The Cost Of Open Source Software Management
Optimizing The Cost Of Open Source Software ManagementProtecode
 
Not my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructureNot my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructureYshay Yaacobi
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Programaspyker
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixAll Things Open
 
Delivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdoDelivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdoChandan Kumar
 

Similar to (Micro)chips and SLSA: Securing the Software Supply Chain (20)

Enterprise-Grade DevOps Solutions for a Start Up Budget
Enterprise-Grade DevOps Solutions for a Start Up BudgetEnterprise-Grade DevOps Solutions for a Start Up Budget
Enterprise-Grade DevOps Solutions for a Start Up Budget
 
Security in open source projects
Security in open source projectsSecurity in open source projects
Security in open source projects
 
Summit 16: NetIDE: Integrating and Orchestrating SDN Controllers
Summit 16: NetIDE: Integrating and Orchestrating SDN ControllersSummit 16: NetIDE: Integrating and Orchestrating SDN Controllers
Summit 16: NetIDE: Integrating and Orchestrating SDN Controllers
 
IoT Development from Prototype to Production
IoT Development from Prototype to ProductionIoT Development from Prototype to Production
IoT Development from Prototype to Production
 
Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO
 
RTI/Cisco response to the Software Defined Networks (SDN) OMG RFI
RTI/Cisco response to the Software Defined Networks (SDN) OMG RFIRTI/Cisco response to the Software Defined Networks (SDN) OMG RFI
RTI/Cisco response to the Software Defined Networks (SDN) OMG RFI
 
Top 10 Software to Detect & Prevent Security Vulnerabilities from BlackHat US...
Top 10 Software to Detect & Prevent Security Vulnerabilities from BlackHat US...Top 10 Software to Detect & Prevent Security Vulnerabilities from BlackHat US...
Top 10 Software to Detect & Prevent Security Vulnerabilities from BlackHat US...
 
Security in CI/CD Pipelines: Tips for DevOps Engineers
Security in CI/CD Pipelines: Tips for DevOps EngineersSecurity in CI/CD Pipelines: Tips for DevOps Engineers
Security in CI/CD Pipelines: Tips for DevOps Engineers
 
CHIPS Alliance_Object Automation Inc_workshop
CHIPS Alliance_Object Automation Inc_workshopCHIPS Alliance_Object Automation Inc_workshop
CHIPS Alliance_Object Automation Inc_workshop
 
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
 
E bpf and profilers
E bpf and profilersE bpf and profilers
E bpf and profilers
 
Deepfence.pdf
Deepfence.pdfDeepfence.pdf
Deepfence.pdf
 
Webinar: Code Faster on Kubernetes
Webinar: Code Faster on KubernetesWebinar: Code Faster on Kubernetes
Webinar: Code Faster on Kubernetes
 
Pareto will tell you to stop using your ORM - Mateo Collina
Pareto will tell you to stop using your ORM - Mateo CollinaPareto will tell you to stop using your ORM - Mateo Collina
Pareto will tell you to stop using your ORM - Mateo Collina
 
DevOps State of the Union 2015
DevOps State of the Union 2015DevOps State of the Union 2015
DevOps State of the Union 2015
 
Optimizing The Cost Of Open Source Software Management
Optimizing The Cost Of Open Source Software ManagementOptimizing The Cost Of Open Source Software Management
Optimizing The Cost Of Open Source Software Management
 
Not my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructureNot my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructure
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at Netflix
 
Delivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdoDelivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdo
 

Recently uploaded

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines 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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 

Recently uploaded (20)

The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines 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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 

(Micro)chips and SLSA: Securing the Software Supply Chain

  • 1. #ossummit (Micro)chips and SLSA Securing the software supply chain @riichardboydii
  • 2. About Me ● Technical Principal at Liatrio ● DevOpsDays Austin Organizer and Cloud Austin Meetup Organizer ● Two decades of experience in systems engineering and DevOps / SRE / Whatever Comes Next ● Husband, Father, and Cat Dad ● OIF Veteran ● @richardboyii on all the things @richardboydii
  • 3. Agenda ● Recent Attacks ● A changing compliance landscape ● SLSA, In-Toto, and Attestations ● OPA and Rego Policies ● Putting it All Together ● Q&A @richardboydii
  • 4. If you think technology can solve your security problems, then you don't understand the problems and you don't understand the technology. - Bruce Schneier @richardboydii
  • 7. The Software Supply Chain Attack Surface @richardboydii
  • 9. NIST SP 800-218 and 204D @richardboydii
  • 10. Making SBOMs Actionable @richardboydii ● Human readable != having time to read them ● Choose a format and stick to it (SPDX vs CycloneDX vs SWID) ● Index them and make them searchable using OSS tools like Manticore Search, Apache Solr, or OpenSearch ● Don’t forget about data retention requirements; plan ahead (this SBOM is 2.2 MB alone)
  • 11. Mixing up Some SLSA ● Supply-chain Levels for Software Artifacts (SLSA) ● A checklist of standards and controls to prevent tampering, improve integrity, and secure packages and infrastructure ● Software Supply Chains should be tamper proof, e.g. no injections or overrides; hermetic ● Build levels validate the security of the software supply chain ● Generate provenance about the build process ● Just hit version 1.0.0, still evolving @richardboydii
  • 12. Attestations for the Win ● Attestations are like affidavits for how a software artifact was produced ○ Authenticated metatdata ● In-Toto is the common framework for attestations backed by the Linux Foundation ● Provide provenance - Verifiable information about software artifacts describing how it was produced ● Has four common parts ○ Predicate ○ Statement ○ Envelope ○ Bundle @richardboydii
  • 13. Types of In-Toto Predicates ● SLSA Provenance: Describes how an artifact or set of artifacts was produced. ● Link: For migration from in-toto 0.9. ● SCAI Report: Evidence-based assertions about software artifact and supply chain attributes or behavior. ● Runtime Traces: Captures runtime traces of software supply chain operations. ● SLSA Verification Summary: SLSA verification decision about a software artifact. ● SPDX: SPDX-formatted BOM for software artifacts. ● CycloneDX: CycloneDX BOM for software artifacts. ● Vulnerability: Defines the metadata to share the results of vulnerability scanning on software artifacts. ● Release: Details an artifact that is part of a given release version. ● Test Result: A generic schema to express results of any type of tests. ● OR create your own following the conventions @richardboydii
  • 14. Extension Fields for the Win ● Extension fields can be added to an attestation as long as ○ They SHOULD follow the naming convention of <vendor>_<fieldname> ○ MUST NOT alter the meaning of any other field ○ Deleting or ignoring the extension SHOULD NOT turn a policy DENY into an ALLOW ● Gives you the ability to increase the usability / utility of attestations @richardboydii
  • 15. The Sigstore Stack ● Cosign is used to sign OCI containers and other artifacts ○ Can also generate and sign attestations ● Fulcio is a certificate signing authority for generating short-lived certificates ● Rekor is an “immutable, tamper-resistant ledger of metadata generated within a software project’s supply chain” @richardboydii
  • 16. OPA! ● Open Policy Agent (OPA) unifies policy statements across the stack ● CNCF graduated project ● Provides a common language (Rego (pronounced RAY-go)) for policies at every level of the software supply chain ● Decouples policy decisions from policy enforcement @richardboydii
  • 17. Rego Policy Tips ● Leverage the custom metadata fields in the header to add more contextual information ● Your main.rego file can act as a router to match policy based on input fields ● Use the msg fields to add helper messages to policy allow and deny results ● Deny only policies simplify the policies that you need to write @richardboydii
  • 18. Putting the Pieces Together @richardboydii
  • 19. Recap ● Software supply chain attacks will continue to increase because they’re effective ● Securing your software supply chain is a Day 0 duty ● Regulations and compliance frameworks are finally catching up to software supply chain attacks ● Generating SBOMs is not enough, you have to make them actionable ● Attestations provide provenance about how an artifact was constructed and are an essential component of software supply chain security ● Rego policies allow you to articulate compliance and governance and evaluate attestations @richardboydii
  • 20. Links Executive Order on Improving the Nation’s Cybersecurity NIST SP 800-218: Secure Software Development Framework (SSDF) Version 1.1 NIST SP 800-204D Strategies for the Integration of Software Supply Chain Security in DevSecOps CI/CD pipelines Supply-chain Levels for Software Artifacts (SLSA) Sigstore Open Policy Agent

Editor's Notes

  1. Good afternoon everybody! Thanks for sticking around to the end of the day for my talk. We’re at the home stretch and we’ll be out of here and bowling before you know it.
  2. Technical Principal at Liatrio, we help enterprise customers adopt DevOps fundamentals through pairing and coaching DevOpsDays Austin Organizer and our event is May 2nd and 3rd this year. I'm also a Cloud Austin Meetup Organizer I have Two decades of experience in systems engineering and DevOps / SRE / Whatever Comes Next Husband, Father, and Cat Dad to two stupid kittens and one old cat OIF Veteran I'm @richardboydii on all the things
  3. Recent Attacks A changing compliance landscape SLSA, In-Toto, and Attestations OPA and Rego Policies Putting it All Together Q&A
  4. Whenever I read about trying to fix security issues with software, I think of this quote by Bruce Schneier. In a lot of ways we seem to be trying to fix human-caused security problems with more and more software which creates more vulnerabilities and enlarges the attack surface, doing the opposite of what we actually need to do. If you think technology can solve your security problems, then you don't understand the problems and you don't understand the technology. - Bruce Schneier
  5. Does everyone remember the SolarWinds attack? In case you were in a coma, in October 2019 hackers used a supply chain attack to insert malicious pieces of code into the SolarWinds software update framework. In March of 2020 Solarwinds sent that malicious code out to over 18000 customers. It was a spectacular supply chain attack, perpretrated over a six month period. In the Orion hack, a backdoor was created which could be accessed by the hackers to impersonate accounts and users of victim organizations. This backdoor allowed the hackers to access system files and hide their tracks by blending into the Orion activity, masking the malicious code from antivirus packages. Here is a timeline of the SolarWinds hack: September 2019. Threat actors gain unauthorized access to SolarWinds network October 2019. Threat actors test initial code injection into Orion Feb. 20, 2020. Malicious code known as Sunburst injected into Orion March 26, 2020. SolarWinds unknowingly starts sending out Orion software updates with hacked code According to a U.S. Department of Homeland Security advisory, the affected versions of SolarWinds Orion are versions are 2019.4 through 2020.2.1 HF1. More than 18,000 SolarWinds customers installed the malicious updates, with the malware spreading undetected. Through this code, hackers accessed SolarWinds's customer information technology systems, which they could then use to install even more malware to spy on other companies and organizations.
  6. More recently we have the XZ software supply chain attack that used social engineering. Some mysterious person named Jian Tan infiltrated the XZ maintainer community starting all the way back in October of 2021. By February of 2024 they were able to sneak a backdoor into the XZ library. Luckily for all of us, a security researcher, Andres Freund, found the malicious code during performance testing and was able to get the word out to Red Hat and Debian, which issued CVEs and rollbacks respectively. The XZ software supply chain attack started all the way back in October 2021. The attacker used social engineering to gain the trust of the xz maintainers. Over the course of three years they slowly infiltrated the open source maintainer community and were granted more and more access. The actual attack happened on February 23rd, 2024. Over the next month the attacker would exert pressure on Debian, Red Hat, and Ubuntu to update the xz package with the malicious code. It was finally detected on more than a month later on March 28th, 2024 by Andres Freund. Red Hat assigned a CVE that day and Debian issued a roll back to the previous version without the backdoor. This level of sophistication has not been observed in previous software supply chain attacks and is a harbinger of what attacks going forward may look like. As a consumer of open source software, it behooves us to harden our software supply chains as much as possible. Timeline on the XZ attack: https://research.swtch.com/xz-timeline
  7. This is the attack surface of your software supply chain. We’ve taken it for granted that our CI/CD systems and our git repos were secure. What we’ve learned over the past few years is that we now live in a world where we need to harden our software supply chain as much (if not more) than our production systems. From malicious dependency injection to compromised build servers, there’s a huge attack surface that our CI/CD infrastructure presents.
  8. In response to the SolarWinds attack, President Biden issued Executive Order 14028, Aimed at improving the nation’s ability to identify, deter, protect against, detect and respond to malicious cyber activity in the face of “persistent and increasingly sophisticated malicious cyber campaigns that threaten the public sector, the private sector, and ultimately the American people’s security and privacy.” It mandates encryption at rest and in transit, zero trust architectures, multi-factor authentication, and sets up a threat response and information sharing process between the US government and the private sector. It also mandates that any entity providing software to the US government deliver Software Bill of Materials with their software. And we all know that as the government adopts a standard the rest of the IT industry is compelled to follow. Mandates encryption at rest and in transit. Requires IT service providers to collect relevant data in case of a cybersecurity incident. Mandates a move towards zero-trust architectures. Mandates MFA. “[t]he development of commercial software often lacks transparency, sufficient focus on the ability of the software to resist attack, and adequate controls to prevent tampering by malicious actors. There is a pressing need to implement more rigorous and predictable mechanisms for ensuring that products function securely, and as intended.” The new guidance required by the Order will include standards and requirements regarding: (i) secure software development environments; (ii) generating and, when requested by a purchaser, providing artifacts that demonstrate conformance to the guidance; (iii) employing automated tools or processes to maintain trusted source code supply chains and to check for and remediate known and potential vulnerabilities; (iv) providing, when requested by a purchaser, artifacts of the execution of those tools and processes, and making publicly available a summary description of the risks assessed and mitigated; (v) maintaining accurate and up-to-date data, provenance of software code or components, and controls on internal and third-party software components, tools and services, and performing audits and enforcement of these controls; (vi) providing a purchaser a Software Bill of Materials for each product; (vii) participating in a vulnerability disclosure program that includes a reporting and disclosure process, and attesting to conformity with secure software development practices; and (viii) ensuring and attesting, to the extent practicable, to the integrity and provenance of open-source software used within any portion of a product. The risk responsibility for software is shifting from software consumers to software producers. This is what this executive order is focused on.
  9. As a consequence of the Executive Order, NIST released updated guidance in the form of two special publications: 800-218 and 800-204D. NIST SP 800-218 The National Cybersecurity Strategy makes the case that there must be a shift of the burden for cybersecurity from the consumers of software to the producers of software.  It lays out a series of guiding principles that it encourages agencies and the private sector to adopt, including: PS.3.1: Securely archive the necessary files and supporting data (e.g., integrity verification information, provenance data) to be retained for each software release. PS.3.2: Collect, safeguard, maintain, and share provenance data for all components of each software release (e.g., in a software bill of materials [SBOM]). PW.4.4: Verify that acquired commercial, open-source, and all other third-party software components comply with the requirements, as defined by the organization, throughout their life cycles. NIST 800-204D NIST SP 800-204D can be thought of as a roadmap designed to navigate the complexities of securing the software supply chain. It offers more than just technical guidance; it fosters a cultural shift within organizations, emphasizing the importance of considering security at every step, from the initial lines of code to the final deployment. This holistic approach builds trust, both internally and externally. Developers gain confidence knowing their creations are secure, and users can rely on applications that are robust and resilient against potential attacks. In essence, NIST SP 800-204D empowers organizations to build stronger, more secure software, solidifying their footing in the ever-evolving digital landscape.
  10. This is the Software Bill of Materials for Keycloack. It has over 60K lines and contains loads of components and dependencies. While JSON is technically human readable, there’s no way a human could be expected to inspect this by just reading it. And this is just one SBOM. How many open source projects are you using in your infrastructure or product? How many SBOMs do you potentially need to process in order to ensure that your software supply chain is secure? When it comes to handling SBOMs make sure to: Choose a format and stick to it (SPDX vs CycloneDX vs SWID) Index them and make them searchable using OSS tools like Manticore Search, Apache Solr, or OpenSearch Don’t forget about data retention requirements; plan ahead (this SBOM is 2.2 MB alone)
  11. Next up we need to talk about hardening our build systems. That's where the SLSA framework comes in. Any software can introduce vulnerabilities into a supply chain. As a system gets more complex, it’s critical to already have checks and best practices in place to guarantee artifact integrity, that the source code you’re relying on is the code you’re actually using. Without solid foundations and a plan for the system as it grows, it’s difficult to focus your efforts against tomorrow’s next hack, breach or compromise. Supply-chain Levels for Software Artifacts (SLSA) A checklist of standards and controls to prevent tampering, improve integrity, and secure packages and infrastructure Build levels validate the security of the software supply chain Software Supply Chains should be tamper proof, e.g. no injections or overrides; hermetic Generate provenance about the build process in the form of attestations Just hit version 1.0.0, still evolving
  12. Speaking of attestations, the in-toto Attestation Framework provides a specification for generating verifiable claims about any aspect of how a piece of software is produced. Consumers or users of software can then validate the origins of the software, and establish trust in its supply chain, using in-toto attestations. Authenticated metatdata In-Toto is the common framework for attestations backed by the Linux Foundation Provides provenance - Verifiable information about software artifacts describing how it was produced Four common parts to an attestation Predicate: Contains arbitrary metadata about a subject artifact, with a type-specific schema. Statement: Binds the attestation to a particular subject and unambiguously identifies the types of the predicate. Envelope: Handles authentication and serialization. Bundle: Defines a method of grouping multiple attestations together.
  13. There are wide variety of in-toto predicates out there and more are being added as the specification evolves. From build provenance to SBOMs, there are predicates that you can leverage as-is in your software supply chain. And if you don't find one that fits your use case you can always create a custom predicate following the spec.
  14. This is a sample attestation that I've generated. I highly recommend that you leverage extension fields to add rich metadata to your attestations to make them more useful. Extension fields can be added to an attestation as long as They SHOULD follow the naming convention of <vendor>_<fieldname> MUST NOT alter the meaning of any other field Deleting or ignoring the extension SHOULD NOT turn a policy DENY into an ALLOW In this example I've added fields for the attestation timestamp, the attestation UUID, the commit hash, the project name, the version of software, and the result of policy evaluation. "my_CustomMetadata": { "attestationCreationTimestamp": "2024-03-22T17:18:25.333116", "attestationUuid": "aad67d60-eb93-48e8-81a8-114ccf0205a3", "commit": "3d38dbe550feb745d0221874ef15d71822e90264", "projectName": "automated-governance-poc", "version": "3.29.0", "policyResult": "allow" }, "version": 1
  15. When it comes to creating, signing, and storing attestations, we’ve had great success leveraging the Sigstore stack. These tools combine to create a feature-rich ecosystem that’s easy to implement. Cosign is used to sign OCI containers and other artifacts Can also generate and sign attestations Fulcio is a certificate signing authority for generating short-lived certificates that Cosign uses when it signs artifacts and attestations Rekor is an “immutable, tamper-resistant ledger of metadata generated within a software project’s supply chain” and is where we store our attestations
  16. Now we need to evaluate our attestations against our governance and compliance The Open Policy Agent (OPA, pronounced “oh-pa”) is an open source, general-purpose policy engine that unifies policy enforcement across the stack. OPA provides a high-level declarative language that lets you specify policy as code and simple APIs to offload policy decision-making from your software. You can use OPA to enforce policies in microservices, Kubernetes, CI/CD pipelines, API gateways, and more. CNCF graduated project Provides a common language (Rego (pronounced RAY-go)) for policies at every level of the software supply chain Decouples policy decisions from policy enforcement
  17. Here are a few tips and tricks to writing your own Rego policies that we've learned over the years. Leverage the custom metadata fields in the header to add more contextual information like policy information or the version Your main.rego file can act as a router to match policy based on input fields to other policies Use the msg fields to add helper messages to policy allow and deny results Deny only policies simplify the policies that you need to write
  18. We built a secure software supply chain that leveraged the Sigstore stack plus Open Policy Agent. The CI/CD server used Cosign to sign artifacts and attestations. The attestations were then validated against Rego policies in an Open Policy Agent sidecar. The resulting attestation was then signed with a key from Fulcio and uploaded to a private Rekor instance. Rekor Search UI was used to view the full attestation. Rekor stored the attestations in S3, which triggered a Lambda function to write the resulting attestation to an OpenSearch Index for easy analysis by end users / auditors.
  19. Software supply chain attacks will continue to increase because they’re effective Securing your software supply chain is a Day 0 duty Regulations and compliance frameworks are finally catching up to software supply chain attacks Generating SBOMs is not enough, you have to make them actionable Attestations provide provenance about how an artifact was constructed and are an essential component of software supply chain security Rego policies allow you to articulate compliance and governance and evaluate attestations