Me myymme monenlaista tietoturvaskanneria ja skannausta. Vaikka yritämme tehdä erittäinkin selväksi, mitä skannerit milloinkin tekee, kohtaamme kuitenkin aika ajoin toteamuksen ”mutta meillä on jo skanneri”. Tätä on vaikea lähteä kumoamaan kuulostamatta pikkutärkeältä nippelisaivartelijalta joka vain haluaa myydä toisen valmistajan, mutta toiminnallisuuksiltaan pääasiallisesti identtisen tuotteen. Asiantuntijaroolissa tunnen aina tässä kohtaa suurta tarvetta selittää, myyntiroolissa selittely ei välttämättä tuota suuria voittoja. Siispä blog to the rescue.
Skannaamisen sietämätön keveys
Puretaan ensin skannerit omiin kategorioihinsa. Tässä blogissa käsittelemme seuraavilla tasoilla olevia skannereita:
Koodi
Skannaa koodia ohjelmistokehityksen hyvin varhaisessa vaiheessa
Sovellus
Skannaa sovelluksia ohjelmistokehityksen QA- ja tuotantovaiheissa
Verkko
Skannaa infrastruktuuria, verkkoja ja verkkojen laitteita ulkoapäin
Palvelin
Skannaa palvelinta ja käyttöjärjestelmää sisältäpäin yksityiskohtaisesti
Jokaisella skannerilla on omat hyvät puolensa. Huonoja puolia ei varsinaisesti ole – eri skannerit vain tekevät hyvin eri asioita. Kattavalla skannauksella voidaan saavuttaa kattava näkyvyys sovellus- ja ohjelmistokehityksen tietoturvaan, palvelimien ja laitteiden konfigurointeihin, vaatimustenmukaisuuteen sekä tuotannon jatkuvaan eheyteen. Tulokset palvelevat uhkien- ja riskienhallintaa.
Erilaiset skannerit ja näiden toiminta-ajatus
1. Staattinen koodin tietoturvaskannaus - SAST
Sovellus- tai ohjelmistokehityksen alkupäässä skannataan koodia – lähdekoodia tai käännettyjä binääreitä. Tämä on SAST – static application security testing eli staattinen koodin tietoturvaskannaus tai analysointi. Tämä skannaus tapahtuu joko kehittäjän omassa ympäristössä, suoraan versiohallintajärjestelmästä tai jossain kohden CI/CD pipelinea.
Tämän skannauksen rooli on tuoda havainnointikykyä paljon ennen kuin koodi menee edes ensimmäisen kerran integraatio- tai muuhun testiympäristöön. Siksi että skannaus kohdistuu koodiin ja käytettyihin kirjastoihin, löydetään myös piileviä ongelmia jotka eivät välttämättä helposti löydy muissa myöhemmissä skannauksissa. Mitä aikaisemmin ohjelmistovirheet löytyvät, sitä vähemmän kustannuksia niiden korjaamiseksi tarvitaan.
Tässä kategoriassa on esimerkiksi edustamamme Veracode.
Automatisointi
Suositeltava
Kategoria
Koodi
Englanniksi
SAST
2. Webskannaus
Webskannauksessa kohteena on käytännössä yksi portti tai palvelu jossa pyörii web-applikaatio. Tarkoitus on löytää itse sovelluksesta tietoturvaongelmia, kuten injektiohaavoittuvuuksia. Joskus skannataan myös tietokantaa joka on sovelluksen takana. Automatisoitu webskannaus toimii parhaiten valmisohjelmistoille kuten WordPress, vastaavasti kertaluokkia huonoimmat tulokset saadaan kustomoiduilla sovelluksilla joissa on ”monipuolinen” tunnistus. Webskannauksen tukena käytetään yleensä pentestausta, joka on manuaalinen toimenpide jossa voidaan osittain käyttää aputyökaluna tätä webskanneria.
Skannaus tehdään yleensä muutosten yhteydessä tai ajastetusti kerran viikossa tai kuussa. Kohdistuu ohjelmistotasoon.
Tässä kategoriassa ovat automatisoidut skannerit kuten Holm Security, Veracode DAST (Dynamic Application Security Testing), Qualys tai Nessus tai manuaalinen skannaus kuten Burp ja erilaiset erikoistuneet sovelluskohtaiset skannerit kuten wp-scan tai sqlmap.
Automatisointi
Mahdollinen
Kategoria
Sovellus
Englanniksi
Web Application Scanning / DAST
3. Haavoittuvuusskannaus & verkkoskannaus
Haavoittuvuusskannaus kohdistuu verkossa tai aliverkossa olevien kaikkien palvelimien ja aktiivilaitteiden kaikkiin portteihin. Tässä skannauksessa syntyy myös verkon sisäinen inventaario. Skannauksessa löydetään haavoittuvuudet esim. fingerprinteillä, joka tarkoittaa että löydökset perustuvat tunnettuihin haavoittuvuuksiin. Skannauksen tarkoitus on lähinnä valvoa palveluissa olevia tunnettuja haavoittuvuuksia jotta ne voidaan korjata ajoissa, tai jotta näistä haavoittuvuuksista realisoituvia uhkia voidaan hallita tai mitigoida. Skannaus on yleensä ajastettu kerran viikossa tai kuukaudessa. Skanneri tarvitsee täysimääräisen pääsyn skannattaviin verkkoihin jotta kattavuus olisi hyvä.
Tässä kategoriassa ovat automatisoidut skannerit kuten Holm Security, Qualys tai Nessus.
Automatisointi
Ehdoton
Kategoria
Verkko
Englanniksi
Vulnerability Scanning
4. Käyttöjärjestelmä- tai serveriskannaus
Käyttöjärjestelmäskannaus kohdistuu palvelimen sisällä oleviin palveluihin, kuuntelijoihin/portteihin ja konfiguraatioihin. Tarkoitus on löytää heikkouksia palvelimen sisältä tai valvoa asetettujen konfiguraatioiden tai tietoturvakontrollien pysyvyys, eli vaatimustenmukaisuus. Skannaus on yleensä ajastettu kerran viikossa tai kuukaudessa. Skanneri tarvitsee käytännössä pääkäyttäjätunnukset jokaiselle käytettävälle palvelimelle ja skannaukseen liittyviä asioita ajetaan suoraan palvelimella.
Tässä kategoriassa ovat automatisoidut skannerit kuten Holm Security, Nessus, Qualys tai jokin erikoistyökalu kuten CIS-CAT.
Automatisointi
Suositeltava
Kategoria
Palvelin
Englanniksi
Vulnerability Scanning
5. Sovelluspalomuuri
Ensin on todettava että sovelluspalomuuri ei ole varsinainen skanneri siinä merkityksessa kuin muut tässä blogissa esitellyt skannerit. Sovelluspalomuuri analysoi – eli käytännössä skannaa – jokaisen webpalveluun kohdistuvan pyynnön ja estää aktiivisesti haitalliset pyynnöt. Tässä ei skannata palvelua kokonaisuudessaan. Ääriesimerkki – jos kukaan ei käytä palvelua, ei ole yhtään pyyntöä mitä skannata. Tämä on viimeisiä suojauskeinoja mitä sovellushallinnassa on käytössä ja sovelluspalomuureilla rakennetaan yleensä hätälaastareita kunnes itse sovellukseen saadaan oikea korjaus. Sovelluspalomuuri toimii reaaliaikaisesti ja vaatii laajasti konfiguraatiota.
Tässä kategoriassa on esimerkiksi F5 ASM.
Automatisointi
Reaaliaikainen
Kategoria
Sovellus
Englanniksi
Web Application Firewall
Mitä nyt valitsen ja kuinka perustelen valintani
Hyvä valinta mitä skannata, milloin ja millä työkalulla perustuu uhka- ja riskianalyysiin. Edelliset luvut, 1-5, yrittävät kertoa, että yksi valinta ei poissulje toista, vaan valinnat tuovat lisää kattavuutta. Jotkut uhka-analyysit ja tulokset ovat suoraviivaisia helppoja – no brainer -tasoa ”ilman tätä yrityksemme ei uskalla olla”. Joidenkin kohdalla taas kannattaa sekä tarvetta että käyttöönottoa suunnitella hyvin. Jos yrityksellä ei ole mitään omaa sovelluskehitystä, ei koodiskanneria tarvita. Jos yrityksellä taas ei ole mitään omaa infraa, ei haavoittuvuusskanneria tarvita.
Lopuksi lopullinen totuus:
Huonoin laite on se jota ei koskaan hankittu. Toiseksi huonoin on se, joka hankittiin, mutta jota ei koskaan otettu kunnolla käyttöön.