Domain Generating Algorithm (DGA) on ohjelma tai aliohjelma, joka tarjoaa haittaohjelmille uusia verkkotunnuksia tarvittaessa tai lennossa.
historia
Kraken oli ensimmäinen haittaohjelmaperhe, joka käytti DGA: ta (vuonna 2008). Myöhemmin samana vuonna Conficker teki DGA: sta paljon tunnetumman.
mitä hyötyä siitä on?
DGA-tekniikka on käytössä, koska kiinteästä verkkotunnuksesta tai IP-osoitteesta riippuvat haittaohjelmat estetään nopeasti, mikä sitten estää toimintaa. Joten, sen sijaan, että tuo uuden version haittaohjelmasta tai asettaa kaiken uudelleen uudella palvelimella, haittaohjelma siirtyy uuteen verkkotunnukseen säännöllisin väliajoin.
esimerkki DGA: sta käytännössä on C&C-palvelimet botneteille ja kiristysohjelmille. Jos pystyisimme estämään nämä tai kaatamaan ne, katkaisisimme yhteyden uhrien ja uhkaajan välillä. Botit eivät enää pystyisi hakemaan uusia ohjeita, eivätkä kiristyshaittaohjelman saastuttamat koneet pystyisi pyytämään salausavaimia ja lähettämään käyttäjätietoja.
C&C-palvelimen toimialueen jatkuvaa vaihtumista kutsutaan joskus myös nimellä ”Domain Fluxing” tai ”Fast Fluxing”, joka itse asiassa on viittaus vanhempaan tekniikkaan, joka perustuu DNS-kuormantasausjärjestelmän väärinkäyttöön.
lisätietoja siitä, miten se toimii
jotta ymmärtäisimme paremmin, miten nämä algoritmit toimivat, tarkastellaan vaatimuksia, jotka niiden on täytettävä:
- rutiinien on luotava verkkotunnuksia, jotka ovat ennustettavissa viestintäketjun molemmille puolille.
- rutiinien on oltava tietoturvatutkijoille mahdollisimman arvaamattomia.
- verkkotunnusten rekisteröintimaksun on oltava alhainen, koska verkkotunnuksia käytetään valtavasti.
- nopeuden tarve voi olla valtava.
- rekisteröintiprosessin on oltava anonyymi tai vähintään jäljittämätön.
ennustettavuuden saavuttamiseksi, mutta edelleen vaikea tutkimus, DGA-rutiinit käyttävät muutamia rakennuspalikoita:
- Seed, peruselementti
- alkuaine, joka muuttuu ajan myötä
- ylätason verkkotunnukset (TLDs)
Image courtesy of Cisco Blog
siemen voi olla lause tai numero. Käytännössä mitä tahansa, mitä uhkaaja voi muuttaa mielensä mukaan (esim.vaihtaessaan uuteen versioon), ja jota voidaan käyttää algoritmissa. Siemen ja aikaan perustuva Elementti yhdistetään algoritmissa verkkotunnuksen luomiseksi ja tämä ”elin” yhdistetään johonkin käytettävissä olevista TLD: istä.
huomaa, että aikaan perustuvan elementin ei tarvitse olla jotain päivämäärän ja kellonajan kaltaista. Se voi olla jotain muuta, joka vaihtelee ajan kanssa, kuten esimerkiksi trendiaihe Twitterissä tietyssä maassa yhteyden hetkellä. Itse asiassa, jotain, joka on vaikea ennustaa on parempi, koska tämä vaikeuttaa tutkijoiden rekisteröidä tiettyjä verkkotunnuksia etuajassa ja siepata liikennettä tai tehdä haltuunotto.
toinen kikka vastatoimien karkottamiseksi on se, ettei käytetä kaikkia algoritmin tuottamia verkkotunnuksia, vaan vain tiettyjä. Tämä lisää merkittävästi niiden verkkotunnusten määrää, joita tutkijat tarvitsevat rekisteröityäkseen, jos he aikovat pysäyttää liikenteen.
kun on kyse TLDs: stä, .xyz, .top, ja .bid ovat erittäin suosittuja tällä hetkellä. Tämä johtuu aiemmin mainituista syistä: alhaiset kustannukset ja nopea saatavuus, koska rekisterinpitäjät sallivat automaattiset ja anonyymit verkkotunnusten rekisteröinnit.
Yhteenveto
verkkotunnuksia tuottavat algoritmit ovat verkkorikollisten käytössä estääkseen palvelimiaan joutumasta mustalle listalle tai kaatumasta. Algoritmi tuottaa satunnaisen näköisiä verkkotunnuksia. Ideana on, että kaksi samaa algoritmia käyttävää konetta ottaa yhteyttä samaan verkkotunnukseen tiettynä aikana, jolloin ne voivat vaihtaa tietoja tai hakea ohjeita.
Links
for more technical details, we can recommend: Dissecting Domain Generation Algorithms
And an example: Threat Spotlight: Dyre/Dyreza: an Analysis to Discover the DGA
Pieter Arntz