12 research outputs found

    Paketinhallintajärjestelmät ja niihin liittyvät tietoturvariskit

    Get PDF
    Tiivistelmä. Tutkielman tavoitteena oli selvittää, mitä tietoturvariskejä paketinhallintajärjestelmät sisältävät. Lisäksi tavoitteena oli tuoda esille muutamia erilaisia ratkaisuja, joita tietoturvaongelmiin on kehitetty. Tutkielmassa pyrittiin vastaamaan tutkimuskysymyksiin: ”Mitä tietoturvariskejä liittyy paketinhallintajärjestelmiin?” sekä ”Kuinka näitä tietoturvariskejä voitaisiin torjua?”. Näihin kysymyksiin haettiin vastauksia kuvailevan kirjalliskatsauksen muodossa. Tutkielman tuloksena huomattiin, että paketinhallintajärjestelmät sisältävät monia eri tietoturvariskejä, jotka perustuvat moniin erilaisiin hyökkäysvektoreihin. Vaikka tutkimuksia paketinhallintajärjestelmien tietoturvariskeistä on monia, eivät paketinhallintajärjestelmät ole monissa tapauksissa hyödyntäneet ennakoivia tietoturvakäytäntöjä tietoturvariskien torjumiseen. Monet paketinhallintajärjestelmät ovat sen sijaan jättäneet tietoturvansa käyttäjien tekemien ilmoitusten varaan. Paketinhallintajärjestelmien tietoturvan parantamiseksi on kuitenkin kehitetty monia kolmannen osapuolen työkaluja, jotka tunnistavat ja minimoivat haavoittuvuuksia ohjelmistoprojekteissa erilaisin keinoin. Tällaisten työkalujen hyödyntäminen on kuitenkin melko harvinaista. Tutkielman tulokset osoittavat, että paketinhallintajärjestelmien vaikutukset tietoturvaan on asia, mikä on tärkeä ottaa huomioon paketinhallintajärjestelmiä käyttäessä

    Type Regression Testing to Detect Breaking Changes in Node.js Libraries

    Get PDF
    The npm repository contains JavaScript libraries that are used by millions of software developers. Its semantic versioning system relies on the ability to distinguish between breaking and non-breaking changes when libraries are updated. However, the dynamic nature of JavaScript often causes unintended breaking changes to be detected too late, which undermines the robustness of the applications. We present a novel technique, type regression testing, to automatically determine whether an update of a library implementation affects the types of its public interface, according to how the library is being used by other npm packages. By leveraging available test suites of clients, type regression testing uses a dynamic analysis to learn models of the library interface. Comparing the models before and after an update effectively amplifies the existing tests by revealing changes that may affect the clients. Experimental results on 12 widely used libraries show that the technique can identify type-related breaking changes with high accuracy. It fully automatically classifies at least 90% of the updates correctly as either major or as minor or patch, and it detects 26 breaking changes among the minor and patch updates

    Building and evaluating a theory of architectural technical debt in software-intensive systems

    Get PDF
    Architectural technical debt in software-intensive systems is a metaphor used to describe the “big” design decisions (e.g., choices regarding structure, frameworks, technologies, languages, etc.) that, while being suitable or even optimal when made, significantly hinder progress in the future. While other types of debt, such as code-level technical debt, can be readily detected by static analyzers, and often be refactored with minimal or only incremental efforts, architectural debt is hard to be identified, of wide-ranging remediation cost, daunting, and often avoided. In this study, we aim at developing a better understanding of how software development organizations conceptualize architectural debt, and how they deal with it. In order to do so, in this investigation we apply a mixed empirical method, constituted by a grounded theory study followed by focus groups. With the grounded theory method we construct a theory on architectural technical debt by eliciting qualitative data from software architects and senior technical staff from a wide range of heterogeneous software development organizations. We applied the focus group method to evaluate the emerging theory and refine it according to the new data collected. The result of the study, i.e., a theory emerging from the gathered data, constitutes an encompassing conceptual model of architectural technical debt, identifying and relating concepts such as its symptoms, causes, consequences, management strategies, and communication problems. From the conducted focus groups, we assessed that the theory adheres to the four evaluation criteria of classic grounded theory, i.e., the theory fits its underlying data, is able to work, has relevance, and is modifiable as new data appears. By grounding the findings in empirical evidence, the theory provides researchers and practitioners with novel knowledge on the crucial factors of architectural technical debt experienced in industrial contexts
    corecore