Securing container-based environments with Anchore
Laurikainen, Veera (2022)
Laurikainen, Veera
2022
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2022110121824
https://urn.fi/URN:NBN:fi:amk-2022110121824
Tiivistelmä
Ohjelmistotuotannossa käytetään kolmannen osapuolen kirjastoja ja avoimen lähdekoodin komponentteja yhä enemmän. Näistä syntyviä kokonaisuuksia kutsutaan artefakteiksi. Näiden ohjelmiston palasten hyödyntäminen tekee kehittämisestä helpompaa ja nopeampaa kehittäjille, mutta ei aina turvallisempaa. Tietoturvallisen kehittämisen varmistaminen ja turvallisuustarkastuksien tärkeys CI/CD-putkessa ovat kasvussa. Tietoturvaskannereiden lisääminen osaksi CI/CD-putkea voi auttaa pienentämään tietoturvaongelmia, jotka nousevat ohjelmistokehityksen aikana liittyen käytettyihin komponentteihin. Tämä pienentää tietoturvasta vastaavan tiimin manuaalista työtä ja antaa enemmän aikaa reagoida uhkiin.
Tutkimus ja toteutus tehtiin Qvantel Oy:lle. Tutkimuksen tavoitteena oli tutustua käytettäviin teknologioihin ja ottaa käyttöön skannerityökalu artefaktien tietoturvan valvontaan osana toimeksiantajan QRP-tuotantoympäristöä. Haluttu ominaisuus skannerille oli helposti luettavat tulokset ja mahdollisuus muokata niitä. Tietoturvatiimi hyödyntää luodut tulokset. Työn aikana oli tutkittava, oliko käyttöön otetun artefaktiskannerin kattavuus tarpeeksi laaja vai tarvitaanko lisäksi manuaalista skannausta. Toinen arvioitava kohde oli skannerin parhaiten hyötyä antava sijainti CI/CD-putkessa.
Toteutus koostui kahdesta osasta: lokaali toteutus, jolla pystyttiin testaamaan käytettävät ohjelmat, niiden yhteensopivuus ja näyttämään osa Jenkins CI/CD-työkalun asennuksesta ja konfiguroinnista, jota ei käyttöoikeusrajoituksien takia pystytty tekemään tuotantototeutuksen osalta. Lokaali toteutus toimi pohjana tuotantoympäristön toteutukselle. Toteutus koostui artefaktiskannerista, joka käynnistetään Jenkins serverin ja Jenkins pluginin avulla toimien osana CI/CD-putkea. Artefaktiskanneri toimii Dockerin päällä AWS-instanssissa pilviympäristössä.
Opinnäytetyön tutkimusongelman ratkaisuun käytettiin konstruktiivista tutkimusmenetelmää ja tuloksena saatiin toimiva Docker konttien kuvien artefaktiskannaus prosessi osana olemassa olevaa QRP CI/CD-putkea. Artefaktiskannaus voidaan käynnistää Jenkins CI/CD-työkalusta joko manuaalisesti tai automaattisesti. Manuaalinen versio toimii antamalla kuvan tiedot parametreina ja automaattinen versio käynnistyy, kun uusi QRP ”system-spec” kuva lisätään binaariseen säilytyspaikkaan. Jatkokehityksenä ehdotetaan vertailemaan olemassa olevan Xray skannerin tuloksia käyttöön otetun Anchore Engine:n tuloksien kanssa, jotta saataisiin vielä laajempi kuva löydetyistä haavoittuvuuksista. Anchore:n menettelytapaa pitäisi kehittää pidemmälle, joka tekee siitä vielä tarkemman riippuen mitä kuvaa skannataan. In software development third-party libraries and open-source components are being used even more. Entities created from these are called artifacts. Utilization of these pieces of software makes development easier and faster for developers but not always safer. Making sure everything is done in a secure way and the importance of security checks in CI/CD pipelines has been growing. Adding security scanners as part of CI/CD pipeline can help mitigating security issues that arise during software development related to used components. This reduces manual work of the team responsible for securing the system and gives more time for reacting to threats.
Research and implementation were done for Qvantel Oy. The objective of the research was to get familiar with the used technologies and deploying scanner tool that monitors security of artifacts as part of the client’s QRP production environment. Required feature for scanner was easily readable results and possibility to configure them. Created results are utilized by the security team. During research it was investigated if deployed artifact scanning coverage is broad enough or if manual scanning is needed as well. Another target of evaluation was the most beneficial spot in the CI/CD pipeline for the scanner.
Implementation consisted of two parts: a local implementation that was done to test the used software, compatibility, and to show parts of installing and configuring Jenkins CI/CD tool that could not be done in the production environment due to permission restrictions. Local implementation worked as a basis for the production environment implementation. Implementation consisted of an artifact scanner that is triggered via Jenkins server and a Jenkins plugin that is part of a CI/CD pipeline. Artifact scanner is working on top of Docker in an AWS instance in cloud environment.
Constructive research method was utilized to solve the thesis research problem and the result was a working Docker container image artifact scanning process as part of the existing QRP CI/CD pipeline. Artifact scanning can be triggered from Jenkins CI/CD tool either manually or automatically. Manual version works by giving image information as parameters and automatic version is triggered when new QRP “system-spec” image is pushed into binary repository. Proposal for further development is comparing results of existing Xray scanner and the deployed Anchore Engine to get even broader view of the found vulnerabilities. Anchore policy should be configured further making it more precise depending on what image is scanned.
Tutkimus ja toteutus tehtiin Qvantel Oy:lle. Tutkimuksen tavoitteena oli tutustua käytettäviin teknologioihin ja ottaa käyttöön skannerityökalu artefaktien tietoturvan valvontaan osana toimeksiantajan QRP-tuotantoympäristöä. Haluttu ominaisuus skannerille oli helposti luettavat tulokset ja mahdollisuus muokata niitä. Tietoturvatiimi hyödyntää luodut tulokset. Työn aikana oli tutkittava, oliko käyttöön otetun artefaktiskannerin kattavuus tarpeeksi laaja vai tarvitaanko lisäksi manuaalista skannausta. Toinen arvioitava kohde oli skannerin parhaiten hyötyä antava sijainti CI/CD-putkessa.
Toteutus koostui kahdesta osasta: lokaali toteutus, jolla pystyttiin testaamaan käytettävät ohjelmat, niiden yhteensopivuus ja näyttämään osa Jenkins CI/CD-työkalun asennuksesta ja konfiguroinnista, jota ei käyttöoikeusrajoituksien takia pystytty tekemään tuotantototeutuksen osalta. Lokaali toteutus toimi pohjana tuotantoympäristön toteutukselle. Toteutus koostui artefaktiskannerista, joka käynnistetään Jenkins serverin ja Jenkins pluginin avulla toimien osana CI/CD-putkea. Artefaktiskanneri toimii Dockerin päällä AWS-instanssissa pilviympäristössä.
Opinnäytetyön tutkimusongelman ratkaisuun käytettiin konstruktiivista tutkimusmenetelmää ja tuloksena saatiin toimiva Docker konttien kuvien artefaktiskannaus prosessi osana olemassa olevaa QRP CI/CD-putkea. Artefaktiskannaus voidaan käynnistää Jenkins CI/CD-työkalusta joko manuaalisesti tai automaattisesti. Manuaalinen versio toimii antamalla kuvan tiedot parametreina ja automaattinen versio käynnistyy, kun uusi QRP ”system-spec” kuva lisätään binaariseen säilytyspaikkaan. Jatkokehityksenä ehdotetaan vertailemaan olemassa olevan Xray skannerin tuloksia käyttöön otetun Anchore Engine:n tuloksien kanssa, jotta saataisiin vielä laajempi kuva löydetyistä haavoittuvuuksista. Anchore:n menettelytapaa pitäisi kehittää pidemmälle, joka tekee siitä vielä tarkemman riippuen mitä kuvaa skannataan.
Research and implementation were done for Qvantel Oy. The objective of the research was to get familiar with the used technologies and deploying scanner tool that monitors security of artifacts as part of the client’s QRP production environment. Required feature for scanner was easily readable results and possibility to configure them. Created results are utilized by the security team. During research it was investigated if deployed artifact scanning coverage is broad enough or if manual scanning is needed as well. Another target of evaluation was the most beneficial spot in the CI/CD pipeline for the scanner.
Implementation consisted of two parts: a local implementation that was done to test the used software, compatibility, and to show parts of installing and configuring Jenkins CI/CD tool that could not be done in the production environment due to permission restrictions. Local implementation worked as a basis for the production environment implementation. Implementation consisted of an artifact scanner that is triggered via Jenkins server and a Jenkins plugin that is part of a CI/CD pipeline. Artifact scanner is working on top of Docker in an AWS instance in cloud environment.
Constructive research method was utilized to solve the thesis research problem and the result was a working Docker container image artifact scanning process as part of the existing QRP CI/CD pipeline. Artifact scanning can be triggered from Jenkins CI/CD tool either manually or automatically. Manual version works by giving image information as parameters and automatic version is triggered when new QRP “system-spec” image is pushed into binary repository. Proposal for further development is comparing results of existing Xray scanner and the deployed Anchore Engine to get even broader view of the found vulnerabilities. Anchore policy should be configured further making it more precise depending on what image is scanned.