Implementation of secure workflow for DevOps from best practices viewpoint
Lamponen, Niclas (2021)
Diplomityö
Lamponen, Niclas
2021
School of Engineering Science, Tietotekniikka
Kaikki oikeudet pidätetään.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2021120759309
https://urn.fi/URN:NBN:fi-fe2021120759309
Tiivistelmä
In this thesis DevOps will be examined from security perspective. Theoretical section includes definition, details of tooling, necessary organizational changes, actions that DevSecOps consists of, and information on how such workflow will benefit organizations. Additionally, this thesis will introduce a practical example with modern tools about automated workflow from code commit to deployment in production. The goal of the empirical section is to explore and pilot new tools that teams can then benefit from. The thesis has some limitations such as only being relevant for limited time due to very rapidly changing landscape. Another limitation is that the material available for the literature review was limited, and grey literature was included as a part of it. The implementation in empirical section is also limited to certain technologies, but the underlying concepts are relevant even if different vendors for each task are chosen. This thesis was done as the shift to DevOps focused workflow was being made in Visma Solutions to research the current landscape. Security will be distinct part of the upcoming workflow as the data handled is sensitive. The findings conclude that well established DevOps workflow promotes higher frequency of deployments, and high frequency of deployments is linked to a higher performing organization. A DevSecOps workflow was implemented for a mock microservice and deployed in practice to better understand the findings of theoretical sections. During implementation numerous new tools, technologies, and a new workflow for using Git was incorporated. These tools focus on scanning containerized application, performing static as well as dynamic application security testing, carrying out software composition analysis, and running tests as part of the pipeline. Some guides and concepts relevant to DevSecOps (such as infrastructure as code, separation of duties, responsibility models) were discovered and shared within Visma Solutions for distributing the knowledge. Tässä tutkielmassa DevOpsia tarkastellaan tietoturvanäkökulmasta. Teoreettinen osio keskittyy tarkastelemaan määritelmää, työkalujen yksityiskohtia, tarvittavia organisaatiomuutoksia, DevSecOpsiin sisältyviä toimenpiteitä, sekä tietoa siitä miten tällainen toimintamalli hyödyttää organisaatioita. Lisäksi tässä tutkielmassa luodaan käytännön esimerkki hyödyntäen moderneja työkaluja, tavoitteena esitellä automatisoitu toimintamalli koodimuutoksesta tuotannossa julkaisuun. Empiirisen osion tavoitteena on tutkia ja pilotoida uusia työkaluja, joista tiimit voivat hyötyä kehityksessä. Tutkielmalla on joitain rajoituksia, kuten sen merkityksellisyys vain rajoitetun ajan nopeasti muuttuvan ympäristön vuoksi. Tutkimuksen rajoituksiin kannattaa huomioida, että harmaa kirjallisuus oli osana kirjallisuuskatsausta sekä kirjallisuuskatsauksen aineisto oli rajallinen. Empiirisessä osioissa implementoitu toteutus rajoittuu tiettyihin teknologioihin, mutta taustalla olevat käsitteet ovat oleellisia, vaikka ne implementoitaisiin toisella vastaavalla teknologialla. Tutkielma tehtiin, kun Visma Solutionsilla oltiin siirtymässä DevOps -painotteiseen toimintamalliin ja haluttiin karkoittaa nykyistä tilannetta. Tietoturvan piti olla selkeänä tekijänä tulevassa mallissa, koska käsiteltävä data oli arkaluonteista. Johtopäätöksissä huomattiin, että hyvin tehty DevOps edistää tiheämpää julkasujen määrää, ja korkea julkaisutiheys on yhdistetty korkeasti suorituskykyiseen organisaatioon. DevSecOps -mallista tehtiin käytännön implementaatio ja julkaisu jäljittelevälle mikropalvelulle, joka auttaa ymmärtämään paremmin teoreettisen osion löydöksiä. Implementaation aikana useita eri työkaluja, teknologioita, sekä uusi toimintamalli Gitin käyttöä varten otettiin käyttöön. Työkalut keskittyivät skannaamaan kontitettua ohjelmistoa, tekemään staattista sekä dynaamista analayysia, tekemään analyysia ohjelmiston koostumuksesta, sekä testaamaan testien ajamista osana kehitystä. DevSecOpsin kannalta merkittäviä oppaita sekä käsitteitä (esim. infrastruktuuri koodina tai tehtävien eriyttäminen) havaittiin ja jaettiin Visma Solutionsin sisällä tiedonjakamiseen tarkoitetuissa sessioissa.