SlideShare a Scribd company logo
Say No to the Dependency Hell:
Proper Management of Software
Dependencies
IVAN PASHCHENKO
Trento - 2019
whoami
2
Ivan Pashchenko
• PhD candidate in Information Security at
the University of Trento
• Former Intern at SAP Security Research
• Former Leading Security Engineer at
Bashneft, Russia
• Snowboarder, hiker, volleyball player
3
Software project
Own code
Nowadays software projects
are highly interconnected
4
• Own code
• Dependencies
Own code
Dependencies
Software project
Dependencies?
5
You are writing code…
This is a typical functionality, I do not want to invent a wheel – I will use
already developed functionality.
6
And you use just one
dependency…
7
8
Welcome to the Dependency Hell
Open source software
9
10
11
Source: https://www.infoworld.com/article/2608895/open-source-
software/open-source-software-does-government-finally-grok-open-source.html
12
Source: https://www.infoworld.com/article/2608895/open-source-
software/open-source-software-does-government-finally-grok-open-source.html
The Equifax breach
13
When you have a dependency
14
𝑚1
𝑚2𝑦1𝑥1
𝑦2𝑢1
𝑧1
direct
transitive
Dependency tree
Current dependency analysis
15
0. Follow the updates in your software dependencies manually
- Subscribe to mailing lists of your dependencies
- Telegram channels
- Analyze changelogs of the new releases
- Receive a lot of spam…
Current dependency analysis tools
16
1. Github vulnerability alerts:
Example: https://github.com/iluwatar/java-design-patterns/network/dependencies
Current dependency analysis tools
17
1. Github vulnerability alerts:
Listing the packages that a repository depends on:
https://help.github.com/articles/listing-the-packages-that-a-repository-depends-on/
Viewing and updating vulnerable dependencies in your repository:
https://help.github.com/articles/viewing-and-updating-vulnerable-dependencies-in-your-
repository/
About security alerts for vulnerable dependencies:
https://help.github.com/articles/about-security-alerts-for-vulnerable-dependencies/
Current dependency analysis tools
18
2. Snyk.io:
Home page:
https://snyk.io/
Introduction video:
https://youtu.be/4ng5usM6fd8
Current dependency analysis tools
19
2. Snyk.io – Vulnerability DB:
Current dependency analysis tools
20
2. Snyk.io – Vulnerability DB:
Current dependency analysis tools
21
3. SourceClear - https://www.sourceclear.com/
Advantages:
- one of the biggest vulnerability databases
Disadvantage:
- fully commercial
4. Vulas - https://github.com/SAP/vulnerability-assessment-tool
Advantages:
- open-source
- precise code base matching algorithm
Disadvantage:
- they do not publish the vulnerability database
- they support only Java (Maven&Gradle) and partially Python
You will have such a report
22
What would you do?
Ignore? Panic?
Observation 1
23
Some dependencies are non deployed, hence such vulnerabilities
cannot be exploited
𝑚1:compile
𝑚2: 𝑐𝑜𝑚𝑝𝑖𝑙𝑒𝑦1: 𝑐𝑜𝑚𝑝𝑖𝑙𝑒𝑥1: 𝑡𝑒𝑠𝑡
𝑦2: 𝑐𝑜𝑚𝑝𝑖𝑙𝑒𝑢1: 𝑡𝑒𝑠𝑡
𝑧1: 𝑐𝑜𝑚𝑝𝑖𝑙𝑒
Observation 2
24
𝑚1
𝑚2
𝑦1𝑥1
𝑦2𝑢1
𝑧1
𝑀
𝑌
𝑋
𝑈
𝑍
Direct
‘Direct’ and ‘transitive’ notions do not represent which
dependencies really can be controlled
Transitive
Own
Observation 2
25
𝑚1
𝑚2
𝑦1𝑥1
𝑦2𝑢1
𝑧1
𝑀
𝑌
𝑋
𝑈
𝑍
‘Direct’ and ‘transitive’ notions do not represent which
dependencies really can be controlled
Own
In direct control
Out of direct control
Observation 3
26
𝑚1
𝑥1
𝑢1
𝑣1 𝑣2
𝑣1
𝑣1 𝑣2 𝑣3
𝑡0 𝑡1
There would be no version of x1:
1) to fix vulnerability in x1
2) adopt fixed version of u1
Fixing such a dependency would require a software company either to contribute to the
halted library (make a new release) or maintain an own copy of the library
Some libraries may become halted
Counting dependencies
27
Build dependency tree
Maven goals: dependency:tree and dependency:resolve
Filter non-deployed dependencies
Exclude test and provided scopes
Group dependencies by projects
Group all GAVs with the same groupId within one path and substitute
them in the path with the GAV, closest to the vulnerable GAV
Identify halted dependencies
•𝐿𝑎𝑠𝑡 𝑟𝑒𝑙𝑒𝑎𝑠𝑒 𝑖𝑛𝑡𝑒𝑟𝑣𝑎𝑙 = 𝛼 σ𝑖=0
𝑛
{ 1 − 𝛼 𝑖
∗ 𝑅𝑒𝑙𝑒𝑎𝑠𝑒 𝑡𝑖𝑚𝑒 𝑛−𝑖}
•𝐸𝑥𝑝𝑒𝑐𝑡𝑒𝑑 𝑟𝑒𝑙𝑒𝑎𝑠𝑒 𝑑𝑎𝑡𝑒 = 𝐿𝑎𝑠𝑡 𝑟𝑒𝑙𝑒𝑎𝑠𝑒 + 𝐿𝑎𝑠𝑡 𝑟𝑒𝑙𝑒𝑎𝑠𝑒 𝑖𝑛𝑡𝑒𝑟𝑣𝑎𝑙
•𝐸𝑥𝑝𝑒𝑐𝑡𝑒𝑑 𝑟𝑒𝑙𝑒𝑎𝑠𝑒 𝑑𝑎𝑡𝑒 < 𝑇𝐼𝑀𝐸 ⇒ 𝐿𝑖𝑏𝑟𝑎𝑟𝑦 𝑖𝑠 ℎ𝑎𝑙𝑡𝑒𝑑
Map with known vulnerable GA
S. E. Ponta, H. Plate, and A. Sabetta. Beyond metadata: Code-centric
and usage based analysis of known vulnerabilities in open-source
software. In Proc. of ICSME-18, 2018
Effects
Filtering non-deployed
Dependency grouping
“Is halted” analysis
28
20% less false alerts to check
Developers may have fixed 82%
of vulns in their dependencies
(45% increase)
14% of dependencies are halted,
hence would not be fixed
Following our approach you will have
the following report
29
A bit more clear what to do, isn’t it?
An example of our report
30
31
We are looking for your experience
More details about our research are here:
http://bit.ly/vuln-research-trento
"Dependencies as you see it" (what the problems are, why people could, should, or won't
update etc.). This can be a brief Skype/Hangout/etc interview at your convenience.
We bring order to the
dependency hell
32
33
For any questions or suggestions do not hesitate to contact me:
E-mail: ivan.pashchenko@unitn.it
Skype: ivanpashchenko
Web-site: http://disi.unitn.it/~pashchenko
Let’s say No to the Dependency Hell
Information about our research is here:
http://bit.ly/vuln-research-trento

More Related Content

PPTX
Say No to the Dependency Hell
PDF
SFScon19 - Ivan Pashchenko - Say No to the Dependency Hell
PPTX
Mentors View: Aligning Your Team and Your Powers for Success
PPTX
Supply Chain Solutions for Modern Software Development
PPTX
A question of trust - understanding Open Source risks
PDF
DevSecCon Singapore 2018 - Measuring and maximizing vuln discovery efforts by...
PPTX
The Top 3 Strategies To Reduce Your Open Source Security Risks - A WhiteSour...
PPTX
Purple is the New Black: Modern Approaches for Application Security
Say No to the Dependency Hell
SFScon19 - Ivan Pashchenko - Say No to the Dependency Hell
Mentors View: Aligning Your Team and Your Powers for Success
Supply Chain Solutions for Modern Software Development
A question of trust - understanding Open Source risks
DevSecCon Singapore 2018 - Measuring and maximizing vuln discovery efforts by...
The Top 3 Strategies To Reduce Your Open Source Security Risks - A WhiteSour...
Purple is the New Black: Modern Approaches for Application Security

Similar to Say No To Dependency Hell (20)

PDF
SFScon 2020 - Ivan Pashchenko - Learning from Developers How to Make Dependen...
PPTX
Software Composition Analysis Deep Dive
PDF
Donu’t Let Vulnerabilities Create a Hole in Your Organization
PDF
Dependency Issues in Open Source Software Package Registries
PPTX
How to increase the technical health of your software?
PDF
Innocent Vulnerabilities vs. Malicious Backdoors: How to Manage Your Risk
PDF
Fire alarms vs. Fire hoses: Keeping up with Dependencies
PDF
Innocent Vulnerabilities vs. Malicious Backdoors: How to Manage Your Risk
PDF
Dependency Health: Removing the Barriers to Keeping Projects in Shape
PDF
Dependency Health: Removing the Barriers to Keeping Projects in Shape
ODP
Are you using an opensource library? There's a good chance you are vulnerable...
PPTX
Embracing DevSecOps: A Changing Security Landscape for the US Government
PDF
Infiltrating the Supply Chain Attack: Advanced Payload Delivery and Evasion T...
PDF
FOSDEM 2020 Presentation: Comparing dependency management issues across packa...
PPTX
Is my software ecosystem healthy? It depends!
PPTX
On the health of the npm packaging ecosystem
PDF
Aliens in Your Apps!
PDF
Application Security in the Age of Open Source
PPTX
All You need to Know about Secure Coding with Open Source Software
PDF
OWASP - Dependency Check
SFScon 2020 - Ivan Pashchenko - Learning from Developers How to Make Dependen...
Software Composition Analysis Deep Dive
Donu’t Let Vulnerabilities Create a Hole in Your Organization
Dependency Issues in Open Source Software Package Registries
How to increase the technical health of your software?
Innocent Vulnerabilities vs. Malicious Backdoors: How to Manage Your Risk
Fire alarms vs. Fire hoses: Keeping up with Dependencies
Innocent Vulnerabilities vs. Malicious Backdoors: How to Manage Your Risk
Dependency Health: Removing the Barriers to Keeping Projects in Shape
Dependency Health: Removing the Barriers to Keeping Projects in Shape
Are you using an opensource library? There's a good chance you are vulnerable...
Embracing DevSecOps: A Changing Security Landscape for the US Government
Infiltrating the Supply Chain Attack: Advanced Payload Delivery and Evasion T...
FOSDEM 2020 Presentation: Comparing dependency management issues across packa...
Is my software ecosystem healthy? It depends!
On the health of the npm packaging ecosystem
Aliens in Your Apps!
Application Security in the Age of Open Source
All You need to Know about Secure Coding with Open Source Software
OWASP - Dependency Check
Ad

More from Nicola Pedot (13)

PDF
AI, ML e l'anello mancante
PDF
Ethic clean
PDF
Java al servizio della data science - Java developers' meeting
PDF
Jakarta EE 2018
PDF
Lazy Java
PDF
Java 9-10 What's New
PDF
JavaEE6 my way
PDF
Java 8 Overview
PDF
BDD & design paradoxes appunti devoxx2012
PDF
Tom EE appunti devoxx2012
ODP
Eclipse Svn
ODP
Eclipse
PPT
Presentazione+Android
AI, ML e l'anello mancante
Ethic clean
Java al servizio della data science - Java developers' meeting
Jakarta EE 2018
Lazy Java
Java 9-10 What's New
JavaEE6 my way
Java 8 Overview
BDD & design paradoxes appunti devoxx2012
Tom EE appunti devoxx2012
Eclipse Svn
Eclipse
Presentazione+Android
Ad

Recently uploaded (20)

PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Understanding Forklifts - TECH EHS Solution
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
System and Network Administration Chapter 2
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
L1 - Introduction to python Backend.pptx
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
AI in Product Development-omnex systems
PPTX
history of c programming in notes for students .pptx
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Which alternative to Crystal Reports is best for small or large businesses.pdf
VVF-Customer-Presentation2025-Ver1.9.pptx
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Understanding Forklifts - TECH EHS Solution
How Creative Agencies Leverage Project Management Software.pdf
System and Network Administration Chapter 2
wealthsignaloriginal-com-DS-text-... (1).pdf
L1 - Introduction to python Backend.pptx
Reimagine Home Health with the Power of Agentic AI​
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
AI in Product Development-omnex systems
history of c programming in notes for students .pptx
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf

Say No To Dependency Hell

  • 1. Say No to the Dependency Hell: Proper Management of Software Dependencies IVAN PASHCHENKO Trento - 2019
  • 2. whoami 2 Ivan Pashchenko • PhD candidate in Information Security at the University of Trento • Former Intern at SAP Security Research • Former Leading Security Engineer at Bashneft, Russia • Snowboarder, hiker, volleyball player
  • 4. Nowadays software projects are highly interconnected 4 • Own code • Dependencies Own code Dependencies Software project
  • 6. You are writing code… This is a typical functionality, I do not want to invent a wheel – I will use already developed functionality. 6
  • 7. And you use just one dependency… 7
  • 8. 8 Welcome to the Dependency Hell
  • 10. 10
  • 14. When you have a dependency 14 𝑚1 𝑚2𝑦1𝑥1 𝑦2𝑢1 𝑧1 direct transitive Dependency tree
  • 15. Current dependency analysis 15 0. Follow the updates in your software dependencies manually - Subscribe to mailing lists of your dependencies - Telegram channels - Analyze changelogs of the new releases - Receive a lot of spam…
  • 16. Current dependency analysis tools 16 1. Github vulnerability alerts: Example: https://github.com/iluwatar/java-design-patterns/network/dependencies
  • 17. Current dependency analysis tools 17 1. Github vulnerability alerts: Listing the packages that a repository depends on: https://help.github.com/articles/listing-the-packages-that-a-repository-depends-on/ Viewing and updating vulnerable dependencies in your repository: https://help.github.com/articles/viewing-and-updating-vulnerable-dependencies-in-your- repository/ About security alerts for vulnerable dependencies: https://help.github.com/articles/about-security-alerts-for-vulnerable-dependencies/
  • 18. Current dependency analysis tools 18 2. Snyk.io: Home page: https://snyk.io/ Introduction video: https://youtu.be/4ng5usM6fd8
  • 19. Current dependency analysis tools 19 2. Snyk.io – Vulnerability DB:
  • 20. Current dependency analysis tools 20 2. Snyk.io – Vulnerability DB:
  • 21. Current dependency analysis tools 21 3. SourceClear - https://www.sourceclear.com/ Advantages: - one of the biggest vulnerability databases Disadvantage: - fully commercial 4. Vulas - https://github.com/SAP/vulnerability-assessment-tool Advantages: - open-source - precise code base matching algorithm Disadvantage: - they do not publish the vulnerability database - they support only Java (Maven&Gradle) and partially Python
  • 22. You will have such a report 22 What would you do? Ignore? Panic?
  • 23. Observation 1 23 Some dependencies are non deployed, hence such vulnerabilities cannot be exploited 𝑚1:compile 𝑚2: 𝑐𝑜𝑚𝑝𝑖𝑙𝑒𝑦1: 𝑐𝑜𝑚𝑝𝑖𝑙𝑒𝑥1: 𝑡𝑒𝑠𝑡 𝑦2: 𝑐𝑜𝑚𝑝𝑖𝑙𝑒𝑢1: 𝑡𝑒𝑠𝑡 𝑧1: 𝑐𝑜𝑚𝑝𝑖𝑙𝑒
  • 24. Observation 2 24 𝑚1 𝑚2 𝑦1𝑥1 𝑦2𝑢1 𝑧1 𝑀 𝑌 𝑋 𝑈 𝑍 Direct ‘Direct’ and ‘transitive’ notions do not represent which dependencies really can be controlled Transitive Own
  • 25. Observation 2 25 𝑚1 𝑚2 𝑦1𝑥1 𝑦2𝑢1 𝑧1 𝑀 𝑌 𝑋 𝑈 𝑍 ‘Direct’ and ‘transitive’ notions do not represent which dependencies really can be controlled Own In direct control Out of direct control
  • 26. Observation 3 26 𝑚1 𝑥1 𝑢1 𝑣1 𝑣2 𝑣1 𝑣1 𝑣2 𝑣3 𝑡0 𝑡1 There would be no version of x1: 1) to fix vulnerability in x1 2) adopt fixed version of u1 Fixing such a dependency would require a software company either to contribute to the halted library (make a new release) or maintain an own copy of the library Some libraries may become halted
  • 27. Counting dependencies 27 Build dependency tree Maven goals: dependency:tree and dependency:resolve Filter non-deployed dependencies Exclude test and provided scopes Group dependencies by projects Group all GAVs with the same groupId within one path and substitute them in the path with the GAV, closest to the vulnerable GAV Identify halted dependencies •𝐿𝑎𝑠𝑡 𝑟𝑒𝑙𝑒𝑎𝑠𝑒 𝑖𝑛𝑡𝑒𝑟𝑣𝑎𝑙 = 𝛼 σ𝑖=0 𝑛 { 1 − 𝛼 𝑖 ∗ 𝑅𝑒𝑙𝑒𝑎𝑠𝑒 𝑡𝑖𝑚𝑒 𝑛−𝑖} •𝐸𝑥𝑝𝑒𝑐𝑡𝑒𝑑 𝑟𝑒𝑙𝑒𝑎𝑠𝑒 𝑑𝑎𝑡𝑒 = 𝐿𝑎𝑠𝑡 𝑟𝑒𝑙𝑒𝑎𝑠𝑒 + 𝐿𝑎𝑠𝑡 𝑟𝑒𝑙𝑒𝑎𝑠𝑒 𝑖𝑛𝑡𝑒𝑟𝑣𝑎𝑙 •𝐸𝑥𝑝𝑒𝑐𝑡𝑒𝑑 𝑟𝑒𝑙𝑒𝑎𝑠𝑒 𝑑𝑎𝑡𝑒 < 𝑇𝐼𝑀𝐸 ⇒ 𝐿𝑖𝑏𝑟𝑎𝑟𝑦 𝑖𝑠 ℎ𝑎𝑙𝑡𝑒𝑑 Map with known vulnerable GA S. E. Ponta, H. Plate, and A. Sabetta. Beyond metadata: Code-centric and usage based analysis of known vulnerabilities in open-source software. In Proc. of ICSME-18, 2018
  • 28. Effects Filtering non-deployed Dependency grouping “Is halted” analysis 28 20% less false alerts to check Developers may have fixed 82% of vulns in their dependencies (45% increase) 14% of dependencies are halted, hence would not be fixed
  • 29. Following our approach you will have the following report 29 A bit more clear what to do, isn’t it?
  • 30. An example of our report 30
  • 31. 31 We are looking for your experience More details about our research are here: http://bit.ly/vuln-research-trento "Dependencies as you see it" (what the problems are, why people could, should, or won't update etc.). This can be a brief Skype/Hangout/etc interview at your convenience.
  • 32. We bring order to the dependency hell 32
  • 33. 33 For any questions or suggestions do not hesitate to contact me: E-mail: ivan.pashchenko@unitn.it Skype: ivanpashchenko Web-site: http://disi.unitn.it/~pashchenko Let’s say No to the Dependency Hell Information about our research is here: http://bit.ly/vuln-research-trento