Arttu Leppälä

Arttu Leppälä

Johtaja, Kyberturvallisuuspalvelut

Andreas Asuja

Andreas Asuja

Director Consulting Expert

Käytännössä kaikki nykypäivän digitaaliset tuotteet- ja palvelut perustuvat Open Source –komponentteihin. Niiden avulla ohjelmistojen kehittämisen tuottavuus on kasvanut merkittävästi viime vuosikymmeninä. Tästä on muovautunut ilmiö, jossa ohjelmistot ovat alkaneet muistuttaa korttitaloja. Talon alimmissa kerroksissa voi olla keskeisiä komponentteja, joita kehittää ja ylläpitää muutama vapaaehtoinen koodari. Tätä seuraa riski, jonka seurauksia pääsemme nyt korjaamaan.

Java-pohjaisissa järjestelmissä hyvin yleisesti käytetty komponentti log4j sisälsi vakavan haavoittuvuuden, jonka avulla hyökkääjä on saanut mahdollisuuden suorittaa etänä erilaisia komentoja sovelluspalvelimelle.

Haavoittuvuuden korjaaminen vaatii uuden korjatun log4j-kirjaston käyttöönoton sovelluksessa. Tämä on sinällään triviaalia, mutta ongelmana on, miten organisaatiotasolla voidaan edes tietää, missä kaikissa ohjelmistoissa tätä komponenttia on käytetty? Virusskannerit eivät sitä havaitse ja komponentti voi olla sekä osana räätälöityä yritysohjelmistoa että osa pakettisovellusta tai jopa SaaS-palvelua, jota organisaatio käyttää.

Log4j-haavoittuvuuden osalta käytössämme ovat olleet monet räätälöidyt ja varta vasten tarpeeseen kehitetyt keinot havaita haavoittuvia järjestelmiä ja niiden hyväksikäyttöyrityksiä.

Useasti näissä tapauksissa halutaan turvautua teknologiaan ja selvittää skannaamalla, ollaanko haavoittuvia vai ei. Teknologia ja työkalut ovat tärkeitä, mutta taito niiden käyttämiseen ja tulosten tulkintaan on ratkaisevassa asemassa. CGI:n oman kyberturvallisuuskeskuksen palvelumalli perustuu vahvasti asiantuntemukseen ja osaamiseen, eikä luota pelkästään valmiisiin sensoreihin tietoturvauhkien havaitsemisessa. Myös Log4j-haavoittuvuuden osalta käytössämme ovat olleet monet räätälöidyt ja varta vasten tarpeeseen kehitetyt keinot havaita haavoittuvia järjestelmiä ja niiden hyväksikäyttöyrityksiä.
 

Kun tämä yksittäinen haava on korjattu, on aika miettiä, miten jatkossa organisaatiolla huolehditaan, että:

  1. Tällaiset haavoittuvuudet havaitaan mahdollisimman nopeasti
  2. Haavoittuneet palvelut tunnistetaan ja ne voidaan suojata väliaikaisesti hyväksikäytöltä, ja korjaustoimet saadaan tehtyä mahdollisimman pikaisesti
  3. Kiinnitetään mahdollisimman paljon huomiota turvalliseen ohjelmistokehitykseen, jotta haavoittuvuuksien esiintyminen omissa ohjelmistoissa vähenee
  4. Organisaatioiden kehittämistä ja käyttämistä ohjelmistoista on olemassa aina ajan tasainen komponenttilista (eli bill of materials). Jatkossa lista auttaa nopeasti selvittämään, miten laajasti tietyn komponentin haava vaikuttaa organisaatioon.
     

Seuraavassa on luettelo keinoista, joilla edellä mainitut kyvykkyydet voidaan saavuttaa:

  1. Suojaa palvelut WAF:illa ja mahdollisesti IPS-palomuurilla. Ohjelmistotalot tarjoavat erilaisia tuotteita jokaiselle pilvialustalle ja konesaliin. Tietoturvapalveluita tarjoava kumppani kannattaa hankkia tuottamaan ylläpito- ja valvontapalvelua teknologialle – se ei pärjää yksin ja ilman jatkuvaa huolenpitoa.

  2. On suositeltavaa huolehtia, että järjestelmien lähdekoodeja skannataan jatkuvasti, jotta komponenttien haavoittuvuudet tulevat tietoon. Uudempiin versionhallintaohjelmistoihin saa tämänkaltaisia toimintoja helpostikin käyttöön. Jos versionhallinta ei tue tätä, lisää CI/CD-prosessi ensimmäisenä SCA-skannaus (Software Component Analysis). Esimerkiksi OWASP:ilta löytyy tätä varten open source –ohjelmisto.
     
  3. Ota käyttöön organisaatiosi järjestelmien CI/CD-prosessissa staattinen koodianalysaattori (SAST). Esimerkiksi SonarQuben ilmaisversiolla pääset alkuun. Lisäksi suosittelemme myös dynaamisen skannauksen tekemistä (DAST). OWASP ZAP lienee tunnetuin DAST-skanneri.

    Vaikka kyseessä on monimutkainen skannaus, perusasetuksilla saa jo paljon asioita aikaiseksi.

  4. Huolehdi, että järjestelmien ohjelmistonkehitysprosessissa listataan automatisoidusti kaikki käytetyt komponentit. Esimerkiksi, kun käytetään CI/CD-putken käyttämää AWS:n CodeArtifact -palvelua, muodostaa se automaattisesti listan kolmansien osapuolten komponenteista, joita CI/CD-putki lataa. Näin ajantasainen tieto käytetyistä paketeista on aina ajan tasalla ja jatkossa haavoittuneiden komponenttien listaus on päivien työn sijaan minuutteja.

 

Jos haluat kehittää organisaatiosi valmiuksia havaita, torjua ja korjata haavoittuvuuksia, ota yhteyttä asiantuntijoihimme!

About these authors

Arttu Leppälä

Arttu Leppälä

Johtaja, Kyberturvallisuuspalvelut

Olen Arttu Leppälä ja johdan CGI:llä yksikköä, jonka vastuulle kuuluvat kyberturvallisuuden asiantuntijapalvelut ja konsultointi. Yksikkömme palveluvalikoimaan sisältyvät sekä hallitut tietoturvapalvelut, kuten SOC, jatkuva tietoturvallisuuden valvonta, haavoittuvuushallinta, käyttövaltuushallintaratkaisut ja pilvipalveluiden turvaaminen, että näihin liittyvä suunnittelu-, konsultointi- ja muut asiantuntijapalvelut. Taustani on teknisestä tietoturvallisuudesta ja minulla on ...

Andreas Asuja

Andreas Asuja

Director Consulting Expert

Toimin pilvi- ja DevOps-arkkitehtina CGI:n innovaatiokeskuksen Cloud Transformation -tiimissä.