VTT TECHNICAL RESEARCH CENTRE OF FINLAND LTD Digitaalinen haavoittuvuus MATINE 8.5.2018 Tampere Mika.Rautila@vtt.fi
Sisältö Mikä on digitaalinen haavoittuvuus Millaisista tekijöistä digitaaliset haavoittuvuudet muodostuvat Miten haavoittuvuuksia voisi estää 08/05/2018 2
Digitaalinen haavoittuvuus Järjestelmä voidaan jakaa digitaaliseen ja analogiseen osaan Digitaalinen haavoittuvuus on järjestelmän digitaalisessa osassa oleva ominaisuus, joka tekee mahdolliseksi järjestelmän käyttämisen ei-tarkoitetulla (tietoturvapolitiikan vastaisella) tavalla Analoginen Digitaalinen 08/05/2018 3
Morris worm Tarkoituksena levittäytyä verkossa mahdollisimman moneen koneeseen Levittäytyminen käynnistyi lokakuussa 1988 yhdestä MIT:n koneesta 08/05/2018 4
Morris worm Tarkoituksena levittäytyä verkossa mahdollisimman moneen koneeseen Levittäytyminen käynnistyi lokakuussa 1988 yhdestä MIT:n koneesta 08/05/2018 5
Morris worm Käytti kolmea eri haavoittuvuutta: 1. Helppokäyttöinen ohjelmien etäsuoritus (rsh) Kaikkien käyttäjien salasanat oli saatavilla salatussa muodossa Helposti arvattavia salasanoja B Allow user `abc from A A C Allow user `abc from A D 08/05/2018 6
Morris worm Käytti kolmea eri haavoittuvuutta: 1. Helppokäyttöinen ohjelmien etäsuoritus (rsh) Kaikkien käyttäjien salasanat oli saatavilla salatussa muodossa Helposti arvattavia salasanoja B Allow user `abc from A A C Allow user `abc from A D 08/05/2018 7
Morris worm Käytti kolmea vaihtoehtoista haavoittuvuutta: 2. Yhden verkkopalvelun toteuttavan ohjelman ohjelmointivirhe (fingerd) Virhe mahdollisti käyttäjän antaman koodin suorittamisen kohdekoneessa finger fingerd 08/05/2018 8
Morris worm Käytti kolmea vaihtoehtoista haavoittuvuutta: 2. Yhden verkkopalvelun toteuttavan ohjelman ohjelmointivirhe (fingerd) Virhe mahdollisti käyttäjän antaman koodin suorittamisen kohdekoneessa finger fingerd 08/05/2018 9
Morris worm Käytti kolmea vaihtoehtoista haavoittuvuutta: 3. Sähköpostiongelmien ratkaisemista helpottava takaportti (sendmail) Ominaisuus oli tarkoitettu käytettäväksi kehitysvaiheessa sendmail 08/05/2018 10
Morris worm Käytti kolmea vaihtoehtoista haavoittuvuutta: 3. Sähköpostiongelmien ratkaisemista helpottava takaportti (sendmail) Ominaisuus oli tarkoitettu käytettäväksi kehitysvaiheessa sendmail 08/05/2018 11
Morris worm Käytti kolmea eri haavoittuvuutta: 1. Helppokäyttöinen ohjelmien etäsuoritus (rsh) Kaikkien käyttäjien salasanat oli saatavilla salatussa muodossa Helposti arvattavia salasanoja 2. Yhden verkkopalvelun toteuttavan ohjelman ohjelmointivirhe (fingerd) Virhe mahdollisti käyttäjän antaman koodin suorittamisen kohdekoneessa 3. Sähköpostiongelmien ratkaisemista helpottava takaportti (sendmail) Ominaisuus oli tarkoitettu käytettäväksi kehitysvaiheessa 08/05/2018 12
Silent bob Haavoittuvuus raportoitu alkuvuodesta 2017 Intelin PC-arkkitehtuuriin on kehitetty laitteiden etähallinnan mahdollistavat ominaisuudet (Active Management Technology) Etähallinta on tehty riippumattomaksi hallittavassa koneessa olevasta käyttöjärjestelmästä Hallintaominaisuudet on lähes kaikissa Intelin piireillä valmistetuissa PC-laitteissa Etähallinta on toteutettu web-palveluna Haavoittuvuus autentikoinnissa web-palveluun 08/05/2018 13
Silent bob Admin Halittava kone Authenticate: nounce Authorization: response 08/05/2018 14
Silent bob Halittava Admin kone Authenticate: nounce Authorization: response if ( strncmp( computed_response, { } user_response, response_len )!= 0 ) // Authentication failed. // 08/05/2018 15
Silent bob Admin Halittava kone Authenticate: nounce Authorization: if ( strncmp( computed_response, user_response, response_len )!= 0 ) { // Authentication failed. // } 08/05/2018 16
Silent bob Source: Intel product brief -- Intel Q57 Chipset and Intel 3450 Chipset Embedded Computing 08/05/2018 17
Silent bob app lib OS ME/ AMT Source: Intel product brief -- Intel Q57 Chipset and Intel 3450 Chipset Embedded Computing 08/05/2018 18
Miten haavoittuvuuksia torjutaan? 08/05/2018 19
Miten haavoittuvuuksia torjutaan? Pidetään huoli, ettei ohjelmistoissa ole haavoittuvuuksia Toteutusvaiheen aikainen varmistus Staattinen ja dynaaminen tietoturvan varmistus Miten analysoida vielä tuntemattomien hyökkäystapojen suhteen 08/05/2018 20
Miten haavoittuvuuksia torjutaan? Pidetään huoli, ettei ohjelmistoissa ole haavoittuvuuksia Toteutusvaiheen aikainen varmistus Staattinen ja dynaaminen tietoturvan varmistus Miten analysoida vielä tuntemattomien hyökkäystapojen suhteen Jos haavoittuvuuksia kuitenkin on, niin pidetään huoli, ettei niitä voi käyttää Defence-in-depth Tietoturvapäivitykset 08/05/2018 21
Miten haavoittuvuuksia torjutaan? Pidetään huoli, ettei ohjelmistoissa ole haavoittuvuuksia Toteutusvaiheen aikainen varmistus Staattinen ja dynaaminen tietoturvan varmistus Miten analysoida vielä tuntemattomien hyökkäystapojen suhteen Jos haavoittuvuuksia kuitenkin on, niin pidetään huoli, ettei niitä voi käyttää Defence-in-depth Tietoturvapäivitykset Pidetään huoli, että käyttäjät käyttävät laitteita turvallisella tavalla 08/05/2018 22
Miten haavoittuvuuksia torjutaan? Huono suunnittelu ja konfigurointi Miten analysoida suunnitelmista eri elementtien tietoturvavaikutukset 08/05/2018 23
Miten haavoittuvuuksia torjutaan? Huono suunnittelu ja konfigurointi Miten analysoida suunnitelmista eri elementtien tietoturvavaikutukset Ohjelman tuotantoversiossa mukana vain kehitysversioon tarkoitettua koodia Miten varmistetaan ettei ole ylimääräistä koodia Miten varmistetaan kaikkien toimittajien osuus Insider-riski Logistiikkariski 08/05/2018 24
Miten haavoittuvuuksia torjutaan? Huono suunnittelu ja konfigurointi Miten analysoida suunnitelmista eri elementtien tietoturvavaikutukset Ohjelman tuotantoversiossa mukana vain kehitysversioon tarkoitettua koodia Miten varmistetaan ettei ole ylimääräistä koodia Miten varmistetaan kaikkien toimittajien osuus Insider-riski Logistiikkariski Ohjelmointivirheet Miten estetään kriittiset ohjelmointivirheet 08/05/2018 25
Miten haavoittuvuuksia torjutaan? Huono suunnittelu ja konfigurointi Miten analysoida suunnitelmista eri elementtien tietoturvavaikutukset Ohjelman tuotantoversiossa mukana vain kehitysversioon tarkoitettua koodia Miten varmistetaan ettei ole ylimääräistä koodia Miten varmistetaan kaikkien toimittajien osuus Insider-riski Logistiikkariski Ohjelmointivirheet Miten estetään kriittiset ohjelmointivirheet Hardwaren turvallisuus 08/05/2018 26
Miten haavoittuvuuksia torjutaan? You can't trust code that you did not totally create yourself. (Especially code from companies that employ people like me.) No amount of source-level verification or scrutiny will protect you from using untrusted code. Ken Thompson: Reflections on trusting trust, 1984 08/05/2018 27
Miten haavoittuvuuksia torjutaan? You can't trust code that you did not totally create yourself. (Especially code from companies that employ people like me.) No amount of source-level verification or scrutiny will protect you from using untrusted code. Ken Thompson: Reflections on trusting trust, 1984 You can t even trust code that you did totally create yourself Eric Allman 08/05/2018 28
TECHNOLOGY FOR BUSINESS