27
Public Sovellusten turvallisuus Diploma in Digital Security, AaltoPRO Modernit palvelumallit 16.10.2017 Jari Pirhonen CSO Tieto

Digiturva17 sovellusturva-16.10.17

Embed Size (px)

Citation preview

Page 1: Digiturva17 sovellusturva-16.10.17

Public

Sovellusten turvallisuusDiploma in Digital Security, AaltoPRO

Modernit palvelumallit16.10.2017

Jari PirhonenCSO

Tieto

Page 2: Digiturva17 sovellusturva-16.10.17

© 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

Page 3: Digiturva17 sovellusturva-16.10.17

© 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

Page 4: Digiturva17 sovellusturva-16.10.17

© 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

Page 5: Digiturva17 sovellusturva-16.10.17

© 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!

Page 6: Digiturva17 sovellusturva-16.10.17

© 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/

Page 7: Digiturva17 sovellusturva-16.10.17

© 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

Page 8: Digiturva17 sovellusturva-16.10.17

© Tieto Corporation

Public

Diploma in Digital Security / © JaPi 2017

Koodin määrä on valtava

8

Source: ISF Threat Horizon 2018

Page 9: Digiturva17 sovellusturva-16.10.17

© Tieto Corporation

Public

Diploma in Digital Security / © JaPi 2017

Algoritmeilla nopeat voitot – ja tappiot

9

Page 10: Digiturva17 sovellusturva-16.10.17

© Tieto Corporation

Public

Diploma in Digital Security / © JaPi 2017

Vastuut digimaailman palveluiden

aiheuttamista vahingoista eivät ole selkeät

10

Page 11: Digiturva17 sovellusturva-16.10.17

© 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

Page 12: Digiturva17 sovellusturva-16.10.17

© 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

Page 13: Digiturva17 sovellusturva-16.10.17

© 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

Page 14: Digiturva17 sovellusturva-16.10.17

© 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

Page 15: Digiturva17 sovellusturva-16.10.17

© 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

Page 16: Digiturva17 sovellusturva-16.10.17

© Tieto Corporation

Public

Diploma in Digital Security / © JaPi 2017

Uhka-analyysiharjoitus:Kuinka syöt pannukakkuja ravintolassa maksamatta?

16

Page 17: Digiturva17 sovellusturva-16.10.17

© 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

Page 18: Digiturva17 sovellusturva-16.10.17

© 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

Page 19: Digiturva17 sovellusturva-16.10.17

© 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

Page 20: Digiturva17 sovellusturva-16.10.17

© 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

Page 21: Digiturva17 sovellusturva-16.10.17

© 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

Page 22: Digiturva17 sovellusturva-16.10.17

© 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

Page 23: Digiturva17 sovellusturva-16.10.17

© 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

Page 24: Digiturva17 sovellusturva-16.10.17

© 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

Page 25: Digiturva17 sovellusturva-16.10.17

© 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

Page 26: Digiturva17 sovellusturva-16.10.17

© 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

Page 27: Digiturva17 sovellusturva-16.10.17

Public

Jari Pirhonen

CSO

Tieto

[email protected]