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

Riippuvuudet

Konttiskannaus

Konttiskannaus tutkii konttikuvan tunnettujen haavoittuvuuksien, vanhentuneiden pakettien ja riskialttiiden asetusten varalta. Konttikuva paketoi sovelluksesi yhteen perustana olevan käyttöjärjestelmän ja kaiken niiden välissä olevan kanssa, joten skannaus kattaa paljon enemmän kuin omat riippuvuutesi. Se myös lukee valmista konttikuvaa, mikä rajoittaa sitä, mitä se voi tietää kuvan syntytavasta.

Päivitetty

Miten konttiskannaus toimii

  1. Konttikuva puretaan. Skanneri lukee konttikuvan kerrokset ajamatta niitä.
  2. Sisältö listataan. Se lukee käyttöjärjestelmän pakettitietokannat ja sovellusten manifestit, kuten konttikuvaan kopioidun package-lock.json-tiedoston.
  3. Tietoja verrataan. Se vertaa paketteja jakeluiden ja tietoturvatiedotteiden tietokantojen haavoittuvuustietoihin.
  4. Asetukset tarkistetaan. Jotkin työkalut liputtavat myös esimerkiksi root-käyttäjänä ajamisen tai kerrokseen jääneet salaisuudet.

Missä skannaus ajetaan

Vaihe Mitä se antaa Rajoitus
CI, konttikuvan buildin jälkeen Kaataa buildin ennen kuin konttikuva pushataan Tilannekuva sen päivän tietoturvatiedotteista
Rekisteri Skannaa tallennetut konttikuvat uudelleen uusien tiedotteiden ilmestyessä Löytää ongelmat vasta konttikuvan julkaisun jälkeen
Kubernetes admission Estää skannaamattomat tai hylätyt konttikuvat käyttöönotossa Vaatii käytännön ja tavan käsitellä poikkeukset
Ajonaikainen Näyttää, mitkä konttikuvat ovat nyt käynnissä ja mitä on ladattu Vaatii agentin klustereihisi

Konttiskannauksen työkalut

  • Avoin lähdekoodi: Trivy ja Grype ovat yleiset ilmaiset valinnat, ja molemmat sopivat helposti CI:hin.
  • Rekistereihin ja alustoihin sisäänrakennetut: Docker Scout ja suurten pilvipalveluiden rekisterit tarjoavat skannausta.
  • Kaupalliset alustat: Snyk ja Anchore lisäävät käytännöt, raportoinnin ja työnkulut.

Miten löydöksiä vähennetään

  • Aloita pienemmästä peruskuvasta. Kevyet tai distroless-kuvat sisältävät vähemmän paketteja, joten niitä koskee vähemmän tietoturvatiedotteita.
  • Rakenna uudelleen säännöllisesti. Peruskuvia paikataan, eikä maaliskuussa puhdas konttikuva ole puhdas enää nyt.
  • Käytä monivaiheisia buildeja. Kääntäjien ja build-työkalujen on pysyttävä poissa lopullisesta konttikuvasta.
  • Kiinnitä peruskuvat digestillä. Tagi voi muuttua huomaamattasi, digest ei.
  • Priorisoi. Moniin löydöksiin ei ole vielä korjausta, tai ne ovat paketeissa, joita sovelluksesi ei koskaan käytä. Katso miten haavoittuvuudet priorisoidaan.

Samat keinot toimivat myös konttikuvien ulkopuolella: miten haavoittuvuuskohinaa vähennetään asettaa ne järjestykseen jokaiselle ajamallesi skannerille.

Mitä konttiskannaus ei näe

  • Käännetty koodi. Konttikuvassa oleva Go- tai Rust-binääri sisältää vain vähän metatietoja, ja skannerin on pääteltävä, mitä siihen meni.
  • Tiedostot ilman pakettitietuetta. Komennolla curl lisätyllä tai kerrokseen kopioidulla ohjelmistolla ei ole merkintää missään pakettitietokannassa.
  • Mitä build käytti ja jätti jälkeensä. Monivaiheiset buildit hävittävät työkalut, joilla konttikuva tuotettiin. Jos jokin niistä oli vaarantunut, mikään lopullisessa konttikuvassa ei kerro siitä.
  • Mistä se tuli. Skannaus kuvaa konttikuvan, ei buildia, joka sen tuotti.

Katso tarkempi kuvaus siitä, mitä Docker-kuvan SBOM jättää näkemättä, ja vaihtoehdot sivulta parhaat SBOM-työkalut.

Tuore esimerkki on PHP2Shell: viralliset php-konttikuvat kääntävät PHP:n lähdekoodista, joten ajoympäristöllä ei ole pakettitietuetta ja jokaiselta konttikuvalta on kysyttävä sen versio erikseen.

Konttikuvien skannaus ja buildien tallentaminen

Skannerit ovat oikea työkalu konttikuville, joita et ole itse rakentanut, sekä klustereille ja asetuksille. Itse rakentamiesi konttikuvien kohdalla CRACI kulkee toista reittiä. GitHub Actions -runnerinasi se näkee, mitä buildiin tulee, peruskuva ja sen käyttöjärjestelmäkerrokset mukaan lukien, joten se tallentaa sen, mitä buildiin meni, sen sijaan että päättelisi sen jälkikäteen. Sen jälkeen se tarkistaa näitä SBOM:ia jatkuvasti uusien haavoittuvuuksien julkaisun myötä.

CRACI ei skannaa konttikuvia, joita et ole rakentanut, klustereita, VM-levykuvia eikä virheellisiä asetuksia. Trivy skannaa, joten pidä se niitä varten. Katso CRACI vs. Trivy.

Konttiskannaus: usein kysytyt kysymykset

Mitä konttiskannaus on?

Se on prosessi, jossa konttikuva tutkitaan tunnettujen haavoittuvuuksien, vanhentuneiden pakettien ja riskialttiiden asetusten varalta, yleensä ajamatta sitä.

Milloin konttikuvat kannattaa skannata?

CI:ssä konttikuvan buildin jälkeen ja uudelleen rekisterissä, kun uusia tietoturvatiedotteita ilmestyy. Jos skannaat vain kerran, jäljelle jää nopeasti vanheneva tilannekuva.

Mikä on paras ilmainen konttiskanneri?

Trivy ja Grype ovat laajimmin käytetyt ilmaiset vaihtoehdot. Molemmat toimivat CI:ssä ja kattavat käyttöjärjestelmän ja sovellusten paketit.

Mitä eroa on konttikuvan skannauksella ja SBOM:lla?

SBOM listaa, mitä konttikuvassa on, kun taas skannaus tarkistaa sisällön tunnettujen ongelmien varalta. Monet skannerit muodostavat ensin SBOM:n ja vertaavat sitä sitten tietoturvatiedotteisiin.

Miksi konttikuvassani on niin paljon haavoittuvuuksia?

Lähinnä peruskuvan takia, sillä se tuo mukanaan käyttöjärjestelmän paketit. Pienempi peruskuva ja säännölliset uudelleenbuildit poistavat suurimman osan niistä.

Pystyykö konttiskanneri lukemaan käännettyjä binäärejä?

Osittain. Go- ja Rust-binäärit voivat sisältää jonkin verran riippuvuuksien metatietoja, mutta suuri osa käännetystä koodista antaa skannerille vain vähän tarttumapintaa, joten sen on pääteltävä, mitä siihen meni.

Näe, mitä konttikuvaasi meni

Rakenna konttikuva CRACI:lla ja vertaa tallennettua SBOM:ia siihen, mitä konttiskannerisi raportoi.

Varaa demo