Mikä on ohjelmiston toimitusketjun turvallisuus?
Ohjelmiston toimitusketjun turvallisuus tarkoittaa jokaisen osan, prosessin ja työkalun pitämistä turvassa koko ohjelmistokehityksen ajan, ensimmäisestä koodirivistä lopulliseen käyttöönottoon.
Lyhyesti sanottuna, ohjelmiston toimitusketjun turvallisuus auttaa organisaatioita pitämään kaikki ja kaiken ohjelmiston valmistamiseen liittyvän turvassa. Tämä estää hyökkääjiä lisäämästä haitallista koodia, varastamasta tietoja tai aiheuttamasta häiriöitä.
Ohjelmiston toimitusketjuun kuuluu koodisi, avoimen lähdekoodin kirjastot, rakennusjärjestelmät, API
, pilviasetukset ja kolmannen osapuolen toimittajat. Koska mikä tahansa osa voi olla kohteena, jokainen niistä on suojattava.Miksi ohjelmiston toimitusketjun turvallisuus on tärkeää
Nykyaikainen ohjelmistokehitys perustuu vahvasti avoimen lähdekoodin riippuvuuksiin, CI/CD-automaatioon ja kolmannen osapuolen integraatioihin.
Tämä lähestymistapa antaa tiimeille mahdollisuuden työskennellä ja innovoida nopeammin, mutta se tuo mukanaan myös enemmän riskejä. Jos yksikin riippuvuus tai työkalu vaarantuu, se voi johtaa vakaviin ongelmiin.
Todelliset tapaukset korostavat näitä riskejä:
- SolarWinds-hyökkäys (2020): Hakkerit lisäsivät haitallista koodia ohjelmistopäivitykseen, jota käytti yli 18 000 organisaatiota, mukaan lukien valtion virastot.
- Codecov-tietomurto (2021): Hyökkääjät muokkasivat skriptiä CI-työkalussa varastaakseen kehittäjien tunnistetietoja.
Nämä esimerkit osoittavat, että jopa luotettuihin työkaluihin voidaan hyökätä. Siksi ohjelmistojen toimitusketjun turvallisuus on niin tärkeää DevSecOps-tiimeille.
Ohjelmistojen toimitusketjun turvallisuuden keskeiset komponentit
- Lähdekoodin suojaus
- Turvallinen pääsy lähdekoodin hallintaan, kuten GitHubiin tai GitLabiin, käyttäen MFA ja roolipohjaista pääsynhallintaa (RBAC) estämään luvattomat koodimuutokset.
- Riippuvuuksien hallinta
- Skannaa ja päivitä säännöllisesti kolmannen osapuolen kirjastoja käyttäen SCA (Software Composition Analysis) havaitaksesi tunnetut haavoittuvuudet (CVE) ja lisenssiriskit.
- Rakennusprosessin eheys
- Suojaa CI/CD-putkesi hyökkääjiltä. Käytä koodin allekirjoitusta, rakennusalkuperän seurantaa ja työkaluja kuten Sigstore tai in-toto varmistaaksesi rakennuksen aitouden.
- Artefaktien tarkistus
- Tarkista rakennettujen pakettien tai konttikuvien eheys ennen käyttöönottoa. Ota käyttöön kuvien skannaustyökalu varmistaaksesi, että kuva on turvallinen.
- Pääsynhallinta ja salaisuuksien hallinta
- Rajoita käyttöoikeuksia käyttäen RBAC (Roolipohjainen pääsynhallinta) ja suojaa tunnistetiedot salasananhallinnan tai pilvisalaisuuksien hallinnan avulla.
- Jatkuva seuranta
- Seuraa koko ohjelmiston elinkaarta, mukaan lukien päivitykset, koodimuutokset ja ajonaikaiset ympäristöt, jotta voit havaita uudet turvallisuusriskit, jotka ilmenevät julkaisun jälkeen.
Esimerkki: Todellisen maailman tilanne
SaaS-yritys havaitsi, että heidän CI-putkessaan oleva vaarantunut avoimen lähdekoodin kirjasto toi haittaohjelman tuotantoon.
Ongelma jäi huomaamatta viikkojen ajan, koska ei ollut eheystarkistuksia. Toimitusketjun turvallisuusvalvontatoimenpiteiden kuten riippuvuuksien skannauksen, koodin allekirjoituksen ja putken valvonnan käyttöönoton jälkeen yritys pienensi hyökkäyspintaansa ja pystyi jäljittämään jokaisen koodimuutoksen edelliseen versioon.
Parhaat käytännöt toimitusketjun turvallisuudelle
- Käytä vahvistettuja lähteitä: Lataa riippuvuudet vain luotetuista arkistoista.
- Ota käyttöön SCA-työkalut: Skannaa jatkuvasti kirjastojen haavoittuvuuksia.
- Omaksu Zero Trust -periaatteet: Vahvista jokainen komponentti ja yhteys.
- Allekirjoita kaikki: Allekirjoita digitaalisesti lähdekoodi, rakennelmat ja konttikuvat.
- Seuraa kehyksiä: Käytä NIST SSDF tai SLSA rakenteelliseen toimitusketjun suojaamiseen.
- Automatisoi valvonta: Integroi turvallisuustarkistukset CI/CD-putkiin.
Ohjelmiston toimitusketjun turvallisuuden hyödyt
- Suojaa ohjelmistoa peukaloinnilta ja luvattomilta muutoksilta
- Estää laajamittaiset tietomurrot ja tietovuodot
- Rakentaa asiakasturvallisuutta ja vaatimustenmukaisuuden luottamusta
- Vähentää korjauskustannuksia havaitsemalla ongelmat aikaisin
- Parantaa läpinäkyvyyttä kehityksen ja toimituksen välillä
Liittyvät termit
- SCA (Ohjelmiston koostumusanalyysi)
- SBOM (Ohjelmiston materiaaliluettelo)
- CI/CD-turvallisuus
- Koodin allekirjoitus
- Zero Trust
- ASPM (Sovelluksen turvallisuusaseman hallinta)
FAQ: Ohjelmiston toimitusketjun turvallisuus
1. Mikä on esimerkki ohjelmiston toimitusketjun hyökkäyksestä?
Kuuluisa esimerkki on SolarWinds-murto, jossa hyökkääjät kompromettoivat päivitysprosessin toimittaakseen haittaohjelmia tuhansille käyttäjille.
2. Miten toimitusketjun turvallisuus eroaa perinteisestä sovellusturvallisuudesta?
Sovellusturvallisuus keskittyy sovelluksen itsensä suojaamiseen, kun taas toimitusketjun turvallisuus suojaa kaiken, mikä liittyy sovelluksen tekemiseen, mukaan lukien työkalut, koodi ja riippuvuudet.
3. Mitkä työkalut auttavat parantamaan toimitusketjun turvallisuutta?
Yleisiä työkaluja ovat Plexicus Container Security, Plexicus ASPM, Snyk, Anchore ja Sigstore, jotka skannaavat haavoittuvuuksia, tarkistavat eheyden ja hallitsevat riippuvuuksia.
4. Mikä on SLSA?
SLSA (Supply-chain Levels for Software Artifacts) on Googlen kehittämä viitekehys, joka määrittelee parhaat käytännöt ohjelmiston rakennusprosessin suojaamiseksi ja manipuloinnin estämiseksi.