Tietomurtojen havaitseminen DNS-kyselyistä

jussi-pekka liimatainen

Jussi-Pekka Liimatainen

Toukokuu 30, 2014 at 20:20

Nixu julkaisi hiljattain white paperin aiheesta Have I been compromised, jossa käytiin läpi tietomurron eri vaiheita aina murrosta jälkitoimiin. Käyn tässä blogikirjoituksessani syvemmin läpi organisaation sisäisen nimipalvelun eli DNS:n roolia tietomurron havaitsemisessa.

Verkkotunnuksia käytettäessä suoritetaan aina DNS-kysely jolla verkkotunnukselle selvitetään sitä vastaava IP-osoite. Tämä siis pätee myös saastuneille koneille asentuneisiin haitakkeisiin, jotka ottavat yhteyttä hallintapalvelimeensa (Command & Control) verkkotunnuksella. Usein verkkotunnus johon haitake ottaa yhteyttä on kovakoodattu haitakkeen koodiin, joten se ei muutu. Kehittyneemmät haitakkeet käyttävät ns. fastflux-tekniikkaa, jossa algoritmi generoi jatkuvasti uusia verkkotunnuksia havainnoinnin ja blokkauksen välttämiseksi. Edellä mainittuja on tosin vaikea havaita automatiikalla niiden satunnaisuuden takia. Lokeja tutkimalla ja vihamielisiin osoitteisiin tehtäviä nimipalvelukyselyjä seuraamalla voidaan käynnissä olevasta tietomurrosta saada kuitenkin vihiä.

Pikalista tehtäviin asioihin:

  • Kerää DNS-lokit! – Lokia tulee paljon joten mieti säilytysaika.
  • Salli DNS-portti 53 ulos vain hyväksyttyihin DNS-resolvereihin ja monitoroi ei-sallittuja kyselyitä.
  • Tarkkaile DNS-lokeista yrityksesi nimeä kolmantena asteena domain-nimessä, esim. yritys.paha.org
  • Tunnista nimipalvelukyselyt tunnettuihin vihamielisiin osoitteisiin.
  • Tarkkaile yli 512 tavua pitkiä DNS-paketteja ja DNS-liikenteen datamäärää.
  • Tunnista pitkät verkkotunnukset ja haut verkkotunnuksiin joita ei ole olemassa.

Liikennöinti vihamielisiin osoitteisiin (Blacklisting)

Liikennöinti tunnettuihin ”pahoihin” osoitteisiin voidaan havaita käyttämällä valmiita osoitelistoja ja verrata niitä esimerkiksi SIEM-tuotteella DNS-lokeihin. Muun muassa seuraavia listoja on saatavilla:

http://www.malwaredomains.com
https://zeustracker.abuse.ch
http://pgl.yoyo.org
http://mtc.sri.com
http://www.malwarepatrol.net

Liikennöinti pahoihin osoitteisiin voidaan estää myös edullisella DNS sinkhole -lähestymistavalla. Yrityksen DNS-kyselyt ohjataan DNS sinkhole -palvelimelle, jonka pahojen verkkotunnusten listaa vasten tarkistetaan onko osoite paha. Mikäli osoite on paha, voidaan verkkotunnusta kysyneelle koneelle palauttaa väärä IP-osoite, joka ohjaa sivulle, jossa ilmoitetaan osoitteen olevan haitallinen/yrityksen politiikan vastainen. Jotta sinkhole-tekniikka toimii, tulee nimipalvelukyselyiden kulkea yrityksen DNS-palvelinten kautta, joka voidaan varmistaa sillä että palomuurissa kielletään muut DNS-kyselyt. Tämä sen takia, että osa haitakkeista käyttää myös omia DNS-palvelimia. Osa kaupallisista tuotteista hyödyntää myös sinkhole-tekniikkaa ja tästä esimerkkinä PaloAlto. DNS sinkhole voidaan tehdä edullisesti avoimen lähdekoodin työkaluin ja tästä esimerkkinä Bind-ohjelmistolla toteutettu sinkhole.

Liikennöinti pahoihin osoitteisiin (Whitelisting)

Yksi lähestymistapa on verrata kysyttyjä domain-osoitteita Alexan tarjoamaan miljoonan yleisimmän verkkotunnuksen listaan (pakatussa muodossa täällä) ja hälyttää listan ulkopuolisista osoitteista. F-Securen mukaan tällä menetelmällä voidaan jopa välttää 99,61% verkkohyökkäyksistä.


Yrityksen tietojen vuotaminen

Myös yrityksen tiedonvuotamisvaiheessa (eng. data exfiltration) voidaan hyödyntää DNS-protokollaa. DNS -protokolla sallii UDP-protokollaa käyttäen 512 tavun hyötykuorman, kun EDNS-lisäys sallii TCP-protokollaa käyttäen jopa 4096 tavua hyötykuorman. Ilmaisia ohjelmia datan siirtämiseen DNS:n avulla on mm. Iodine. DNS-tunnelin käyttö vaatii että hyökkääjällä on hallinnassa verkkotunnus tai aliverkkotunnus, johon hän tekee nimipalvelukyselyn. Esimerkiksi hyökkääjä kysyy osoitetta fdsfok43dfbvfdshprsådf.paha.org jossa on aliverkkotunnukseen koodattu ulos kuljetettava data.

NGFW- ja IPS-tuotteet myös pystyvät havaitsemaan DNS-tunneleita niihin tehdyillä sormenjäljillä. NSTX DNS -tunnelia voidaan yrittää havaita esimerkiksi etsimällä DNS TXT-kyselyitä joissa on hyökuormassa ”cT”-merkkijono. Lisää aiheesta SANS:n julkaisemassa artikkelissa ”Detecting DNS tunneling”.

DNS-tunneleita voidaan havaita myös tarkkailemalla DNS-pakettien kokoa ja DNS-liikenteen datamäärää. Tätä voidaan tehdä palomuurien, flow-datan tai IPS/IDS-laitteiden avulla.
 

Epäilyttävät verkkotunnukset

DNS-liikenteestä pystyy tunnistamaan asioita, jotka vaativat lisätutkintaa. Tällaisia asioita ovat pitkät DNS-nimet. DNS-nimi voi olla maksimissaan 255 merkkiä pitkä ja verkkotunnus/aliverkkotunnus 63 merkkiä kuten aliverkkotunnus.verkkotunnus.fi . Tarkkaile domain-nimiä jotka ovat kokonaisuudessaan yli 63-merkkiä pitkiä tai verkkotunnus/aliverkkotunnus on yli 13-merkkiä pitkä.
Epäonnistuneet DNS-kyselyt yrityksen alidomaniin voivat olla merkki kohteiden etsinnästä esim. kyselyt intra.yritys.fi, ad.yritys.fi joita ei ole olemassa, mutta voisivat hyvin olla olemassa ja paljastaisivat kohteita.