- COMP.SEC.100
- 13. Hajautettujen järjestelmien tietoturva
- 13.3 Hyökkäykset P2P-järjestelmiin
Hyökkäykset P2P-järjestelmiin¶
Hyökkäysten esittelyssä käytetään karkeaa jakoa kahteen vertaisverkon perustoiminnallisuuteen:
- Opr: Verkkotason toiminnot, kuten etsintä, kysely, reititys, lataus jne., jotka ovat käytettävissä P2P-protokollan palvelurajapinnan kautta.
- Tir: Tietorakenteet, esim. solmujen reititystauluun tallennetut tiedot tai resurssit, jotka jaetaan päällysverkon muiden jäsenten kanssa. Nämä funktiot voivat olla käytettävissä joko verkkotasolla tai paikallisesti solmun isäntäkoneella.
Käyttäjien autentikointi oletetaan jo tapahtuneeksi, kun jäsenet ovat liittyneet päällysverkkoon. P2P-protokollat voivat tosin olla avoimia kenelle vain vierailijalle. Pääsynvalvontaa heihinkin sovelletaan. Luonnollisesti tässä keskitytään hyökkäyksiin vertaisverkkoa vastaan eikä oteta huomioon hyökkäyksiä, joita vertaisverkolla valmistellaan tai toteutetaan muita järjestelmiä vastaan.
Hyökkäystyypit¶
P2P:n haavoittuvia perusominaisuuksia ovat koordinoinnin perustuminen viestien välitykseen ja se että solmuilla on aina vain osittainen näkymä koko järjestelmästä. Hyökkääjät pyrkivät huijaamaan muita tarjoamalla vääriä tietoja tai tekevät yhteistyötä pilkkoakseen verkkoa.
- Palvelunestohyökkäykset (DoS ja DDoS) aiheuttavat resurssien ehtymisen rajoittamalla pääsyä solmuun tai tietoliikennereitille. Hyökkääjä pyrkii vähentämään päällysverkon palvelun saatavuutta lähettämällä liikaa viestejä tietylle solmujoukolle. Tämä voi vaikuttaa solmujen liittymisen ja poistumisen mekanismiin ja moniin muihin P2P-palveluihin, esim. reititystietojen käsittelyyn hash-taulussa (DHT:ssä). Verkon ylläpitoproseduurit voivat heikentää muiden solmujen saamaa palvelua. Tietysti palvelunesto vaikuttaa suoraan kaistanleveyteen ja resurssien tarjontaan.
- Yhteistyöhyökkäykset (collusion attack) vaikuttavat saatavuuteen, eheyteen tai luottamuksellisuuteen. Yhteistyöllä tarkoitetaan sitä, että riittävän suuri osa solmuista toteuttaa yhteistä strategiaa, joka kohdistuu P2P-palveluihin ja vaikuttaa negatiivisesti toimivuuteen. Tyypillinen hyökkäys pyrkii ohittamaan valvontamekanismit, kuten maineen, luottamuksen tai kaistanleveyden hallinnan. Jäljempänä käsiteltävät Sybil- ja Eclipse-hyökkäykset perustuvat yhteistoimintaan, jolla luodaan verkkoon osioita ja piilotetaan tilatietoja kunnossa olevilta solmuilta.
- Saastehyökkäykset ja indeksimyrkytys vaikuttavat eheyteen ja tietorakenteiden toimivuuteen lisäämällä vääriä tietoja. Saaste, esim. osittain muutettu sisältö, voi levitä yhdestä solmusta muiden sisällöksi, mikä johtaa palvelun heikkenemiseen.
- Valkopesu tarkoittaa sitä, että huonoon maineeseen joutunut jäsen poistuu mutta pääsee myöhemmin liittymään uudelleen puhtaana. Jokin järjestelmän haavoittuvuus voi antaa mahdollisuuden maineen pesuun muutenkin. Hyökkäyksen vaikutuskohde on tietorakenteiden eheys, mutta huonon maineen aiheuttaneen toiminnan jatkuminen voi tietysti olla jotain muuta.
- Sensuurihyökkäys tarkoittaa tietojen asiatonta muuttamista, poistamista tai pääsyn epäämistä. Nimityksestä huolimatta kyse ei välttämättä ole viranomaisten toiminnasta.
- Reitityshyökkäykset vaikuttavat saatavuuteen tai eheyteen tietorakenteiden rämettämisen kautta (Tir). Paha solmu voi heikentää viestin välitysmekanismia esimerkiksi pudottamalla tai viivästyttämällä viestejä. Toinen versio on reititystaulun myrkytys (RTP, routing table poisoning), jossa hyökkääjä muokkaa omia tai muiden reititystauluja esimerkiksi palauttamalla vääriä tietoja vertaishakupyyntöihin. Veto- ja työntövoima ovat reitityshyökkäysten erityisiä muunnelmia, jotka joko lisäävät tai vähentävät vertaisten houkuttelevuutta esimerkiksi polun valinnan tai reititystaulun ylläpitotehtävien aikana. Reitityshyökkäyksellä on tärkeä osuus yhdistelmissä kuten Eclipse-hyökkäyksessä.
- Buffer map -huijaus (BM cheating, BMC) heikentää saatavuutta, erityisesti sellaisissa P2P-verkoissa, joita käytetään suoratoistosovelluksiin. Hyökkääjä valehtelee tiedossaan olevan puskurin sisällön, eli “puskurikartan”, joka kertoo vertaisille, mitä striimattavan sisällön palasia sillä on välimuistissaan eli puskurissa. Tämä on myös eheyden loukkaus ja vaikuttaa verkkotasoon (Opr). Seurauksia ovat vertaistoiminnan laiminlyönti, virheelliset raportit ja datalohkot sekä väärä naapurin valinta.
- Sybil-hyökkäykset heikentävät saatavuutta tai luottamuksellisuutta, ja vaikuttavat verkkotason toimintoihin (Opr). Hyökkääjä lisää päällysverkkoon yhden tai useamman hallinnassaan olevan solmun. Tämä voi tapahtua hyökkääjän tavoitteesta riippuen mielivaltaisessa kohdassa päällysverkon topologiaa. Koska P2P-sovellukset voivat rajoittaa käyttäjää kohti sallittujen solmujen määrää, esim. äänestysominaisuuden vuoksi, hyökkääjän tavoitteena voi olla epätasapaino tässä suhteessa (ilmiö ei ole aivan erilainen kuin internet-trollaus). Sybil-hyökkäykset voivat myös olla monien edellä kuvattujen hyökkäysten edeltäjiä.
- Eclipse-hyökkäykset heikentävät saatavuutta, eheyttä ja luottamuksellisuutta. Ryhmä haitallisia solmuja ympäröi uhrin ja peittää siltä näkymän muuhun järjestelmään osittain tai kokonaan. Seurauksena on myös, että uhrin vaikutus ulospäin muuttuu. Tämä on yhdistelmähyökkäys, joka voi sisältää reititystaulun myrkytyksen, DoS/DDoS:n, Sybil-hyökkäykset, yhteistyöhyökkäyksen, valkopesun tai sensuurin. Näin ollen nämä hyökkäykset vaikuttavat sekä verkko- että tietorakennetason toimintoihin (Opr ja Tir). Eclipse-hyökkäys on mahdollinen myös lohkoketjuja vastaan.
Hyökkäys | Saatavuus | Eheys | Luottamuks. | Toiminnallisuus |
---|---|---|---|---|
DoS/DDoS | ✓ | Opr | ||
Yhteistyö | ✓ | ✓ | ✓ | Opr |
Saaste | ✓ | Tir | ||
Valkopesu | ✓ | Tir | ||
Sensuuri | ✓ | ✓ | Tir | |
Reititys | ✓ | ✓ | Tir | |
Puskuri | ✓ | ✓ | Opr | |
Sybil | ✓ | ✓ | Opr | |
Eclipse | ✓ | ✓ | ✓ | Tir & Opr |
Jotkin hyökkäyksistä ovat ominaisia vain P2P:lle. Jotkin sellaiset, joita voi esiintyä muissakin järjestelmissä, vaativat laajoissa P2P-verkoissa hyökkääjältä enemmän voimaa kuin esim. asiakas-palvelin -järjestelmissä. Jäsenten vaihtuvuus on yksi vertaisverkkoja muista järjestelmistä erottava ominaisuus, ja sitä voi käyttää DoS-vaikutuksen aikaansaamiseen. Keinotekoisesti aiheutettu vaihtuvuus kuluttaa kaistanleveyttä, koska päällysrakenteen ylläpitäminen vaatii vaivaa.
Hyökkäysten lieventäminen¶
Perusmekanismit P2P-protokolla turvaamiseen koskevat autentikointia, tallennusta ja reititystä, sillä muu turvallisuus voidaan rakentaa vasta näiden päälle. Autentikoinnin keskeinen asema on jo todettu (ja viitattu toiseen moduuliin). Suojattu tallennus on oleellista tietokeskeisille sovelluksille, ja pitää huomata, että suoja tarvitaan myös solmun omistajaa vastaan. Tämä on helppo ymmärtää esim. verkkopelien kontekstissa, jossa tietojen muokkaamista pidetään huijaamisena.
Reitityksen suojauksella on perustarkoituksensa lisäksi merkitys virheellistä viestintää (edelleenlähettämistä) harjoittavien jäsenten tunnistamisessa. Reitityshyökkäysten lieventämiseen voidaan käyttää myös polkujen määrän rajoittamista ja/tai polkujen suojaamista (raskaillakin) kryptomenettelyillä. Toisaalta reitityshyökkäyksiä voidaan lieventää usean eri hakupolun käytöllä. Tämä on kuitenkin kallista. Kryptografisten allekirjoitusten koordinointi puolestaan on P2P:n luonteisessa ympäristössä vaikea toteuttaa.
Sybil- ja Eclipse-hyökkäysten lieventäminen perustuu keskitettyyn palveluun, joka käsittelee jäsenten rekisteröitymiset. Tätä voi laajentaa kytkemällä vertaisverkon tunnuksiin varmenteet. Sellaiset voidaan vahvimmin toteuttaa julkisen avaimen varmenteina. Tällä tavoin estetään haitallisia tahoja valitsemasta omia verkkotunnuksiaan. Hakujen erilaistamista on ehdotettu vaihtoehtoiseksi Eclipse-hyökkäyksen lieventämiseksi. Tällä uhri voi välttää turhia kyselyjä (topologisesta) läheisyydestään.
Buffer map -huijaus: Kademlia-järjestelmästä kehitetty KAD P2P -verkko käyttää verkkoindeksointirobottia (crawler), joka valvoo verkon tilaa ja havaitsee haitalliset vertaiskäyttäjät Eclipse-hyökkäyksenkin aikana. Jos jokainen verkon jäsen käyttää tällaista mekanismia, aiheutuu suurta kuormaa, joka ei suuressa verkossa ole edes mahdollinen.
Edellä mainitut turvamekanismit parantavat P2P-järjestelmien luontaista sietokykyä erilaisia hyökkäyksiä vastaan. Tietenkin mekanismit joustavat vain siihen asti, kun on saavutettu kriittinen massa haitallisia solmuja. Kryptografista tukea tai jäsenten tunnistamista edellyttävät menettelyt voivat häiritä sovellusten vaatimuksia, kuten nimettömyyttä, heterogeenisuutta tai resurssien säästämistä.