Post on 23-Jan-2018
Public
Sovellusten turvallisuusDiploma in Digital Security, AaltoPRO
Modernit palvelumallit16.10.2017
Jari PirhonenCSO
Tieto
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Sisältö
• Sovellukset ovat tietoturvan heikoin lenkki
• Tietoturvatehtävät on integroitava sovelluskehitysmalliin
• Sovelluskehittäjät ja tietoturvallinen koodi avainasemassa
• Vaadi tietoturvallisia sovelluksia
2
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Sovellukset ovat tietoturvan heikoin lenkki
3
Lähde: ISF, Application Security – Bringing Order to Chaos, 2015
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Turvallinen verkkopalvelu vaatii
turvallisen arkkitehtuurin ja toteutuksen
4
Asiakas Verkkopalvelu Kumppanit Käyttäjätunnistus
Helppokäyttöisyys
Opastus / koulutus
Laadukas toteutus
Turvallinen arkkitehtuuri
Huolellinen ylläpito
Häiriöihin varautuminen
Tietoturvavaatimukset
Salassapitovaatimus
SLA / sanktiot
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Laadukas sovellus
• Sisäänrakennettu tietoturva
• Sisäänrakennettu tietosuoja
• Oletusarvoinen tietoturva ja –suoja
• Tietoturvallinen palvelu <> tietoturvapalvelu
5
Tietoturva on liian tärkeää jätettäväksi
tietoturva-asiantuntijoiden vastuulle!
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Sovelluskehitys ja sovellusympäristö ovat
jatkuvassa muutoksessa
6
Lähde: http://devopsmetrics.com/software-development-the-pass-and-future-in-one-slide/
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Digitaalisessa maailmassa kaikki on
koodia: ”koodi on laki”
• Raha bittejä
• Lompakko koodia
• Maksaminen protokolla
• Kaupankäyntitapahtuma transaktio
• Pankkiholvi / kassa tietokanta
• Pankki / kauppa sovellus
• Pankkitoimihenkilö algoritmi
• Asiakaspalvelu robotti
7
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Koodin määrä on valtava
8
Source: ISF Threat Horizon 2018
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Algoritmeilla nopeat voitot – ja tappiot
9
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Vastuut digimaailman palveluiden
aiheuttamista vahingoista eivät ole selkeät
10
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
• 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
Perinteiset lähestymistavat
sovellusten turvaamiseen eivät toimi
11
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Ensimmäiset askeleet tiellä kohti
turvallisempia sovelluksia• 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
12
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Tietoturva on integroitava
sovelluskehitysmalliin• Standardit ja toimialavaatimukset edellyttävät tietoturvan huomioimista
sovelluskehityksen kaikissa vaiheissa• Valmiit mallit/metodologiat keskittyvät 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
13
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Sovelluskehityksen tietoturvatehtäviä
14
Vaatimukset
ja käyttö-
tapaukset
Arkkitehtuuri
ja
suunnitelmaOhjelmointi 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
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
BSIMM: Yritysten yleisimmät
sovellusturva-aktiviteetit
1. Tunnista tietoturvan tarkistuspisteet ja vaatimukset
2. Tunnista tietosuojavaatimukset
3. Tarjoa sovellusturvakoulutusta
4. Määrittele tietojen luokittelukriteerit ja käsittelyvaatimukset
5. Tee ja julkaise yleiset tietoturvaratkaisut (tunnistus, valtuutus, lokitus, salaus, avainten hallinta,…)
6. Luo tietoturvaportaali tiedon jakamiseen
7. Katselmoi tietoturvapiirteet
8. Automatisoi tietoturvatestausta ja -katselmointia
9. Varmista, että “normitestauksessa” testataan virhetapaukset
10. Käytä ulkopuolisia tunkeutumistestaajia ja tietoturva-auditoijia
11. Varmista, että tietoverkkojen ja palvelinten suojaamisesta on huolehdittu
12. Tunnista sovellusvirheet tuotannossa ja tuo ne sovelluskehittäjille opiksi ja korjattavaksi
15
Lähde www.bsimm.com
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Uhka-analyysiharjoitus:Kuinka syöt pannukakkuja ravintolassa maksamatta?
16
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Sovelluksessa voi olla tuntematonta,
tietoturvan vaarantavaa toiminnallisuutta
17
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
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
OWASP Top 10 – nolot virheet
Injektio Arkaluontoisen tiedon
julkistaminen
Puutteellinen käyttäjän
tunnistaminen ja istunnonhallinta
Puuttuva funktiotason
pääsyvalvonta
Verkkosivun rakenne ei säily
(XSS)
Puutteellinen pyynnön alkuperän
tarkistus (CSRF)
Turvaton suora objektiviittaus Tunnettuja virheitä sisältävien
komponenttien käyttö
Tietoturvan virheellinen
konfigurointi
Varmistamattomat
uudelleenohjaukset
18
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
OWASP Top 10 – nolot virheet
19
Lähde https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
OWASP Top 10 – nolot virheet
20
Lähde https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Kaksi kolmesta sovelluksesta sisältää
jotain OWASP Top 10 haavoittuvuuksia
21
Lähde: Veracode State of The Software Security 2016
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Vaadi turvallisia sovelluksia (sopimusmalli)
• 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.
22
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Vaadi turvallisia sovelluksia (sopimusmalli)
• Toimittaja varmistaa, että sovelluskehitykseen osallistuvilla asiantuntijoilla on kyky tuottaa tietoturvallisia sovelluksia:
• Toimittajan projekti- ja systeemityömenetelmissä huomioidaan tietoturvavaatimukset ja –toimenpiteet. Toimittaja toimittaa omaa sovelluskehitystään koskevat tietoturvavaatimukset ja -toimenpiteet tiedoksi.
• Sovellussuunnittelijoilla, -arkkitehdeillä ja -kehittäjillä on tietämys sovellusten tietoturvasuunnitteluperiaatteista ja osaaminen tietoturvakriittisten 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 tietoturvatoimen-piteiden toteutuminen esim. dokumentaation ja raporttien avulla.
• Sovelluskehitys- ja testausympäristöt on suojattava koodin luvattomalta paljastumiselta ja muokkaamiselta.
23
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Käytännössä havaittuja haasteita• Osaamisen ja asenteiden kehittäminen kaikilla tasoilla
• Johto, tuotepäälliköt, projektipäälliköt, palvelumuotoilijat, arkkitehdit, sovelluskehittäjät, testaajat, tietoturva-asiantuntijat,…
• 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
24
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
Minimum Viable Product or
Most Vulnerable Product?
25
Lähde: Henrik Kniberg, http://blog.crisp.se/2016/01/25/henrikkniberg/making-sense-of-mvp
© Tieto Corporation
Public
Diploma in Digital Security / © JaPi 2017
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
26
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
Public
Jari Pirhonen
CSO
Tieto
jari.pirhonen@tieto.com