SlideShare a Scribd company logo
On the Relation between Outdated
Docker Containers, Severity
Vulnerabilities, and Bugs
Ahmed Zerouali, Tom Mens, Gregorio Robles, Jesus Gonzalez
Barahona
The IEEE International Conference on Software Analysis, Evolution
and Reengineering (SANER)
Hangzhou, China - February 24-27, 2019
On the Impact of Outdated and
Vulnerable Javascript Packages in
Docker Images
Ahmed Zerouali, Valerio Cosentino, Tom Mens, Gregorio
Robles, Jesus Gonzalez Barahona
The IEEE International Conference on Software Analysis, Evolution
and Reengineering (SANER)
Hangzhou, China - February 24-27, 2019
/Background
/Background
/Background
/Goal
A method to assess how vulnerable, buggy and outdated Docker
images are with respect to the latest available releases of the
packages they include.
/Technical lag
1.0.1 1.1.0 2.0.01.2.1 2.1.0
Dependency
Software
Project
Technical lag
Ideal Version
- Ideal Version: stability, security, functionality, etc.
- Technical lag: version updates, commits, bugs, vulnerabilities, lines of code, etc.
/Method
/Technical lag in Docker
1.0.1 1.1.0 2.0.01.2.1 2.1.0
installed package: P
Docker
container C
Technical lag
- technical_lag (P) = { ∆ versions,
∆
vulnerabilities,
∆ bugs}
/Method
/Case Study
/Method
/Case
Study/Debian
- Docker containers based on Debian
/Goal
/Research Questions
RQ 0 : How often are Docker images updated?
RQ 1 : How outdated are container packages?
RQ 2 : How vulnerable are container packages?
RQ 3 : To which extent do containers suffer from bugs in packages?
RQ 4 : How long do bugs and security vulnerabilities remain unfixed?
/Method
/Process
/Method
/Identifying Analyzed
Images
base:image Dockerfile
FROM scratch
ADD rootfs.tar.xz /
CMD ["bash"]
LAYER Y
LAYER X
build
/Method
/Identifying Analyzed
Images
Instantiated Dockerfile
FROM base:image
……… ……………..
LAYER Y
LAYER X
LAYER Z
build
- All official repositories
- 30,000 community
repositories (+500 pulls)
2,453 images
4,927 images
/Method
/Identifying Analyzed
Images
/Method
/Identifying Analyzed
Images
/Method
/Identifying installed
packages
$ docker run <image>
$ dpkg -l
A median of 190 and 261
packages in official and
community images,
respectively.
/Method
/Package info and Vulnerability and Bug Reports
- Package info
- Vulnerabilities
- Other Bugs
- Debian Archive
- Debian Security Tracker
- Ultimate Debian Database
RQ 0 : How often are Docker images updated?
More than half of the Docker images have not been updated for four months.
RQ 1 : How outdated are container packages?
RQ 1 : How outdated are container packages?
RQ 2 : How vulnerable are container packages?
RQ 2 : How vulnerable are container packages?
RQ 3 : To which extent do containers suffer from bugs in packages?
RQ 3 : To which extent do containers suffer from bugs in packages?
RQ 4 : How long do bugs and security vulnerabilities remain unfixed?
RQ 4 : How long do bugs and security vulnerabilities remain unfixed?
On the Impact of Outdated and Vulnerable
Javascript Packages in Docker Images
Ahmed Zerouali, Valerio Cosentino, Tom Mens, Gregorio Robles, Jesus Gonzalez
Barahona
- Docker containers based on Debian
/Goal
/Research Questions
RQ 1 : How Outdated are npm packages in Docker images?
RQ 2 : How vulnerable are npm packages in Docker images?
/Method
/Case Study/npm
- Official images
- Node based images
961 unique official
Docker images as
candidates
- Layering mechanism
/Method
/Identifying Analyzed
Images
/Method
/Identifying installed
packages
$ docker run <image>
$ find .. package.json
A median number of
installed packages is
200, 419 and 959 for
node,
mongo-express and
ghost,
respectively.
/Method
/Package info and Vulnerability Reports
- Package info
- Vulnerabilities
- Libraries.io dataset
- Snyk.io.io DB (1,099
vulnerability reports)
RQ 1 : How Outdated are npm packages in Docker images?
At the date of the last update of the Docker image:
Median version lag = 0 major + 0 minor + 1 patch
RQ 1 : How Outdated are npm packages in Docker images?
At the date of the analysis (March 13th 2018):
Median version lag = 1 major + 1 minor + 4 patch
RQ 2 : How vulnerable are npm packages in Docker images?
- All official node-based images have vulnerable npm packages, with an average of 16
security vulnerabilities per image.
- Older images are more likely to have more vulnerabilities.
/Limitations
- The results of our results are not generalizable.
- The results depend on the on the datasets and databases from where
we extracted the data.
- In the case of npm, we only found a limited number of vulnerability
reports.
- There are other ways in which we can compute the technical lag.
/Conclusion
- Debian and npm packages in Docker containers.
- Old images have more outdated packages.
- The number of outdated packages is correlated with the number of
vulnerabilities.
- Package update recommendation tools are needed in order to support
Docker deployers.
/Future Work
- Carry out other analysis for other ecosystems.
- Create a tool to assess how outdated and vulnerable packages in
Docker containers are, including both system and third-party
packages.
- Gather monthly snapshots about Docker containers in order to
analyze their evolution.
https://media.giphy.com/media/DUrdT2xEmJWbS/giphy.gif
Questions

More Related Content

PDF
A multi-dimensional analysis of technical lag in Debian-based Docker images
PDF
Kernel Recipes 2016 - Patches carved into stone tablets...
PDF
Kernel Recipes 2016 - The kernel report
PDF
Fasten Industry Meeting with GitHub about Dependancy Management
PDF
Towards a Census of Free and Open Source Licenses
PDF
On the fragility of open source software packaging ecosystems
PDF
Node.js security tour
PDF
How Linux uses Git
A multi-dimensional analysis of technical lag in Debian-based Docker images
Kernel Recipes 2016 - Patches carved into stone tablets...
Kernel Recipes 2016 - The kernel report
Fasten Industry Meeting with GitHub about Dependancy Management
Towards a Census of Free and Open Source Licenses
On the fragility of open source software packaging ecosystems
Node.js security tour
How Linux uses Git

What's hot (20)

PPTX
Long Life Software
PDF
Preparing and submitting a package to CRAN - June Sanderson, Sheffield R User...
PDF
Jenkins in the real world - DevOpsCon 2017
PDF
Ten years analysing large code bases: a perspective
PDF
La préservation des logiciels: défis et opportunités pour la reproductibilité...
PDF
Docker Introduction
PPTX
The New York Times: Sustainable Systems, Powered by Python
PDF
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdf
PPTX
Bandit and Gosec - Security Linters
PPTX
Real-Time Communication Testing Evolution with WebRTC
PDF
Complexity is Outside the Code
PDF
LCA13: Upstreaming 101
PDF
Complexity is Outside the Code, JS Remote Conf
PDF
Complexity is Outside the Code - Craft Conference
PPTX
DevSecCon Singapore 2018 - System call auditing made effective with machine l...
PDF
The Development History of PVS-Studio for Linux
PPTX
Cleaning Code - Tools and Techniques for Large Legacy Projects
PDF
Investigating Code Review Practices in Defective Files
PDF
C++ for Marine Streamer Positioning and Navigation - ACCU 2011
PDF
LCA13: Why I Don't Want Your Code
Long Life Software
Preparing and submitting a package to CRAN - June Sanderson, Sheffield R User...
Jenkins in the real world - DevOpsCon 2017
Ten years analysing large code bases: a perspective
La préservation des logiciels: défis et opportunités pour la reproductibilité...
Docker Introduction
The New York Times: Sustainable Systems, Powered by Python
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdf
Bandit and Gosec - Security Linters
Real-Time Communication Testing Evolution with WebRTC
Complexity is Outside the Code
LCA13: Upstreaming 101
Complexity is Outside the Code, JS Remote Conf
Complexity is Outside the Code - Craft Conference
DevSecCon Singapore 2018 - System call auditing made effective with machine l...
The Development History of PVS-Studio for Linux
Cleaning Code - Tools and Techniques for Large Legacy Projects
Investigating Code Review Practices in Defective Files
C++ for Marine Streamer Positioning and Navigation - ACCU 2011
LCA13: Why I Don't Want Your Code
Ad

Similar to Analyzing Packages in Docker images hosted On DockerHub (20)

PPTX
On the Relation between Outdated Docker Containers, Severity Vulnerabilities,...
PDF
Technical Lag in Docker Containers
PDF
Evolution of Technical Lag in DockerHub images - Benevol20
PDF
Technical Lag in Software Ecosystems
PDF
An Empirical Analysis of Technical Lag in npm Package Dependencies
PDF
Distributions and package management in the containers era
PDF
Dependency Issues in Open Source Software Package Registries
PDF
What Quality Aspects Influence the Adoption of Docker Images?
PDF
FASTEN: Scaling static analyses to ecosystem, presented at FOSDEM 2020 in Bru...
PPTX
On Popularity and Quality Metrics of npm Packages
PDF
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
PDF
Boycott Docker
PDF
Docker: do's and don'ts
PDF
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
PDF
Breaking and fixing_your_dockerized_environments_owasp_appsec_usa2016
PPTX
Empirically Analysing the Socio-Technical Health of Software Package Managers
PDF
FOSDEM 2020 Presentation: Comparing dependency management issues across packa...
PDF
Understanding SBOMs: An Introduction to Modern Development
PDF
Next Generation Vulnerability Assessment Using Datadog and Snyk
PDF
Technical lag in npm and docker ecosystems
On the Relation between Outdated Docker Containers, Severity Vulnerabilities,...
Technical Lag in Docker Containers
Evolution of Technical Lag in DockerHub images - Benevol20
Technical Lag in Software Ecosystems
An Empirical Analysis of Technical Lag in npm Package Dependencies
Distributions and package management in the containers era
Dependency Issues in Open Source Software Package Registries
What Quality Aspects Influence the Adoption of Docker Images?
FASTEN: Scaling static analyses to ecosystem, presented at FOSDEM 2020 in Bru...
On Popularity and Quality Metrics of npm Packages
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
Boycott Docker
Docker: do's and don'ts
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Breaking and fixing_your_dockerized_environments_owasp_appsec_usa2016
Empirically Analysing the Socio-Technical Health of Software Package Managers
FOSDEM 2020 Presentation: Comparing dependency management issues across packa...
Understanding SBOMs: An Introduction to Modern Development
Next Generation Vulnerability Assessment Using Datadog and Snyk
Technical lag in npm and docker ecosystems
Ad

More from Ahmed Zerouali (9)

PDF
Prevalence and Evolution of License Violations in npm and RubyGems Dependency...
PPTX
Analysis And Observations Of The Evolution Of Testing Library Usage
PDF
On the Impact of Security Vulnerabilities in the npm and RubyGems Dependency ...
PDF
PhD public defense: A Measurement Framework for Analyzing Technical Lag in ...
PPTX
On the Diversity of Software Package Popularity Metrics: An Empirical Study o...
PPTX
ConPan: A Tool to Analyze Packages in Software Containers
PPTX
Analyzing the Evolution of Testing Library Usage in Open Source Java Projects
PPTX
An Empirical Comparison of the Development History of CloudStack and Eucalyptus
PPTX
Analyzing the Evolution of Testing Library Usage in Open Source Java Projects
Prevalence and Evolution of License Violations in npm and RubyGems Dependency...
Analysis And Observations Of The Evolution Of Testing Library Usage
On the Impact of Security Vulnerabilities in the npm and RubyGems Dependency ...
PhD public defense: A Measurement Framework for Analyzing Technical Lag in ...
On the Diversity of Software Package Popularity Metrics: An Empirical Study o...
ConPan: A Tool to Analyze Packages in Software Containers
Analyzing the Evolution of Testing Library Usage in Open Source Java Projects
An Empirical Comparison of the Development History of CloudStack and Eucalyptus
Analyzing the Evolution of Testing Library Usage in Open Source Java Projects

Recently uploaded (20)

PPTX
perinatal infections 2-171220190027.pptx
PDF
Worlds Next Door: A Candidate Giant Planet Imaged in the Habitable Zone of ↵ ...
PPTX
Introcution to Microbes Burton's Biology for the Health
PDF
BET Eukaryotic signal Transduction BET Eukaryotic signal Transduction.pdf
PPT
Animal tissues, epithelial, muscle, connective, nervous tissue
PDF
Science Form five needed shit SCIENEce so
PPTX
ap-psych-ch-1-introduction-to-psychology-presentation.pptx
PPT
veterinary parasitology ````````````.ppt
PPTX
endocrine - management of adrenal incidentaloma.pptx
PPTX
Understanding the Circulatory System……..
PDF
S2 SOIL BY TR. OKION.pdf based on the new lower secondary curriculum
PDF
lecture 2026 of Sjogren's syndrome l .pdf
PDF
Communicating Health Policies to Diverse Populations (www.kiu.ac.ug)
PPTX
Hypertension_Training_materials_English_2024[1] (1).pptx
PPT
LEC Synthetic Biology and its application.ppt
PPTX
Biomechanics of the Hip - Basic Science.pptx
PDF
CHAPTER 3 Cell Structures and Their Functions Lecture Outline.pdf
PPTX
Substance Disorders- part different drugs change body
PPTX
BIOMOLECULES PPT........................
PPT
Heredity-grade-9 Heredity-grade-9. Heredity-grade-9.
perinatal infections 2-171220190027.pptx
Worlds Next Door: A Candidate Giant Planet Imaged in the Habitable Zone of ↵ ...
Introcution to Microbes Burton's Biology for the Health
BET Eukaryotic signal Transduction BET Eukaryotic signal Transduction.pdf
Animal tissues, epithelial, muscle, connective, nervous tissue
Science Form five needed shit SCIENEce so
ap-psych-ch-1-introduction-to-psychology-presentation.pptx
veterinary parasitology ````````````.ppt
endocrine - management of adrenal incidentaloma.pptx
Understanding the Circulatory System……..
S2 SOIL BY TR. OKION.pdf based on the new lower secondary curriculum
lecture 2026 of Sjogren's syndrome l .pdf
Communicating Health Policies to Diverse Populations (www.kiu.ac.ug)
Hypertension_Training_materials_English_2024[1] (1).pptx
LEC Synthetic Biology and its application.ppt
Biomechanics of the Hip - Basic Science.pptx
CHAPTER 3 Cell Structures and Their Functions Lecture Outline.pdf
Substance Disorders- part different drugs change body
BIOMOLECULES PPT........................
Heredity-grade-9 Heredity-grade-9. Heredity-grade-9.

Analyzing Packages in Docker images hosted On DockerHub

  • 1. On the Relation between Outdated Docker Containers, Severity Vulnerabilities, and Bugs Ahmed Zerouali, Tom Mens, Gregorio Robles, Jesus Gonzalez Barahona The IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER) Hangzhou, China - February 24-27, 2019
  • 2. On the Impact of Outdated and Vulnerable Javascript Packages in Docker Images Ahmed Zerouali, Valerio Cosentino, Tom Mens, Gregorio Robles, Jesus Gonzalez Barahona The IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER) Hangzhou, China - February 24-27, 2019
  • 6. /Goal A method to assess how vulnerable, buggy and outdated Docker images are with respect to the latest available releases of the packages they include.
  • 7. /Technical lag 1.0.1 1.1.0 2.0.01.2.1 2.1.0 Dependency Software Project Technical lag Ideal Version - Ideal Version: stability, security, functionality, etc. - Technical lag: version updates, commits, bugs, vulnerabilities, lines of code, etc.
  • 8. /Method /Technical lag in Docker 1.0.1 1.1.0 2.0.01.2.1 2.1.0 installed package: P Docker container C Technical lag - technical_lag (P) = { ∆ versions, ∆ vulnerabilities, ∆ bugs}
  • 11. /Goal /Research Questions RQ 0 : How often are Docker images updated? RQ 1 : How outdated are container packages? RQ 2 : How vulnerable are container packages? RQ 3 : To which extent do containers suffer from bugs in packages? RQ 4 : How long do bugs and security vulnerabilities remain unfixed?
  • 13. /Method /Identifying Analyzed Images base:image Dockerfile FROM scratch ADD rootfs.tar.xz / CMD ["bash"] LAYER Y LAYER X build
  • 14. /Method /Identifying Analyzed Images Instantiated Dockerfile FROM base:image ……… …………….. LAYER Y LAYER X LAYER Z build
  • 15. - All official repositories - 30,000 community repositories (+500 pulls) 2,453 images 4,927 images /Method /Identifying Analyzed Images
  • 17. /Method /Identifying installed packages $ docker run <image> $ dpkg -l A median of 190 and 261 packages in official and community images, respectively.
  • 18. /Method /Package info and Vulnerability and Bug Reports - Package info - Vulnerabilities - Other Bugs - Debian Archive - Debian Security Tracker - Ultimate Debian Database
  • 19. RQ 0 : How often are Docker images updated? More than half of the Docker images have not been updated for four months.
  • 20. RQ 1 : How outdated are container packages?
  • 21. RQ 1 : How outdated are container packages?
  • 22. RQ 2 : How vulnerable are container packages?
  • 23. RQ 2 : How vulnerable are container packages?
  • 24. RQ 3 : To which extent do containers suffer from bugs in packages?
  • 25. RQ 3 : To which extent do containers suffer from bugs in packages?
  • 26. RQ 4 : How long do bugs and security vulnerabilities remain unfixed?
  • 27. RQ 4 : How long do bugs and security vulnerabilities remain unfixed?
  • 28. On the Impact of Outdated and Vulnerable Javascript Packages in Docker Images Ahmed Zerouali, Valerio Cosentino, Tom Mens, Gregorio Robles, Jesus Gonzalez Barahona - Docker containers based on Debian
  • 29. /Goal /Research Questions RQ 1 : How Outdated are npm packages in Docker images? RQ 2 : How vulnerable are npm packages in Docker images?
  • 30. /Method /Case Study/npm - Official images - Node based images 961 unique official Docker images as candidates - Layering mechanism
  • 32. /Method /Identifying installed packages $ docker run <image> $ find .. package.json A median number of installed packages is 200, 419 and 959 for node, mongo-express and ghost, respectively.
  • 33. /Method /Package info and Vulnerability Reports - Package info - Vulnerabilities - Libraries.io dataset - Snyk.io.io DB (1,099 vulnerability reports)
  • 34. RQ 1 : How Outdated are npm packages in Docker images? At the date of the last update of the Docker image: Median version lag = 0 major + 0 minor + 1 patch
  • 35. RQ 1 : How Outdated are npm packages in Docker images? At the date of the analysis (March 13th 2018): Median version lag = 1 major + 1 minor + 4 patch
  • 36. RQ 2 : How vulnerable are npm packages in Docker images? - All official node-based images have vulnerable npm packages, with an average of 16 security vulnerabilities per image. - Older images are more likely to have more vulnerabilities.
  • 37. /Limitations - The results of our results are not generalizable. - The results depend on the on the datasets and databases from where we extracted the data. - In the case of npm, we only found a limited number of vulnerability reports. - There are other ways in which we can compute the technical lag.
  • 38. /Conclusion - Debian and npm packages in Docker containers. - Old images have more outdated packages. - The number of outdated packages is correlated with the number of vulnerabilities. - Package update recommendation tools are needed in order to support Docker deployers.
  • 39. /Future Work - Carry out other analysis for other ecosystems. - Create a tool to assess how outdated and vulnerable packages in Docker containers are, including both system and third-party packages. - Gather monthly snapshots about Docker containers in order to analyze their evolution.

Editor's Notes

  • #4: In June 2015, ClusterHQ asked enterprises “What are the biggest barriers to putting containers in a production environment?” a higher percentage of enterprises (>60%) said that security was the #1 barrier to putting containers in a production environment.
  • #5: After some time, In August 2015, FlawCheck and one of our partners, surveyed enterprises asking which piece of the security equation was their top concern about running containers in production environments. At 42%, Vulnerabilities & Malware in container workloads was the top container security concern among those surveyed. Later on, A 2016 survey by DevOps.com and RedMonk, revealed that users who are more concerned by image security focused on scanning simple Common Vulnerabilities and Exposures (CVE) on the operating system.
  • #6: later, in 2017, a survey by Anchore.io focused on the landscape of practices being deployed by container users [1]. One of the questions was: “Other than security, what are the other checks that you perform before running application containers?” The top answers related to software package were: required packages (∼ 40% of the answers); presence of bugs in major third-party software (∼ 33%); and verifying whether third party software versions are up-to-date (∼ 27%)
  • #7: For this reason, we decided to support container deployers by creating a method to asses…...
  • #8: To do so, we relied on the concept of technical lag, the was introduced as the difference between the software version that is deployed and the ideal version available but not deployed yet.
  • #9: For this reason, we rely on the notion of technical lag as the difference….
  • #10: We decided to work with Docker images based on a Linux distribution, because applications in them are usually installed using well-defined packages. Among them, we selected Debian because of its maturity and widespread use 1 in DockerHub. On October 1st 2018, the Debian repository on DockerHub had more than 125M pulls 2 .
  • #11: We decided to work with Docker images based on a Linux distribution, because applications in them are usually installed using well-defined packages. Among them, we selected Debian because of its maturity and widespread use 1 in DockerHub. On October 1st 2018, the Debian repository on DockerHub had more than 125M pulls 2 .
  • #13: The overall process, which we describe in detail below, is: (1) identification of Docker Hub base images for Debian, defining our base set; (2) identification of Docker Hub images in our dataset, including those derived from the base set; (3) analysis of all those images, matching their packages to a historical archive of all Debian packages; and (4) identification of bug and vulnerability reports for those packages, based on a historical database with those details for Debian packages.
  • #14: We base ourselves on the mechanism of layering in Docker.
  • #15: We base ourselves on the mechanism of layering in Docker.
  • #18: We pulled and run all images and then used dpkg -l
  • #31: We decided to work with Docker images based on a Linux distribution, because applications in them are usually installed using well-defined packages. Among them, we selected Debian because of its maturity and widespread use 1 in DockerHub. On October 1st 2018, the Debian repository on DockerHub had more than 125M pulls 2 .