Milloin tarvitset tätä
Putkesi pystyvät muuttamaan tuotantoa, ja putkiasi pystyy muuttamaan useampi ihminen ja työkalu kuin kukaan suunnitteli. Yksi haitallinen pull request, kaapattu kolmannen osapuolen action tai vuotanut CI-muuttuja voi avata tien pilveesi, eikä kukaan ole tarkistanut, kuinka helposti.
Mikä määrittää tarjouksen
- Yksi CI-alusta tarkistusta kohden: GitHub Actions, GitLab CI/CD, Azure Pipelines, Jenkins, Bitbucket Pipelines, Google Cloud Build tai AWS CodePipeline ja CodeBuild.
- Organisaatioasetukset ja repositorioiden säännöt enintään 25 repositoriosta.
- Enintään 10 putken syvällinen katselmointi; putket valitaan yhdessä niistä, joilla on pääsy tuotantoon.
- Palveluntarjoajan ylläpitämät runnerit sekä enintään 2 itse ylläpidettyä runner- tai agenttipoolia.
- Julkaisut enintään 3 ympäristöön.
- Suuremmista kokonaisuuksista tai toisesta CI-alustasta annetaan tarjous puhelun jälkeen.
Mikä muuttuu
- Tiedät jokaisen reitin pull requestista tuotantoon ja sen, mitä niistä hyökkääjä voisi käyttää.
- Tiedät, viedäänkö tuotantoon täsmälleen se, mitä testattiin, eli rakennetaanko jokainen julkaisu kerran ja siirretäänkö se eteenpäin tiivisteen (digest) perusteella.
- Jokaisella havainnolla on näyttö ja korjaus, joten tiimisi voi toimia ilman uutta selvitystyötä.
- Sinulla on riskin ja työmäärän mukaan järjestetty 90 päivän suunnitelma valmiina työjonoosi.
Mitä saat
- Havaintoraportti, jossa vakavuus, kohteena olevat repositoriot ja putket, näyttö ja korjaus
- Jokainen havainto peilattuna OWASP Top 10 CI/CD Security Risks -listaan (CICD-SEC-1–CICD-SEC-10)
- Pääbuildiesi nykyinen SLSA Build -taso ja askeleet seuraavalle tasolle
- Lista CI:hin tallennetuista pilviavaimista ja kullekin OIDC-korvaaja
- Yhden sivun yhteenveto kymmenestä suurimmasta riskistä johdolle
- Riskin ja työmäärän mukaan järjestetty 90 päivän tiekartta
- Kaikki havainnot CSV-tiedostona tikettijärjestelmääsi
- 90 minuutin tulosten läpikäynti tiimisi kanssa
Mitä katamme kullakin alustalla
| Osa-alue | GitHub Actions | GitLab CI/CD | Azure Pipelines |
|---|---|---|---|
| Pääsy ja repositorioiden säännöt | SSO ja pakotettu 2FA, rulesetit ja haarasuojaukset, pakolliset katselmoinnit, CODEOWNERS | SSO ja pakotettu 2FA, suojatut haarat, merge requestien hyväksyntäsäännöt, Code Owners | Entra ID -kirjautuminen ja MFA, branch policyt, polkukohtaiset pakolliset katselmoijat |
| Epäluotettava syöte | pull_request_target- ja workflow_run-triggerit, tapahtumadatan käyttö run-askelissa | Forkeista tulevien merge requestien putket, skripteissä laajennettavat muuttujat | Forkeista tulevien pull requestien buildit, jonoon asetettaessa muutettavat muuttujat |
| Kolmannen osapuolen koodi | Actionit lukittuna commitin SHA-tiivisteeseen, sallittujen actionien käytäntö | include-tiedostot ja CI/CD-komponentit lukittuna SHA:han tai versioon | Marketplace-tehtävät ja -laajennukset, muiden repositorioiden templatet |
| Runnerit | GitHubin ylläpitämät ja itse ylläpidetyt runnerit, runner-ryhmät, kertakäyttöiset runnerit | GitLabin ylläpitämät ja itse ylläpidetyt runnerit, suojatut runnerit | Microsoftin ylläpitämät agentit, itse ylläpidetyt agenttipoolit ja niiden putkikohtaiset oikeudet |
| Salaisuudet ja pääsy pilveen | Organisaatio-, repositorio- ja ympäristökohtaiset salaisuudet, GITHUB_TOKEN-oikeudet, OIDC | Suojatut ja maskatut muuttujat, ID-tokenit OIDC:tä varten, job tokenin laajuus | Muuttujaryhmät, Key Vault -linkitykset, service connectionit työkuormien identiteetin federoinnilla |
| Portit, hyväksynnät ja auditointi | Pakolliset tilatarkistukset, ympäristöt pakollisine hyväksyjineen, audit-lokin striimaus | Merge requestien hyväksyntäkäytännöt, suojatut ympäristöt julkaisuhyväksyntöineen, audit events | Build validation, ympäristöjen hyväksynnät ja tarkistukset, auditointi ja audit-striimaus |
Jenkins, Bitbucket Pipelines, Google Cloud Build ja AWS CodePipeline/CodeBuild tarkistetaan samoilla kuudella osa-alueella kunkin alustan omilla asetuksilla.
Ei sisälly
- Havaintojen korjaaminen (erillinen tarjous, usein avaimettomat CI/CD-putket ja salaisuuksien siivous tai turvallinen CI/CD-putki)
- Penetraatiotestaus tai todelliset hyökkäykset putkiasi vastaan (voimme ohjata sinut sertifioidulle kumppanille)
- Sovelluskoodin katselmointi
- Sertifioinnit tai auditointilausunnot
Mitä tarvitsemme sinulta
- Lukuoikeus kohteena oleviin repositorioihin ja putkimäärityksiin, esimerkiksi Read-rooli GitHubissa, Reporter-rooli GitLabissa tai Readers-ryhmä Azure DevOpsissa.
- 60 minuutin näytönjako CI-alustan pääkäyttäjän kanssa niistä organisaatio-, runner- ja salaisuusasetuksista, joita lukuoikeuksilla ei näe.
- Lukuoikeus putkiesi käyttämiin pilvirooleihin: SecurityAudit AWS:ssä, Reader ja Entra Global Reader Azuressa tai Viewer ja Security Reviewer Google Cloudissa.
- Kaksi 60 minuutin haastattelua: alusta- tai DevOps-vastaava ja tietoturvasta vastaava.
Näin työ etenee
Maksuton 30 minuutin puhelu, sitten kirjallinen kiinteähintainen tarjous repositorioiden, putkien ja runnerien määrän perusteella.
Organisaatioasetusten ja putkitiedostojen automaattinen ja manuaalinen tarkistus enintään 25 repositoriosta.
Enintään 10 putken sekä niiden runnerien, salaisuuksien ja pilviroolien syvällinen katselmointi.
Raportti, tiekartta ja 90 minuutin tulosten läpikäynti.
Lyhyesti
- Kesto
- 1 viikko
- Hinta
- Kiinteä tarjous maksuttoman 30 minuutin puhelun jälkeen
- Toteuttaja
- Pääarkkitehtimme
Liittyvät palvelut
DevSecOps-puutekartoitus
1–2 viikon kartoitus siitä, miten tiimisi rakentavat ja julkaisevat ohjelmistoja, pisteytettynä OWASP SAMM- ja NIST SSDF -viitekehyksiä vasten ja tuloksena puutelista sekä 90 päivän suunnitelma.
Avaimettomat CI/CD-putket ja salaisuuksien siivous
Putkesi siirtyvät pitkäikäisistä pilviavaimista lyhytikäisiin federoituihin tokeneihin, ja salaisuuksien skannaus sekä riippuvuusportit pysäyttävät uudet vuodot ja riskialttiit riippuvuudet ennen mergeä.
Turvallinen CI/CD-putki
Putki, joka skannaa jokaisen muutoksen, rakentaa konttikuvan kerran, siirtää sen eteenpäin tiivisteen perusteella ja pyytää hyväksynnän ennen tuotantoa: yksi sovellus 2–3 viikossa, enintään 10 repositoriota 4–5 viikossa.