As software becomes increasingly common in our daily lives, the pace of software development has intensified. This has resulted in the creation of practices that advocate for short development cycles. In this context, DevSecOps is a new software development approach to ensure security and code quality. DevSecOps — short for Development, Security and Operations — strives to obtain "secure by default", not only as a product of security audits. The paradigm removes the boundaries between the traditionally separate software development, operations, and security teams.
This thesis investigates DevSecOps adoption by implementing a set of tools and practices for the development team at a case company by using the design science methodology. The thesis presents an implementation of four DevSecOps that were realized, covering application security testing, software composition, and infrastructure management. The solution is evaluated by surveying the development team on their experiences with using the tools. Additionally, the challenges related to the adoption of DevSecOps are contrasted to a set of issues previously identified in the literature.
The results show that in order to maximize DevSecOps adoption, the code analysis results should be available in a context that is already part of a developer's workflow. For instance, static application security test results should be displayed alongside code modifications while a developer is engaged in code review. Finally, the challenges experienced throughout the solution design and execution are consistent with those reported in the literature.Ohjelmistojen yleistyminen on johtanut kilpajuoksuun nopeammasta kehityssyklistä ja suuntausta on seurannut ohjelmistokehitysmetodien edistyminen. DevSecOps on uusi ohjelmistokehitystapa, jossa sovellusten tietoturva ja laatu nostetaan etusijalle nopean syklin ohella. DevSecOps, joka on lyhenne sanoista development, security ja operations (kehitys, tietoturva ja operaatiot), edustaa pyrkimystä tuottaa oletusarvoisesti tietoturvallisia ohjelmistoja.
Tässä diplomityössä tutkitaan DevSecOpsin käyttöönottoa ohjelmistokehitystiimissä hyödyntäen kehittämistutkimuksen metodologiaa. Työssä esitellään neljän työkalun toteutus, joka sisältää staattisen sovellusten suojaustestauksen, ohjelmiston koostumusanalyysin, sekä IT-infrastruktuurin turvallisuusanalyysin. Ratkaisua arvioidaan kartoittamalla kehitystiimin kokemuksia työkalujen käytöstä. Lisäksi kirjallisuudessa tunnistettuja DevSecOpsin käyttöönottoon liittyviä haasteita verrataan työn toteutuksessa kohdattuihin haasteisiin.
Löydökset osoittavat, että DevSecOps käytäntöjen jalkauttaminen kehitystiimin työhön toimii parhaiten, kun analyysien tulokset esitetään kehittäjille heille tutuissa ympäristöissä, esimerkiksi koodieditorissa tai versionhallintajärjestelmässä. Työn toteutuksen yhteydessä tunnistetut haasteet ovat johdonmukaisia kirjallisuudessa raportoitujen ongelmien kanssa.