Palvelunestohyökkäysten lyhyt oppimäärä

Palvelunestohyökkäykset ovat viime aikoina nousseet uutisiin yhä enemmän. Suomessa Kanta -palveluun kohdistui jonkinlainen hyökkäys, ja useat maailmanlaajuiset palvelut kärsivät katkoista, kun Dyn DNS -palvelua vastaan hyökättiin. Viimeisin hyökkäys Suomessa kohdistui lämmitysjärjestelmiin.

Mitä hyökkäykset käytännössä ovat

Palvelunestohyökkäys pyrkii nimensä mukaisesti estämään palvelun käytön. Tämä saavutetaan kuluttamalla palvelun käytössä olevia resursseja. Näitä resursseja ovat esimerkiksi verkkoyhteydet, muisti, prosessoriteho sekä levytila.

Resursseja voidaan kuluttaa useilla eri tavoilla. Internetin alkuaikoina hyökkäyksen kohteena olleen palvelimen verkkoyhteys oli mahdollista tukkia ns. “ping floodilla“. “Ping” on eräs yleisimmistä verkkoyhteyksien tarkastamiseen käytetyistä komennoista. Ping lähettää kohdekoneelle viestin, johon kohdekone vastaa, jolloin voidaan todeta, että yhteys toimii. Ping -komento lähettää oletusasetuksilla 64 tavun paketin kerran sekunnissa, mutta paketin kokoa ja lähetystaajuutta voi helposti vaihtaa. “Ping flood” tehdään määräämällä paketit lähtemään niin nopeasti kuin mahdollista. Tämän jälkeen kyse oli lähinnä siitä, kummalla oli parempi verkkoyhteys. “Ping flood” kuluttaa lähinnä verkon kaistaa, mutta joissain tapauksissa vastaaminen kuluttaa myös prosessoritehoa.

”Ping floodin” torjuminen on nykyään lähes automaattista. Järjestelmät on jo oletusasetuksilla konfiguroitu torjumaan tämän kaltaiset hyökkäykset. “Ping flood” on normaalien, täysin hyväksyttävissä olevien komentojen väärinkäyttöä. Ongelmaksi muodostuu usein se, kuinka erottaa hyökkäys normaalista liikenteestä. ”Ping floodin” tapauksessa tämä on helppoa, mutta monessa muussa tapauksessa yllättävän vaikeaa.

Ping -komentoa voidaan käyttää hyökkäämiseen myös toisella tapaa. Ping -komento lähettää Internet Control Message Protocol (ICMP) ECHO -viestin. Protokolla tarkoittaa, että lähetetyille viesteille on määritelty tarkka sisältö. “Ping of Death” -hyökkäyksessä lähetettiin väärin muotoiltu viesti, jota vastaanottava pää ei osannut tulkita oikein. Tällaisten hyökkäyksien onnistuminen vaatii, että vastaanottavassa päässä ei ole varauduttu virheellisiin viesteihin. Internetin alkuaikoina asenne oli lähinnä “miksi pitäisi, protokollahan määrää, mitä pitäisi tulla”.

Virheellisiksi viesteiksi voidaan käsittää myös erilaiset yhteyksien laadulla kikkailevat hyökkäykset. Eräs kuuluisimmista oli “Hidas HTTP” -hyökkäys Slow HTTP Attack, Slowloris. Tämä hyökkäys avaa normaalin yhteyden kohdekoneelle, mutta lähettää omat viestinsä tarkoituksellisen hitaasti. Koska tähän ei oltu osattu varautua, kulutti hyökkäys kohdekoneen resursseja. Syynä tähän on Apache HTTP -palvelimen toteutustapa, jossa jokainen yhteys vaatii oman säikeen (thread), jotka kuluttavat sekä muistia että prosessoritehoa.

Slowloris sekä Ping of Death -hyökkäykset perustuvat käytännössä virheellisiin oletuksiin tai ohjelmointivirheisiin. Näitä on ollut todella paljon, ja tulee myös jatkossa olemaan. Tällöin kun hyökkäys havaitaan, voidaan usein tehdä korjauksia, jotka poistavat kokonaisia hyökkäyskategorioita.

Kaikkia edellisiä hyökkäyksiä voidaan käyttää myös hajautetusti. Hajautetussa hyökkäyksessä hyökkääjä käyttää useita laitteita hyökkäyksen suorittamiseen. Tämä on tähän asti tapahtunut pääasiassa kahdella eri tavalla.

Ensimmäiset hajautetut hyökkäykset käyttivät hyväkseen erästä Internetin protokollien perusominaisuutta. “Internet Protocol” (IP) käyttää otsikkoa (header), joka kertoo mm. lähettäjän sekä vastaanottajan IP-osoitteen. Lähettäjän osoitteen väärentämällä on mahdollista ohjata vastaukset hyökkäyksen kohteena olevalle koneelle. Näin on mahdollista väärentää hyökkäyksen lähde ja täten vaikeuttaa hyökkäyksen havaitsemista sekä jäljittämistä.

Lähettäjän väärentäminen on erityisen hyödyllistä, kun vastauspaketit ovat huomattavasti suurempia kuin lähetetyt paketit. Tällöin puhutaan vahvistamishyökkäyksistä. Hyvä esimerkki tästä oli nimipalvelujen (DNS) hyödyntäminen. Näissä hyökkäyksissä hyökkääjä lähettää nimikyselyn “kerro minulle kaikki tietämäsi osoitteet”, joka voi palauttaa todella isoja vastauksia. Nämä vastaukset ohjataan kohdekoneelle, jolloin kohdekoneen verkkoyhteyteen kohdistuu helposti satoja kertoja suurempi rasitus kuin hyökkäyskoneen yhteyteen. Tämä hyökkäys oli siis yhdistelmä vääriä oletuksia sekä osoitteen väärentämistä.

Osoitteen väärentäminen on siinä mielessä erikoinen hyökkäys, että se olisi helppo estää, mikäli kaikki yhteyksien tarjoavat suostuisivat tämän tekemään. Palveluntarjoaja voi tarkistaa ulospäin liikkuvien viestien otsikkotiedot ja pudottaa virheelliset pois. Tätä eivät kuitenkaan kaikki suostu tekemään.

Erilaisten bottiverkkojen käyttö on ollut viimeaikaisten hyökkäysten taustalla. Bottiverkko rakennetaan hyödyntämällä erilaisissa laitteissa ja ohjelmissa olevia haavoittuvuuksia. Valitettavaa on, että bottiverkon rakentaminen ei oikeastaan vaadi kovinkaan suuria taitoja. Nykyään Internettiin on kytketty monia laitteita, joita ei koskaan päivitetä. Tällöin on mahdollista tehdä automaattisia työkaluja, jotka hyödyntävät pahimmassa tapauksessa todella vanhoja haavoittuvuuksia. Bottiverkko koostuu usein hyökkäyslaitteista ja niitä hallitsevista palvelimista.

Bottiverkon hyökkäys on todella vaikea torjua. Koska hyökkääviä laitteita on paljon, hyökkäyksen ei tarvitse perustua minkään haavoittuvuuden hyödyntämiseen vaan voidaan käyttää täysin normaaleja viestejä, kuten verkkosivun lataus. Tätä on täysin mahdoton erottaa normaalista käytöstä millään teknisellä keinolla. Mikäli näitä viestejä aletaan pudottamaan, putoaa myös täysin oikeita viestejä, jolloin palvelun käyttö on estetty. Ainoa keino torjua tällainen hyökkäys on omata tarpeeksi resursseja hyökkäyksen kestämiseen ja sen jälkeen yrittää jollain keinolla saada hyökkääviä laitteita lopettamaan. Hyökkäyksen lopettaminen on todella vaikeaa, tärkeimpänä keinona on hallintapalvelimien poistaminen verkosta. Hyökkäävien laitteiden poistaminen verkosta ottamalla yhteyttä niiden omistajiin tai heidän palveluntarjoajiinsa on vaikeaa pelkästään niiden lukumäärän vuoksi.

Hajautettujen hyökkäyksien yleistymisen vuoksi ovat hyökkäysten estämiseen erikoistuneet yritykset tulleet yhä tärkeämmiksi. Tällöin yhteydet palveluihin kulkevat suojaavan yrityksen palvelimien kautta, ja heillä on käytössä todella hyvät verkkoyhteydet sekä kokemusta hyökkäyksien torjumisesta.

Miksi palvelunestohyökkäyksia tehdään?

Usein syynä on pelkästään kiusanteko. Hyökkäyksen teko on helppoa eikä vaadi paljoa teknistä osaamista, hyökkäyksiä voi jopa ostaa palveluina. Toinen yleinen syy on viestinnän vaikeuttaminen. Hyökkäyksiä on kohdistettu mm. tietoturva-asiantuntijoihin sekä poliittisiin kohteisiin.

Hyökkäyksiä käytetään jonkin verran osana kohdistettuja hyökkäyksiä. Palvelunestohyökkäys on todella näkyvä, ja ongelman ratkaisu vie myös henkilöstön aikaa ja henkistä kapasiteettia. Tällöin voi olla helpompaa suorittaa muita hyökkäyksiä samaa kohdetta vastaan.

Viimeisenä syynä on kiristys. Usealle yritykselle verkkokaupan toimivuus on elinehto, mutta heillä ei ole riittäviä resursseja isojen hyökkäyksien torjuntaan. Esimerkkinä tästä on “Armada Collective“, joka luultavasti lähetti vain uhkauskirjeitä ilman todellista hyökkäyksen uhkaa.

Hyviä lähteitä asioista kiinnostuneille ovat:

Krebs on Security, seuraa uutisia sekä kirjoittaa syvällisiä artikkeleita
Schneier on Security, hieman enemmän keskittyy tausta-artikkeleihin

Edellä olleet esimerkit ovat kaikki todellisia hyökkäyksiä, mutta eivät enää nykyään kovinkaan suuressa suosiossa lukuun ottamatta bottiverkkoja. Tekstiä kirjoitettaessa yhtään palvelua ei vahingoitettu.