The effect of automated dependency updates in reducing open third-party vulnerabilities

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

School of Science | Master's thesis

Department

Mcode

Language

en

Pages

55

Series

Abstract

Software dependencies are a part of modern development, allowing developers to reuse core functionalities across different software projects. The usage of dependencies has grown over the last decade, and most languages have a package manager associated with them to easily install dependencies. Dependencies often have dependencies themselves, resulting in complex dependency structures. At the same time, the amount of vulnerabilities discovered grow yearly. Application security is crucial for many applications, and dependencies can introduce vulnerabilities to client applications. The goal of this thesis is to understand how the usage of software dependencies should be managed to reduce the amount of vulnerabilities that come from dependencies. The results are based on a literature review and an empirical study. The literature review provides a basis of software dependencies and dependency structure, third-party vulnerabilities, and dependency management. The empirical study builds on the basis of the literature review, with a case study done at a company consisting of data analysis and an intervention. The data analysis showed a clear difference between repositories using automated tools to handle their dependency updates and those that handle dependency updates manually. Fixing vulnerable dependencies was quicker with automated tools, and the amount of dependencies with known vulnerabilities were fewer and less severe when automated tools were used. The most important conclusion of the thesis is that there is a clear benefit of using automated tools in software dependency management, but pushing teams to adopt automated tools is not straightforward.

Ohjelmistoriippuvuudet ovat osa modernia ohjelmistokehitystä, mitkä mahdollistavat ydintoiminnallisuuksien uudelleenkäytön ohjelmistoprojektien välillä. Ohjelmistoriippuvuuksien käyttö on kasvanut viimeisen vuosikymmenen aikana, ja monilla ohjelmointikielillä on oma pakettien hallintatyökalu, joka mahdollistaa riippuvuuksien helpon asennuksen. Ohjelmistoriippuvuudet ovat usein riippuvaisia toisista riippuvuuksista, mistä syntyy kompeleksisia verkkoja. Ohjelmistojen tietoturvallisuus on monissa sovelluksissa kriittistä, ja ohjelmistoriippuvuudet voivat aiheuttaa ohjelmistohaavoittuvuuksia niitä käyttäviin sovelluksiin. Tämän diplomityön tavoitteena on tutkia, miten ohjelmistoriippuvuuksia pitäisi hallita niistä syntyvien ohjelmistohaavoittuvuuksien vähentämiseksi. Työn tulokset koostuvat kirjallisuuskatsauksesta sekä empiirisestä tutkimuksesta. Kirjallisuuskatsaus luo pohjan ohjelmistoriippuvuuksista ja niiden rakenteesta, kolmannen osapuolen ohjelmistohaavoittuvuuksista sekä ohjelmistoriippuvuuksien hallinnasta. Empiirinen tutkimus toteutettiin kirjallisuuskatsauksen pohjalta tapaustutkimuksena, joka koostui datan analysoinnista sekä interventiosta. Empiirinen tapaustutkimus toteutettiin yrityksessä. Empiirisessä tutkimuksessa toteutetun datan analysoinnista löytyi selkeä ero ohjelmistoriippuvuuksien automaattisten ja manuaalisten päivitysten väliltä. Automaattiset ohjelmistoriippuvuuksien päivitykset olivat nopeampia, vähensivät ohjelmistohaavoittuvuuksien määrää ja avoimet ohjelmistohaavoittuvuudet olivat lievempiä kun automaattiset päivitykset olivat käytössä. Työn tärkein johtopäätös on, että ohjelmistoriippuvuuksien hallinnassa automaattisilla työkaluilla on selkeä hyöty, mutta ohjelmistokehittäjien kannustaminen automaattisten ohjelmistoriippuvuuksien päivitysten käyttöönotossa ei käytännön tasolla ole yksinkertaista.

Description

Supervisor

Haaranen, Lassi

Thesis advisor

Haka, Jesse

Other note

Citation