- COMP.SEC.100
- 13. Hajautettujen järjestelmien tietoturva
- 13.1 Hajautettujen järjestelmien turvallisuus
Hajautettujen järjestelmien turvallisuus¶
Hajautettu järjestelmä (distributed system) on kokoelma eri paikoissa sijaitsevia laskennan, tallennuksen ja tietoliikenteen resursseja (eli laitteistoja), jotka yhdessä
- tuottavat palveluita, jotka yhdistävät hajallaan olevat datan tuottajat ja kuluttajat,
- tarjoavat luotettavan, saatavilla olevan ja konsistentin pääsyn resursseihin, usein käyttäen replikointiskeemoja resurssihäiriöiden käsittelemiseen
- mahdollistavat vaikutelman, että tarjolla olevat data, laskenta ja palvelut ovat peräisin keskitetyistä ja koordinoiduista resursseista.
Esimerkkejä ovat pilvipalvelut, vertaisverkot ja lohkoketjut.
Mahdollisia ominaisuuksia resurssien käyttäjän kannalta voivat olla
- pieni fyysinen etäisyys resurssiin;
- matala viive;
- suuri kaistanleveys;
- korkea suorituskyky;
- keskeytymättömyys;
- tahattomien ja tahallisten häiriöiden sieto;
- hyödyntäminen ei edellytä teknisten mekanismien tuntemista.
Tärkeitä termejä:
- Ristiriidattomuus eli johdonmukaisuus eli konsistenssi: samaksi tarkoitettu tieto on samanlaista eri paikoissa.
- Yksimielisyys eli yhteisymmärrys eli konsensus: järjestelmän osilla on sama käsitys järjestelmän tilasta.
- Topologia, “paikkaoppi”, verkon muotorakenne eli solmujen (laitteiden) sijainti toisiinsa nähden siinä mielessä, joka ei riipu fyysisistä etäisyyksistä.
- Päällysverkko, overlay network, on pohjaverkon (underlay), kuten internetin päälle muodostettu verkko, jolla on siitä poikkeava topologia.
Hajautettujen järjestelmien yleisiä ominaisuuksia¶
Hajautettujen järjestelmien luokittelu¶
Hajautettujen järjestelmien luonnehtimiseen on erilaisia näkökulmia. Näitä ovat määrittely
- resurssien yhdistämisen tasolla, esimerkkeinä P2P- ja pilvijärjestelmät (peer-to-peer eli vertaisverkot ja cloud)
- väliohjelmistotasolla (middleware), esimerkkeinä julkaisu-tilaus -arkkitehtuuri, hajautetut objektialustat ja verkkopalvelut (publish-subscribe, distributed object platforms ja web services)
- järjestelmän tarjoamien palvelujen osalta, esimerkkeinä tietokannat ja tilikirjat. Jälkimmäinen, ledgers, viittaa lohkoketjujen soveltamiseen.
Hajautetut järjestelmät voidaan jakaa kahteen luokkaan sen mukaan, toimivatko niiden resurssit keskenään vai jonkin koordinoivan tahon ohjaamina:
Vertaisverkot eli P2P-järjestelmät (peer-to-peer) toimivat ilman keskitettyä koordinointia verkon solmujen välisten vuorovaikutusten ohjaamana. Vuorovaikutuksen sääntöjä kutsutaan protokollaksi. Esimerkiksi järjestelmät, kuten Kademlia, Napster, Gnutella, BitTorrent ja monet muut hajautetut tiedostojen ja musiikin jakamis- ja tallennusjärjestelmät, langattomat sensoriverkot sekä online-pelijärjestelmät kuuluvat tähän luokkaan.
Koordinointi hajautettujen resurssien ja palvelujen kesken: Tämä on laaja luokka, jonka kirjo sisältää
- asiakas-palvelin -mallit
- monitasoiset palvelumallit (eli asiakas-palvelin1-palvelin2-…; multitier multitenancy -mallit)
- joustavat on-demand-tyyppiset eri paikoissa hajallaan sijaitsevien resurssien koosteet (erityyppiset pilvet, Big Data -palvelut, suurteholaskenta)
- tapahtumapalvelut, kuten tietokannat, tilikirjat, tallennusjärjestelmät tai KVS-säilö (Key-Value Store).
Vaikka koordinaation tyyppi, eli
- resurssien vai
- palvelujen
koordinointi jakaa järjestelmät kahteen alaluokkaan, kummassakin koordinointi tapahtuu kommunikaation ja palveluiden kautta. Tavoitteena on keskitetyltä vaikuttava järjestelmä, jossa varmistuvat sellaiset ominaisuudet kuin syy-yhteys, tehtävien järjestys, toisteisuuden hallinta ja ristiriidattomuus. Kirjallisuudessa on erillisiä määritelmiä asiakas-palvelin -järjestelmille, pilvipalveluille, mobiililaskennalle, hajautetuille tietokannoille jne., mutta virtuaalisen keskitetyn ja koordinoidun käyttäytymisen tarjoaminen on niille yhteinen piirre.
Sekä vertaisverkkojen että koordinoitujen järjestelmien arkkitehtuuri on yleensä useiden kerrosten yhdistelmä. Alimmalla tasolla tietyn laitteen resursseja (muisti, laskenta, tallennus, viestintä) käytetään kyseisen laitteen käyttöjärjestelmän primitiivien kautta. Hajautetut palvelut, kuten nimeäminen, aikasynkronointi, tiedostojärjestelmät kootaan erilaisten komponenttien ja yksittäisissä laitteissa toimivien palvelujen vuorovaikutuksen kautta. Ylemmät kerrokset perustuvat alemmille kerroksille ja palveluille tarjoten lisätoimintoja ja -sovelluksia. Vuorovaikutuksia hajautetun järjestelmän kullakin kerroksella tarjoavat väliohjelmistot. Käytössä on erilaisia viestintätyylejä: viestien välitys, etäproseduurikutsut (RPC), hajautetut objektialustat, julkaisu-tilaus -arkkitehtuurit ja ESB-väylä (enterprise service bus). Hajauttaminen ja koordinointi kussakin kerroksessa voivat vaihdella, mikä johtaa hybridikoostumuksiin.
Myöhemmät luvut tässä pääluvussa esittelevät
- P2P-järjestelmiä ja niiden turvallisuutta.
- koordinoidusti hajautettuja järjestelmiä ja niiden turvallisuutta.
Tämä pääluku keskittyy turvallisuuden tuottamiseen hajautetussa järjestelmässä. Toinen näkökulma on hajautuksen käyttö turvallisuuden tuottamiseen. Siitä ovat esimerkkejä avainten hajautettu tallennus keskitetyn avainsäilön sijasta tai virtuaalikoneiden käyttö resurssien ja sovellusten osiointiin ja eristämiseen. Tämäkin näkökulma tulee esille, koska hajautettujen järjestelmien turvamekanismit toimivat luontevasti nimenomaan, kun resurssit on hajautettu, ja tämä johtaa mahdollisuuteen hyödyntää hajautusta turvamekanismina (lohkoketjut päällimmäisenä esimerkkinä). Asiaan liittyy myös tämän luvun opiskelua motivoiva seikka: hajautettujen järjestelmien turvamekanismit ovat jossain määrin erilaisia kuin perinteisissä tietojärjestelmissä.
Hyökkäyspinnan jäsentely¶
Abstraktilla tasolla hajautettu järjestelmä sisältää yleensä neljä perusmekanismia. Hyökkäyspinta voidaan jäsentää näiden mukaan.
pääsynvalvonnan sallima tiedon virtaus järjestelmään syötettyjen tietoalkioiden välillä. Tämä koskee tietojen sisältöä ja sitä miten yhdet tiedot muuttavat toisia — esim. lohkoketjuissa tai striimattavan sisällön palojen ketjussa — kun taas seuraava mekanismi ei katso tietojen “sisälle”.
Pääsynvalvonta voi hajautetussa järjestelmässä olla tarpeen jaotella kahteen osaan termeillä access control ja admission control. Edellinen vastaa sitä mitä muussakin kyberturvallisuudessa. Jälkimmäinen on sille etenkin P2P-tapauksessa mahdollinen esivaihe, joka sisältää käyttäjän tai resurssin hyväksymisen jäseneksi, sisäänpääsyn. Tämä vastaa jossain määrin sitä valtuutusta, jolla tietojärjestelmään hyväksytään käyttäjiä, mutta voi sisältää ansaittuun tai menetettyyn maineeseen perustuvaa säätöä, mikä puolestaan vastaisi sitä, että RBAC-järjestelmä säätäisi roolia. Kukin hajautetun järjestelmän olio, siis resurssi, palvelu, käyttäjä tai tietoalkio, tunnistetaan fyysisellä tai loogisella identiteetillä, joka on asetettu staattisesti tai asettuu dynaamisesti. Tunnisteiden hallinnointi on tärkeää peukaloinnin ja monen muun ongelman varalta. Pääsynvalvontaa käsitellään tarkemmin eri pääluvussa.
tiedonsiirto hajautetuille resursseille ja niiden välillä;
Tähän kuuluu reititystä, viestien välittämistä, resurssien vuorovaikutusta julkaisu-tilaus -käytännöissä, vastauksen liipaisua tapahtumapohjaisesti, sekä uhkia väliohjelmistopinossa (middleware). Tyypillinen esimerkki on välimieshyökkäys (man-in-the-middle). Yleisiä tiedonsiirron uhkia käsittelee eri pääluku.
resurssien koordinointiskeema, joka päättää mm. minne tiedonsiirtoa pitää tehdä, jotta hajautus olisi tarkoituksenmukaista;
Tähän kuuluu mm. synkronointi, replikointi, näkymämuutokset, aika/tapahtumajärjestys, linearisoitavuus, konsensus ja transaktioihin sitoutuminen.
tiedonhallinta, joka tukee haluttuja sovelluksia, kuten verkkopalveluja, tapahtumakokonaisuuksia (eli transaktioita), tietokantoja, tallennusta, tilikirjoja, ohjausta ja laskentaa.
Normaalit “C, I ja A” soveltuvat suoraan hallinnoitavan datan elinkaaren jokaiseen vaiheeseen ja liityntään. Luottamuksellisuudesta kannattaa muistuttaa sivukanavien tai piilokanavien mahdollisuus (jälkimmäinen on kahdenvälinen kanava, edellinen on vuotoa). Saatavuudessa erityisongelmia voivat olla viivästyminen ja tiedon saannin epääminen. Erityinen eheysnäkökohta on osallistujien havaitsema tietojen ristiriidattomuus, jota on usean tasoista.
Luettelosta huomataan, että hajautettujen järjestelmien erityiset uhat liittyvät eniten kohtaan 3 ja jonkin verran kohtaan 4. Koordinointia käsitellään syventävästi tuonnempana.