TCP/IP-protokollaperhe ja internet-turvallisuus

T�m� tutkielma on tehty harjoitusty�n� kev��ll� 2001 Tampereen teknillisen korkeakoulun kurssille 83450, Internetin verkkotekniikat.
Tekij�t Laura Koskinen, Kalle Viitanen, Jarkko Laine

Sisällysluettelo

  1. TCP/IP-protokollaperhe
    1.1 Taustaa
    1.2 Protokollat
    1.2.1 IP (Internet Protocol)
    1.2.2 TCP (Transmission Control Protocol)
    1.2.3 UDP (Universal Datagram Protocol)
    1.2.4 ICMP (Internet Control Message Protocol)
    1.2.5 IGMP (Internet Group Management Protocol)
    1.2.6 ARP (Adress Resolution Protocol)
  2. Tietoturvallisuus internetiss�
    2.1 Johdanto
    2.1.1 Internetille ominaisia erikoispiirteitä
    2.1.2 TCP/IP-protokollaperheen turvallisuus
    2.2 Tietoturvallisuuden nykytila Internetissä
    2.2.1 TCP/IP-tason turvamekanismeja
    2.2.2 Yleisimmät tietoturvaongelmat
    2.2.3 Murtautumismenetelmiä
    2.2.4 Suojautuminen
  3. Yhteenveto
  4. L�hdeluettelo

1 TCP/IP-protokollaperhe

1.1 Taustaa

TCP/IP-protokollaperhe syntyi alkuaan Yhdysvaltain puolustusministeriön toimesta ARPANETin yhteyskäytännöksi, josta se levisi nopeasti yliopistoihin ja tutkimuskeskuksiin. Se korvasi vuonna 1982 aiemman protokollan, NCP:n, ja samalla ARPANET muutti nimensä internetiksi. Perhe koostuu useasta eri protokollasta, jotka ovat ajan myötä muodostuneet internet-standardeiksi.

TCP/IP:n perusajatuksena on, että tietoliikenne on liian monimutkaista yhden protokollan hoidettavaksi. Siksi sen mukaan työ jaetaankin eri tasojen moduuleille, jotka sitten kommunikoivat vastapuolen vastaavan tason protokollan kanssa.

TCP/IP:llä ei ole virallista mallia, kuten OSI-mallilla. Se kuvataan kuitenkin yleensä viitenä kerroksena:

Kerrokset eivät sovi täysin yhteen OSI-mallin seitsemän kerroksen rajojen kanssa, koska TCP/IP kehitettiin jo ennen OSI:a. Siitä muodostui kuitenkin "standardi", koska se on avoin eikä ole sidoksissa mihinkään laitevalmistajiin tai -tyyppeihin. OSI-malli sen sijaan jäi raskautensa vuoksi eräänlaisen referenssimallin asemaan.

1.2 Protokollat

Kuvassa 1 on esitelty TCP/IP-protokollaperheen ydinprotokollat sekä niiden tarjoamia sovellustason palveluita. Perheen perusprotokollia ovat IP, ICMP, IGMP, ARP, TCP sekä UDP. Näistä IP, ARP, ICMP ja IGMP toimivat verkkokerroksella ja TCP sekä UDP kuljetuskerroksella.

TCP/IP-protokollaperhe

Kuva 1. TCP/IP:n protokollat sekä niiden tarjoamat ylemmän tason palvelut

1.2.1 IP (Internet Protocol)

Myös verkkojen veturiksi kutsuttu IP on yhteydetön protokolla, jonka palveluja kaikki TCP/IP-liikenne käyttää hyväkseen. Protokolla jättää yhteyksien pidon suosiolla TCP:n tehtäväksi. IP on tarkoitettu välittämään paketteja yhteen kytkettyjen verkkojen osasta toiseen ja sen tärkein tehtävä on reititys. Se onkin toiminnassa kaikissa verkkoon kytketyissä päätelaitteissa sekä reitittimissä.

Pakettien lähettäjä ja vastaanottaja ilmaistaan IP-osoitteella. IP-osoite on 32-bittinen luku, joka esitetään yleensä pisteillä eroteltuna desimaalilukuna, esim. 195.148.185.48. Protokolla reitittää paketit ilman, että lähettäjän tarvitsee tietää siirrosta muuta kuin saajan IP-osoite.

IP-protokolla käsittelee kaikki IP-paketit erillisinä. Se ei ota kantaa siirrettävän tiedon luotettavuuteen, vuonvalvontaan eikä muihin korkeamman tason palveluihin. Tämä johtuu ennen kaikkea suorituskykysyistä, sekä siitä, että samoja tehtäviä on turha suorittaa useamman eri tason protokollan toimesta. IP ei myöskään sisällä virheenkorjausta, mutta se laskee kuitenkin paketeille tarkistussumman ja hylkää virheelliset datagrammit.

1.2.2 TCP (Transmission Control Protocol)

TCP on protokolla, joka on kehitetty datan välittämiseen verkossa luotettavasti käyttäen hyväksi epäluotettavaa IP:n välityspalvelua. Alkuperäinen TCP julkaistiin jo 1970-luvun alkupuolella, mutta sillä on hyvin vähän yhteistä TCP/IP-perheen TCP:n kanssa.
TCP on yhteydellinen protokolla. Tämä tarkoittaa sitä, että ennen kuin datasiirto koneiden välillä voidaan aloittaa, pitää vastapuolten muodostaa keskenään yhteys. Tämä tapahtuu ns. kolmitiekättelyn avulla.

TCP on myös niin sanottu päästä päähän -protokolla. Kaikki TCP-tason datavälitys tapahtuu vain yhteyden päissä olevien laitteiden välillä, eikä protokolla ole käytössä IP:n tapaan esim. reitin varrella olevissa reitittimissä.

TCP sijoittuu siis kuljetuskerrokselle. Se tarjoaa korkeamman tason sovelluksille helpon rajapinnan yhteyden muodostamiseen ja datan siirtoon. TCP:n tärkeimmät palvelut ylemmille tasoille ovat:

1.2.3 UDP (Universal Datagram Protocol)

UDP on toinen TCP/IP-perheen siirtokerrokselle sijoittuvista protokollista. Se on TCP:tä yksinkertaisempi protokolla, joka on tarkoitettu yksinkertaisten tietosähkeiden eli datagrammien lähettämiseen. Se ei tarjoa yhteydellisyyttä eikä kuittauksia kuten TCP. UDP:tä käytetään yksinkertaisuutensa vuoksi tehokkuussyistä mm. DNS-nimipalvelussa sekä NFS-tiedostojärjestelmässä.

1.2.4 ICMP (Internet Control Message Protocol)

ICMP on oikeastaan osa IP:tä ja sijoittuu näin ollen verkkokerrokselle. Protokolla tarjoaa vianetsintä- ja diagnostiikkapalveluja ja sitä käytetään mm. virheilmoituksiin. Tunnetuin käyttömuoto ICMP:lle on ping-ohjelma.

1.2.5 IGMP (Internet Group Management Protocol)

IGMP sijoittuu myös verkkokerrokselle. Protokollaa käytetään UDP-pakettien lähettämiseen useille vastaanottajille. Protokollan avulla tietokone voi ilmoittaa reitittimille multicast-ryhmän, johon se kuuluu.

1.2.6 ARP (Adress Resolution Protocol)

ARP sijoittuu verkkokerrokselle, joidenkin lähteiden mukaan jopa OSI-mallin linkkikerrokselle, jota ei TCP/IP-pinossa ole varsinaisesti eritelty. Protokollaa käytetään yhdessä Reverse ARP:in kanssa laitteiden fyysisen eli ns. MAC-osoitteen selvittämiseen IP-osoitteen perusteella ja päinvastoin.

2 Tietoturvallisuus Internetissä

2.1 Johdanto

2.1.1 Internetille ominaisia erikoispiirteitä

Käsiteltäessä Internetin tietoturvallisuutta riskit hajaantuvat useampaan kohtaan ja siksi tuleekin huomioida verkon tietokonejärjestelmien, verkon solmujen, verkon hallintamekanismien sekä tietoliikenneprotokollien suojaus. Yksittäinen liittymä ei voi vaikuttaa koko verkon turvallisuuteen, vaan sen tulee keskittyä oman järjestelmänsä ja sen liitännän turvallisuuteen. Internet on rakennettu alunperin avoimmuuden pohjallle, joten turvakysymyksiä ei ole ajateltu alusta alkaen. Tästä syystä esimerkiksi Unix -systeemissä riittävän turvan saavuttaminen voi vaatia melkoisia ponnistuksia.

2.1.2 TCP/IP-protokollaperheen turvallisuus

Internet-verkon perustekniikat on suunniteltu suojaamaan tietoliikenteen eheys satunnaisia virheitä vastaan. Tahallista hyökkäystä vastaan itse verkko ei tarjoa kovinkaan hyvää suojaa. Asiantuntijat ovat pitkään tienneet, että TCP/IP-perusprotokollien turvallisuuteen ei voi luottaa. Vasta Internetin kaupallisten sovellusten laajeneminen on tuonut tämän ongelman yleiseen tietoon. TCP/IP-verkon turvallisuudesta on käytännössä huolehdittava muilla kuin loogisen tason ratkaisuilla eli on huolehdittava verkon eri osien eristämisestä toisistaan sekä kriittisten verkkosegmenttien sijoittamisesta turvattuihin tiloihin. TCP/IP ympäristöön on tulossa erilaisia turvallisuutta parantavia ominaisuuksia kuten uusi IP-protokollan versio Ipv6.0.

2.2 Tietoturvallisuuden nykytila Internetissä

Nykyisissä TCP/IP systeemeissä on huomattavan paljon turvallisuusongelmia, mikä johtuu siitä, että protokollaperhe suunniteltiin ajatellen käyttöympäristön olevan riittävän turvallinen. Tavoitteena suunnittelussa oli esimerkiksi se, että verkko turvaa IP-pakettien eheyden.

2.2.1 TCP/IP-tason turvamekanismeja

IP-osoitteet ovat melko luotettava mekanismi. Lähettäjän IP -osoitetta käytetään aina vastaamiseen. Tosin tätäkin on onnistuttu kiertämään siten, että paketteja saadaan kulkemaan aivan eri paikkaan kuin haluttu IP-osoite.

Sekvenssinumerot on tarkoitettu vuonohjaukseen, mutta ne ovat osoittautuneet tehokkaaksi turvaominaisuudeksi. Päästäkseen TCP -yhteydelle murtautujan tulee tietää mikä sekvenssinumero yhteydellä on menossa. Tämä onnistuu vain joko arvaamalla sekvenssinumero tai salakuuntelemalla lähetystä. Nämä ovat useissa tapauksissa vaikeita menetelmiä.

Porttinumeroiden käyttöturvallisuusmenetelmänä on standardoimaton turvallisuussysteemi, jossa alle 1024:n porttinumeroita annetaan vain sellaisille prosesseille, joilla on pääkäyttäjän (root) oikeudet. Tätä hyödynnetään toisinaan palomuureissa, mutta järjestelmä ei itsessään ole luotettava.

Perusturvamekanismeihin on odotettavissa parannusta IPv6:n myötä. Tässä IP -protokollan uudessa versiossa on lisätty kaksi uutta turvamekanismia: todennuskehys AH, jonka avulla voidaan todeta jokaisen kehyksen eheys ja alkuperä sekä ESP (Encapsulating Security Payload), jonka avulla voidaan salata koko IP-paketti tai sen hyötykuorman. IPv6.0 :n kehitystyö ei ole vielä täysin valmis.

2.2.2 Yleisimmät tietoturvaongelmat

Koska Internet on kaksisuuntainen kanava, kutsumaton vieras voi päästä yrityksen omaan järjestelmään käsiksi ja muutella tietoja. Tällainen murto onnistuu käyttöjärjestelmässä tai palvelinohjelmistoissa olevien aukkojen ansiosta tai jopa hankkimalla käyttäjätunnus jollain keinolla. Näyttävimpiä tällaisia hyökkäyksiä on Yhdysvaltojen oikeusministeriön WWW-palvelun taannoinen muuttaminen "Department of Injustice" -nimiseksi.

TCP/IP-protokollaperheessä on useita turvallisuuteen liittyviä heikkouksia, jotka ovat otollisia hyökkäyskohteita. Näistä yleisimpiä ovat:

Verkon salakuuntelu, joka onnistuu helposti, mikäli saadaan fyysinen yhteys siirtomediaan. Päästyään käsiksi kaapeliin liitettyyn koneeseen murtautuja voi kuunnella liikennettä vaikkapa diagnostiikkaohjelmaa käyttäen ja poimia liikenteestä käyttäjien salasanoja.

IP-osoitteiden väärennys tapahtuu lähettämällä UDP paketteja joiden IP -osoite on väärä. Tällöin vastaanottajan paluupaketit eivät tietenkään tule perille. Tätä voidaan käyttää muun muassa hyökkäyksessä NFS:ää vastaan sekä IP-osoitteeseen perustuvan tunnistuksen kiertoon.

ICMP-hyökkäyksessä tunkeutuja uskottelee olevansa reititin käyttäen ICMP:tä. Hyökkääjä uskottelee laitteelle lyhyimmän polun tiettyyn osoitteeseen kulkevan itsensä kautta ja saa näin siepattua lähtevät paketit. Mikäli hyökkääjällä on myös väärennetty IP -osoite saa hän haltuunsa myös paluupaketit.

ARP-kysely soveltuu myös tietoturvahyökkäyksiin. ARP-protokollalla (Addres Resolution Protocol) voidaan selvittää samassa verkossa olevan laitteen Ethernet-osoite. ARP-kyselypaketissa kysytään mikä on tiettyä IP-osoitetta vastaava Ethernet-osoite. Normaalisti IP-osoitteen omakseen tunnistava laite vastaa Ethernet-osoitteellaan, mutta mikäli hyökkääjällä on laite samassa verkossa, voi tämä vastata ennen oikeaa konetta ja uskotella olevansa tämä.

IP-lähdereititystä voidaan käyttää reitityksen muuttamiseen. Sitä on tarkoitus käyttää reititystaulujen mennessä sekaisin. Lähdereitityksen avulla murtautuja voi laittaa oman IP-osoitteensa tilalle reitin, jossa hänen osoitteensa on. Vastaanottaja näkee lähettäjänä reitin viimeisen osoitteen, vaikka käytännössä paketit pysähtyvät jo murtautujan osoitteen kohdalla.

Sähköpostin väärennys on hyvin yksinkertainen toimenpide. SMTP-protokollassa viesti kulkee selväkielisenä, jolloin haluamillaan lähtötiedoilla varustetun postin saa lähtemään ottamalla yhteyttä esimerkiksi Telnetillä koneen SMTP porttiin ja naputtelemalla haluamansa viestin.

Käänteisnimipalvelun avulla voi muuttaa oman IP-osoitteensa. Nimipalvelu DNS muuttaa domain-nimen vastaavaksi IP-osoitteeksi ja käänteisnimipalvelu tekee vastakkaisen toiminnon. Itse nimipalvelu on varsin varmatoiminen, mutta käänteisnimipalvelua voidaan huijata liittämällä IP-osoitteeseen haluamansa nimi. Useissa palvelimissa tämä on estetty nimikysely avulla, jolloin käänteisnimipalvelussa saatu nimi tarkistetaan suorittamalla sille nimipalvelukysely.

Nimipalvelimiin kohdistuvasta tietoturvariskistä on esimerkkinä seuraava uutinen: Yritysten tietojärjestelmistä löytyi vakavia puutteita (HS 24.2.2001). Uutisen mukaan yksitoista sadasta Suomen suurimmasta yrityksestä on laiminlyönyt tietoturvan. Näiden yritysten nimipalvelinjärjestelmässä on aukko, jonka kautta hakkerit pystyvät halutessaan kaatamaan firmojen internet-sivustot sekä myös mahdollisesti tunkeutumaan niiden tietojärjestelmiin. "Sadan liikevaihdollisesti suurimman yrityksen nimipalvelujärjestelmät testasi islantilainen tietoturvayritys Men&Mice. Tutkituista yrityksistä 11 käytti nimipalvelujärjestelmässään (BIND DSN) puutteellista ohjelmistoversiota. Nimipalveluongelma havaittiin maailmalla tammikuun 29. päivänä 2001. Men&Micen tekemän selvityksen mukaan seuraavana päivänä lähes 600:lla maailman 1000 suurimmasta yrityksestä oli aukko nimipalvelujärjestelmässään. Yritykset kuitenkin päivittivät nopeasti ohjelmistojaan."

2.2.3 Murtautumismenetelmiä

Tunkeutujien käyttämät murtautumismenetelmät voidaan jakaa sosiaalisiin ja teknisiin menetelmiin. Sosiaalisissa menetelmissä tunkeutuja käyttää väärin omia oikeuksiaan tai huijaa toisia käyttäjiä. Tämä on usein helpompaa kuin teknisten ratkaisujen käyttö. Teknisissä menetelmissä laitteistojen heikkouksia voidaan käyttää hyväksi, esimerkiksi suojaamaton muistijärjestelmä on tehokas keino salasanojen selvitykseen.

Salakuuntelu on tehokas murtautumistapa ja se on päätteiden ja lähiverkkojen tapauksessa melko helppoa.

Troijanhevoset ovat ohjelmanpätkiä, joita pyritään huomaamattomasti ujuttamaan suojattuun järjestelmään. Päästyään järjestelmään ohjelman tekee suojamuuriin aukon, josta murtautuja pääsee halutessaan sisään systeemiin.

Suojausaukot ovat virheellisiä suojausmäärittelyjä, jotka altistavat systeemin turvallisuusuhalle. Tyypillinen tapaus on Unix-tiedosto, jonka käyttöoikeudet on väärin määritelty.

Salasanojen arvailu on yleinen tapa päästä systeemiin. On tutkittu, että jopa joka neljännellä käyttäjällä on huono salasana. Jos päästään käsiksi suureen määrään salasanatietoja, on yhden salasanan arvaaminen mahdollista melko nopeastikin.

Ohjelmistovirheet ovat myös tapa päästä järjestelmään. Jokainen ohjelma sisältää virheitä, joista monia ei koskaan havaita. Käytännössä ohjelmistovirheiden täydellinen poistaminen esimerkiksi suuresta käyttöjärjestelmästä on mahdotonta. Tämä murtautumismenetelmä vaatii tekijältään todellista osaamista eikä siksi ole kovin yleinen.

2.2.4 Suojautuminen

Suojautumisessa on olennaisen tärkeää ennakkosuunnittelu. Riskit on siis analysoitava etukäteen. Todennäköiset uhat sekä turvallisuusjärjestelmän mahdollisuudet on tiedostettava. Tämän lisäksi on suunniteltava ja luotava oikean tasoiset suojatoimenpiteet.

Suojausjärjestelmä ei ole koskaan valmis toimimaan ilman käytönaikaista työtä. Toimiva suojaus edellyttää systeemin päivitystä tasaisin väliajoin sekä jatkuvaa käytön seurantaa. Käytön seurannalla voidaan havaita murtautuja joko toiminnassa tai sitten löytää tämän jälkeensä jättämiä jälkiä tai turvallisuusaukkoja. Seuranta toteutetaan useimmiten turvalokin avulla. Se tallentaa esimerkiksi tehdyt turvatasojen muutokset käyttäen kerrankirjoittavaa menetelmää tai erillistä lokikonetta. Seurantaa voidaan tehostaa liittämällä lokiin ohjelma, joka analysoi poikkeukselliset tilanteet ja raportoi niistä.

3 Yhteenveto

Suomen Internet-verkon suunnittelussa ei toimintavarmuuteen ja käytettävyyteen ole kiinnitetty huomiota vielä samalla tavoin kuin esimerkiksi puhelinverkon kohdalla. Verkko itsessään kestää normaalit virhetilanteet, mutta ei aktiivista hyökkäystä. Internet-verkko itsessään ei tunnista käyttäjiä mitenkään, vaan on viestintäkanava, jossa on merkittävän paljon helpompaa esiintyä naamioituneena tai anonyyminä kuin muussa elämässä. Nimettömänä tai keksityn nimen suojissa esiintyminen on jopa kohtuullisen yleistä verkkomaailmassa.

Virheellisesti tunnistettu osapuoli voi verkon ylitse asioidessaan saada aikaan huomattavaa vahinkoa. Esimerkiksi ulkopuolinen taho voi lähettää Internetin kautta viranomaiselle väärennettyä sähköpostia, joka näyttää tulevan toiselta viranomaiselta saman organisaation sisällä. Tavallinen käyttäjä ei osaa tutkia sähköpostin otsakekenttiä riittävän huolellisesti huomatakseen väärennöksen.

Verkon kautta sähköitse asioitaessa kiistämättömyys tulee tärkeämmäksi tekniseksi ongelmaksi kuin paperien kanssa asioitaessa. Viranomaispäätökseen on usein pystyttävä vetoamaan myös jälkeenpäin ja pelkästään vastaanotettu sähköpostiviesti tiedostossa tai paperille tulostettuna ei välttämättä riitä tällaiseksi todisteeksi.

Internet-käytön suurin turvallisuusongelma ei kuitenkaan ole luonteeltaan tekninen. Verkon käyttäjien kokemattomuus ja tietämättömyys verkon ominaisuuksista on suurin ongelma ja sitä ei pystytä täysin ratkaisemaan teknisillä keinoilla. Eri ympäristöissä ovat eri uhkien todennäköisyydet ja uhan toteutumisesta aiheutuvat vahingot erilaisia. Suojauduttaessa on etsittävä tasapaino riskien ja kustannusten välillä. Esimerkiksi oppilaitoksen opiskelijoiden harjoitustöitä suojaamaan ei kannata hankkia miljoonien markkojen palomuuriratkaisua.

Julkishallinnon tiedoille ei voida läheskään aina asettaa markkamääräistä arvoa, vaan suojaustarve lähtee laeista ja asetuksista. Tällöin, mikäli palvelun riittävän tasoista tietoturvallisuutta ei voida taata, ei palvelua voida tarjota Internet-verkossa.


4 Lähdeluettelo

Nikander, P. & Peltonen, T. & Viljanen, L. 1996. Internet tietoturva. Gummerrus Kirjapaino Oy. Jyväskylä

Junkkari, M. 2001. "Yritysten tietojärjestelmistä löytyi vakavia puutteita." 24.2.2001. Helsingin Sanomat. Talous.

Toppila, P. 1997. Tietoturva internetiss�. Seminaariesitelm�. http://www.hut.fi/~ptoppila/tieot.htm

RFC 791: Internet Protocol

RFC 793: Transmission Control Protocol

RCF 1122: Requirements for Internet hosts - communication layers

Hautaniemi, M. 1994. TKK/Atk-keskuksen TCP/IP-verkon valvonta ja hallinta. Diplomityö. http://keskus.hut.fi/julkaisut/tyot/diplomityot/611/