CI/CD-tietoturva: 15 parasta käytäntöä & 10 työkalua 2026

By Kevin Casey

CI/CD-putket nopeuttavat ohjelmistokehitystä, mutta tietoturva-aukot voivat johtaa haavoittuvuuksiin. Tässä artikkelissa tarkastellaan CI/CD-putkiin liittyviä keskeisiä riskejä ja esitellään parhaita käytäntöjä niiden tietoturvan varmistamiseksi aina käyttöoikeuksien hallinnasta automaattiseen testaukseen.

CI/CD-putket mahdollistavat nopeamman ja useammin tapahtuvan ohjelmistokehityksen suunnittelusta käyttöönottoon. Kun ne kuitenkin alun perin saapuivat teknologia-alalle, niistä puuttui usein yksi tärkeä lenkki: tietoturva.

Se on ongelma, etenkin kun otetaan huomioon tämänkaltaiset tilastot: noin joka viides organisaatio ilmoitti tietoturvapoikkeamasta CI/CD-putkessaan edellisen vuoden aikana tuoreen kyselyn mukaan, jonka toteutti Techstrong Research.

CI/CD-putkien yleistyessä ne ovat myös muuttaneet ohjelmistotiimien uhkaympäristöä. Kuten Open Worldwide Application Security Project (OWASP) toteaa: ”Niiden tärkeyden ja suosion vuoksi CI/CD-putket ovat myös houkutteleva kohde haitallisille hakkereille, eikä niiden tietoturvaa voida sivuuttaa.”

Tässä artikkelissa perehdymme erityisiin riskeihin sekä tehokkaisiin periaatteisiin ja käytäntöihin, joilla näitä riskejä voidaan lieventää ja varmistaa CI/CD-putkien tietoturva.

Mikä on CI/CD-putki?

Varmistetaan ensin, että olemme samalla sivulla: mitä CI/CD tarkoittaa? CI/CD on lyhenne sanoista jatkuva integraatio ja jatkuva toimitus, ja sillä viitataan prosessien ja työkalujen kokonaisuuteen, jota nykyaikaiset ohjelmistotiimit käyttävät suunnitteluun, rakentamiseen ja lopulta käyttöönottoon – automaation ollessa yksi nopeamman ja useammin tapahtuvan koodin toimituksen ja päivitysten keskeisistä mahdollistajista.

Näin määrittelimme sen aiemmassa artikkelissamme ”CI/CD-putken yleiskatsaus: miksi sinun pitäisi tietää siitä”: ”CI/CD-putki on läpinäkyvä, automatisoitu ja luotettava ohjelmistokehitys- ja toimitusprosessi.”

Tavoitteena ei yleensä ole ainoastaan julkaista nopeammin ja useammin – tarkoituksena on myös parantaa laatua, luotettavuutta ja – jos sille annetaan asianmukainen prioriteetti – tietoturvaa.

CI/CD:n yleiset tietoturvariskit: 5 painopistealuetta

Monien CI/CD:n tietoturvariskien taustalla olevien syiden pitäisi kuulostaa ainakin jossain määrin tutuilta teknologia-alan ammattilaisesta. Sellaiset tekijät kuin pääsynhallinta ja liian laajat käyttöoikeudet, riittämätön valvonta ja lokikirjaus sekä hallitsemattomat riippuvuudet ja ohjelmistojen toimitusketjut lisäävät riskejä, jos niitä ei hallita asianmukaisesti. 

OWASP on julkaissut luettelon CI/CD:n kymmenestä tärkeimmästä tietoturvariskistä, johon kannattaa tutustua vertailukohtana. Se on organisaation suositun OWASP Top 10 -luettelon sovellus, joka käsittelee verkkosovellusten tietoturvariskejä ja toimii laajalti hyväksyttynä alan perustasona verkkosovellusten tietoturvalle.

Automaatio voi sekä synnyttää että pahentaa CI/CD-putkien riskejä. Monet riskit syntyvät automaattisesti – tai ne otetaan automaattisesti käyttöön tuotannossa – CI/CD-putkissa. Hieman ironisesti myös näiden putkien tietoturvan automatisointi infrastruktuuri koodina (IaC) -työkaluilla tai muulla automaatiolla voi vastaavasti synnyttää riskejä tai pahentaa niitä, jos asiaan ei kiinnitetä huomiota, toteaa Asperitaksen sovellusten muutoshankkeiden pääasiantuntija Derek Ashmore.

Ashmoren mukaan tässä on viisi keskeistä riskialuetta, jotka tulee ottaa huomioon CI/CD-putkien tietoturvaa varmistettaessa:

  • Käyttöoikeuksien hallinta: ”Käyttöoikeuksia myönnetään usein käytännön helppouden vuoksi liikaa, eikä tällöin noudateta vähimpien oikeuksien ja kaksoisvalvonnan periaatteita”, Ashmore sanoo. Yleisesti ottaen vähimpien oikeuksien periaatteen tulisi olla etusijalla – ihmisille tai koneille ei pidä antaa pääsyä tietoihin tai järjestelmiin, joita ne eivät tosiasiassa tarvitse työtehtäviensä suorittamiseen.
  • Vahvistamattomat riippuvuudet: Nykypäivän ohjelmistot – ja siten myös CI/CD-putket – perustuvat usein kolmansien osapuolten kirjastoihin ja muihin ulkoisiin riippuvuuksiin, ja näissä komponenteissa on toisinaan haavoittuvuuksia. ”Varmista aina, että ulkoiset riippuvuudet on vahvistettu ja että niiden säilytys- ja hallintaketju voidaan auditoida”, Ashmore sanoo.
  • Auditointi ja lokitus: Varmista, että kattava auditointi ja lokitus on otettu käyttöön. Näkyvyyden ja auditoitavuuden puute voi johtaa lisääntyneisiin tietoturvariskeihin, joista et muuten olisi tietoinen.
  • Käyttöoikeuksien eskalointi: CI/CD:lle ja CI/CD-tietoturvalle ominainen automaatio voidaan joskus kehittää siilomaisesti, mikä johtaa tahattomiin aukkoihin, joissa käyttöoikeuksia voidaan korottaa suorittamalla tahattomasti käynnistyvä automaatiosarja. ”Tämän riskin vähentämiseksi varmista, että vähimpien oikeuksien periaate on toteutettu ja että automaatiotyönkuluja sekä yksittäisiä tehtäviä tai putkia varten on laadittu testitapaukset”, Ashmore sanoo.
  • Riittämätön automaattinen testaus: Automaattinen testaus on keskeistä paitsi vahvan CI/CD-putken tietoturvan kannalta – esimerkiksi konttikuvien automaattiset haavoittuvuustarkistukset – myös putken yleisen toimivuuden kannalta. ”Putken puutteet voivat aiheuttaa ei-toivottuja tietoturva-aukkoja ja vaikuttaa kielteisesti sovellusten kehitystiimeihin estämällä niitä suorittamasta niille määrättyjä tehtäviä”, Ashmore sanoo.

15 parasta käytäntöä vahvempaan CI/CD-tietoturvaan

Kun riskit ovat hyvin hallussa, on aika siirtyä ratkaisuihin. Hyvä uutinen on, että niitä on runsaasti, osittain siksi, että koko toimiala on ymmärtänyt tietoturvan integroimisen tärkeyden CI/CD:hen ensisijaisena asiana. 

Asperitaksen Ashmore esitteli meille 15 yleisesti hyväksyttyä parasta käytäntöä ja taktiikkaa CI/CD-putken tietoturvan vahvistamiseksi. Sen pidemmittä puheitta:

  1. Käytä turvallisia versionhallintajärjestelmiä: Yksi versionhallintajärjestelmien, kuten Gitin, tärkeimmistä eduista on muutoshistorian tallentaminen, jota voidaan tarvita tietoturvaloukkausten tai muiden ongelmien tutkimiseen. ”Ihannetapauksessa mitään ei pitäisi muuttaa manuaalisesti”, Ashmore sanoo. Tutustu kattavaan lähdekoodin hallintatyökalujen luetteloomme, josta löydät lisää vaihtoehtoja: ”20 parasta versionhallintatyökalua arvioituna”
  2. Noudata vähimpien oikeuksien periaatetta: Varmista, että sekä ihmisille että infrastruktuuriresurssien kaltaisille asioille myönnetyt roolit ja käyttöoikeudet ovat mahdollisimman rajattuja ja noudattavat vähimpien oikeuksien periaatetta. Jos niitä ei tarvita, niitä ei pidä myöntää.
  3. Käytä salaisuuksien hallintaa: ”Vältä salaisuuksien – salasanojen, tunnusten ja API-avainten – kovakoodaamista IaC-malleihin”, Ashmore sanoo. Käytä sen sijaan salaisuuksien hallintatyökaluja, kuten HashiCorp Vaultia, AWS Secrets Manageria tai Azure Key Vaultia. Tutustu perusteelliseen katsaukseemme salaisuuksien hallintatyökaluista, josta löydät vielä lisää vaihtoehtoja: ”Digitaaliset turvasäilöt: 24 parasta salaisuuksien hallintatyökalua”
  4. Suorita säännöllisiä, automatisoituja tietoturvatarkistuksia: Käytä työkaluja, jotka etsivät tietoturva-aukkoja automaattisesti, ja tee tämä CI/CD-putkesi mahdollisimman varhaisissa vaiheissa.
  5. Noudata muuttumattomuuden periaatetta: Manuaalisten muutosten, erityisesti infrastruktuuriympäristöissä tehtävien muutosten, minimointi on hyvä strategia riskien vähentämiseksi. ”Infrastruktuurin pitäisi olla muuttumatonta; käyttöönoton jälkeen sitä ei pitäisi muuttaa manuaalisesti”, Ashmore sanoo. ”Sen sijaan muutokset tulisi tehdä päivittämällä IaC-koodi ja ottamalla se uudelleen käyttöön. Manuaalisten muutosten tekemisen mahdollisuuden poistaminen on turvallisin toimintatapa.”
  6. Käytä roolipohjaista käyttöoikeuksien hallintaa (RBAC): ”Hallitse IaC-työkalujesi ja ympäristöjesi käyttöoikeuksia RBAC:n avulla”, Ashmore sanoo. ”Vain valtuutettujen käyttäjien pitäisi voida ottaa infrastruktuuria käyttöön tai muokata sitä.” Kubernetes on toinen tärkeä esimerkki, erityisesti koska se on keskeinen osa monia CI/CD-putkia. Älä luota pelkästään oletusmäärityksiin.
  7. Sovella idempotenssia: Nyt siirrytään hieman edistyneempiin asioihin: idempotenssi tarkoittaa sitä, että tiettyjä toimintoja – tai ohjelmistokehityksen tapauksessa koodia – voidaan suorittaa useita kertoja lopputulosta muuttamatta. ”Suunnittele IaC [ja CI/CD-putket] idempotentilla tavalla, eli siten, että koodin suorittaminen useita kertoja ei muuta infrastruktuurin tilaa, ellei sitä nimenomaisesti vaadita”, Ashmore sanoo.
  8. Käytä parametrisointia: Ashmore suosittelee muuttujien ja parametrisoinnin käyttämistä IaC-malleissa ympäristökohtaisten arvojen, kuten alueiden, instanssikokojen ja IP-osoitteiden, kovakoodaamisen välttämiseksi.
  9. Toteuta valvonta ja lokitus: Niitä tarvitaan luvattoman tai epätavallisen toiminnan havaitsemiseen sekä perimmäisten syiden selvittämiseen, kun tapahtumia ilmenee. ”AWS CloudTrailin tai Azure Monitorin kaltaiset palvelut voivat auttaa”, Ashmore sanoo. Tässä on kaksi muuta resurssia: ”25 parasta lokien valvontaohjelmistoa” ja ”Opas: 26 parasta infrastruktuurin valvontatyökalua”
  10. Käytä infrastruktuurin testauksen työkaluja: ”Sisällytä infrastruktuurin testauksen työkaluja, kuten Test Kitchen, Terratest tai InSpec, varmistaaksesi IaC-koodisi oikeellisuuden ennen käyttöönottoa”, Ashmore sanoo.
  11. Toteuta infrastruktuurin poikkeamien havaitseminen: Ashmore neuvoo käyttämään työkaluja havaitsemaan infrastruktuurin poikkeamat – eli CI/CD-putken ulkopuolella tapahtuvat muutokset – ja palauttamaan luvattomat muutokset niiden havaitsemisen jälkeen.
  12. Noudata vaatimustenmukaisuus- ja tietoturvastandardeja: Varmista, että CI/CD-putkesi täyttää alan tietoturvastandardien ja vaatimustenmukaisuuskehysten, kuten CIS-vertailuarvojen, NIST:n tai GDPR:n, vaatimukset. Edellä jakamamme OWASP Top 10 -luettelo on toinen esimerkki.
  13. Luo uudelleenkäytettävää ja modulaarista IaC-koodia: ”Pilko IaC-koodi uudelleenkäytettäviksi ja modulaarisiksi komponenteiksi, kuten Terraform-moduuleiksi tai AWS CloudFormation -pinoiksi”, Ashmore sanoo.
  14. Dokumentoi putkesi: Ashmore suosittelee IaC-käytäntöjen, mallien ja tietoturvamenettelyjen sekä muiden CI/CD-putkesi komponenttien perusteellista dokumentointia ja dokumentaation ylläpitämistä.
  15. Päivitä työkalut säännöllisesti: ”Pidä IaC-työkalusi, kuten Terraform, Ansible ja CloudFormation, sekä kaikki niihin liittyvät riippuvuudet päivitettyinä uusimpiin versioihin”, Ashmore sanoo. Sama neuvo koskee yleisesti myös muita putkesi työkaluja ja riippuvuuksia: vanhentuneissa versioissa on todennäköisemmin tunnettuja ja mahdollisesti myös tuntemattomia riskejä.

Liity mukaan saadaksesi lisää CI/CD-näkemyksiä

CI/CD-putkista on tullut nykyaikaisen ohjelmistokehityksen vakiokalustoa. Tämä tarkoittaa, että CI/CD:n tietoturva on yhtä tärkeää kuin kaikki muukin. Ennen kuin lähdet, tilaa uutiskirjeemme saadaksesi uusimmat näkemykset ohjelmistoalan johtavilta ajattelijoilta.

Kevin Casey
Kevin Casey is an award-winning technology and business writer with deep expertise in digital media. He covers all things IT, with a particular interest in cloud computing, software development, security, careers, leadership, and culture. Kevin's stories have been mentioned in The New York Times, The Wall Street Journal, CIO Journal, and other publications. His InformationWeek.com on ageism in the tech industry, "Are You Too Old For IT?," won an Azbee Award from the American Society of Business Publication Editors (ASBPE), and he's a former Community Choice honoree in the Small Business Influencer Awards. In the corporate world, he's worked for startups and Fortune 500 firms – as well as with their partners and customers – to develop content driven by business goals and customer needs. He can turn almost any subject matter into stories that connect with their intended audience, and has done so for companies like Red Hat, Verizon, New Relic, Puppet Labs, Intuit, American Express, HPE, Dell, and others. Kevin teaches writing at Duke University, where he is a Lecturing Fellow in the nationally recognized Thompson Writing Program.
Follow the author:

You may also like