
Uurides phishing'uga, botivõrkudega, petuskeemide ja kurjategijate häkkerigruppidega seotud juhtumeid, on Group-IB eksperdid juba aastaid kasutanud graafilist analüüsi erinevate suhete väljaselgitamiseks. Erinevates juhtumites on oma andmekogud, oma seose tuvastamise algoritmid ja konkreetsed ülesanded arvestavad liidesed. Kõik need tööriistad on olnud Group-IB sisemine areng ja need on olnud kergesti kättesaadavad vaid meie töötajatele.
Võrgusüsteemi graafiline analüüs (võrgu graaf) sai meie esimeseks sisemiseks tööriistaks, mille integreeerisime kõikidesse ettevõtte avalikesse toodetesse. Enne oma võrgu graafi loomist analüüsisime palju sarnaseid arendusi turul ja ei leidnud ühtegi toodet, mis vastaks meie enda vajadustele. Selles artiklis räägime, kuidas me võrgugraafi lõime, kuidas me seda kasutame ja milliste raskustega silmitsi seisime.
Dmitri Volkov, Group-IB tehnoloogiadirektor ja küberluure osakonna juht
Mida oskab Group-IB võrgu graaf?
Uurimised
Alates Group-IB asutamisest 2003. aastal on kuri-detektsioon, deanonüümimine ja küberkurjategijate vastutusele võtmine olnud meie töös peamine prioriteet. Ükski küberrünnaku uurimine ei ole möödunud ilma ründajate võrgu infrastruktuuri analüüsimata. Meie teekonna alguses oli see üsna töömahukas 'käsitöö', et leida seoseid, mis võiksid aidata kurjategijate identifitseerimisel: teave domeeninimede, IP-aadresside, serverite digitaallõigete jne kohta.
Enamik ründajatest püüab internetis tegutseda maksimaalselt anonüümselt. Kuid nagu kõik inimesed, teevad nad vigu. Peamine eesmärk sellise analüüsi juures on leida ründajate "valged" või "hallid" ajaloolised projektid, mis on seotud kurjategijate käesoleva intsidentiga, mida me uurime. Kui suudame avastada "valged projektid", siis ründaja leidmine muutub reeglina triviaalseteks ülesanneteks. Hallide puhul on otsimisele kuluvat aega ja vaeva rohkem, kuna nende omanikud püüavad registreerimisandmeid anonüümseks muuta või varjata, kuid võimalused püsivad siiski piisavalt kõrged. Reeglina kui ründajad alustavad oma kuritegevust, pööravad nad vähem tähelepanu enda turvalisusele ja teevad rohkem vigu. Seega, mida sügavamale me suudame ajalukku sukelduda, seda suuremad on võimalused eduka uurimise jaoks. Just seetõttu on hea ajaloo jaotuse nädalavõrgustikku väga oluline element sellises uurimises. Ütlematagi selge, et mida rohkem sügavaid ajaloolisi andmeid omab ettevõte, seda kvaliteetsem on tema graafik. Oletame, et 5-aastane ajalugu võib aidata lahendada näiteks 1-2 10-st kuriteost, samas kui 15-aastane ajalugu suurendab võimalusi kõigi kümne lahendamiseks.
Phishingi ja pettuste tuvastamine
Igal korral, kui me saame kahtlase linki phishingu, pettuse või piraatluse ressursside kohta, loome automaatselt seotud võrgureelte graafiku ja kontrollime kõiki leitud hoste sarnase sisu osas. See võimaldab meil leida nii vanu phishingu saite, mis on aktiivsed, kuid tundmatud, kui ka täiesti uusi, mis on valmistatud tulevaste rünnakute jaoks, kuid pole veel kasutuses. Elementaarne näide, mis esineb piisavalt sageli: me leidsime phishingu saidi serverist, kus on vaid 5 saiti. Kontrollides igaüht neist, leiame phishingu sisu ka teistes saitides, mis tähendab, et saame blokeerida 5 asemel 1.
Tagapindade otsimine
See protsess on vajalik, et selgitada välja, kus tõeliselt asub pahatahtlik server.
99% kaardipoode, häkkerifoorumeid, mitmeid andmepüügiga seotud ressursse ja teisi pahatahtlikke servereid peidetakse nii nende enda proxy-serveritega kui ka seaduslike teenuste, nagu Cloudflare, proxy-de taga. Teadlikkus tõelisest taustsüsteemist on uurimiste jaoks väga oluline: selgub hostimisteenuse pakkuja, kellelt saab serveri konfiskeerida, ja tekib võimalus luua sidemeid teiste pahatahtlike projektidega.
Näiteks, kui teil on andmepüügiga seotud sait pangakaarditeabe kogumiseks, mis resolveerub IP-aadressile 11.11.11.11, ja kaardipood, mis resolveerub IP-aadressile 22.22.22.22. Analüüsi käigus võib selguda, et nii andmepüügiga seotud saidil kui ka kaardipoel on ühine taustsüsteemi IP-aadress, näiteks 33.33.33.33. Need teadmised võimaldavad luua seoseid andmepüügirünnakute ja kaardipoe vahel, kus võib-olla müüakse pangakaardi andmeid.
Sündmuste korrelatsioon
Kui teil on kaks erinevat sündmust (ütleme, IDS-is) erineva pahavara ja erinevate rünnaku juhtimise serveritega, käsitlete neid kahte sõltumatute sündmustena. Kuid kui pahatahtlike infrastruktuuride vahel on tugev seos, on selge, et need ei ole erinevad rünnakud, vaid ühe, keeruka mitmeastmelise rünnaku etapid. Ja kui üks sündmus on juba atribueeritud mõne rünnakugrupi alla, saab ka teise sündmuse määrata sama grupi alla. Loomulikult on atribueerimisprotsess oluliselt keerulisem, seega võtke kirjutatut kui lihtsat näidet.
Indikaatorite rikastamine
Ärme pühenda sellele liiga palju tähelepanu, kuna see on kõige levinum stsenaarium graafide kasutamiseks küberjulgeolekus: annad sisendina ühe indikaatori ja saad väljundina kimbu seotud indikaatoreid.
Mustrite tuvastamine
Mustrite tuvastamine on efektiivseks jahtimiseks hädavajalik. Graafid võimaldavad mitte ainult leida seotud elemente, vaid ka tuvastada ühised omadused, mis on omased teatud häkkerigruppidele. Nende ainulaadsete omaduste teadmine võimaldab tuvastada ründajate infrastruktuuri juba ettevalmistusetapis, ilma rünnakut kinnitavate tõenditeta, nagu andmepüügikirjad või pahavara.
Miks me lõime oma võrgu graafi?
Kordan, et oleme kaalunud erinevaid tarnijate lahendusi, enne kui jõudsime järeldusele, et peame arendama oma tööriista, mis suudab teha seda, mida ükski olemasolev toode ei suuda. Selle loomiseks kulus mitu aastat, mille jooksul oleme seda korduvalt täielikult muutnud. Kuid hoolimata pika arendustöö ajast, ei ole me siiani leidnud ühtki analooge, mis vastaksid meie nõudmistele. Oma toote abil suudsime lõpuks lahendada praktiliselt kõik avastatud probleemid olemasolevates võrgu graafides. Allpool vaatleme neid probleeme üksikasjalikult:
Probleem
Lahendus
Andmete erinevate kogumite tarnija puudumine: domeenid, passive DNS, passive SSL, DNS-kirjed, avatud pordid, käivitatud teenused pordil, failid, mis suhtlevad domeeninimede ja IP-aadressidega. Selgitus. Tavaliselt pakuvad tarnijad eraldi andmetüüpe ja täieliku pildi saamiseks peab ostma tellimused kõigilt. Kuid isegi sel juhul ei õnnestu alati saada kogu vajalikku teavet: mõned passive SSL tarnijad pakuvad andmeid ainult sertifikaatide kohta, mille on väljastanud usaldusväärsed CA-d, samas kui nende katvus enesetalitus sertifikaatide suhtes on äärmiselt halb. Teised pakuvad samuti andmeid enesetalituse sertifikaatide kohta, kuid koguvad neid vaid tavalistelt portidelt.
Oleme kõik ülaltoodud kogumid ise kokku kogunud. Näiteks, et koguda teavet SSL-sertifikaatide kohta, kirjutasime oma teenuse, mis kogub andmeid nii usaldusväärsetelt CA-delt kui ka skaneerides kogu IPv4-ruumi. Sertifikaate koguti mitte ainult IP-de, vaid ka kõigi meie andmebaasis olevate domeenide ja alamdomeenide kohta: kui teil on domeen example.com ja selle alamdomeen ja kõik need resolveeruvad IP-le 1.1.1.1, siis SSL-sertifikaadi saamisel pordilt 443 IP, domeeni ja tema alamdomeeni kohta võite saada kolm erinevat tulemust. Avatud portide ja käivitatud teenuste andmete kogumiseks tuli luua oma hajutatult skaneerimis süsteem, kuna teistel teenustel olid IP-aadressid skaneerimise serveritest sageli "mustades loendites". Meie skaneerimisserverid satuvad samuti "mustadesse loenditesse", kuid vajalikud teenused leida on meie tulemus parem kui neil, kes lihtsalt skaneerivad võimalikult palju porte ja müüvad ligipääsu nendele andmetele.
Ajaloolike andmete täielikest salvestustest puudumine. Selgitus. Iga normaalne teenusepakkuja omab head kogemuste ajalugu, kuid looduslikel põhjustel ei saanud me kui klient pääseda kõikidele ajaloolistele andmetele. See tähendab, et saate saada kogu ajalugu eraldi kirje kohta, näiteks domeeni või IP-aadressi kohta, kuid ei saa näha kogu ajalugu — ilma selleta puudub täielik ülevaade.
Kogusime võimalikult palju ajaloolisi andmeid domeenide kohta, ostes erinevaid andmebaase, koondasime palju avatud ressursse, mis omasid seda ajalugu (hea, et neid oli palju) ning sõlmisime lepinguid domeeni registrite kaudu. Kõik uuendused meie enda koguades, muidugi, säilitavad täieliku muutuste ajaloo.
Kõik olemasolevad lahendused võimaldavad graafi käsitsi koostamist. Selgitus. Oletame, et olete ostnud palju tellimusi kõigilt võimalikelt andmete teenusepakkujatelt (neid tuntakse tavaliselt kui „rikastajad“). Kui peate graafi koostama, andsite „kätega“ käsu graafi koostamiseks vajaliku seose alusel, seejärel valite ilmnenud elementidest soovitud ja annate käsu koostada seoseid neist edasi ja nii edasi. Sellisel juhul vastutus graafi kvaliteetse koostamise eest lasub täielikult inimesel.
Oleme loonud automaatse graafi koostamise. See tähendab, et kui peate graafi koostama, siis seosed esimesest elemendist koostatakse automaatselt, samuti kõik järgmistest. Spetsialist näitab vaid sügavust, millest graafi tuleb koostada. Automaatse graafi koostamise protsess on lihtne, kuid teised teenusepakkujad ei ole seda ellu viinud, kuna see annab tohutu hulga mitteasjakohaseid tulemusi ja seda puudust pidime arvestama (vt allpool).
Paljude ebaeaktiliste tulemuste ilmumine on probleem, millega silmitsi seisavad kõik võrguelementide graafid. Selgitus. Näiteks on "halb domeen" (millel on osa rünnakus) seotud serveriga, millega on viimase 10 aasta jooksul seotud 500 muud domeeni. Kui lisate käsitsi või automaatselt graafi, peab kõik need 500 domeeni samuti graafis ilmuma, kuigi need ei ole rünnakuga seotud. Või näiteks kontrollite turvateenuse pakkuja aruandluses IP-indikaatorit. Üldiselt väljastatakse sellised aruanded märkimisväärse viivitusega ja sageli katab need aastat või rohkem. Tõenäoliselt on hetkeks, mil te aruannet loete, server, millel on see IP-aadress, juba renditud teistele inimestele, kellel on teised seosed, ja graafide koostamine toob taas esile ebaeaktilised tulemused.
Oleme koolitanud süsteemi tuvastama ebaeaktilisi elemente sama loogika alusel, nagu meie eksperdid käsitsi tegid. Näiteks kontrollite halba domeeni example.com, mis praegu resolveerub IP-le 11.11.11.11 ja kuu aega tagasi — IP-le 22.22.22.22. IP-l 11.11.11.11 on lisaks domeenile example.com veel seotud domeen example.ru ning IP-l 22.22.22.22 on seotud 25 tuhat muud domeeni. Süsteem mõistab, nagu inimene, et 11.11.11.11 on tõenäoliselt pühendatud server, ja kuna domeen example.ru sarnaneb kirjutamiselt example.com-ile, on tõenäosus, et need on seotud ja peavad graafis olema; aga IP 22.22.22.22 kuulub jagatud hostimisele, seega ei ole kõiki selle domeene graafisse viia vajalik, kui ei ole muid seoseid, mis näitaksid, et mõni neist 25 tuhandest domeenist tuleks siiski välja tuua (näiteks example.net). Enne kui süsteem mõistab, et seoseid tuleb katkestada ja osa elemente ei tohi graafisse viia, arvestab see mitmeid elementide ja klastrite omadusi, kuhu need elemendid on koondatud, samuti praeguste seoste tugevust. Näiteks kui meil on graafis väike klaster (50 elementi), kuhu kuulub halb domeen, ja veel üks suur klaster (5000 elementi) ning mõlemad klastrid on ühendatud seose (joone) kaudu, mille tugevus (kaal) on väga madal, siis katkeb see seos ja suurte klastrite elemendid eemaldatakse. Kuid kui seoseid, mis ühendavad väikest ja suurt klastrit, on palju ja nende tugevus suureneb järk-järgult, siis selles olukorras seos ei katke ja graafis jäävad vajalikud elemendid mõlemast klastrist.
Server and domain ownership intervals are not considered. Explanation: The registration period for 'bad domains' eventually expires, and they are re-purchased for either malicious or legitimate purposes. Even with bulletproof hosting, servers are rented out to various hackers, making it crucial to know and consider the duration for which any given domain/server was under a single owner. We often encounter situations where a server with the IP 11.11.11.11 is currently used as C&C for a banking bot, while just two months ago it was controlled by ransomware. If we establish a connection without considering ownership intervals, it might appear that there is a link between the banking bot network owners and the extortionists, even though there is none. Such mistakes are critical in our work.
We have trained the system to determine ownership intervals. For domains, this is relatively simple, as whois often indicates registration start and expiration dates, and when there is a complete history of whois changes, determining intervals becomes easy. When a domain's registration has not expired, but its management was transferred to other owners, this can also be tracked. There is no such issue with SSL certificates, as they are issued once, not renewed, and not transferred. However, with self-signed certificates, the dates specified in the certificate's validity cannot be trusted, since you can generate an SSL certificate today and set the start date as 2010. Determining ownership intervals for servers is the most challenging, as only hosting providers have the registration dates and terms. To determine the period of server ownership, we began using port scanning results and fingerprints of running services on the ports. With this information, we can accurately state when the server changed ownership.
Few connections. Explanation: It's now easy to get a list of domains free of charge where a specific email address is indicated in whois or to find all domains associated with a specific IP address. However, when it comes to hackers who do everything to make tracking difficult, additional 'tricks' are needed to uncover new properties and establish new links.
Me oleme kulutanud palju aega uurimisele, kuidas on võimalik andmeid hankida, mis pole tavapärase viisi abil kättesaadavad. Siin ei saa me selgitada, kuidas see töötab, arusaadavatel põhjustel, kuid teatud tingimustel teevad häkkerid domeenide registreerimisel või serverite rentimisel ja seadistamisel vigu, mis lubavad teada saada e-posti aadresse, häkkerite hüüdnimesid ja taustade aadresse. Mida rohkem seoseid te väljastate, seda täpsemini saab graafe koostada.
Kuidas meie graaf töötab
Veebigraafi kasutamiseks tuleb otsinguribale sisestada domeen, IP-aadress, e-post või SSL-sertifikaadi sõrmjälg. On kolm tingimust, mida analüütik saab juhtida: aeg, sammude sügavus ja puhastamine.
![]()
Aeg
Aeg – kuupäev või vahemik, mil otsitavat elementi kasutati kuritegelikel eesmärkidel. Kui seda parameetrit ei määrata, määrab süsteem automaatselt viimase omaniku vahemiku. Näiteks, 11. juulil avaldas firma Eset kuidas Buhtrap kasutab küberluure jaoks 0-day eksploitit. Aruande lõpus on 6 indikaatorit. Üks neist secure-telemetry[.]net registreeriti uuesti 16. juulil. Seetõttu, kui te hakkate graafi koostama pärast 16. juulit, siis saate ebaolulisi tulemusi. Kuid kui märkida, et see domeen kasutati enne seda kuupäeva, siis ilmub graafikule 126 uut domeeni, 69 IP-aadressi, mis ei ole Eseti aruandes loetletud:
- ukrfreshnews[.]com
- unian-search[.]com
- vesti-world[.]info
- runewsmeta[.]com
- foxnewsmeta[.]biz
- sobesednik-meta[.]info
- rian-ua[.]net
- ja palju muud.
Lisaks võrgustiku indikaatoritele leiame kohe seosed pahavara failidega, mis olid selle infrastruktuuriga seotud, ja sildid, mis vihjavad, et kasutati Meterpreterit, AZORult.
Kõige põnevam on see, et saate selle tulemuse ühe sekundi jooksul ja teil ei ole enam vaja kulutada päevi andmete analüüsimiseks. Ilmselgelt lühendab selline lähenemine uurimisaega mõnikord oluliselt, mis on sageli kriitilise tähtsusega.

Sammude arv või sügavus, millega graaf koostatakse
Vaikimisi on sügavus 3. See tähendab, et otsitava elemendi kohta leitakse kõik otseselt seotud elemendid, seejärel ehitatakse selle uue elemendi põhjal uued seosed teiste elementidega, ja juba uute elementide kohta eelmisest sammust leitakse uued elemendid.
Võtame näiteks juhtumi, mis ei ole seotud APT ja 0-day eksploitidega. Hiljuti kirjeldati Habr's huvitavat juhtumit, mis on seotud petmisega, mis puudutab krüptovaluutasid. Aruandes mainitakse domeeni — themcx[.]co, mida petturid kasutasid näiliselt Miner Coin Exchange'i vahetusplatvormi hostimiseks, ja phone-lookup[.]xyz, et juhtida liiklust.
Kirjeldusest on selge, et skeem nõuab üsna suurt infrastruktuuri, et suunata liiklust petuskeemide ressurssidele. Otsustasime vaadata seda infrastruktuuri, ehitades graafi 4 sammus. Lõppkokkuvõttes saime graafi, millel oli 230 domeeni ja 39 IP-aadressi. Edasi jagame domeenid kaheks kategooriaks: need, mis sarnanevad krüptovaluutadega tegelevate teenustega, ja need, mis on mõeldud liikluse suunamiseks telefonikontrolli teenuste kaudu:
Seotud krüptovaluutaga
Seotud telefonikontrolli teenustega
coinkeeper[.]cc
caller-record[.]site.
mcxwallet[.]co
phone-records[.]space
btcnoise[.]com
fone-uncover[.]xyz
cryptominer[.]watch
number-uncover[.]info

Puhastamine
Vaikimisi on valik „Graafi puhastamine“ sisse lülitatud ja kõik mitteasjakohased elemendid eemaldatakse graafist. Muide, seda on kasutatud ka kõikides eelnevates näidetes. Eeldan, et loomulik küsimus on: kuidas teha nii, et midagi olulist ei eemaldataks? Vastan: analüütikutele, kes armastavad graafe käsitsi koostada, saab automatiseeritud puhastuse välja lülitada ja valida sammude arvu = 1. Seejärel saab analüütik tõsta graafi soovitud elementideni ja eemaldada asjakohased ülesandele mittevastavad elemendid graafist.
Juba graafis saavad analüütikud ligipääsu whois muudatusajaloolle, DNS-ile, samuti avatud sadamate ja nende peal töötavatele teenustele.

Finantsfishing
Uurime ühe APT-grupi tegevust, mis on mitme aasta vältel korraldanud petuskatseid erinevate pankade klientide vastu erinevates piirkondades. Selle grupi iseloomulikuks jooneks oli domeenide registreerimine, mis olid väga sarnased tegelike pankade nimedele, ning suur osa petusaitidest omas sama kujundust, erinevused olid vaid pankade nimedes ja nende logodes.

Antud juhul aitas meid märgatavalt automatiseeritud graafianalüüs. Võttes ühe nende domeenidest – lloydsbnk-uk[.]com, ehitasime mõne sekundi jooksul graafi sügavusega 3 sammu, mis paljastas üle 250 pahatahtliku domeeni, mida see grupp on kasutanud alates 2015. aastast ja kasutab endiselt. Osa neist domeenidest on juba pankade poolt omandatud, kuid ajalooliste andmete põhjal on näha, et need olid varem registreeritud ründajate nimel.
Selguse huvides on joonisel nähtav graaf sügavusega 2 sammu.
On tähelepanuväärne, et juba 2019. aastal muutsid ründajad pisut oma taktikat ja hakkasid registreerima mitte ainult pankade domeene veebifishingu hostimiseks, vaid ka erinevate konsultatsiooniettevõtete domeene füüsiliste kirjete saatmiseks. Näiteks domeenid swift-department.com, saudconsultancy.com, vbgrigoryanpartners.com.

Cobalt gang
2018. aasta detsembris korraldas ründajate grupp Cobalt, mis spetsialiseerub sihitud rünnakutele pankadele, kirjade saatmise Nimel Kasahstani Rahvapanga.

Kirjades olid lingid hXXps://nationalbank.bz/Doc/Prikaz.doc. Laaditav dokument sisaldas makrot, mis käivitab PowerShelli ja proovib laadida ja käivitada faili hXXp://wateroilclub.com/file/dwm.exe, mis asub %Temp%einmrmdmy.exe. Fail %Temp%einmrmdmy.exe aka dwm.exe on CobInt stager, mis on seadistatud suhtlemiseks serveriga hXXp://admvmsopp.com/rilruietguadvtoefmuy.
Kujutage ette, et teil ei ole võimalust saada neid fisheeringu kirju ja teha täielikku pahavara analüüsi. Graaf pahatahtlike domeenide nationalbank[.]bz näitab kohe seoseid teiste pahatahtlike domeenidega, omistab need grupile ja näitab, milliseid faile rünnakus kasutati.

Võtame sellelt graafilt IP-aadressi 46.173.219[.]152 ja ehitame selle põhjal ühes käiguga graafi, jättes puhastamise välja. Sellega on seotud 40 domeeni, näiteks bl0ckchain[.]ug.
paypal.co.uk.qlg6[.]pw
cryptoelips[.]com
Domeenide nimedest järeldades tundub, et neid kasutatakse petuskeemides, kuid puhastusalgoritm mõistis, et nad ei ole selle rünnaku jaoks seotud ja seepärast ei toonud neid graafikule, mis oluliselt lihtsustab analüüsi ja omistamisprotsessi.

Kui ehitada uuesti graaf nationalbank[.]bz, kuid väljalülitatud puhastusalgoritmiga, pääseb sellele üle 500 elementi, millest suur osa ei ole seotud ei Cobalt grupi ega nende rünnakutega. Allpool on näidatud, kuidas selline graaf välja näeb:

Kokkuvõte
Pärast mitme aasta pikkust peenhäälestust, reaalses uurimises testimist, ohu uurimist ja ründajate jälitamist suutsime me luua mitte ainult ainulaadse tööriista, vaid ka muuta ettevõtte siseste ekspertide suhtumist sellesse. Alguses soovisid tehnilised eksperdid täielikku kontrolli graafi ehitamise protsessi üle. Neid oli äärmiselt keeruline veenda, et automaatne graafi koostamine suudab seda teha paremini kui inimene, kellel on aastatepikkune kogemus. Kõik muutis õigel ajal ja korduvalt „käesoleva“ kontrollimise tulemused, mida graaf näitas. Nüüd ei usalda meie eksperdid mitte ainult süsteemi, vaid kasutavad ka selle genereeritud tulemusi igapäevases töös. See tehnoloogia töötab igas meie süsteemis ja võimaldab paremini tuvastada igasuguseid ohte. Graafi käsitsi analüüsimise liides on integreeritud kõikidesse Group-IB toodetesse ja laiendab oluliselt võimalusi küberkuritegevuse jahtimiseks. Seda kinnitavad meie klientide analüütikute tagasiside. Meie omakorda jätkame graafi andmete rikastamist ja töötame uute tehisintellekti alusel põhinevate algoritmide kallal, et saavutada võimalikult täpne võrgu graaf.
Allikas: habr.com
