SlideShare a Scribd company logo
Secure Software Development with
3rd Party Dependencies
Tharindu Edirisinghe, WSO2
Colombo Security Meetup - 15th June 2016
http://www.meetup.com/colombo-security-meetup/events/231681389/
tharindue.blogspot.com
@thariyarox
https://lk.linkedin.com/in/ediri
ediri@live.com
What is a 3rd Party Library ?
A reusable software component developed to be either freely distributed or sold by
an entity other than the original vendor of the development platform.
The third-party software component market thrives because many programmers
believe that component-oriented development improves the efficiency and the
quality of developing custom applications. Common third-party software includes
macros, bots, and software/scripts to be run as add-ons for popular developing
software.
Source : https://en.wikipedia.org/wiki/Third-party_software_component
Using 3rd Party Components in Software Development
C# project dependencies in
Microsoft Visual Studio
Java project dependencies in IntelliJ Idea
Direct 3rd Party Dependencies
The external software components (developed by some other organization/s) that
your project depends on.
Direct 3rd Party Dependencies with Known Vulnerabilities
The external software components (developed by some other organization/s) with
known vulnerabilities that your project depends on.
Transitive 3rd Party Dependencies
The software components that your external dependencies depend on.
Transitive 3rd Party Dependencies with Known Vulnerabilities
The software components with known vulnerabilities that your external
dependencies depend on.
Common Vulnerabilities and Exposures (CVE)
What is CVE ?
CVE is a list of information security vulnerabilities and exposures that aims to
provide common names for publicly known cyber security issues. The goal of CVE
is to make it easier to share data across separate vulnerability capabilities (tools,
repositories, and services) with this "common enumeration."
Who owns CVE ?
CVE is sponsored by US-CERT (United States Computer Emergency Readiness
Team) the office of Cybersecurity and Communications at the U.S. Department of
Homeland Security.
Source : https://cve.mitre.org/about/faqs.html
CVE Example
ID : CVE-2015-5262
Overview :
http/conn/ssl/SSLConnectionSocketFactory.java in Apache HttpComponents
HttpClient before 4.3.6 ignores the http.socket.timeout configuration setting during
an SSL handshake, which allows remote attackers to cause a denial of service
(HTTPS call hang) via unspecified vectors.
Severity: Medium
CVSS Score: 4.3
Source : https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-5262
Common Vulnerability Scoring System (CVSS)
CVSS provides a way to capture the principal characteristics of a vulnerability, and
produce a numerical score reflecting its severity, as well as a textual
representation of that score. The numerical score can then be translated into a
qualitative representation (such as low, medium, high, and critical) to help
organizations properly assess and prioritize their vulnerability management
processes.
Source : https://www.first.org/cvss/specification-document
National Vulnerability Database (NVD)
NVD is the U.S. government repository of standards based vulnerability
management data represented using the Security Content Automation Protocol
(SCAP). This data enables automation of vulnerability management, security
measurement, and compliance. NVD includes databases of security checklists,
security related software flaws, misconfigurations, product names, and impact
metrics.
Source : https://nvd.nist.gov/
Using 3rd Party Dependencies Securely - The Big Picture
NVD
3rd Party Dependencies
In-house Development
All the 3rd party dependencies (including 3rd party transitive dependencies)
should be checked in NVD for identifying vulnerabilities.
CVE-2015-5262
CVE-2014-3577
CVE-2012-6153
Veracode : Software Composition Analysis (SCA)
Source : https://www.veracode.com/products/software-composition-analysis
Source Clear (SRC:CLR)
Source : https://srcclr.com/
OWASP Dependency Check
Dependency-Check is a utility that identifies project dependencies and checks if
there are any known, publicly disclosed, vulnerabilities. Currently Java, .NET,
Ruby, Node.js, and Python projects are supported; additionally, limited support for
C/C++ projects is available for projects using CMake or autoconf. This tool can be
part of a solution to the OWASP Top 10 2013 A9 - Using Components with Known
Vulnerabilities.
Source : https://www.owasp.org/index.php/OWASP_Dependency_Check
OWASP Dependency Check - Useful Resources
Official Website
https://www.owasp.org/index.php/OWASP_Dependency_Check
Vulnerability Detection
http://dontpanic.42.nl/2014/06/checking-framework-vulnerabilities.html
Command Line Tool (CLI)
https://jeremylong.github.io/DependencyCheck/dependency-check-cli/index.html
Suppressing False Positives
https://jeremylong.github.io/DependencyCheck/general/suppression.html
Continuous Vulnerability Detection with Jenkins Integration
https://medium.com/@PrakhashS/checking-vulnerabilities-in-3rd-party-dependencies-using-owasp-dependency-check-
plugin-in-jenkins-bedfe8de6ba8#.cvgwcptjm
OWASP Dependency Check - Demo
- Using Maven plugin for Java based projects
- Using Command Line (CLI) tool for identifying vulnerable dependencies
- Analyzing generated reports
- Suppressing vulnerabilities for avoiding false positives
- Dependency Check integration with Jenkins
Continuous Vulnerability Management in a Corporate Environment
Request for using
3rd Party
Dependency
Engineering
Engineering Management
NVD
Vulnerability
Analysis Report
Approval
Development Team QA Team
Builder
Process
Vulnerability
Analysis Report
Getting Rid of Vulnerable Dependencies
NVD
3rd Party Dependencies
In-house Development
- Upgrade direct 3rd party dependencies to a higher version
- For transitive dependencies, check if the directly dependent component has a higher version that depends on a safer
version of the transitive dependency.
- Contact the developers of the component and get the issue fixed.
CVE-2015-5262
CVE-2014-3577
CVE-2012-6153
Security in Software Development Life Cycle (SDLC)
Source : https://www.checkmarx.com/glossary/a-secure-sdlc-with-static-source-code-analysis-tools/
Challenges : Handling False Positives
Even though the vulnerability analysis tools report that there are vulnerabilities in a
3rd party dependency, there can be cases where those are not applicable to your
product because of the way you have used that software component.
Image Source : http://www.123rf.com/photo_30641222_doctor-is-checking-a-fat-man-shoot-in-the-hospital.html
Challenges : Handling False Negatives
Even though the vulnerability analysis tools reports that your external
dependencies are safe to use, still there can be unknown vulnerabilities.
Image Source : http://www.whattoexpect.com/pregnancy/pregnancy-health/monthly-doctor-visits-during-pregnancy.aspx
Summary
- Identify the external dependencies of your projects
- Identify the vulnerabilities in the dependency software components.
- Analyze the impact
- Remove false positives
- Prioritize the vulnerabilities based on the severity
- Get rid of vulnerabilities (upgrade versions, use alternatives)
- Provide patches to your products
Thank you !
tharindue.blogspot.com
@thariyarox
https://lk.linkedin.com/in/ediri
ediri@live.com

More Related Content

PPTX
presentation in html,css,javascript
PDF
NextJS, A JavaScript Framework for building next generation SPA
PPT
Introduction to Javascript
PPT
Advanced Cascading Style Sheets
PPTX
Basic Wordpress PPT
PPTX
Restful api
PPTX
Full stack web development
PPTX
1-01: Introduction To Web Development
presentation in html,css,javascript
NextJS, A JavaScript Framework for building next generation SPA
Introduction to Javascript
Advanced Cascading Style Sheets
Basic Wordpress PPT
Restful api
Full stack web development
1-01: Introduction To Web Development

What's hot (20)

PPT
Understanding REST
PDF
Robot framework and selenium2 library
PPTX
World Wide Web
PPTX
REST API
PPT
JDBC – Java Database Connectivity
PPT
Asp.net
PPTX
Introduction to ASP.Net Viewstate
PPTX
Mysql Crud, Php Mysql, php, sql
PPTX
Javascript
PPTX
Responsive web-design through bootstrap
PDF
PPTX
Basic HTML
PPT
Introduction to Web Programming - first course
PPTX
Typescript ppt
PDF
Modern Java web applications with Spring Boot and Thymeleaf
PPTX
Html5 tutorial for beginners
PDF
Semantic web
PPTX
Web content management
PDF
Building RESTful applications using Spring MVC
Understanding REST
Robot framework and selenium2 library
World Wide Web
REST API
JDBC – Java Database Connectivity
Asp.net
Introduction to ASP.Net Viewstate
Mysql Crud, Php Mysql, php, sql
Javascript
Responsive web-design through bootstrap
Basic HTML
Introduction to Web Programming - first course
Typescript ppt
Modern Java web applications with Spring Boot and Thymeleaf
Html5 tutorial for beginners
Semantic web
Web content management
Building RESTful applications using Spring MVC
Ad

Viewers also liked (20)

PPTX
Managing Security in External Software Dependencies
PPTX
Dependency check
PPTX
Managing Security in External Software Dependencies
PDF
27 jan 2012[1]
PDF
2014 11-06-sonarqube-asfws-141110031042-conversion-gate01
PPTX
Owasp A9 USING KNOWN VULNERABLE COMPONENTS IT 6873 presentation
PPTX
Continuous Security - TCCC
PDF
Hiding in Plain Sight: The Danger of Known Vulnerabilities
PPTX
Live 2014 Survey Results: Open Source Development and Application Security Su...
PDF
Managing third party libraries
PDF
Abusing, Exploiting and Pwning with Firefox Add-ons: OWASP Appsec 2013 Presen...
PDF
[Poland] SecOps live cooking with OWASP appsec tools
PPTX
News Bytes - December 2015
PDF
DevOpsCon 2016 - Continuous Security Testing - Stephan Kaps
PPTX
Simplify Dev with Complicated Security Tools
PDF
Continuous Integration with Maven for Android apps
PDF
Les principales failles de sécurité des applications web actuelles
PPTX
Agua regia
PPS
Aimer a voir superbe
PDF
Sintesis informativa 01 07 2015
Managing Security in External Software Dependencies
Dependency check
Managing Security in External Software Dependencies
27 jan 2012[1]
2014 11-06-sonarqube-asfws-141110031042-conversion-gate01
Owasp A9 USING KNOWN VULNERABLE COMPONENTS IT 6873 presentation
Continuous Security - TCCC
Hiding in Plain Sight: The Danger of Known Vulnerabilities
Live 2014 Survey Results: Open Source Development and Application Security Su...
Managing third party libraries
Abusing, Exploiting and Pwning with Firefox Add-ons: OWASP Appsec 2013 Presen...
[Poland] SecOps live cooking with OWASP appsec tools
News Bytes - December 2015
DevOpsCon 2016 - Continuous Security Testing - Stephan Kaps
Simplify Dev with Complicated Security Tools
Continuous Integration with Maven for Android apps
Les principales failles de sécurité des applications web actuelles
Agua regia
Aimer a voir superbe
Sintesis informativa 01 07 2015
Ad

Similar to Secure Software Development with 3rd Party Dependencies (20)

PDF
PROP - P ATRONAGE OF PHP W EB A PPLICATIONS
 
PPTX
Cyber ppt
PDF
Application Security Guide for Beginners
PDF
T04505103106
PPTX
Project Presentation
PDF
OWASP Secure Coding Quick Reference Guide
PDF
Running an app sec program with OWASP projects_ Defcon AppSec Village
DOC
Top 10 Web Vulnerability Scanners
PDF
WAVD: WEB APPLICATION VULNERABILITY DETECTOR
PPTX
Owasp web security
PDF
website vulnerability scanner and reporter research paper
PDF
Routine Detection Of Web Application Defence Flaws
PPTX
08- pen-testing Web applications attacks.pptx
PDF
Java Application Development Vulnerabilities
PPTX
Software Composition Analysis Deep Dive
PPTX
dependency-check is ppt from owasp to test dependecies
PDF
C01461422
PDF
Bug Bounty Guide Tools and Resource.pdf
PDF
vulnerability scanning and reporting tool
PDF
CS6262_Group9_FinalReport
PROP - P ATRONAGE OF PHP W EB A PPLICATIONS
 
Cyber ppt
Application Security Guide for Beginners
T04505103106
Project Presentation
OWASP Secure Coding Quick Reference Guide
Running an app sec program with OWASP projects_ Defcon AppSec Village
Top 10 Web Vulnerability Scanners
WAVD: WEB APPLICATION VULNERABILITY DETECTOR
Owasp web security
website vulnerability scanner and reporter research paper
Routine Detection Of Web Application Defence Flaws
08- pen-testing Web applications attacks.pptx
Java Application Development Vulnerabilities
Software Composition Analysis Deep Dive
dependency-check is ppt from owasp to test dependecies
C01461422
Bug Bounty Guide Tools and Resource.pdf
vulnerability scanning and reporting tool
CS6262_Group9_FinalReport

Recently uploaded (20)

PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
System and Network Administration Chapter 2
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
medical staffing services at VALiNTRY
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
history of c programming in notes for students .pptx
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
ai tools demonstartion for schools and inter college
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
L1 - Introduction to python Backend.pptx
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Softaken Excel to vCard Converter Software.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
System and Network Administration Chapter 2
2025 Textile ERP Trends: SAP, Odoo & Oracle
Odoo Companies in India – Driving Business Transformation.pdf
CHAPTER 2 - PM Management and IT Context
medical staffing services at VALiNTRY
Design an Analysis of Algorithms I-SECS-1021-03
history of c programming in notes for students .pptx
Upgrade and Innovation Strategies for SAP ERP Customers
Internet Downloader Manager (IDM) Crack 6.42 Build 41
How to Migrate SBCGlobal Email to Yahoo Easily
ai tools demonstartion for schools and inter college
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PTS Company Brochure 2025 (1).pdf.......
L1 - Introduction to python Backend.pptx
Operating system designcfffgfgggggggvggggggggg
Reimagine Home Health with the Power of Agentic AI​
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Softaken Excel to vCard Converter Software.pdf

Secure Software Development with 3rd Party Dependencies

  • 1. Secure Software Development with 3rd Party Dependencies Tharindu Edirisinghe, WSO2 Colombo Security Meetup - 15th June 2016 http://www.meetup.com/colombo-security-meetup/events/231681389/ tharindue.blogspot.com @thariyarox https://lk.linkedin.com/in/ediri ediri@live.com
  • 2. What is a 3rd Party Library ? A reusable software component developed to be either freely distributed or sold by an entity other than the original vendor of the development platform. The third-party software component market thrives because many programmers believe that component-oriented development improves the efficiency and the quality of developing custom applications. Common third-party software includes macros, bots, and software/scripts to be run as add-ons for popular developing software. Source : https://en.wikipedia.org/wiki/Third-party_software_component
  • 3. Using 3rd Party Components in Software Development C# project dependencies in Microsoft Visual Studio Java project dependencies in IntelliJ Idea
  • 4. Direct 3rd Party Dependencies The external software components (developed by some other organization/s) that your project depends on.
  • 5. Direct 3rd Party Dependencies with Known Vulnerabilities The external software components (developed by some other organization/s) with known vulnerabilities that your project depends on.
  • 6. Transitive 3rd Party Dependencies The software components that your external dependencies depend on.
  • 7. Transitive 3rd Party Dependencies with Known Vulnerabilities The software components with known vulnerabilities that your external dependencies depend on.
  • 8. Common Vulnerabilities and Exposures (CVE) What is CVE ? CVE is a list of information security vulnerabilities and exposures that aims to provide common names for publicly known cyber security issues. The goal of CVE is to make it easier to share data across separate vulnerability capabilities (tools, repositories, and services) with this "common enumeration." Who owns CVE ? CVE is sponsored by US-CERT (United States Computer Emergency Readiness Team) the office of Cybersecurity and Communications at the U.S. Department of Homeland Security. Source : https://cve.mitre.org/about/faqs.html
  • 9. CVE Example ID : CVE-2015-5262 Overview : http/conn/ssl/SSLConnectionSocketFactory.java in Apache HttpComponents HttpClient before 4.3.6 ignores the http.socket.timeout configuration setting during an SSL handshake, which allows remote attackers to cause a denial of service (HTTPS call hang) via unspecified vectors. Severity: Medium CVSS Score: 4.3 Source : https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-5262
  • 10. Common Vulnerability Scoring System (CVSS) CVSS provides a way to capture the principal characteristics of a vulnerability, and produce a numerical score reflecting its severity, as well as a textual representation of that score. The numerical score can then be translated into a qualitative representation (such as low, medium, high, and critical) to help organizations properly assess and prioritize their vulnerability management processes. Source : https://www.first.org/cvss/specification-document
  • 11. National Vulnerability Database (NVD) NVD is the U.S. government repository of standards based vulnerability management data represented using the Security Content Automation Protocol (SCAP). This data enables automation of vulnerability management, security measurement, and compliance. NVD includes databases of security checklists, security related software flaws, misconfigurations, product names, and impact metrics. Source : https://nvd.nist.gov/
  • 12. Using 3rd Party Dependencies Securely - The Big Picture NVD 3rd Party Dependencies In-house Development All the 3rd party dependencies (including 3rd party transitive dependencies) should be checked in NVD for identifying vulnerabilities. CVE-2015-5262 CVE-2014-3577 CVE-2012-6153
  • 13. Veracode : Software Composition Analysis (SCA) Source : https://www.veracode.com/products/software-composition-analysis
  • 14. Source Clear (SRC:CLR) Source : https://srcclr.com/
  • 15. OWASP Dependency Check Dependency-Check is a utility that identifies project dependencies and checks if there are any known, publicly disclosed, vulnerabilities. Currently Java, .NET, Ruby, Node.js, and Python projects are supported; additionally, limited support for C/C++ projects is available for projects using CMake or autoconf. This tool can be part of a solution to the OWASP Top 10 2013 A9 - Using Components with Known Vulnerabilities. Source : https://www.owasp.org/index.php/OWASP_Dependency_Check
  • 16. OWASP Dependency Check - Useful Resources Official Website https://www.owasp.org/index.php/OWASP_Dependency_Check Vulnerability Detection http://dontpanic.42.nl/2014/06/checking-framework-vulnerabilities.html Command Line Tool (CLI) https://jeremylong.github.io/DependencyCheck/dependency-check-cli/index.html Suppressing False Positives https://jeremylong.github.io/DependencyCheck/general/suppression.html Continuous Vulnerability Detection with Jenkins Integration https://medium.com/@PrakhashS/checking-vulnerabilities-in-3rd-party-dependencies-using-owasp-dependency-check- plugin-in-jenkins-bedfe8de6ba8#.cvgwcptjm
  • 17. OWASP Dependency Check - Demo - Using Maven plugin for Java based projects - Using Command Line (CLI) tool for identifying vulnerable dependencies - Analyzing generated reports - Suppressing vulnerabilities for avoiding false positives - Dependency Check integration with Jenkins
  • 18. Continuous Vulnerability Management in a Corporate Environment Request for using 3rd Party Dependency Engineering Engineering Management NVD Vulnerability Analysis Report Approval Development Team QA Team Builder Process Vulnerability Analysis Report
  • 19. Getting Rid of Vulnerable Dependencies NVD 3rd Party Dependencies In-house Development - Upgrade direct 3rd party dependencies to a higher version - For transitive dependencies, check if the directly dependent component has a higher version that depends on a safer version of the transitive dependency. - Contact the developers of the component and get the issue fixed. CVE-2015-5262 CVE-2014-3577 CVE-2012-6153
  • 20. Security in Software Development Life Cycle (SDLC) Source : https://www.checkmarx.com/glossary/a-secure-sdlc-with-static-source-code-analysis-tools/
  • 21. Challenges : Handling False Positives Even though the vulnerability analysis tools report that there are vulnerabilities in a 3rd party dependency, there can be cases where those are not applicable to your product because of the way you have used that software component. Image Source : http://www.123rf.com/photo_30641222_doctor-is-checking-a-fat-man-shoot-in-the-hospital.html
  • 22. Challenges : Handling False Negatives Even though the vulnerability analysis tools reports that your external dependencies are safe to use, still there can be unknown vulnerabilities. Image Source : http://www.whattoexpect.com/pregnancy/pregnancy-health/monthly-doctor-visits-during-pregnancy.aspx
  • 23. Summary - Identify the external dependencies of your projects - Identify the vulnerabilities in the dependency software components. - Analyze the impact - Remove false positives - Prioritize the vulnerabilities based on the severity - Get rid of vulnerabilities (upgrade versions, use alternatives) - Provide patches to your products