SlideShare uma empresa Scribd logo
1 de 47
Software rotting
Why you need to change your approach to security…
@giulio_vian
https://www.getlatestversion.eu
http://blog.casavian.eu
https://www.slideshare.net/giuliov
https://github.com/giuliov
Giulio Vian
22 June 2022
Has any of these
happened to you?
I bet so,
because you
Deploy to Production
You did nothing
wrong
Hardware spec:
1 KB RAM
4 KB ROM
First computer Past employers Communities
Giulio Vian Principal DevOps Engineer
@giulio_vian
giuliovdev@hotmail.com
Agenda
What you are doing today
Ideas for improvement
Is security a real problem?
What you are doing
today (probably)
High-level process
CVE / Security
triggers
Developer Teams
search
Developer Teams
fix
Release
Management
deploy
Affected by
Vulnerability
Application stack
Container images
Virtual Machine images
Application itself
Application code
Libraries
Internal
3rd party
Self-contained run-time
Application
Run-time
OS
libraries
Image
Self-
contained
search
Find code, easy?
Multiple production branches
release/* and hotfix/*
Untagged releases
SCA† tools pipeline-bound
Rarely built code
Pipeline does not work anymore
† Software Composition Analysis
search
Identify
Vulnerabilities
 Static Application Security Testing
(SAST)
 Software Composition Analysis
(SCA)
Commercial
Synopsys Black Duck, Snyk, WhiteSource Bolt,
Sonatype Nexus Platform, JFrog Xray
OSS
npm audit
OWASP Dependency Check
Application
Run-time
OS
libraries
Ops
Dev
search
Fix code
Scan multiple repositories
Patch code
Regression test
Can be automated?
fix
What’s normal?
Many teams
Many repos
My company has 3,000 repos
across 100 teams, storing over
13 million lines of code, and
using 2,800 pipelines
A single vulnerability
may affect 10s teams and
100s of repos Image: The Crowd For DMB 1 by Moses
fix
Deployment
hurdles
Separation of Duties
Sarbanes–Oxley
HIPAA
PCI DSS
NIST 800-171
Maintenance windows†
Image by Tom Staziker
deploy
Ideas for improvement
Estimate Risk
Probability of an adverse
cyber event
Frequency of attack
Availability of 0-day exploit
Cost factors
Number of systems to patch
% of Components to build
and redeploy
Actuaries already have rich
models
search
Image source: WikiMedia
Prioritize
External-facing
Internal-facing
3rd party systems
search
Image by TanteTati
Good SCM
Practices
Standardize SCM to Git
Single management system
with rich API
Standard naming for
Production tags
For branches, also
Rich metadata via tagging
features
Repo owners
Hotfix pipelines
search
Image by David Iliff from Wikimedia
Breadth of
change
Fix impacting many
systems at once
Hundreds of concurrent pipelines
Can your build & deploy
tool auto-scale?
Can your approval process
scale?
How fast can you rebuild a
substantial portion of IT
systems?
fix
Image source: public domain
Tooling
Your SCA may generate
code changes
e.g. dependabot
Build scripts can be
massively edited
git-xargs, auto-pr, multi-gitter, …
Image: robotic arm in the Conrad Prebys Center for Chemical Genomics by Josh Baxt
fix
Good patching
practices
Scan all repos often
Fast-track automated
pipelines for all systems
Thorough automated
regression testing
Expedite approval
process
fix
Image source: public domain
Bill of Materials
on steroids
Reverse indexes
Library → Binaries [SCA tool]
O.S. API → Binaries [SAST tool]
Binary → Pipelines [artifact store]
Pipeline → Repo(s) [pipeline tool]
Pipeline
Binaries
Production
Library
Repo
deploy
Redeploy.
Every. Day.
Simplest pattern
Once automated
patching is in place
Zero-downtime deploy
in place
Consider pipeline
resources
Image: the gerbil wheel pose by dbgg1979
deploy
Expedite
pipelines
Separation of Duties
Regulation / audit requirement
Slows 0-day patching
Tightly controlled usage
Automated checks
Single commit with limited
churn
Additional approvers for
quick turnaround
Image courtesy of SpaceX
deploy
Is security
a real problem?
Image © Mediaset
Vulnerabilities over year
Data: mitre.org
Zero-days exploits are increasing
Source: Google Project Zero
Open source dependency &
vulnerability
Source: Sonatype
Intermezzo: libraries & languages
Source:
Contrast Security
Dependencies
An average .NET project has 11 direct, and 76
indirect dependencies [Source: Snyk]
Project == nuget.org package
The average application contains 118 open-
source libraries [Source: Contrast Security]
Application Java/.NET/NodeJS
Open source JavaScript vulnerabilities
Source: Sonatype
Could be worse?
Source: Snyk
Source: Sonatype
Mean Time to Update
Docker as an hidden dependency
Source: Snyk
App Platform shift
Chrome 1 month patched after 14 days
Node.JS 30 months (LTS) patched every 25 days
6 months
Go 6 months patched every 26 days
Two major releases supported.
MongoDB 30 months patched every 5 weeks
.NET 3 years (LTS) patched every 6 weeks
18 months
Java 3 years (LTS) patched every 12 weeks
6 months
Wrapping-up
Image: Three Stages of Decay by Theen Moy
Value does not tell the whole story
Business Feature Package Production Value
Consider Stop-Loss
CVE Security Patch Production Stop-loss
Image: Wikipedia
Business Feature Package Production Value
Technical
Inflation
Unintended reduction
in value of a software
product over time,
independent of source
code changes.
Depreciation does not
capture two elements:
Unintentionality
Value can be restored Image source: Max Pixel
1974
Continuing Change law
«A[n E-type] system
must be continually
adapted or it becomes
progressively less
satisfactory.»
Image source: WikiMedia
Executive
Summary
Software decays rapidly,
and decay rate is speeding
up.
Security is the main force,
but not the only one.
We must improve tooling
and practices to cope with
this increased velocity.
Technical Inflation helps
Management understand
what is going on. Image source: Public Domain
Questions?
Next five slides lists bibliographic references
References (1/5)
https://www.sonatype.com/resources/state-of-the-software-supply-chain-2021
https://blog.chromium.org/2021/03/speeding-up-release-cycle.html
https://nodejs.org/en/about/releases/
https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/process/release_cycle.md
https://support.google.com/chrome/a/answer/6220366
https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core
https://docs.fedoraproject.org/en-US/releases/lifecycle/
https://www.oracle.com/java/technologies/java-se-support-roadmap.html
https://kubernetes.io/releases/release/
https://www.mongodb.com/support-policy/software
References (2/5)
https://heartbleed.com/
Why Every Business Is a Software Business — Watts S. Humphrey Informit, Feb 22, 2002
http://www.informit.com/articles/article.aspx?p=25491
https://en.wikipedia.org/wiki/Watts_Humphrey
https://www.sonatype.com/resources/state-of-the-software-supply-chain-2021
https://www.shopify.com/enterprise/global-ecommerce-statistics
https://blog.cloudflare.com/popular-domains-year-in-review-2021/
https://radar.cloudflare.com/year-in-review-2021
https://snyk.io/blog/net-open-source-security-insights/
https://www.contrastsecurity.com/the-state-of-the-oss-report-2021
https://octoverse.github.com/static/github-octoverse-2020-security-report.pdf
References (3/5)
https://www.soa.org/globalassets/assets/files/resources/research-report/2020/quantification-cyber-
risk.pdf
https://www.soa.org/globalassets/assets/files/resources/research-report/2020/exposure-measures-cyber-
insurance.pdf
https://www.csis.org/programs/strategic-technologies-program/significant-cyber-incidents
https://www.verizon.com/business/resources/reports/dbir/
https://www.accenture.com/us-en/insights/security/cost-cybercrime-study
https://www.ibm.com/security/data-breach
https://go.snyk.io/SoOSS-Report-2020.html
https://www.amazon.co.uk/Accelerate-Software-Performing-Technology-Organizations/dp/1942788339
References (4/5)
https://www.sciencedirect.com/science/article/abs/pii/0164121279900220
https://daverupert.com/2020/11/technical-debt-as-a-lack-of-understanding/
https://wiki.owasp.org/images/b/bd/Software_Composition_Analysis_OWASP_Stammtisch_-
_Stanislav_Sivak.pdf
https://googleprojectzero.blogspot.com/
https://googleprojectzero.blogspot.com/2022/04/the-more-you-know-more-you-know-you.html
https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V14.md
https://dotnet.microsoft.com/en-us/download/dotnet/3.1
https://docs.mongodb.com/upcoming/release-notes/5.0/
https://www.devsecops.org/
https://github.com/golang/go/wiki/Go-Release-Cycle
References (5/5)
https://go.dev/doc/devel/release
https://libraries.io/data
https://github.com/devopsenterprise/2021-virtual-us/blob/main/Bryan%20Finster%20-
%20DOES%202021%20-%20Misuse%20and%20Abuse%20DORA%20Metrics.pdf
https://trumpwhitehouse.archives.gov/wp-content/uploads/2018/02/The-Cost-of-Malicious-Cyber-
Activity-to-the-U.S.-Economy.pdf
Thank you!
@giulio_vian
giuliovdev@hotmail.com

Mais conteúdo relacionado

Semelhante a Software rotting - DevOpsCon Berlin

swampUP - 2018 - The Divine and Felonious Nature of Cyber Security
swampUP - 2018 - The Divine and Felonious Nature of Cyber SecurityswampUP - 2018 - The Divine and Felonious Nature of Cyber Security
swampUP - 2018 - The Divine and Felonious Nature of Cyber Security
John Willis
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
Dennys Hsieh
 
Continuous Integration and development environment approach
Continuous Integration and development environment approachContinuous Integration and development environment approach
Continuous Integration and development environment approach
Aleksandr Tsertkov
 
Continuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentContinuous Integration for Oracle Database Development
Continuous Integration for Oracle Database Development
Vladimir Bakhov
 

Semelhante a Software rotting - DevOpsCon Berlin (20)

swampUP - 2018 - The Divine and Felonious Nature of Cyber Security
swampUP - 2018 - The Divine and Felonious Nature of Cyber SecurityswampUP - 2018 - The Divine and Felonious Nature of Cyber Security
swampUP - 2018 - The Divine and Felonious Nature of Cyber Security
 
1506.08725v1
1506.08725v11506.08725v1
1506.08725v1
 
OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...
OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...
OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
 
The Anatomy of Continuous Deployment at Scale - 100 deploys a week at Envato ...
The Anatomy of Continuous Deployment at Scale - 100 deploys a week at Envato ...The Anatomy of Continuous Deployment at Scale - 100 deploys a week at Envato ...
The Anatomy of Continuous Deployment at Scale - 100 deploys a week at Envato ...
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
 
Just-in-time Detection of Protection-Impacting Changes on WordPress and Media...
Just-in-time Detection of Protection-Impacting Changes on WordPress and Media...Just-in-time Detection of Protection-Impacting Changes on WordPress and Media...
Just-in-time Detection of Protection-Impacting Changes on WordPress and Media...
 
Cloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct servicesCloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct services
 
Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates
 
Pragmatic Pipeline Security
Pragmatic Pipeline SecurityPragmatic Pipeline Security
Pragmatic Pipeline Security
 
Gerrit linuxtag2011
Gerrit linuxtag2011Gerrit linuxtag2011
Gerrit linuxtag2011
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
 
Continuous Integration and development environment approach
Continuous Integration and development environment approachContinuous Integration and development environment approach
Continuous Integration and development environment approach
 
Ship code like a keptn
Ship code like a keptnShip code like a keptn
Ship code like a keptn
 
Continuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentContinuous Integration for Oracle Database Development
Continuous Integration for Oracle Database Development
 
Finding Bugs, Fixing Bugs, Preventing Bugs — Exploiting Automated Tests to In...
Finding Bugs, Fixing Bugs, Preventing Bugs — Exploiting Automated Tests to In...Finding Bugs, Fixing Bugs, Preventing Bugs — Exploiting Automated Tests to In...
Finding Bugs, Fixing Bugs, Preventing Bugs — Exploiting Automated Tests to In...
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model
 
Database deployment: still hard after all these years - Data Saturday #1
Database deployment: still hard after all these years - Data Saturday #1Database deployment: still hard after all these years - Data Saturday #1
Database deployment: still hard after all these years - Data Saturday #1
 
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
Keynote VST2020 (Workshop on  Validation, Analysis and Evolution of Software ...Keynote VST2020 (Workshop on  Validation, Analysis and Evolution of Software ...
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
 

Mais de Giulio Vian

Mais de Giulio Vian (20)

Is Technical Debt the right metaphor for Continuous Update - AllDayDevOps 2022
Is Technical Debt the right metaphor for Continuous Update - AllDayDevOps 2022Is Technical Debt the right metaphor for Continuous Update - AllDayDevOps 2022
Is Technical Debt the right metaphor for Continuous Update - AllDayDevOps 2022
 
A map for DevOps on Microsoft Stack - MS DevSummit
A map for DevOps on Microsoft Stack - MS DevSummitA map for DevOps on Microsoft Stack - MS DevSummit
A map for DevOps on Microsoft Stack - MS DevSummit
 
Perché è così difficile il deploy dei database - DevCast DevOps Serie
Perché è così difficile il deploy dei database  - DevCast DevOps SeriePerché è così difficile il deploy dei database  - DevCast DevOps Serie
Perché è così difficile il deploy dei database - DevCast DevOps Serie
 
Database deployments - dotnetsheff
Database deployments - dotnetsheffDatabase deployments - dotnetsheff
Database deployments - dotnetsheff
 
Pipeline your Pipelines - 2020 All Day DevOps
Pipeline your Pipelines - 2020 All Day DevOpsPipeline your Pipelines - 2020 All Day DevOps
Pipeline your Pipelines - 2020 All Day DevOps
 
How to write cloud-agnostic Terraform code - Incontro DevOps Italia 2020
How to write cloud-agnostic Terraform code - Incontro DevOps Italia 2020How to write cloud-agnostic Terraform code - Incontro DevOps Italia 2020
How to write cloud-agnostic Terraform code - Incontro DevOps Italia 2020
 
Top 10 pipeline mistakes - dotnetsheff
Top 10 pipeline mistakes - dotnetsheffTop 10 pipeline mistakes - dotnetsheff
Top 10 pipeline mistakes - dotnetsheff
 
Introduction to Terraform with Azure flavor
Introduction to Terraform with Azure flavorIntroduction to Terraform with Azure flavor
Introduction to Terraform with Azure flavor
 
How collaboration works between Dev and Ops - DevOps Agile Testing and Test S...
How collaboration works between Dev and Ops - DevOps Agile Testing and Test S...How collaboration works between Dev and Ops - DevOps Agile Testing and Test S...
How collaboration works between Dev and Ops - DevOps Agile Testing and Test S...
 
Usare SQL Server for Linux e Docker per semplificare i processi di testing - ...
Usare SQL Server for Linux e Docker per semplificare i processi di testing - ...Usare SQL Server for Linux e Docker per semplificare i processi di testing - ...
Usare SQL Server for Linux e Docker per semplificare i processi di testing - ...
 
Pipeline your pipelines!
Pipeline your pipelines!Pipeline your pipelines!
Pipeline your pipelines!
 
Why is DevOps vital for my company’s business
Why is DevOps vital for my company’s businessWhy is DevOps vital for my company’s business
Why is DevOps vital for my company’s business
 
Introduzione a GitHub Actions (beta)
Introduzione a GitHub Actions (beta)Introduzione a GitHub Actions (beta)
Introduzione a GitHub Actions (beta)
 
Terraform for Azure Quickstart
Terraform for Azure QuickstartTerraform for Azure Quickstart
Terraform for Azure Quickstart
 
Terraform for azure: the good, the bad and the ugly -
Terraform for azure: the good, the bad and the ugly -Terraform for azure: the good, the bad and the ugly -
Terraform for azure: the good, the bad and the ugly -
 
How we moved our environments to the cloud
How we moved our environments to the cloudHow we moved our environments to the cloud
How we moved our environments to the cloud
 
Customize Azure DevOps using Aggregator
Customize Azure DevOps using AggregatorCustomize Azure DevOps using Aggregator
Customize Azure DevOps using Aggregator
 
Moving a Windows environment to the cloud
Moving a Windows environment to the cloudMoving a Windows environment to the cloud
Moving a Windows environment to the cloud
 
How's relevant JMeter to me - DevConf (Letterkenny)
How's relevant JMeter to me - DevConf (Letterkenny)How's relevant JMeter to me - DevConf (Letterkenny)
How's relevant JMeter to me - DevConf (Letterkenny)
 
Terraform for azure: the good, the bad and the ugly -
Terraform for azure: the good, the bad and the ugly - Terraform for azure: the good, the bad and the ugly -
Terraform for azure: the good, the bad and the ugly -
 

Último

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
anilsa9823
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
anilsa9823
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Último (20)

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 

Software rotting - DevOpsCon Berlin

Notas do Editor

  1. …except that the next day, a new vulnerability has reached prime time, and … yes, Joe app is impacted! How often this happened to you? Is it happening more frequenty?
  2. Software is not a problem if not deployed. The most secure computer is off and unplugged.
  3. Who am I? I work at Unum, a Fortune 500 company, with more than a thousand people in IT. I studied DevOps for over 10 years and I speak at international conferences. Awarded by Microsoft as Most Valuable Professional on Azure DevOps category in the last few years. If you want to discuss today’s ideas or other DevOps topics you can reach me at Twitter as giulio_vian or email me directly. While I try to solve a new problem each day, some issues take years to go away.
  4. How we run the process today? Publication of a CVE triggers the Security team in the organization, Security team instructs Dev Teams to fix application code as needed, code must be deployed to Production under Release Management team supervision A Release Management role may be required by SOX, Basilea, and similar regulation Deploy where? Production! We don’t care about the rest (although…), so we need to…
  5. Joe stops and thinks: I need to look at my pom.xml (build.gradle, *.csproj, Makefile, package.json, … name it) for references to Log4J (or whatever is vulnerable). Oh, but I use SLF4J which in turns… indirect dependencies! I need a tool just to find all possible references recursively. Oh Oh, our Tomcat configuration is using Log4J! I must check more than my JAR file, says Joe. …and the next question is…
  6. Here we discuss how to identify: 1. the code that needs to be patched 2. the pipeline that release that code in Production and some issues that one may face: If more than one branch can reach prod, which one you choose? How do you match the exact version of code? Software Composition Analysis kicks in only through pipelines? Is triggered by the deploy pipeline? The deploy pipeline hasn’t been used in months and doesn’t work anymore (e.g. a token expired, or there is no more an apt agent)
  7. …are there tools to support me and detect vulnerabilities in the code I deliver? Yes, there are BLAH
  8. The vulnerability could be a bad code pattern, use of an API, a vulnerable dependency; in any case we need to find the impacted code. We must scan all repositories that contain production code. Non-production repositories should be included in the search but listed separately to remove noise. Some patching can be easily automated, in particular library dependencies listed in project file (e.g. package.json, pom.xml,.csproj, …)
  9. † Lack of blue/green, canary, rolling/progressive deployment
  10. When I’ll be next We had billions of attacks!? Mostly intercepted email, though, one day it will be successful Ok but what might be the consequences of an attack?
  11. First batch of crucial elements of a solution identifying the qualities required on Software Configuration Management (SCM). Moving to Git is a prerequisite because any modern development tool shifted to it. What about the rest? Consolidate all projects into a single SCM platform – GitHub, Azure DevOps, BitBucket, GitLab The one listed have rich API that enable automation and integration Recommend set of branch names and mandatory tag names to identify code that goes/matches production This does not translate that all teams use the same process (e.g. GitFlow) but that they use the same conventions for branch names and, especially for tags Modern systems allows to attach custom properties to Git repositories and Pipeline definitions A Tag/Label/Property can identify repo in use, archived, or just with experimental code Same for pipelines, there are builds with limited scope (quick CI) and builds that deploy to production: use Tag/Label/Property to distinguish
  12. As mentioned, on a small scale, it is easy. Problems raise when you need to manage at scale: more than a few teams, repos, or pipeline. Consider the scenario where a single vulnerability impacts most of your applications (which is probable when you the majority of you code use the same platform, e.g. Log4J impacting all Java-based applications). You need to patch lots of repositories and deploy lots of components, each through a separate pipeline. In such scenario, you need new capabilities: Global editing tool Launch most pipelines in parallel (consider batching) Auto-scale build resources to sustain the spike Single-approval for the set of pipeline runs These aren’t offered by current systems.
  13. Can be automated? <pause> To my knowledge there are some tools that do some of the work, like GitHub dependabot It scans sources and proposes changes via a pull-request mechanism It does not support all package manager, though, and some features requires GitHub And clearly we need to input which is the correct version to use. We have seen toolchain attacks were the fix was to rollback, haven’t we?
  14. A crucial pattern to implement is the fast-track (expedite) pipeline. Every deployable component must have a pipeline that delivers just security fixes with as much regression testing as possible within a limited 2-hours timebox and as little manual steps (e.g. approvals) as possible. Tip: maybe you need some kind of incremental build to minimize build, test and deploy times.
  15. Current tooling may offer some information but a well-rounded process lot of cross-reference data. Dependency management is a weak spot in general, SCA (Software Composition Analysis) can identify vulnerabilities in libraries. Use of API may be caught by security scans Artifact management tool can track the source (build) of binaries if properly used. Pipeline knows which repositories they use, what we need here is ability to call a REST API that tell us the dependency. If you can use such tools, great. Maybe you need to follow a bit of conventions and write some query tools. In the worst scenario, you have to build and maintain your own database.
  16. Deploy where? Production! We don’t care about the rest (although…), so we need to… A Release Management role may be required by SOX, Basilea, and similar regulation But you need speed when it is a 0-day exploit. For example, you must be able to deploy a patch within hours of its release from a 3rd party (an OSS project or a vendor). fast-track (expedite) pipelines are not for normal usage: there should be some kind of trigger, like a new CVE, a communication from the Security team or upper management.
  17. What is the way to solve this burning problem?
  18. …they are not decreasing, quite the opposite. Increasing more than linearly!
  19. …display the same pattern, even more. Why?
  20. Modern app development is not using just a few suppliers like in the past. A study from Sonatype confirms that we use a lot more libraries, from all kind of sources, in particular Open Source libraries and attacks leverage this trend. The graphs illustrate Javascript scenario, but other languages…
  21. Both graphs illustrate that we, as an industry, aren’t exactly great at reacting and fixing our applications. The one on the left is data about OSS projects. The one on the right is more interesting because based on telemetry data, a more significant insight on IT organizations.
  22. .NET Core 3.1 3.1.0 December 3, 2019 3.1.22 December 14, 2021 got 22 patch releases in 3 years i.e. every 45 days/6 weeks Node v14 (Fermium) Active LTS start 2020-10-27 v14.15.0 2022-02-01, Version 14.19.0 total 19 releases in 463 days or 66 weeks i.e. every 24.4 days JDK 11 Java SE 11 (LTS)September 25, 2018 11.0.13+8 (GA), October 19th 2021 total 13 releases(updates) in 1121 days i.e. every 12.3 weeks or 86.2 days Go 1.16 released 2021-02-16 go1.16.14 (released 2022-02-10) total 14 updates in 360 days i.e. 26 days go1 (released 2012-03-28) -> go1.17 (released 2021-08-16) 17 major releases in 3429 days or 490 weeks MongoDB 5.0 5.0.0 - Jul 13, 2021 5.0.6 - January 31, 2022 total 6 releases in 203 days or 29 weeks i.e. every 4.8 weeks
  23. What is the way to solve this burning problem?
  24. Agile and DevOps focused on value-flow
  25. «An E-program is written to perform some real-world activity; how it should behave is strongly linked to the environment in which it runs, and such a program needs to adapt to varying requirements and circumstances in that environment» “On understanding laws, evolution, and conservation in the large-program life cycle” Lehman M.M. - Journal of Systems and Software Vol. 1, 1979–1980, pp. 213-221
  26. Today, I hope to convince you that we have serious problems in the way we patch and deploy applications, problems that we must address as an industry. At the core a perfectly working application today, is a huge risk tomorrow. That’s why I speak of decay and rotting, because it is not a slow process. Wear, erosion, rust… They do not convey the urgency and work required to preserve from decay. #1 unless you put it in a fridge or in a can, it starts smelling very soon  #2 those other processes requires time, while rotting requires quick action to stop it I am not sure big an effort is to fix processes and tool to cope with security-related problems – the one this audience is acquainted to --. Security is the main driver, although not the only one. To change process and invest in tools, we have to speak to leadership/executive using a simple but effective vocabulary, so I suggest using the word inflation to convey the idea and start a discussion. As you may guessed, this presentation is a bit visionary, high-level, I will talk about industry trends and process not technology. For those interested in technology details, I recommend the sessions of my friends Michael Kaufmann and Matteo Emili. Now you have a couple of minutes to switch if you are not interested.
  27. I am open for questions.