Pilvipohjainen ohjelmistokehitys on kantava voima, koska se antaa mahdollisuuden rakentaa ja ottaa käyttöön sovelluksia vauhdilla ja skaalautuvasti. Mikropalveluiden, pilvi-infrastruktuurin ja API-rajapintojen ohella kontit (containers) ovat tärkeä osa tätä kehitysprosessia. Tutkitaanpa hieman konttien turvallisuusvaikutuksia pilvipohjaisten sovellusten kehittämisessä ja niiden aiheuttamien tietoturvahaasteiden hallintaa.
TL/DR - Mitä kontit ovat
Kontit tunnetaan vakioituina ohjelmistopaketteina. Ne yhdistävät sovelluksen koodin siihen liittyviin määritystiedostoihin ja kirjastoihin, sekä sovelluksen suorittamiseen tarvittaviin riippuvuuksiin. Näin voidaan ottaa pilvipohjaisia sovelluksia saumattomasti käyttöön julkisissa, hybridi- tai yksityisissä pilviympäristöissä.
Esimerkiksi, aivan kuten rahtiliikenteessä käytetään fyysisiä kontteja eristämään erilaisia rahtityyppejä toisistaan – esimerkiksi kuljetettavaksi laivoissa ja junissa niiden sisällä olevasta lastin tyypistä riippumatta – myös kontit toimivat tällä tavalla, koska ne auttavat toimittamaan tuotantoon itsenäisiä ohjelmistoyksiköitä.
Vastaavasti se, mistä laivakontit tulevat ja mitä ne sisältävät, vaikuttaa suoraan sataman turvallisuuteen. On ehdottoman tärkeää, että tietoturvavalvontaa toteutetaan koko kehitysprosessin ajan, jotta varmistetaan, että kontissa oleva tieto validoidaan ja että koodin eheys säilyy koko ajan.
Kontit ja tietoturva
75 % konttien näköistiedostoista sisältää tietoturvauhkia, joita pidetään luokitukseltaan korkeana tai kriittisenä. Näillä uhkilla käyttöönotetut näköistiedostot lisäävät merkittävästi riskiä, että pahantahtoinen osapuoli hyökkää ajonaikaiseen ympäristöön.
Kontit aiheuttavat erilaisia uhkia, mukaan lukien:
- Tunnetut haavoittuvuudet ja altistukset (CVE, Common Vulnerabilities and Exposures): Nämä ovat julkisesti julkistettuja tietoturvaongelmia, joita tavalliset käyttäjät löytävät ja kirjaavat ylös, tai joita tietoturvatutkijoiden toimesta raportoidaan NVD:lle (National Vulnerability Database). Koska nämä tunnetut haavoittuvuudet ovat julkisia, ne aiheuttavat suurimman riskin ja ovat tärkeimpiä korjattavia. Kuten aiemmin mainittiin, näköistiedostot voivat sisältää haavoittuvuuksia. Jos näköistiedostoja ei skannata ennen niiden käyttöönottoa tuotantoon, ne lisäävät huomattavasti ajonaikaisen hyökkäyksen riskiä.
- Infrastruktuuri as Code (IaC) -tiedostoihin liittyvät ongelmat: Kontit hämärtävät sovelluksen ja infrastruktuurin välistä rajaa. Kontit luodaan määritystiedostosta, kuten Dockerfile, ja ne sisältävät paketteja, jotka on määritettävä vastaamaan pilvi-infrastruktuurin tarpeita. Mikäli tietoturvan hallintakeinoja ei ole määritetty oikein, kontit ovat vaarassa joutua tietoturvaloukkauksen kohteeksi.
- Kovakoodatut salaisuudet: Salaisuuksia, kuten yksityisiä avaimia tai salasanoja, tarvitaan usein, jotta kontti pääsee käyttämään palveluita tai tietoja. Valitettavan usein kehittäjät sisällyttävät salaisuuksien arvoja kontin määritystiedostoon, josta kuka tahansa, jolla on pääsy näköistiedostoon tai Dockerfile-tiedostoon, voi lukea niitä. Oikea tapa toimia olisi käyttää asianmukaisia salaisuuksien hallintatyökaluja. Kun salaisuus paljastetaan, hyökkääjät tai luvattomat käyttäjät voivat päästä käsiksi suojattuihin palveluihin ja resursseihin, sekä työkalujen tai sovellusten arkaluontoisiin tietoihin.
Kuten nähdään, konttien suojaaminen vaatii shift left -lähestymistapaa, -prosessia ja -strategiaa, ja tietoturvaskannauksen siirtymistä ohjelmistokehityksen elinkaaren (SDLC) mahdollisimman aikaiseen vaiheeseen. Aiemmin, kehitysvaiheessa löydetyt haavoittuvuudet ovat paljon helpompia ja halvempia korjata.
Suojaus on rakennettava kontteihin turvallisten ohjelmointikäytäntöjen avulla. Jos näköistiedostojen uhkia ei pystytä poistamaan ennen niiden käyttöönottoa, ajonaikaisen hyökkäyksen riski pilvipohjaisessa ympäristössä lisääntyy merkittävästi.
Konttien suojaaminen
Tallennettujen konttien suojaamiseksi pilvipohjaisessa sovelluskehityksessä tarvitaan nopea, yksinkertainen ja tarkka tapa suojata konttiartefaktit ennen tuotantoon vientiä. Kuten aiemmin mainittiin — koska 75 % konttinäköistiedostoista sisältää tietoturvauhkia — on välttämätöntä, että nämä uhkat poistetaan ennen käyttöönottoa.
Tätä varten on ensin varmistettava, että kontti on suojattu alusta alkaen, ja näköistiedostoissa olevat haavoittuvuudet tulee skannata, löytää ja korjata ennen kuin ne toimitetaan tuotantoon.
Ennaltaehkäisevä lähestymistapa pilvipohjaisten sovellusten suojaukseen suojaamalla konttikohteet aikaisemmin ohjelmistokehityksen elinkaaressa säästää aikaa, koska ongelmat voidaan havaita ennen kuin niistä kehittyy tulipalojen sammutusharjoituksia. Skannaus kehitysprosessin varhaisessa vaiheessa tarjoaa lisäkontekstia haavoittuvuuksiin, joten se on sopivin aika tietoturvaongelmien poistamiseen.
Veracode apuun
Veracode Container Security on tehokas CI/CD -pipelineratkaisu. Sen avulla voidaan integroida tietoturva olemassa olevaan työnkulkuun aiheuttamatta häiriöitä, jotta säiliöt voidaan suojata sitä mukaa, kun niitä rakennetaan. Intuitiivisen komentorivikäyttöliittymän (CLI) komennot helpottavat tunnettujen haavoittuvuuksien, IaC-tiedosto-ongelmien ja kovakoodattujen salaisuuksien skannaamista, löytämistä ja korjaamista näköistiedostoissa, tietovarastoissa, hakemistoissa ja arkistoissa — ennen kuin työkuormat lähetetään tuotantoon. Voit myös luoda, hallita ja jakaa SBOM-tiedostoja CycloneDX:ssä ja SPDX:ssä voidaan luoda, hallita ja jakaa SBOM-tiedostoja vaatimustenmukaisuuden täyttämiseksi, luottamuksen rakentamiseksi ja ohjelmistojen toimitusketjun turvallisuuden vahvistamiseksi.
Veracode antaa mahdollisuuden rakentaa ja ottaa käyttöön turvallisia kontteja helposti, mikä lisää nopeutta, jolla voidaan jatkaa pilvipohjaisten sovellusten kehitysprosessin turvaamista.
Lisäksi Veracode Container Securityä voidaan käyttää yhdessä Veracode Continuous Software Security Platformin kanssa, jonka avulla voidaan suojata pilvipohjainen sovelluskehitys yhdellä ratkaisulla. Lisäämällä staattisia ja dynaamisia skannauksia sekä SCA-analyysejä (Software Composition Analysis), voidaan tietoturvatasoa parantaa ja riskejä pilvipohjaisten sovellusten kehittämisessä vähentää.
Lisätietoja valmistajan sivuilta ja blogeista: