Tietoturva : Palvelunestohyökkäyksen mekanismit

Janne Klaper, 2011

Johdanto

Yksi käytetyimmistä hakkereiden hyökkäysmenetelmistä on palvelunestohyökkäys, denial-of-service- eli DoS hyökkäys, koska se on helppo toteuttaa ja vaikeaa, ellei jopa mahdotonta, estää. DoS-hyökkäyksen tarkoitus on häiritä Internetissä toimivaa palvelua keskustelemasta sen oikeiden asiakkaiden kanssa [1]. Häiritseminen on yksinkertaisimmillaan monien pyyntöpakettien lähettämistä palvelua ylläpitävälle palvelimelle, jolloin palvelin ylikuormittuu. Nämä pyynnöt ovat täysin normaalia liikennettä, minkä takia on vaikea päätellä, onko käynnissä hyökkäys vai onko palvelimella vain suuri määrä käyttäjiä. Ylikuormittuessaan palvelin ei pysty vastaamaan oikeille käyttäjilleen tai vastaaminen kestää kauan. Erityisen haitallista tämä on verkkokaupoille, joiden pitäisi pystyä tarjoamaan palveluitaan asiakkaille Internetin välityksellä.

Hajautettu palvelunestohyökkäys

Isoihin palvelimiin tai klustereihin hyökkääminen DoS-hyökkäyksellä on kuitenkin toivotonta, koska yksi tietokone ei pysty tekemään tarpeeksi pyyntöjä, jotta nämä isot palvelimet ylikuormittuisivat. Tästä syystä DoS-hyökkäykselle on kehitetty hieman laajemman mittakaavan versio eli hajautettu palvelunestohyökkäys, distributed deanial-of-service- eli DDoS-hyökkäys. Se tehdään siis samoin kuin DoS-hyökkäys, mutta useamman tietokoneen avulla. Hyökkäyksessä käytettävissä koneissa on hakkerin troijan hevonen eli ohjelma, jonka avulla hakkeri saa tietokoneen käyttöönsä. Näistä saastuneista koneista muodostuneista verkoista käytetään nimitystä bottiverkko (botnet). Kun tämä bottiverkko on tarpeeksi suuri, voi hyökkääjä suorittaa DDoS-hyökkäyksen isompiakin palvelimia vastaan.

Kuva 1: DDoS hyökkäyksen toiminta periaate [2].

Kuten kuvasta yksi nähdään, hajautetun palvelunestohyökkäyksen suorittava hyökkääjä ei hallitse suoraan bottiverkon koneita. Hyökkääjä ottaa bottiverkon koneisiin yhteyden niin sanottujen käsittelijäkoneiden kautta. Näin hyökkääjä saa suojatuksi omaa yksityisyyttään, koska uhrikoneissa näkyy vain käsittelijöiden ottama yhteys koneeseen. Käsittelijäkoneet voivat myös sijaita missä päin maailmaa tahansa, joten ilman kansainvälistä yhteistyötä viranomaisten on erittäin hankalaa saada selville hyökkääjän todellista sijaintia. Koneiden hallintaan hakkereilla on olemassa hyvin edistyneitä client-server -ohjelmia ja näistä tunnetuimpia ovat Trinoo, Tribe Flood Network, Stacheldraht, TFN2K, Shaft ja Mstream [3].

Palvelunestohyökkäysten menetelmät

Alkujaan DoS-hyökkäys oli vain tulvahyökkäystä, jossa hyökkääjä yksinkertaisesti lähetti enemmän liikennettä kuin uhrikone pystyi käsittelemään [3]. Tämä kuitenkin vaati hyökkääjältä nopeamman nettiyhteyden kuin kohteella oli [3]. Vaikka nykyään puolustusmekanismit nettihyökkäyksiä vastaan ovat kehittyneet, näinkin alkeellisen hyökkäyksen estäminen täysin on vaikeaa [3]. Puolustusmenetelmien kehittyessä myös DoS-hyökkäyksien menetelmiä on kehitelty ajan mittaan. Erilaisia DoS-menetelmiä on monia ja niitä keksitään lisää sitä mukaa, kun ohjelmista tai protokollista löydetään haavoittuvuuksia. Seuraavaksi esitellään yleisimpiä DoS-hyökkäysmenetelmiä.

Ping of Death -hyökkäys hyödyntää Berkeleyn TCP/IP-pinoa [3]. Tässä hyökkäyksessä oli yksinkertaisesti kyse yli 65535-bittisten ping-pakettien lähettämisestä uhrille [3]. Suurin sallittu IP-paketin koko, joka pystyttiin luomaan hyödyntämällä TCP/IP-protokollan pakettien jakamista on 65535 bittiä [9]. Vuonna 1996 hakkerit alkoivat hyödyntää tätä ominaisuutta hyökkäyksissään lähettämällä paloiteltuja IP-paketteja uhrille, joka kokosi paketit yhteen [9]. Pakettien kokoaminen tarkoitti kuitenkin sitä, että uhri sai käsiinsä IP-paketin, joka oli sallittua kokoa suurempi [9]. Monet käyttöjärjestelmät eivät ymmärtäneet näin suurta IP-pakettia, mikä johti siihen, että uhri käynnistyi uudestaan tai kaatui [4][9]. Vuonna 1997 käyttöjärjestelmien kehittäjät tekivät korjauksia tätä hyökkäystä vastaan estääkseen vastaavat hyökkäykset, mutta tästä huolimatta monet nettisivut edelleen hylkäävät kaikki ping- eli ICMP-viestit (Internet Control Message Protocol) palomuurissaan [9].

SYN-hyökkäyksessä hyödynnetään TCP-protokollan kolmen kättelyn yhteydenmuodostamista, joka tehdään SYN- ja ACK-viestien avulla [3][4]. Yhteyttä muodostettaessa yhteyden avaaja lähettää SYN-viestin, johon se odottaa saavansa SYN ACK -vastauksen (synchronize acknowledge) [3][10]. Yhteyden avaajan saatua SYN ACK -vastauksen. lähetetään vielä ACK-vastaus kohteelle, jolloin saadaan yhteys muodostetuksi [10]. SYN-hyökkäyksessä hyökkääjä kuitenkin lähettää uhrilleen SYN-viestejä, joissa IP-osoite on väärennetty, jolloin uhri jää odottamaan ACK-viestiä, jota ei koskaan saavu [2][3][10]. Tätä lähetystä jatketaan niin kauan, että uhrin puskuri täyttyy hyökkääjän SYN-viesteistä [3]. Tällöin uhri ei pysty vastaamaan muille, koska sen yhteysjono on täynnä puoliavonaisia TCP-yhteyksiä [3][4]. Avonaisten yhteyksien jono kuitenkin tyhjennetään ajoittain, koska normaalisti vastaus SYN ACK -viestiin tulee muutamien millisekuntien viiveellä [10].

Teardrop-hyökkäyksessä käytetään IP:n paketin osittamisalgoritmia, jotta voitaisiin lähettää uhrille korruptoituneita IP-paketteja [3]. Normaalisti IP-paketti saattaa pilkkoutua osiin matkallaan kohteeseen, jossa alkuperäinen paketti kootaan saaduista paloista [4]. Teardrop-hyökkäyksessä uhrille lähetetään vain korruptoituneita paketteja ja kun uhri yrittää koota näistä väärin rakennetuista paloista alkuperäistä pakettia, se saattaa kaatua [4].

Smurf-hyökkäyksessä hyökkääjä lähettää ping-kyselyn kolmannen osapuolen broadcast-osoitteeseen, jossa lähettäjäksi on väärennetty uhriksi joutuneen IP-osoite [3]. Tällöin kaikki samassa verkossa olevat laitteet vastaanottavat tämän kyselyn ja lähettävät vastauksen uhrikoneeseen [3][5]. Tämä on erittäin tehokas tapa toteuttaa palvelunestohyökkäys, koska tässä hyökkäyksessä uhrin oma aliverkko toteuttaa hyökkääjän suorittaman hyökkäyksen hajautettuna [4].

Palvelunestohyökkäykset maailmalla ja työkaluja hyökkäysten suorittamiseen

Operaatio takaisinmaksu (Operation Payback) on yksi laajoista viimeaikaisista palvelunestohyökkäyksistä, joka ulottui oletettavasti myös Suomeen [6]. Tämän hyökkäyksen suoritti nettiaktivistien ryhmittymä Anonymous, jonka tavoitteena oli suorittaa palvelunestohyökkäys Airplex Softwarea vastaan [7]. Airplex Software oli aikaisemmin palkattu tekemään palvelunestohyökkäyksiä torrent-sivustoja vastaan muutamien elokuvastudioiden toimesta, mutta juuri ennen hyökkäyksen alkamista Airplex Software oli ottanut nettisivunsa alas itse, jolloin kohteeksi valittiin muutamia tekijänoikeus- ja lakitoimistojen nettisivuja [7]. Itse palvelunestohyökkäys aloitettiin syyskuussa 2010, jolloin ensimmäisinä kohteina olivat Motion Picture Association of America (MPAA) ja International Federation of the Phonographic Industry [7]. Suomessa tämän hyökkäyksen kohteeksi joutui TTVK:n (Tekijänoikeuden tiedotus- ja valvontakeskus) antipiracy.fi-sivusto [6]. Tässä operaatiossa palvelunestohyökkäys suoritettiin muunnellulla Low Orbit Ion Cannon -ohjelmalla (LOIC), joka on vapaan lähdekoodin verkkotestiohjelma [6][7][8]. Suurin osa tämän ohjelman aiheuttamasta liikenteestä pystyttiin kuitenkin poistamaan hyvillä palomuurisäännöillä [8].

Joulukuussa 2010 operaatio takaisinmaksun henkilöt jatkoivat palvelunestohyökkäysten tekemistä kohteinaan muun muassa PayPal, the Swiss bank PostFinance, the Swedish Prosecution, MasterCard ja Visa [7]. Tämän operaation nimeksi annettiin "Operation Avenge Assange" [7]. Nämä hyökkäykset tehtiin, koska Amazon, PayPal, BankAmerica, PostFinance, MasterCard ja Visa lopettivat yhteistyön tai jäädyttivät Wikileaksin lahjoitukset [7]. Suurin syy yhteistyön lopettamiseen oli luultavasti poliittinen painostus sen jälkeen, kun Wikileaks julkaisi 250000 luottamuksellista Yhdysvaltojen diplomaattisia sähkettä [7][12]. Hyökkäysten johdosta esimerkiksi PayPalin blogi oli alhaalla yli kahdeksan tuntia [11].

Nykyään on siis kohtalaisen helppoa suorittaa palvelunestohyökkäys monien valmiiden ohjelmien avulla. Valmiita ohjelmia on tarjolla monia ja osa näistä on jopa avointa lähdekoodia. Näitä ohjelmia on muun muassa juuri mainittu LOIC:lla ja hiljattain uutisissa olleella THC-SSL-DOS-työkalulla [13]. Näistä jälkimmäinen on THC-hakkeriryhmän (The Hackers Choice) vuoden 2011 lokakuun aikana julkaisema työkalu palvelunestohyökkäyksien suorittamiseen [13]. Tämä työkalu hyödyntää ssl/tls-protokollan uudelleenneuvotteluominaisuutta (SLL Renegotiation) avaamalla salatun (SLL) yhteyden uhrikoneeseen ja tämän jälkeen suorittaa useita uudelleenneuvotteluja [13]. Hyökkäyksessä tarvitsee muodostaa vain yksi yhteys uhriin, mutta se vastaa tilannetta, jossa uhriin otetaan useita salattuja yhteyksiä ja usemmiten tämä kuluttaa enemmän uhrin resursseja [13][14]. Tämän hyökkäyksen saa kuitenkin estetyksi ottamalla SSL-uudelleenneuvottelun pois päältä tai rajoittamalla uudelleenneuvotteluiden määrää [14].

Päätelmät / yhteenveto

Palvelunestohyökkäyksiä on siis monia erilaisia ja jokaisella on oma tarkoituksensa. Palvelunestohyökkäysten estäminen on erittäin hankala tehtävä, eikä sitä aivan täysin voida tehdäkään. Palvelunestohyökkäyksen Internet-liikenne on täysin normaalia liikenettä sillä erolla, että liikennemäärä on kasvanut. Näistä hyökkäyksistä voidaan kuitenkin muodostaa sormenjälkiä ja jakaa näitä eteenpäin, jolloin tietoturvaohjelmistot voivat huomata poikkeavan liikenteen ja tunnistaa sen hyökkäykseksi. Viranomaisten kansainvälinen ja aktiivinen yhteistyö on ainoa tapa, jolla hyökkäyksiä voidaan hillitä. Nykyisen tasoinen yhteistyö eri viranomaisten välillä antaa kuitenkin hyökkääjille paljon liikkumatilaa ja taitava hyökkääjä osaa peittää jälkensä, jolloin kiinnijääminen ei ole niin todennäköistä.

Lähteet