© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Sovellusten turvallisuus
Diploma in Digital Security, AaltoPRO
Modernit palvelumallit
11.2.2019
Jari Pirhonen
Turvallisuusjohtaja
Tieto
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Sisältö
• Sovellukset ovat tietoturvan heikoin lenkki
• Tietoturvatehtävät on integroitava sovelluskehitysmalliin
• Sovelluskehittäjät ja tietoturvallinen koodi avainasemassa
• Vaadi tietoturvallisia sovelluksia
2
“This regulator is code--the software and hardware that make cyberspace as
it is. This code, or architecture, sets the terms on which life in cyberspace is
experienced. It determines how easy it is to protect privacy, or how easy it is
to censor speech. It determines whether access to information is general or
whether information is zoned. It affects who sees what, or what is monitored.
In a host of ways that one cannot begin to see unless one begins to
understand the nature of this code, the code of cyberspace regulates.”
-- Lawrence Lessig, http://harvardmagazine.com/2000/01/code-is-law-html
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Sovellukset ovat tietoturvan heikoin lenkki
Lähde: https://informationisbeautiful.net/visualizations/worlds-biggest-data-breaches-hacks/
3
2019
2018
2016
2019
2018
2016
2014
2012
2010
2008
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Laadukas palvelu
• Sisäänrakennettu tietoturva
• Sisäänrakennettu tietosuoja
• Oletusarvoinen tietoturva ja –suoja
• Tietoturvallinen palvelu <> tietoturvapalvelu
Tietoturva on liian tärkeää jätettäväksi
tietoturva-asiantuntijoiden vastuulle!
4
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Turvallinen verkkopalvelu
Asiakas Verkkopalvelu Kumppanit
→ Käyttäjätunnistus
→ Helppokäyttöisyys
→ Opastus / koulutus
→ Laadukas toteutus
→ Turvallinen arkkitehtuuri
→ Tietosuojan huomiointi
→ Huolellinen ylläpito
→ Häiriöihin varautuminen
→ Tietoturvavaatimukset
→ Tietosuojavaatimukset
→ Salassapitovaatimus
→ SLA / sanktiot
5
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Koodi on laki
• Raha → bittejä
• Lompakko → koodia
• Maksaminen → protokolla
• Kaupankäyntitapahtuma → transaktio
• Pankkiholvi / kassa → tietokanta
• Pankki / kauppa → sovellus
• Pankkitoimihenkilö → algoritmi
• Asiakaspalvelu → robotti
6
© Tieto Corporation
Public
Lähde: ISF Threat Horizon 2018
IoT-laitteiden myötä koodi tunkeutuu kaikkialle
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Koodin määrä on valtava
Lähde: ISF Threat Horizon 2018
8
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Algoritmeilla nopeat voitot – ja tappiot
9
Source: Motherboard
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Source: The Verge
Tekoäly-yllätyksiä
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Kaikkea ei kannata toteuttaa
11
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Vastuut digimaailman palveluiden aiheuttamista
vahingoista eivät ole selkeät
12
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Sovelluskehitys ja sovellusympäristö ovat
jatkuvassa muutoksessa
Lähde: http://www.netevents.org/wp-content/uploads/2017/09/NetFoundry-September-2017.pdf
13
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Perinteiset lähestymistavat sovellusten
turvaamiseen
• Yritetään kovemmin
• Luottamus sovelluskehittäjien henkilökohtaiseen osaamiseen
• ”Älkää tehkö virheitä”
• Kaikista ei saa tietoturva-asiantuntijaa
• Korjataan myöhemmin
• Tietoturvasta ei huolehdita sovelluskehityksen aikana
• Rakennetaan parempi ”palomuuri” ja laitetaan salaus päälle
• Tarkastetaan lopputulos
• Palkataan asiantuntija etsimään valmiin sovelluksen tietoturvavirheet
• Laatua ei saa pelkästään testaamalla/tarkastamalla
14
Nämä tavat eivät toimi!
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Ensimmäiset askeleet sovellusten turvaamiseen
• Teetä tietoturvatarkastus
• Jos et osaa, hanki apua pahimpien virheiden löytämiseksi
• Käytä tarkastuksen tuloksia oman toiminnan parantamiseen
• Kouluta sovellustietoturvaa
• Siis tekemään hyviä sovelluksia, ei ”hakkerointia”
• Toteutusvirheet vs. suunnittelu- ja arkkitehtuurivirheet
• Selvitä tietoturvavaatimukset
• Hyvin suunniteltu on puoliksi tehty
• Uhka- ja riskianalyysit avuksi
• Tietoturvakatselmoinnit
• Parantaa tekijöiden asennetta, osaamista ja
lopputuloksen laatua
• Sovellustietoturvaryhmän perustaminen
• Yhteinen kieli ja sovelluskehityksen ymmärtäminen
15
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Tietoturva on integroitava sovelluskehitysmalliin
• Standardit ja toimialavaatimukset edellyttävät tietoturvan huomioimista
sovelluskehityksen kaikissa vaiheissa
• Yleensä keskitytään toiminnallisuuteen ja kustannustehokkuuteen – tietoturva heikosti huomioitu
• Apua ja ohjeita löytyy jo: BSIMM, SAMM, MS SDL, OWASP,…
• Vältä tietoturvan ”perisynti” – tuotelähtöinen suojausajattelu
• Luo fiksut toimintamallit sen sijaan, että syydät rahaa sovelluksen ”turvakuorrutukseen”
• ”Hakkerointi” on helppoa, kovat tyypit koodaavat laadukasta softaa
• Tietoturvahaasteet lisääntyvät entisestään
• Monimutkaisuus, verkottuminen, ketteryys,
uudet ohjelmointikielet ja –tekniikat,…
• Tasalaatua keskivertokoodareilla
• Sovitut toiminta- ja toteutusmallit, koodikäsikirja
• Sovelluksen turvallisuus on osoitettava
• Hyvä menetelmä ja jäljet sen jalkautumisesta
• Riskiarviot, dokumentit, raportit/mittarit
16
Photo by Ryoji Iwata on Unsplash
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Sovelluskehityksen tietoturvatehtäviä
Vaatimukset
ja käyttö-
tapaukset
Arkkitehtuuri
ja
suunnitelma
Ohjelmointi Testaus
Tuotantoon
vienti,
integrointi
Tietoturva- ja
tietosuojavaatimukset,
riskiarvio,
väärinkäyttötapaukset
Uhkamallinnus,
tietoturva-
katselmointi,
tietoturvan
testaussuunnitelma
Turvallinen koodi,
OWASP Top 10,
koodikatselmoinnit
Automatisoitu
tietoturvatestaus,
riskiarvioon
perustuva
tietoturvatestaus
Tuotanto ja
ylläpito
Ympäristön kovennus
ulkoinen auditointi,
murtotestaus,
HackDay
Tietoturvakorjausten
asennus, varmistukset,
monitorointi säännöllinen
tietoturvaskannaus,
murtotestaukset,
poikkeamien hallinta,
BugBounty-ohjelma
17
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Yritysten yleisimmät sovellusturva-aktiviteetit
• Tunnista tietoturvan tarkistuspisteet ja vaatimukset
• Tunnista tietosuojavaatimukset
• Tarjoa sovellusturvakoulutusta
• Määrittele tietojen luokittelukriteerit ja käsittelyvaatimukset
• Tee ja julkaise yleiset tietoturvaratkaisut (tunnistus, valtuutus, lokitus, salaus,…)
• Luo tietoturvaportaali tiedon jakamiseen
• Katselmoi tietoturvapiirteet
• Automatisoi tietoturvatestausta ja -katselmointia
• Varmista, että “normitestauksessa” testataan virhetapaukset
• Käytä ulkopuolisia tunkeutumistestaajia ja tietoturva-auditoijia
• Varmista, että tietoverkkojen ja palvelinten suojaamisesta on huolehdittu
• Tunnista sovellusvirheet tuotannossa ja tuo ne sovelluskehittäjille opiksi ja
korjattavaksi
18
Lähde www.bsimm.com
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Sovelluksessa voi olla tuntematonta, tietoturvan
vaarantavaa toiminnallisuutta
Haluttu toiminnallisuus
Ylimääräinen, tuntematon ja
dokumentoimaton toiminnallisuus
Perinteiset virheet
Todellinen toiminnallisuus
Sovellus voi toimia oikein ja luotettavasti ja silti turvattomasti!
Tietoturvallinen sovellus = tietoturvalliset (halutut) toiminnot + (halutut) tietoturvatoiminnot
19
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
OWASP Top 10 – nolot virheet
Yleinen (2017) Mobiili (2016) IoT (2018)
Injektio Alustan turvaton tai virheellinen käyttö Heikot tai kiinteät salasanat
Puutteellinen käyttäjän tunnistaminen
ja istunnonhallinta
Turvaton tiedon säilytys Turvattomat verkkopalvelut
Verkkosivun rakenne ei säily (XSS) Turvaton kommunikointi Ekosysteemin turvattomat rajapinnat
Turvaton suora objektiviittaus Puutteellinen käyttäjän tunnistaminen
ja istunnonhallinta
Turvallisen päivitysmekanismin puute
Tietoturvan virheellinen konfigurointi Riittämätön salaus Turvattomien tai vanhentuneiden
komponenttien käyttö
Arkaluontoisen tiedon julkistaminen Turvaton pääsynhallinta Riittämätön tietosuoja
Puuttuva funktiotason pääsynvalvonta Huonolaatuinen sovelluskoodi Turvaton tietojen siirto tai säilytys
Puutteellinen pyynnön alkuperän
tarkistus
Sovelluskoodin luvaton muuttaminen Laitehallinnan puute
Tunnettuja virheitä sisältävien
komponenttien käyttö
Sovelluskoodin takaisin mallintaminen Turvattomat oletusasetukset
Varmistamattomat uudelleenohjaukset Ylimääräinen, turvaton toiminnallisuus Fyysisesti suojaamattomat laitteet
20
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Tietoturvasuunnittelun periaatteita
21
• KISS
• Tarkista syöte - aina
• Turvallinen, nopea, halpa – valitse kaksi
• Kerroksellinen suojaus (sipulimalli)
• Turvaa virhetilanteet
• Oikeuksien lokerointi
• Neljän silmän periaate kriittisille tehtäville
• Älä luota sokeasti
• Hyvää tietoturvamallia ei tarvitse piilotella
• Käyttäjäystävällinen, intuitiivinen,
luottamusta herättävä
Photo by rawpixel on Unsplash
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Sovelluksista löytyy paljon haavoittuvuuksia ja
niiden korjaaminen kestää liian kauan
Lähde: Veracode State of The Software Security 2018
22
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Vaadi sopimuksissa turvallisia sovelluksia 1/2
• Toimittaja vastaa siitä, että toimitetussa palvelussa käytettävät sovellukset ja
toimitettavat sovellukset ovat tietoturvallisia siten, että:
• Sovelluksiin kohdistuvat tietoturvariskit on arvioitu ja niihin on valittu hallintamenettelyt.
• Tietoturvakriittinen sovelluskoodi (esim. käyttäjätunnistus, käyttövaltuuksien käsittely,
salaus ja salausavainten käsittely) on katselmoitu.
• Sovelluksen ja sen käyttämien komponenttien tietoturvakorjaukset ovat käytössä.
• Sovelluksille on suoritettu tietoturvatestaus ja varmistettu, että OWASP Top 10
haavoittuvuuksia ja ohjelmointivirheistä aiheutuvia vakavia tietoturvavirheitä ei
sovelluksissa ole.
• Sovelluksille on suoritettu 3. osapuolen tekemä tietoturva-auditointi.
• Sovelluksissa havaitut tietoturvaongelmat on viipymättä
ilmoitettava ja korjattava.
23
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Vaadi sopimuksissa turvallisia sovelluksia 2/2
• Sovelluskehitykseen osallistuvilla asiantuntijoilla on oltava kyky tuottaa
tietoturvallisia sovelluksia:
• Projekti- ja systeemityömenetelmissä huomioidaan tietoturvavaatimukset ja –
toimenpiteet.
• Sovelluskehitykseen osallistuvilla on tietämys sovellusten tietoturvasuunnittelun
periaatteista ja osaaminen tietoturvallisten sovellusten toteuttamiseksi.
• Sovelluskehittäjillä on tietämys käyttämiensä työvälineiden tietoturvapiirteistä ja
heikkouksista.
• Sovelluskehittäjät ovat saaneet tietoturvallisten sovellusten tekemiseen ohjaavaa
koulutusta ja he tuntevat yleisimmät sovellusten tietoturvaongelmat (OWASP Top 10)
ja niiden välttämistavat.
• Toimittajan on pystyttävä jälkikäteen osoittamaan tietoturva-
toimenpiteiden toteutuminen esim. dokumentaation ja raporttien avulla.
• Sovelluskehitys- ja testausympäristöt on suojattava koodin luvattomalta
paljastumiselta ja muokkaamiselta.
24
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Käytännössä havaittuja haasteita
• Osaamisen ja asenteiden kehittäminen kaikilla tasoilla
• Tietoturvavastuu, riskiajattelu, omien ratkaisujen objektiivinen arviointi
• Sovelluskehitysmallin käyttökuri
• Tietoturva täytyy sisällyttää toimintamalleihin ja mallia on noudatettava
• Tietoturva-asiantuntija syndrooma
• Tietoturva ”ulkoistetaan” tiimin ulkopuoliselle ”viisastelijalle”
• Harva sovellus aloitetaan tyhjältä pöydältä
• Tukeudutaan olemassa oleviin ratkaisuihin liian helposti
• Tarkistuslistafetissi
• Halutaan tarkistuslistoja - jääkö tilaa omalle ajattelulle?
• Tietoturvan ja ketterän kehityksen integrointi
• Tietoturva ei ole turhaa ja toimiva sovellus on turvallinen
• Digitaalisen maailman huima kehitysvauhti
• Uudet teknologiat, rajapinnat, kehitysvälineet
25
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
MVP?
Lähde: Henrik Kniberg, http://blog.crisp.se/2016/01/25/henrikkniberg/making-sense-of-mvp
26
Most Vulnerable Product?
Minimum Viable Product
© Tieto Corporation
Public
Diploma in Digital Security / JaPi 2019
Yhteenveto
• Sovellukset ovat tietoturvan heikoin lenkki
• Tietoturvaa ei voi tehokkaasti lisätä jälkikäteen
• Tietoturvatuotteet tyypillisesti suojaavat infrastruktuuria,
eivät sovelluksia
• Tietoturvatehtävät on integroitava sovelluskehitysmalliin
• Tietoturva on huomioitava jo sovelluksen/palvelun ideointivaiheessa – mitä käyttäjät eivät
halua tapahtuvan
• Sovelluskehittäjät ja tietoturvallinen koodi avainasemassa
• Automatisoinnilla ja työkaluilla saadaan kiinni turvaton koodi ja koodausvirheet, mutta ei
hyvin koodattua virheellistä toimintaa
• Vaadi tietoturvallisia sovelluksia
• Tietoturvatestattuja ja auditoituja sovelluksia What used to fit in a building, now fits in
your pocket, and what fits in your pocket
now, will fit inside a blood cell in 25
years.
-- Ray Kurzweil
27

Digiturva sovellusturva-11.2.19

  • 1.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Sovellusten turvallisuus Diploma in Digital Security, AaltoPRO Modernit palvelumallit 11.2.2019 Jari Pirhonen Turvallisuusjohtaja Tieto
  • 2.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Sisältö • Sovellukset ovat tietoturvan heikoin lenkki • Tietoturvatehtävät on integroitava sovelluskehitysmalliin • Sovelluskehittäjät ja tietoturvallinen koodi avainasemassa • Vaadi tietoturvallisia sovelluksia 2 “This regulator is code--the software and hardware that make cyberspace as it is. This code, or architecture, sets the terms on which life in cyberspace is experienced. It determines how easy it is to protect privacy, or how easy it is to censor speech. It determines whether access to information is general or whether information is zoned. It affects who sees what, or what is monitored. In a host of ways that one cannot begin to see unless one begins to understand the nature of this code, the code of cyberspace regulates.” -- Lawrence Lessig, http://harvardmagazine.com/2000/01/code-is-law-html
  • 3.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Sovellukset ovat tietoturvan heikoin lenkki Lähde: https://informationisbeautiful.net/visualizations/worlds-biggest-data-breaches-hacks/ 3 2019 2018 2016 2019 2018 2016 2014 2012 2010 2008
  • 4.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Laadukas palvelu • Sisäänrakennettu tietoturva • Sisäänrakennettu tietosuoja • Oletusarvoinen tietoturva ja –suoja • Tietoturvallinen palvelu <> tietoturvapalvelu Tietoturva on liian tärkeää jätettäväksi tietoturva-asiantuntijoiden vastuulle! 4
  • 5.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Turvallinen verkkopalvelu Asiakas Verkkopalvelu Kumppanit → Käyttäjätunnistus → Helppokäyttöisyys → Opastus / koulutus → Laadukas toteutus → Turvallinen arkkitehtuuri → Tietosuojan huomiointi → Huolellinen ylläpito → Häiriöihin varautuminen → Tietoturvavaatimukset → Tietosuojavaatimukset → Salassapitovaatimus → SLA / sanktiot 5
  • 6.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Koodi on laki • Raha → bittejä • Lompakko → koodia • Maksaminen → protokolla • Kaupankäyntitapahtuma → transaktio • Pankkiholvi / kassa → tietokanta • Pankki / kauppa → sovellus • Pankkitoimihenkilö → algoritmi • Asiakaspalvelu → robotti 6
  • 7.
    © Tieto Corporation Public Lähde:ISF Threat Horizon 2018 IoT-laitteiden myötä koodi tunkeutuu kaikkialle
  • 8.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Koodin määrä on valtava Lähde: ISF Threat Horizon 2018 8
  • 9.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Algoritmeilla nopeat voitot – ja tappiot 9 Source: Motherboard
  • 10.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Source: The Verge Tekoäly-yllätyksiä
  • 11.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Kaikkea ei kannata toteuttaa 11
  • 12.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Vastuut digimaailman palveluiden aiheuttamista vahingoista eivät ole selkeät 12
  • 13.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Sovelluskehitys ja sovellusympäristö ovat jatkuvassa muutoksessa Lähde: http://www.netevents.org/wp-content/uploads/2017/09/NetFoundry-September-2017.pdf 13
  • 14.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Perinteiset lähestymistavat sovellusten turvaamiseen • Yritetään kovemmin • Luottamus sovelluskehittäjien henkilökohtaiseen osaamiseen • ”Älkää tehkö virheitä” • Kaikista ei saa tietoturva-asiantuntijaa • Korjataan myöhemmin • Tietoturvasta ei huolehdita sovelluskehityksen aikana • Rakennetaan parempi ”palomuuri” ja laitetaan salaus päälle • Tarkastetaan lopputulos • Palkataan asiantuntija etsimään valmiin sovelluksen tietoturvavirheet • Laatua ei saa pelkästään testaamalla/tarkastamalla 14 Nämä tavat eivät toimi!
  • 15.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Ensimmäiset askeleet sovellusten turvaamiseen • Teetä tietoturvatarkastus • Jos et osaa, hanki apua pahimpien virheiden löytämiseksi • Käytä tarkastuksen tuloksia oman toiminnan parantamiseen • Kouluta sovellustietoturvaa • Siis tekemään hyviä sovelluksia, ei ”hakkerointia” • Toteutusvirheet vs. suunnittelu- ja arkkitehtuurivirheet • Selvitä tietoturvavaatimukset • Hyvin suunniteltu on puoliksi tehty • Uhka- ja riskianalyysit avuksi • Tietoturvakatselmoinnit • Parantaa tekijöiden asennetta, osaamista ja lopputuloksen laatua • Sovellustietoturvaryhmän perustaminen • Yhteinen kieli ja sovelluskehityksen ymmärtäminen 15
  • 16.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Tietoturva on integroitava sovelluskehitysmalliin • Standardit ja toimialavaatimukset edellyttävät tietoturvan huomioimista sovelluskehityksen kaikissa vaiheissa • Yleensä keskitytään toiminnallisuuteen ja kustannustehokkuuteen – tietoturva heikosti huomioitu • Apua ja ohjeita löytyy jo: BSIMM, SAMM, MS SDL, OWASP,… • Vältä tietoturvan ”perisynti” – tuotelähtöinen suojausajattelu • Luo fiksut toimintamallit sen sijaan, että syydät rahaa sovelluksen ”turvakuorrutukseen” • ”Hakkerointi” on helppoa, kovat tyypit koodaavat laadukasta softaa • Tietoturvahaasteet lisääntyvät entisestään • Monimutkaisuus, verkottuminen, ketteryys, uudet ohjelmointikielet ja –tekniikat,… • Tasalaatua keskivertokoodareilla • Sovitut toiminta- ja toteutusmallit, koodikäsikirja • Sovelluksen turvallisuus on osoitettava • Hyvä menetelmä ja jäljet sen jalkautumisesta • Riskiarviot, dokumentit, raportit/mittarit 16 Photo by Ryoji Iwata on Unsplash
  • 17.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Sovelluskehityksen tietoturvatehtäviä Vaatimukset ja käyttö- tapaukset Arkkitehtuuri ja suunnitelma Ohjelmointi Testaus Tuotantoon vienti, integrointi Tietoturva- ja tietosuojavaatimukset, riskiarvio, väärinkäyttötapaukset Uhkamallinnus, tietoturva- katselmointi, tietoturvan testaussuunnitelma Turvallinen koodi, OWASP Top 10, koodikatselmoinnit Automatisoitu tietoturvatestaus, riskiarvioon perustuva tietoturvatestaus Tuotanto ja ylläpito Ympäristön kovennus ulkoinen auditointi, murtotestaus, HackDay Tietoturvakorjausten asennus, varmistukset, monitorointi säännöllinen tietoturvaskannaus, murtotestaukset, poikkeamien hallinta, BugBounty-ohjelma 17
  • 18.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Yritysten yleisimmät sovellusturva-aktiviteetit • Tunnista tietoturvan tarkistuspisteet ja vaatimukset • Tunnista tietosuojavaatimukset • Tarjoa sovellusturvakoulutusta • Määrittele tietojen luokittelukriteerit ja käsittelyvaatimukset • Tee ja julkaise yleiset tietoturvaratkaisut (tunnistus, valtuutus, lokitus, salaus,…) • Luo tietoturvaportaali tiedon jakamiseen • Katselmoi tietoturvapiirteet • Automatisoi tietoturvatestausta ja -katselmointia • Varmista, että “normitestauksessa” testataan virhetapaukset • Käytä ulkopuolisia tunkeutumistestaajia ja tietoturva-auditoijia • Varmista, että tietoverkkojen ja palvelinten suojaamisesta on huolehdittu • Tunnista sovellusvirheet tuotannossa ja tuo ne sovelluskehittäjille opiksi ja korjattavaksi 18 Lähde www.bsimm.com
  • 19.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Sovelluksessa voi olla tuntematonta, tietoturvan vaarantavaa toiminnallisuutta Haluttu toiminnallisuus Ylimääräinen, tuntematon ja dokumentoimaton toiminnallisuus Perinteiset virheet Todellinen toiminnallisuus Sovellus voi toimia oikein ja luotettavasti ja silti turvattomasti! Tietoturvallinen sovellus = tietoturvalliset (halutut) toiminnot + (halutut) tietoturvatoiminnot 19
  • 20.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 OWASP Top 10 – nolot virheet Yleinen (2017) Mobiili (2016) IoT (2018) Injektio Alustan turvaton tai virheellinen käyttö Heikot tai kiinteät salasanat Puutteellinen käyttäjän tunnistaminen ja istunnonhallinta Turvaton tiedon säilytys Turvattomat verkkopalvelut Verkkosivun rakenne ei säily (XSS) Turvaton kommunikointi Ekosysteemin turvattomat rajapinnat Turvaton suora objektiviittaus Puutteellinen käyttäjän tunnistaminen ja istunnonhallinta Turvallisen päivitysmekanismin puute Tietoturvan virheellinen konfigurointi Riittämätön salaus Turvattomien tai vanhentuneiden komponenttien käyttö Arkaluontoisen tiedon julkistaminen Turvaton pääsynhallinta Riittämätön tietosuoja Puuttuva funktiotason pääsynvalvonta Huonolaatuinen sovelluskoodi Turvaton tietojen siirto tai säilytys Puutteellinen pyynnön alkuperän tarkistus Sovelluskoodin luvaton muuttaminen Laitehallinnan puute Tunnettuja virheitä sisältävien komponenttien käyttö Sovelluskoodin takaisin mallintaminen Turvattomat oletusasetukset Varmistamattomat uudelleenohjaukset Ylimääräinen, turvaton toiminnallisuus Fyysisesti suojaamattomat laitteet 20
  • 21.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Tietoturvasuunnittelun periaatteita 21 • KISS • Tarkista syöte - aina • Turvallinen, nopea, halpa – valitse kaksi • Kerroksellinen suojaus (sipulimalli) • Turvaa virhetilanteet • Oikeuksien lokerointi • Neljän silmän periaate kriittisille tehtäville • Älä luota sokeasti • Hyvää tietoturvamallia ei tarvitse piilotella • Käyttäjäystävällinen, intuitiivinen, luottamusta herättävä Photo by rawpixel on Unsplash
  • 22.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Sovelluksista löytyy paljon haavoittuvuuksia ja niiden korjaaminen kestää liian kauan Lähde: Veracode State of The Software Security 2018 22
  • 23.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Vaadi sopimuksissa turvallisia sovelluksia 1/2 • Toimittaja vastaa siitä, että toimitetussa palvelussa käytettävät sovellukset ja toimitettavat sovellukset ovat tietoturvallisia siten, että: • Sovelluksiin kohdistuvat tietoturvariskit on arvioitu ja niihin on valittu hallintamenettelyt. • Tietoturvakriittinen sovelluskoodi (esim. käyttäjätunnistus, käyttövaltuuksien käsittely, salaus ja salausavainten käsittely) on katselmoitu. • Sovelluksen ja sen käyttämien komponenttien tietoturvakorjaukset ovat käytössä. • Sovelluksille on suoritettu tietoturvatestaus ja varmistettu, että OWASP Top 10 haavoittuvuuksia ja ohjelmointivirheistä aiheutuvia vakavia tietoturvavirheitä ei sovelluksissa ole. • Sovelluksille on suoritettu 3. osapuolen tekemä tietoturva-auditointi. • Sovelluksissa havaitut tietoturvaongelmat on viipymättä ilmoitettava ja korjattava. 23
  • 24.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Vaadi sopimuksissa turvallisia sovelluksia 2/2 • Sovelluskehitykseen osallistuvilla asiantuntijoilla on oltava kyky tuottaa tietoturvallisia sovelluksia: • Projekti- ja systeemityömenetelmissä huomioidaan tietoturvavaatimukset ja – toimenpiteet. • Sovelluskehitykseen osallistuvilla on tietämys sovellusten tietoturvasuunnittelun periaatteista ja osaaminen tietoturvallisten sovellusten toteuttamiseksi. • Sovelluskehittäjillä on tietämys käyttämiensä työvälineiden tietoturvapiirteistä ja heikkouksista. • Sovelluskehittäjät ovat saaneet tietoturvallisten sovellusten tekemiseen ohjaavaa koulutusta ja he tuntevat yleisimmät sovellusten tietoturvaongelmat (OWASP Top 10) ja niiden välttämistavat. • Toimittajan on pystyttävä jälkikäteen osoittamaan tietoturva- toimenpiteiden toteutuminen esim. dokumentaation ja raporttien avulla. • Sovelluskehitys- ja testausympäristöt on suojattava koodin luvattomalta paljastumiselta ja muokkaamiselta. 24
  • 25.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Käytännössä havaittuja haasteita • Osaamisen ja asenteiden kehittäminen kaikilla tasoilla • Tietoturvavastuu, riskiajattelu, omien ratkaisujen objektiivinen arviointi • Sovelluskehitysmallin käyttökuri • Tietoturva täytyy sisällyttää toimintamalleihin ja mallia on noudatettava • Tietoturva-asiantuntija syndrooma • Tietoturva ”ulkoistetaan” tiimin ulkopuoliselle ”viisastelijalle” • Harva sovellus aloitetaan tyhjältä pöydältä • Tukeudutaan olemassa oleviin ratkaisuihin liian helposti • Tarkistuslistafetissi • Halutaan tarkistuslistoja - jääkö tilaa omalle ajattelulle? • Tietoturvan ja ketterän kehityksen integrointi • Tietoturva ei ole turhaa ja toimiva sovellus on turvallinen • Digitaalisen maailman huima kehitysvauhti • Uudet teknologiat, rajapinnat, kehitysvälineet 25
  • 26.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 MVP? Lähde: Henrik Kniberg, http://blog.crisp.se/2016/01/25/henrikkniberg/making-sense-of-mvp 26 Most Vulnerable Product? Minimum Viable Product
  • 27.
    © Tieto Corporation Public Diplomain Digital Security / JaPi 2019 Yhteenveto • Sovellukset ovat tietoturvan heikoin lenkki • Tietoturvaa ei voi tehokkaasti lisätä jälkikäteen • Tietoturvatuotteet tyypillisesti suojaavat infrastruktuuria, eivät sovelluksia • Tietoturvatehtävät on integroitava sovelluskehitysmalliin • Tietoturva on huomioitava jo sovelluksen/palvelun ideointivaiheessa – mitä käyttäjät eivät halua tapahtuvan • Sovelluskehittäjät ja tietoturvallinen koodi avainasemassa • Automatisoinnilla ja työkaluilla saadaan kiinni turvaton koodi ja koodausvirheet, mutta ei hyvin koodattua virheellistä toimintaa • Vaadi tietoturvallisia sovelluksia • Tietoturvatestattuja ja auditoituja sovelluksia What used to fit in a building, now fits in your pocket, and what fits in your pocket now, will fit inside a blood cell in 25 years. -- Ray Kurzweil 27