Vuonna 2026 raportoitiin päivässä 131% enemmän CVE:itä kuin edellisenä vuonna.

CI/CD-tietoturva

CI/CD-putken tietoturvan tarkistuslista

CI/CD-putki säilyttää tunnistetietoja, ajaa koodia internetistä ja tuottaa sen, mitä asiakkaasi asentavat. Siksi se on itsessään hyökkäyskohde. Käytä tätä tarkistuslistaa GitHub Actions -putken läpikäyntiin työnkulkutiedostosta sen toimittamaan artefaktiin asti.

Päivitetty

Työnkulut

  • Kiinnitä kolmannen osapuolen actionit täyteen commit-SHA:han. GitHubin mukaan tämä on "tällä hetkellä ainoa tapa käyttää actionia muuttumattomana julkaisuna". Tagin voi muuttaa osoittamaan muuhun koodiin. Maaliskuussa 2025 CISA raportoi, että tj-actions/changed-filesin jokainen versio oli murrettuna kolmen päivän ajan.
  • Anna GITHUB_TOKENille vähimmät oikeudet. Aseta sisällön oletukseksi pelkkä luku ja myönnä lisää jobikohtaisesti.
  • Älä koskaan checkouttaa epäluotettavaa koodia pull_request_target-työnkulussa. Nämä työnkulut ajetaan salaisuuksien ja korotettujen oikeuksien kanssa.
  • Pidä epäluotettava syöte poissa skripteistä. Välitä otsikot, haarojen nimet ja muut käyttäjän hallitsemat arvot ympäristömuuttujan kautta sen sijaan, että laajentaisit ne shell-komentoon.
  • Tarkista työnkulkutiedostojen muutokset. Vaadi koodin omistajan katselmointi kohteelle .github/workflows.

Salaisuudet

  • Suosi lyhytikäisiä tunnistetietoja. Käytä OpenID Connectia, jotta jobit saavat pilvipalveluntarjoajaltasi lyhytikäisiä, rajattuja tokeneita salaisuuksiksi tallennettujen pitkäikäisten avainten sijaan.
  • Rajaa salaisuudet ympäristöihin. Sijoita tuotannon tunnistetiedot ympäristöön, jossa on pakolliset hyväksyjät.
  • Vaihda tunnistetiedot tapauksen jälkeen. CISA:n neuvo tj-actions-murron jälkeen oli käsitellä paljastuneita salaisuuksia vaarantuneina ja vaihtaa ne välittömästi.

Runnerit

  • Käytä kertakäyttöisiä runnereita. Uusi kone jokaiselle jobille ei jätä seuraavalle mitään.
  • Pidä itse ylläpidetyt runnerit poissa julkisista repositorioista. GitHubin mukaan niitä ei pitäisi käyttää niissä juuri koskaan, koska kuka tahansa voi avata repositorioon pull requestin.
  • Eristä jobit. Yhden jobin ei pitäisi pystyä lukemaan toisen jobin työtilaa tai tunnistetietoja.

Verkko

  • Hallitse lähtevää liikennettä. Salli pakettilähteet ja palvelut, joita jobi tarvitsee, ja estä loput, jotta murrettu riippuvuus ei voi lähettää salaisuuksia ulos. Näin egress-käytäntö pysäyttää tietojen vuotamisen
  • Kirjaa yhteydet. Säilytä jälki siitä, mihin kukin jobi otti yhteyttä, jotta voit tutkia asiaa myöhemmin.

Riippuvuudet

  • Commitoi lukitustiedostot. Buildien pitäisi ratkaista joka kerta samat versiot.
  • Tarkista uudet riippuvuudet. Katso, mitä pull request lisää, ennen kuin se yhdistetään.
  • Pysäytä buildit löydösten perusteella. Estä buildi, kun se tuo mukanaan paketin, jossa on tunnettu kriittinen haavoittuvuus, ennen kuin artefakti toimitetaan.

Build-näyttö

  • Tallenna SBOM siitä, mitä buildi haki. Jälkikäteen tehty tiedostojen skannaus kuvaa sen, mitä ilmoitettiin, ei sitä, mitä buildi käytti.
  • Allekirjoita alkuperätiedot. Yhdistä jokainen artefakti sen tuottaneeseen buildiin, jotta voit myöhemmin tarkistaa, että ajossa on se, mikä rakennettiin.
  • Valvo, mitä toimitettiin. Tarkista julkaistut buildit uudelleen, kun uusia haavoittuvuuksia julkaistaan.

Mitkä työkalut kattavat mitkäkin kohdat

Skannerit kattavat riippuvuuskohdat, putken koventamisen työkalut kattavat työnkulkukohdat, ja runnerilla ajettavat agentit tai turvallinen runneri kattavat verkko- ja näyttökohdat. CRACI on runneri: se valvoo egress-käytäntöä, joka toimii fail closed -periaatteella, tallentaa SBOM:n siitä, mitä kukin jobi haki, antaa käytäntöporttien estää buildin löydösten perusteella ja palauttaa SBOM:t, verkkojäljet ja alkuperätiedot API:nsa kautta. Se ei skannaa koodia eikä työnkulkuja. Katso CI/CD-tietoturvatyökalut vertailussa, niin näet, mikä työkalu kattaa minkäkin.

CI/CD-putken tietoturva: usein kysytyt kysymykset

Mitä CI/CD-putken tietoturva on?

Se on niiden järjestelmien suojaamista, jotka rakentavat ja toimittavat ohjelmistosi: työnkulkujen määritykset, niiden käyttämät salaisuudet, niitä ajavat runnerit, niiden lataamat riippuvuudet ja niiden tuottamat artefaktit. Murrettu putki voi toimittaa haitallista koodia nimissäsi koskematta lähdekoodiisi.

Miksi GitHub Actions kannattaa kiinnittää commit-SHA:han?

Tagin voi muuttaa osoittamaan toiseen koodiin. GitHubin mukaan actionin kiinnittäminen täyspitkään commit-SHA:han on tällä hetkellä ainoa tapa käyttää actionia muuttumattomana julkaisuna. Maaliskuussa 2025 CISA raportoi, että tj-actions/changed-filesin jokainen versio oli murrettuna kolmen päivän ajan.

Mitä oikeuksia GITHUB_TOKENilla pitäisi olla?

Vain ne, joita kukin jobi vähintään tarvitsee. Aseta repositorion sisällön oletusoikeudeksi pelkkä luku ja myönnä lisää jobikohtaisesti vain siellä, missä jobi sitä tarvitsee.

Tarvitsenko CI:ssä lähtevän verkkoliikenteen hallintaa?

Kyllä, jos jobisi käsittelevät salaisuuksia ja ajavat kolmannen osapuolen koodia. Useimpien jobien tarvitsee tavoittaa vain tunnettu joukko pakettirekistereitä ja palveluita. Egress-käytäntö estää kaiken muun, joten murrettu riippuvuus ei voi lähettää salaisuuksia hyökkääjän palvelimelle.

Tarkista verkko- ja näyttökohdat yhdellä jobilla

Aja yksi työnkulku CRACI:lla ja näe sen egress-käytäntö, sen muodostamat yhteydet ja SBOM siitä, mitä se haki.

Varaa demo