1 Johdanto

BitTorrent?-protokolla (BitTorrent?-protokollaan viitataan myöhemmin nimellä BT tai BT-protokolla) on nykyään yksi suosituimmista (jopa suosituin) P2P?-protokollista ja vastaavasti P2P?-protokollat vievät suurimman osan internet liikenteestä[1]. Joten on hyvinkin kiintoisaa, että voiko näitä massoja vastaan hyökätä tai onko mitään keinoa käyttää hyväkseen tallaista suurta verkkoliikennettä esimerkiksi DDOS (Distributed Denial of Service) hyökkäykseen, jota käsitellään yksityiskohtaisemmin toisessa harjoitustyössä. Itse BitTorrent?-protokollaa tarkastellaan tietoturvan kannalta oleellisista kohdista.

2 BitTorrent?-protokolla

BitTorrent?-protokolla on suosittu P2P?-protokolla, joka perustuu nk. "trackereiden" ja asiakasohjelmien keskenäiseen kommunikaatioon sekä asiakasohjelmien väliseen tiedonsiirtoon.

2.1 Trackerit

BitTorrent? "trackerit" eli seurantapalvelimet ovat palvelimia, jotka auttavat asiakasohjelmien välisessä kommunikaatiossa. Periaatteessa asiakasohjelman tarvitsee ainoastaan kerran kysyä käyttäjäinformaatiota (mahdollisesti myös tunnistautua palvelimelle) seurantapalvelimelta. Koska palainformaatio voidaan saada suoraan toisilta käyttäjiltä niin on mahdollista, että ei enää koskaan tarvita yhteyttä seurantapalvelimeen tämän tiedoston latauksen yhteydessä. Käytännössä kuitenkin käyttäjät sulkevat omat asiakasohjelmansa joskus, josta seuraa asiakasohjelmien katoaminen verkosta (huomaa myös, että palaset voivat kadota samalla kun käyttäjät poistuvat verkosta). Tämän seurauksena asiakasohjelma (yleensä automaattisesti) ottaa yhteyden seurantapalvelimeen (tai seurantapalvelimiin) ennalta määrätyin väliajoin päivittääkseen käyttäjäinformaation. Toisaalta seurantapalvelimet ovat BT-protokollan ainoa kriittinen piste (eli ainoa verkon node, joka on keskitetty). [http://en.wikipedia.org/wiki/BitTorrent_tracker][3]

Seurantapalvelimet jakautuvat kahteen osaan julkisiin ja yksityisiin seurantapalvelimiin. Julkiseen seurantapalvelimeen voi kukatahansa ottaa yhteyden saada haluamansa käyttäjäinformaation. Vastaavasti yksityisellä seurantapalvelimella on hyvin rajattu käyttäjäyhteisö (esim. tietyn verkkosivustoon rekisteröityneet käyttäjät), joka tietoturvan tai anonyymiyden kannalta voi olla oleellista. [http://en.wikipedia.org/wiki/BitTorrent_tracker]

2.2 DHT

Yleisesti DHT:lla (Distributed Hash Table) tarkoitetaan käyttäjien kesken jaettua hajautustaulua (Hash Table). DHT tekniikka itsessään ei ole rajoittunut vain BT-verkon käyttöön vaan sitä on käytetty esmierkiksi Storm-botverkossa. DHT:llä BT:n tapauksessa tarkoitetaan nk. peer-tiedon (asiakasohjelman tiedon) jakamista hajautetusti. Hajautuksen tarkoituksena on tehdä BT-verkko vähemmän riippuvaiseksi seurantapalvelimista. Toisena, vähän filosofisempana syynä on, että seurantapalvelimet ovat viimeinen jäänne keskitetystä P2P?-verkosta BT-protokollassa ja DHT on yksi keino poistaa seurantapalvelinriippuvuuksia.

DHT:ssä tarvittava informaatio onkin hajautettu asiakasohjelmille (vähän kuin tiedostojen palaset ovat hajautettu ympäri BT-verkkoa). Asiakasohjelmat sitten jakavat tätä informaatiota niiden asiakasohjelmien kanssa joihin kyseinen asiakasohjelma on tällähetkellä yhteydessä. Tosin vain sillä tavalla, että mahdolliset häiriöt ovat minimaalisia. BT-protokollan DHT toteutuksen tarkat speksit löytyvät bittorrent.orgin sivuilta.

2.3 Torrent-tiedostot

Kaikki tarvittava informaatio seurantapalvelimista ja tiedostoon kuuluvista palasista jaetaan .torrent tiedostossa (huomioi, että seurantapalvelin ei välttämättä tiedä mitä palasia kyseinen tiedosto sisältää). Torrent-tiedostot (.torrent) ovat pieniä, joten niiden jakamisesta aiheutuva rasitus verkkoliikenteelle on suhteellisen pieni (verrattuna jos itse tiedostoja jaettaisiin palvelimella).

Seuraavassa on .torrent tiedostossa olevat kentät lyhyine selityksineen [http://fileformats.wikia.com/wiki/Torrent_file]

  • info: Sisältää tiedostojen/kansioiden nimet
  • announce: Seurantapalvelimen osoite
  • announce-list: Erillinen lista vaihtoehtoisista seurantapalvelimista (vaihtoehtoinen)
  • creation date: Torrent-tiedoston luontipäivä (vaihtoehtoinen)
  • comment: Mikä tahansa kommentti (vaihtoehtoinen)
  • created by: Asiakasohjelman joku automaattinen merkintä (vaihtoehtoinen)

Tiedostoon liittyvät kentät

  • piece length: Kuinka pieniin palasiin itse tiedosto on jaettu (ilmoitetaan tavuina)
  • pieces: yhteen merkkijonoon on yhdistetty jokaisesta palasesta 20 tavun mittainen SHA-1 tiiviste (eli jos torrent-tiedosto muodostuu 2 palasesta on merkkijonon pituus 40 tavua (merkkiä))
  • name: Tiedoston nimi (vastaava hakemistoille)
  • length: tiedoston pituus tavuina
  • files: lista sanakirjoja (kaksi seuraavaa kenttää selittää mikä on sanakirja)
  • length: tiedoston pituus tavuina (sanakirja)
  • path: suhteellinen polku tiedostoihin (sanakirja)

2.4 Jaetut tiedostot

Fyysiset tiedostot ovat hajoitettu pieniin paketteihin (yleensä 16kt-4Mt, myös muut koot ovat mahdollisia) ja nämä paketit sitten jakautuvat vielä pienempiin osiin jotta lataus näyttäisi suhteellisen tasaiselta (mitä se kaytännössä ei ole). Kun tiedostoa aletaan jakamaan ja oletetaan, että lataajat (leech) saavat tarpeeksi informaatiota seurantapalvelimelta latauksen aloitamiseksi. Alussa kuitenkin ongelmaksi muodostuu jakajien pienempi määrä, joten BT-protokolla yrittää jakaa useaan eri paikkaan eri paketteja, jotta suuret latausnopeudet realisoituisivat mahdollisimman nopeasti. [3]

3 BitTorrent? ja salaus

Useat BitTorrent? asiakasohjelmat tukevat liikenteen salausta, jotta ulkopuolinen ei pääsisi "kuuntelemaan" tai tunnistamaan minkä tyyppistä liikennettä verkossa kulkee. Seuraavissa alivuvuissa käsitellään näiden asiakasohjelmien liikenteensalausmetodeja ja niiden murtamista (ilmeisesti nykyään kaikki asiakasohjelmat käyttävät MSE/PE protokollaa). [3] [http://en.wikipedia.org/wiki/BitTorrent_protocol_encryption]

3.1 MSE/PE

Message Stream Encryption tai Protocol Enctryption (tarkoittavat tässä tapauksessa historiallisista syistä samaa protokollaa) on käytössä lähes kaikissa yleisimmissä BT asiakasohjelmissa. MSE/PE salaa liikenteen käyttäen RC4 vuosalausalgoritmia niin, että siinä on korjattu Fluhrer, Mantin ja Shamir hyökkäys jättämällä ulostulon ensimmäiset tuhat tavua huomiotta. RC4 on valittu MSE/PE:n salausalgoritmiksi koska se on nopea ja aiheuttaa tarpeeksi sekoitusta niin, että liikennettä ei voida kovinkaan helposti tunnistaa BT-liikenteeksi. Myös AES:ia on harkittu liikenteen salaukseen, mutta AES-salaus on on hyvin raskas salausalgoritmi, joten sitä ei pidetty BT-protokollan hengen mukaisena. RC4:n turvallisuus on kuitenkin todettu riittäväksi salaukseksi koska BT-protokollaa ei ole alunperinkään tarkoitettu turvalliseksi tiedonsiirtokanavaksi vaan sen tarkoituksena on aina ollut mahdollisimman nopea tiedostojensiirtokanava. [http://en.wikipedia.org/wiki/BitTorrent_protocol_encryption] [http://en.wikipedia.org/wiki/Fluhrer,_Mantin_and_Shamir_attack]

3.2 MSE/PE murtaminen

Nykyään palveluntarjoajat (ISP) ovat löytäneet hienostuneempia metodeja BT-protokollan havaitsemiseen RC4-sekoituksesta. Joten palveluntarjoaja voi mahdollisesti estää tai rajoittaa BT-liikennettä kyseisen asiakkaan kohdalla, vain murtamalla RC4 salauksen. Mutta myös helpompi ja tehokkaampi tapa on löydetty BT-liikenteen havaitsemiseen. Palveluntarjoaja voi hankkia listan käyttäjistä suoraan seurantapalvelimelta (BT-protokolla mahdollistaa tämän ilman sen kummempia toimia), sen jälkeen vain tutkia asiakkaan liikennettä ja vertailemalla ip-osoitteita seurantapalvelimelta saatuun listaan. Tästä ongelmasta tosin päästään eroon salaamalla myös seurantapalvelimelta lähtevä liikenne, mutta tälläkin ratkaisulla on omat heikkoutensa resurssien käytön kannalta. [http://en.wikipedia.org/wiki/BitTorrent_protocol_encryption]

4 Hyökkäykset P2P? verkkoon BitTorrentin? näkökulmasta

Tässä luvussa tarkastellaan lähinnä Kirkmanin ja Dezhgoshan turvallisuuskatsausta vuodelta 2011 ja tarkemmin sen lukua 3 "Attacks on P2P? networks". Tarkastellaan miten tällaiset hyökkäykset voisivat toteutua BitTorrent?-verkossa ja miten niitä vastaan olisi mahdollista suojautua. Myös joihinkin oleellisiin hyökkäyksiin perehdytään vähän tarkemmin. P2P?-hyökkäys ohitetaan kokonaan koska sillä ei ole mitään relevanssia BT-verkkon kannalta. P2P?-hyökkäys on hyökkäys, jossa ohjataan iso osa verkon käyttäjistä ottamaan yhteyden johonkin HTTP-palvelimeen (BT-verkossa ei juuri koskaan käytetä porttia 80).

4.1 Sybil

Sybli-hyökkäys on hyökkäys missä yksi verkon asiakas hallitsee useita identiteettejä verkossa ja käyttää näitä identiteetejä saadakseen suhteettoman suuren vaikutusvallan itse verkossa. Tämä voisi BT-verkon kannalta tarkoittaa sitä, että suuri osa harvinaisista tiedoston palasista joutuisi usean identiteetin haltijalle (hyökkääjälle). Toisin sanottuna kyseisen tiedoston BT-verkko olisi vielä suhteellisen keskittynyt eikä BT-verkolle ominaisia asioita tapahtuisi. Esimerkiksi tiedoston eri osien nopeaa leviämistä eri käyttäjille ei tapahtuisi, koska iso osa palasista olisi vain hyökkääjän hallussa. Hyökkääjä voisi tässä tapauksessa olla esimerkiksi tekijänoikeuksienhaltija, joka haluaa hidastaa tiedoston leviämistä.

Toinen mahdollinen hyökkäys olisi, että useita identiteettejä hallitseva hyökkääjä onnistuu panttaamaan tietoa tarpeeksi kauan. Jolloin alkuperäinen tiedoston jakaja ehtii kadota verkosta luullen, että tiedosto on jo levinnyt tarpeeksi laajalle. Jolloin identiteettienhaltija kontrolloi suurta osaa harvinaisista tiedostoista ja yhtäkkiä lopettaa niiden jakamisen. Tässä tapauksessa tiedoston kaikkia osia ei välttämättä enää ole jaossa. Motivaatio tällaiseen hyökkäykseen voisi olla sama kuin aikaisemmin.

Sybil-hyökkäys ei kuitenkaan ole kovinkaan oleellinen BT:n tapauksessa, koska itse BT-protokolla toimintaperiaate on puolustuskeino tällaista hyökkäystä vastaan. Myöskään kovinkaan suurta tuhoa ei sybil hyökkäyksellä voi saada aikaan vaikkakin hitaampi tiedoston leviäminen voi olla harmillista. Myöskään identiteettien haltija ei voi jakaa vääriä/korruptoituneita palasia koska kaikista tiedostoista on SHA-1 tiiviste torrent-tiedostossa (tietysti jos murtaa SHA-1:n niin silloin voi tämän korruptoinnin tehdä).

4.2 DDOS

DDoS? hyökkäykseen perehdytään hieman tarkemmin ja annetaan esimerkkejä minkälaisia hyökkäyksiä vuonna 2006 oli vielä BT-protollassa (jotkin "ominaisuudet" ovat säilyneet vielä nykyiseen versioonkin asti). DDOS hyökkäyksessä hyökkääjä haluaa syöttää väärää informaatiota seurantapalvelimelle ja näin ohjata BT-liikennettä kohteeseen aiheuttaen DDOS hyökkäyksen. Hyökkääjän motivaatio tehdä DDOS hyökkäys BT-verkossa on kyseenalainen, koska harvemmin mikään tärkeä kohde on "rekisteröitynyt" BT-verkkoon. Mutta koska DDOS on hyvinkin mahdollinen hyökkäys niin sen analysointi on suhtellisen tärkeää.

4.2.1 IP-ilmoitus

IP-ilmoitus toimii varsin yksinkertaisesti niin, että kun seurantapalvelin pyytää käyttäjän tietoja niin annetaan vastauksena vapaaehtoisessa IP-kentässä hyökkäyksen kohteen IP-osoite. Seurantapalvelin luulee, että hyökkääjällä olevat tiedoston palaset ovat itseasiassa hyökkäyksen kohteella. Joten useammat asiakasohjelmat yrittävät ottaa yhteyden kohteeseen, mistä seuraa sitten DDOS-hyökkäys jos tarpeeksi moni haluaa kyseiset palaset. Vielä nykyisessäkin BT-protokollan versiossa kyseessä oleva IP-kenttä on olemassa ja vielä vuonna 2006 hyvinkin moni seurantapalvelin hyväksyi kyseisen kentän parametrina.

*Sivuhuomautuksena voidaan mainita, että kyseinen IP-kenttä on tarkoitettu alkuperä IP:nä jos asiakasohjelma sijaitsee samalla koneella kuin seurantapalvelin.

4.2.2 DHT Ping

Kun käytetään DHT:ta IP-ilmoitus hyökkäys ei enää toimikkaan kun IP-kenttä on kokonaan otettu pois käytöstä, mutta DHT:stäkin löytyy heikkous jossa käytetään DHT:n ping ominaisuutta. DHT:ssä asiakas lähettää ping lähetteen DHT-verkolle jotta muut tietäisivät, että kyseinen asiakas haluaa osallistua DHT verkon toimintaan. Eli todella oleellinen osa DHT-verkon toimintaa.

Hyökkäyksen idea on lähes täsmälleen sama kuin IP-ilmoituksessa, ainoastaan hyökkäyksen toteutus muuttuu hieman. Ping lähetteen parametrissa on mahdollista muokata nopeaan tahtiin lähde IP-osoitetta. Jonka seurauksena ping pyyntöjä voi lähettää uhrin koneelle hyvinkin nopeassa tahdissa. Ja näin voidaan rasittaa kohdekoneen prosessoritehoa.

4.2.3 DDOS käytännössä

Kuitenkin kaikkien edellämainittujen tekniikoiden seurauksena ei saadakkaan tukittua uhrikoneen verkkoliikennettä. Koska BT-protokollassa tehdää aina taysi TCP-yhteys niin se vie hyvinkin paljon suorituskykyyn liittyviä resursseja. Eli uhrin kone saadaan laskemaan jopa tuhansia TCP-yhteyksiä samaan aikaan. Tältä nk. SYN-hykkäykseltä voidaan suojautua normaalein DDOS tekniikoiden avulla, esimerkiksi SYN-cookie tekniikka toimii jos huomataan, että otsikkokenttä onkin BT eikä HTTP. DDOS hyökkäyksestä kerrotaan toisen opiskelijan harjoitustyössä tarkemmin.

4.3 Torrentin-myrkyttäminen

Torrentin-myrkyttäminen tarkoittaa korruptoituneen datan jakamista BT-verkossa jollain houkuttelevalla nimellä. Esimerkkinä voidaan mainita tekijänoikeusjärjestöjen yritystä estää kopiosuojatun materiaalin leviämistä ja samalla lataajien IP-osoitteiden keräämistä BT-verkosta. Tiedoston myrkyttäminen jakautuu useisiin eri kategorioihin joista suuri osa on seuraavassa listassa.

  • Tiedoston korruptoiminen (Decoy Insertion)
  • Luettelon myrkyttäminen (Index Poisoning)
  • Väärentäminen (Spoofing)
  • Estäminen (Interdiction)
  • Svarmaus (Swarm), huomioi, että tätä tavallan jo sivuttiin Sybil-hyökkäyksen esimerkkien yhteydessä
  • Valitun sisällön myrkyttäminen (Selected Content Poisoning)
  • Pimennys hyökkäys (Eclipse Attack), tunnetaan myös reititin taulun myrkyttämisenä
  • Ei yhteistyökykyinen vertais hyökkäys (Uncooperative-Peer Attack)

Vaikka P2P?-verkoissa on paljon tällaisia sisällön myrkyttämistä niin BT-protokolla on yksi vastustuskykyisimmistä P2P?-verkoista myrkytystä vastaan. Esimerkkinä priatebay:ssä on luotettuja sisällön jakajia, jotka lähettävät BT-verkkoon paketit tiedostosta (muilla palveluilla on vastaavan kaltaisia systeemejä).

5 Yhteenveto

Olemme käyneet läpi jonkin verran BitTorrent?-protokollaa ja miten se suurinpiirtein toimii. BitTorrent?-verkon toiminta ja nopeus perustuu hyvin hajautettuun verkkotopologiaan missä on vain yksi kriittinen piste, joka on seurantapalvelin. Seurantapalvelin antaa tietoa muista käyttäjistä ja näin saadaan yhteys muihin käyttäjiin ja periaatteessa seurantapalvelinta ei käytetä mihinkään muuhun.

BitTorrent? protokollalla ei ole virallisesti minkäänlaista liikenteen salausmekanismia mutta ajan kuluessa jonkinlaista salausta on kaivattu. Jossain vaiheessa BitTorrent?-asiakasohjelmat ottivat käyttöön MSE(/PE) menetelmän ja jopa nykyisessä nk. "Mainline" BitTorrent?-asiakasohjelmassa on tämä liikenteen salaus.

P2P?-verkkoihin on aikojen saatossa keksitty monia hyökkäyksiä ja osa näistä hyökkäyksistä toimii myös BT-verkossa. Vaikkakin useat hyökkäykset ovat melko akateemisia ja todennäköisesti ne eivät ole vaivan arvoisia toteuttaa. Kuitenkin jos BitTorrent?-verkossa on jokin tärkeämpi entiteetti jonka kaatuminen tai hidastuminen on rahan arvoista on BitTorrent?-verkkoa vastaan esimerkiksi helppoja DDOS hyökkäysvaihtoehtoja.

Lähteet

[1] [Schulz, Hendrik; Klaus Mochalski (2009). "Internet Study 2008/2009". Leipzig, Germany: ipoque. (viitattu 2.11.2011)] "Peer-to-peer file sharing (P2P?) still generates by far the most traffic in all monitored regions – ranging from 43 percent in Northern Africa to 70 percent in Eastern Europe."

[2] [http://torrentfreak.com/how-to-encrypt-BitTorrent-traffic/ (viitattu 2.11.2011)] Kuinka laittaa encryptaus päälle useassa BitTorrent?-asiakasohjelmassa

[3] [http://www.bittorrent.org/bittorrentecon.pdf (viitattu 2.11.2011)] "Incentives Build Robustness in BitTorrent?"

[4] [Stephen S. Kirkman; Kamyar Dezhgosha (2011). Security Review of P2P? Applications and Networks.]

[5][Ka Cheung Sia (2006). DDos Vulnerability Analysis of BitTorrent? Protocol]

SivuTiedotLaajennettu edit

Vaativuus Jatko
Valmius Valmisteilla
Tyyppi Ydin
Luokitus Uhkat
Mitä Luottamuksellisuus
Miltä Ihmisetön uhka
Missä Organisaatio
Kuka Titu-ammattilainen
Milloin Ennakolta
Miksi Hyvä tapa
Print version |  PDF  | History: r10 | r9 < r8 < r7 < r6 | 
Topic revision: r8 - 30 Nov 2011 - 20:23:35 - OivaM?
 

TUTWiki

Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TUTWiki? Send feedback