
Istražujući slučajeve povezane s phishingom, bot-netovima, prevarantskim transakcijama i kriminalnim hakerskim grupama, stručnjaci Group-IB već godinama koriste grafičku analizu za otkrivanje raznih vrsta veza. U različitim slučajevima postoje vlastiti skupovi podataka, vlastiti algoritmi za otkrivanje veza i sučelja prilagođena specifičnim zadacima. Svi ti alati su unutarnja razvojna rješenja Group-IB i bili su dostupni isključivo našim zaposlenicima.
Grafička analiza mrežne infrastrukture (mrežni graf) postala je prvi unutarnji alat koji smo integrirali u sve javne proizvode tvrtke. Prije nego što smo stvorili svoj mrežni graf, analizirali smo mnoge slične proizvode na tržištu i nismo pronašli nijedan koji bi zadovoljio naše vlastite potrebe. U ovom članku ćemo govoriti o tome kako smo razvijali mrežni graf, kako ga koristimo i s kojim smo izazovima suočavali.
Dmitrij Volkov, CTO Group-IB i voditelj odjela za kibernetičku obavještajnu djelatnost
Što može mrežni graf Group-IB?
Istrage
Od osnivanja Group-IB 2003. godine do danas, identifikacija, deanonimizacija i iznošenje kibernetičkih zločinaca pred pravdu ostaju naš glavni prioritet. Nijedna istraga kibernetičkog napada nije prošla bez analize mrežne infrastrukture napadača. Na samom početku našeg puta to je bio prilično dugotrajan "ručni rad" u pronalaženju međusobnih veza koje su mogle pomoći u identifikaciji zločinaca: informacije o domenama, IP adresama, digitalnim otiscima poslužitelja i dr.
Većina napadača nastoji djelovati što anonimnije na mreži. Međutim, kao i svi ljudi, čine greške. Osnovni cilj ove analize je pronaći "bijele" ili "sive" povijesne projekte zlonamjernika koji imaju preklapanja s zlonamjernom infrastrukturom korištenom u aktualnom incidentu koji istražujemo. Ako uspijemo otkriti "bijele projekte", otkrivanje napadača obično postaje trivijalna zadaća. U slučaju "sivih", pronalazak zahtijeva više vremena i truda, jer njihovi vlasnici nastoje anonymizirati ili sakriti registracijske podatke, no šanse ostaju prilično visoke. Obično, na početku svoje kriminalne djelatnosti, napadači posvećuju manje pažnje vlastitoj sigurnosti i čine više grešaka, stoga što više možemo zaroniti u prošlost, veće su šanse za uspješno istraživanje. Zbog toga je mrežna karta s dobrom poviješću iznimno važan element takvog istraživanja. Jednostavno rečeno, što dublje povijesne podatke ima tvrtka, to je kvalitetnija njezina karta. Recimo, povijest od 5 godina može pomoći u razotkrivanju, uvjetno rečeno, 1-2 od 10 zločina, dok povijest od 15 godina daje šanse za razotkrivanje svih deset.
Otkrivanje phishinga i prijevara
Svaki put kada primimo sumnjivu vezu na phishing, prijevarne ili piratske resurse, automatski gradimo kartu povezanih mrežnih izvora i provjeravamo sve pronađene hostove na prisustvo sličnog sadržaja. To omogućuje pronalaženje kako starih phishing stranica koje su bile aktivne, ali nepoznate, tako i potpuno novih koje su pripremljene za buduće napade, ali još nisu korištene. Osnovni primjer koji se prilično često pojavljuje: pronašli smo phishing stranicu na serveru gdje se nalazi samo 5 stranica. Provjeravajući svaku od njih, nalazimo phishing sadržaj i na ostalim stranicama, što znači da možemo blokirati 5 umjesto 1.
Traženje backendova
Ovaj proces je neophodan kako bi se utvrdilo gdje se zapravo nalazi zlonamjerni server.
99% kartela, foruma hakera, brojni phishing resursi i drugi zlonamjerni serveri skrivaju se kako iza vlastitih proxy servera, tako i iza proxyja legitimnih servisa, poput Cloudflare. Poznavanje stvarnog backend-a je veoma važno za istrage: postaje poznat hosting provajder od kojeg se može zaplijeniti server, otvara se mogućnost uspostavljanja povezanosti s drugim zlonamjernim projektima.
Na primjer, imate phishing stranicu za prikupljanje podataka o bankovnim karticama koja se razrješava na IP adresu 11.11.11.11, i adresu kartela koja se razrješava na IP adresu 22.22.22.22. Tijekom analize može se otkriti da i phishing stranica i kartel dijele zajedničku IP adresu backend-a, na primjer, 33.33.33.33. Ove informacije omogućuju uspostavljanje veze između phishing napada i kartela na kojem se moguće prodaju podaci o bankovnim karticama.
Korelacija događaja
Kada imate dva različita okidača (recimo, na IDS-u) s različitim zlonamjernim softverom i različitim serverima za upravljanje napadom, razmatrat ćete ih kao dva neovisna događaja. No, ako postoji dobra veza između zlonamjernih infrastruktura, postaje očito da se ne radi o različitim napadima, već o fazama jednog složenijeg višestepenog napada. A ako je jedan od događaja već pripisan nekoj grupi napadača, tada se i drugi može pripisati istoj grupi. Naravno, proces atribucije je znatno složeniji, stoga to što je napisano treba shvatiti kao jednostavan primjer.
Obogaćivanje indikatora
Nećemo se previše zadržavati na tome, budući da je ovo najčešći scenarij korištenja grafova u kibernetičkoj sigurnosti: dalo bi se na ulaz jedan indikator, a na izlazu dobije niz povezanih indikatora.
Otkrivanje obrazaca
Otkrivanje obrazaca je nužno za učinkovito lovljenje. Grafovi omogućuju ne samo pronalaženje povezanih elemenata, već i otkrivanje zajedničkih svojstava koja su specifična određenoj grupi hakera. Poznavanje takvih jedinstvenih karakteristika omogućava prepoznavanje infrastrukture napadača već u fazi pripreme, bez dokaza koji potvrđuju napad, kao što su phishing e-mailovi ili zlonamjerni programi.
Zašto smo napravili svoju mrežnu mrežu?
Ponovit ću da smo razmatrali rješenja različitih dobavljača prije nego što smo došli do zaključka da trebamo razviti vlastiti alat koji može učiniti ono što nijedan postojeći proizvod ne može. Njegovo stvaranje trajalo je nekoliko godina, tijekom kojih smo ga nekoliko puta potpuno promijenili. No, unatoč dugom razvoju, još uvijek nismo pronašli nijedan analog koji bi zadovoljio naše zahtjeve. Uz pomoć našeg proizvoda na kraju smo uspjeli riješiti praktički sve probleme koje smo otkrili u postojećim mrežnim grafovima. U nastavku ćemo detaljnije razmotriti te probleme:
Problem
Rešenje
Nedostatak dobavljača s različitim skupovima podataka: domenama, passive DNS-om, passive SSL-om, DNS zapisima, otvorenim portovima, pokrenutim uslugama na portovima, datotekama koje komuniciraju s domenama i IP adresama. Objašnjenje. Obično dobavljači pružaju odvojene tipove podataka, a kako bi se dobila cjelovita slika, potrebno je kupovati pretplate kod svih. No, čak i tada nije uvijek moguće dobiti sve podatke: neki dobavljači passive SSL-a pružaju podatke samo o certifikatima koje su izdale pouzdane CA, a pokriće samopotpisanih certifikata im je vrlo loše. Drugi daju podatke i o samopotpisanim certifikatima, ali ih prikupljaju samo sa standardnih portova.
Sve navedene skupove podataka prikupili smo sami. Na primjer, za prikupljanje podataka o SSL certifikatima razvili smo vlastitu uslugu koja ih prikuplja i od pouzdanih CA, i putem skeniranja cijelog IPv4 prostora. Certifikati su prikupljani ne samo s IP-a, već i sa svih domena i poddomena iz naše baze: ako imate domenu example.com i njen poddomen i svi se oni rezolviraju na IP 1.1.1.1, tada prilikom pokušaja dobivanja SSL certifikata s porta 443 preko IP-a, domene i njenog poddomena možete dobiti tri različita rezultata. Za prikupljanje podataka o otvorenim portovima i pokrenutim uslugama morali smo razviti vlastiti distribuirani sustav skeniranja, jer su IP adrese skeniranih poslužitelja često bile na „crnim listama” drugih usluga. Naši skenirajući poslužitelji također završavaju na „crnim listama”, ali je rezultat otkrivanja potrebnih usluga veći nego kod onih koji jednostavno skeniraju što više portova i prodaju pristup tim podacima.
Nedostatak pristupa cijeloj bazi povijesnih podataka. Objašnjenje. Svaki normalan pružatelj usluga ima dobru akumuliranu povijest, ali iz očitih razloga pristup svim povijesnim podacima nije bio moguć za nas kao klijente. To jest, moguće je dobiti cijelu povijest za pojedinačnu stavku, primjerice za domenu ili IP adresu, ali nije moguće vidjeti povijest svih istovremeno — a bez toga nije moguće vidjeti cjelovitu sliku.
Kako bismo prikupili što više povijesnih podataka o domenama, sakupljali smo razne baze podataka, parsirali mnoge otvorene resurse koji su imali tu povijest (srećom, takvih je bilo mnogo), dogovarali se s registrarima domena. Sve ažurirane informacije iz naših vlastitih kolekcija, naravno, čuvaju se s potpunom poviješću promjena.
Sve postojeće opcije omogućuju ručno građenje grafa. Objašnjenje. Pretpostavimo da ste kupili brojne pretplate od svih mogućih pružatelja podataka (obično ih nazivaju 'obogaćivačima'). Kada trebate izgraditi graf, vi 'ručno' zapovijedate da se dodaju veze od odabranog elementa, zatim iz novo nastalih elemenata birate potrebne i zapovijedate da se dodaju veze od njih, i tako dalje. U ovom slučaju, odgovornost za kvalitetu izgrađenog grafa u potpunosti leži na osobi.
Razvili smo automatsko građenje grafova. To jest, ako trebate izgraditi graf, veze od prvog elementa se automatski dodaju, a zatim se povezuju i svi sljedeći. Stručnjak samo navodi dubinu s kojom treba izgraditi graf. Sam proces automatskog dodavanja veza jednostavan je, ali drugi dobavljači to ne implementiraju jer daje ogroman broj nerelevantnih rezultata, a taj nedostatak smo također morali uzeti u obzir (vidi u nastavku).
Mnoge nerelevantne rezultate predstavljaju problem svih grafova mrežnih elemenata. Objašnjenje. Na primjer, "loša domena" (sudjelovala u napadu) povezana je sa serverom koji je u posljednjih 10 godina povezan s 500 drugih domena. Pri ručnom dodavanju ili automatskom konstruiranju grafa, svih tih 500 domena također mora biti prikazano u grafu, iako nemaju veze s napadom. Ili, na primjer, provjeravate IP indikator iz izvještaja sigurnosnog dobavljača. Obično, takvi izvještaji dolaze s velikim kašnjenjem i često pokrivaju godinu dana ili više. Vjerojatno je, u trenutku kada čitate izvještaj, server s tom IP adresom već iznajmljen drugim ljudima s drugim vezama, i konstruiranje grafa dovest će do ponovnog prikazivanja nerelevantnih rezultata.
Obučili smo sustav da prepoznaje nerelevantne elemente po istoj logici kojom su naši stručnjaci to radili ručno. Na primjer, provjeravate lošu domenu example.com, koja trenutno odgovara IP 11.11.11.11, a mjesec dana ranije IP 22.22.22.22. S IP 11.11.11.11, osim domene example.com, povezana je i example.ru, dok je s IP 22.22.22.22 povezano 25 tisuća drugih domena. Sustav, kao i čovjek, razumije da je 11.11.11.11 vjerojatno poslužitelj, a budući da je domena example.ru slična po pisanju s example.com, velika je vjerojatnost da su povezani i da trebaju biti prikazani u grafu; dok IP 22.22.22.22 pripada shared hostingu, pa njegovi domene ne trebaju biti prikazani u grafu, osim ako ne postoji druga povezanost koja ukazuje da neki od tih 25 tisuća domena također treba biti prikazan (na primjer, example.net). Prije nego što sustav shvati da veze treba prekinuti i ne prikazivati dio elemenata u grafu, razmatra mnoge osobine elemenata i klastera u koje su ti elementi grupirani, kao i snagu trenutnih veza. Na primjer, ako imamo mali klaster u grafu (50 elemenata), u koji ulazi loša domena, i jedan veliki klaster (5 tisuća elemenata), i oba klastera su povezana vezom (linijom) vrlo male snage (težine), tada će se ta veza prekinuti, a elementi iz velikog klastera će biti uklonjeni. No, ako bude mnogo veza između malog i velikog klastera i njihov snaga postupno raste, u tom slučaju veza se neće prekinuti i u grafu će ostati potrebni elementi iz oba klastera.
Interval vlasništva servera i domena se ne uzima u obzir. Objašnjenje. Rok registracije „loših domena“ рано или поздно истека i ponovo se kupuju u zlonamerne ili legitimne svrhe. Čak i kod bulletproof hosting usluga, serveri se iznajmljuju različitim hakerima, zato je izuzetno važno znati i uzeti u obzir interval kada je određeni domen/server bio pod upravom jednog vlasnika. Često se susrećemo sa situacijom kada se server sa IP 11.11.11.11 trenutno koristi kao C&C za bankarske botove, dok je pre 2 meseca njime upravljala Ransomware. Ako se uspostavlja veza bez uzimanja u obzir intervala vlasništva, može izgledati kao da postoji veza između vlasnika bankarske bot mreže i iznuđivača, iako stvarno ne postoji. U našem radu takva greška je kritična.
Naučili smo sistem da određuje intervale vlasništva. Za domene je to relativno jednostavno, jer se u whois često nalaze datumi početka i isteka registracije, a kada postoji potpuna istorija promena whois-a, lako je odrediti intervale. Kada rok registracije domena nije istekao, ali je upravljanje prebačeno na druge vlasnike, to takođe može da se prati. Za SSL sertifikate takav problem ne postoji, jer se izda jednom, ne produžava i ne prenosi. Međutim, kod samopotpisanih sertifikata ne može se verovati datumima navedenim u roku važenja sertifikata, jer može da se generiše SSL sertifikat danas, dok se početna datum može navesti od 2010. godine. Najteže je odrediti intervale vlasništva za servere, jer datumi i rokovi najma postoje samo kod provajdera hostinga. Da bismo utvrdili period vlasništva servera, počeli smo da koristimo rezultate skeniranja portova i kreiranja otisaka pokrenutih usluga na portovima. Na osnovu tih informacija možemo prilično tačno da kažemo kada se menjao vlasnik servera.
Malo veza. Objašnjenje. Danas nije problem čak ni besplatno dobiti listu domena u čijem je whois-u naveden određeni adresa elektronske pošte ili saznati sve domene koje su bile povezane sa određenim IP adresom. Međutim, kada su u pitanju hakeri, koji čine sve da ih bude teško pratiti, potrebni su dodatni „trikovi“ koji omogućavaju pronalaženje novih svojstava i uspostavljanje novih veza.
Proveli smo puno vremena istražujući kako izvući podatke koji nisu dostupni običnim metodama. Nismo u mogućnosti opisati kako to funkcioniše zbog očitih razloga, ali u određenim okolnostima, hakeri prilikom registracije domena ili iznajmljivanja i podešavanja servera prave greške koje omogućavaju otkrivanje adresa e-pošte, nadimaka hakera i backend adresa. Što više veza izvučete, to preciznije možete graditi grafove.
Kako funkcioniše naš graf
Da biste počeli koristiti mrežni graf, potrebno je uneti domen, IP adresu, e-mail ili otisak SSL certifikata u pretraživač. Postoje tri uslova kojima analitičar može upravljati: vreme, dubina koraka i čišćenje.
![]()
Vrijeme
Vreme – datum ili interval kada je traženi element korišćen u zlonamerne svrhe. Ako ne navedete ovaj parametar, sistem će sam odrediti poslednji interval posedovanja tog resursa. Na primer, 11. jula kompanija Eset je objavila o tome kako Buhtrap koristi 0-day exploit za sajber špijunažu. Na kraju izveštaja nalazi se 6 indikatora. Jedan od njih secure-telemetry[.]net je ponovo registrovan 16. jula. Stoga, ako gradite graf posle 16. jula, dobićete nerelevantne rezultate. Ali ako navedete da je ovaj domen korišćen do tog datuma, graf će sadržavati 126 novih domena, 69 IP adresa koje nisu navedene u izveštaju Eset:
- ukrfreshnews[.]com
- unian-search[.]com
- vesti-world[.]info
- runewsmeta[.]com
- foxnewsmeta[.]biz
- sobesednik-meta[.]info
- rian-ua[.]net
- i dr.
Pored mrežnih indikatora, odmah pronalazimo veze sa zlonamernim datotekama koje su imale povezanosti sa ovom infrastrukturom i tagovima koji nam ukazuju na to da su korišćeni Meterpreter, AZORult.
Najzanimljivije je da dobijate ovaj rezultat u roku od jedne sekunde i više ne morate trošiti dane na analizu podataka. Ovaj pristup ponekad drastično smanjuje vreme istraživanja, što često može biti kritično.

Broj koraka ili dubina rekurzije sa kojom će se graditi graf
Podrazumevana dubina je 3. To znači da će svi direktno povezani elementi biti pronađeni od traženog elementa, a zatim će svaka nova veza od tih novih elemenata biti izgrađena do drugih elemenata, i novi elementi iz prethodnog koraka će generisati nove elemente.
Uzmimo primjer koji nije povezan s APT i 0-day eksploatacijama. Nedavno je na Habr-u opisivan zanimljiv slučaj prevarantstva povezanog s kriptovalutama. U izvještaju se spominje domena — themcx[.]co, koju su prevaranti koristili za hosting stranice navodnog mjenjača Miner Coin Exchange te phone-lookup[.]xyz za privlačenje prometa.
Iz opisa je jasno da shema zahtijeva prilično veliku infrastrukturu za privlačenje prometa na prevarantske resurse. Odlučili smo istražiti tu infrastrukturu, gradeći graf u 4 koraka. Na izlazu smo dobili graf s 230 domena i 39 IP adresa. Zatim dijelimo domene u 2 kategorije: one koje izgledaju kao usluge povezane s kriptovalutama i one koje su namijenjene usmjeravanju prometa putem servisa za provjeru telefona:
Povezani s kriptovalutama
Povezani s servisima za provjeru telefona
coinkeeper[.]cc
caller-record[.]site.
mcxwallet[.]co
phone-records[.]space
btcnoise[.]com
fone-uncover[.]xyz
cryptominer[.]watch
number-uncover[.]info

Brisanje
Opcija 'Čišćenje grafa' je prema zadanim postavkama uključena i svi nerelevantni elementi bit će uklonjeni iz grafa. Usput, korištena je i u svim prethodnim primjerima. Predviđam prirodno pitanje: kako osigurati da se nešto važno ne izbriše? Odgovaram: za analitičare koji vole ručno graditi grafove, automatsko čišćenje se može isključiti i odabrati broj koraka = 1. Nakon toga, analitičar će moći nadograditi graf potrebnim elementima i ukloniti nerelevantne elemente s grafa prema postavljenom zadatku.
Već na grafu analitičaru su dostupne povijesti promjena whois, DNS te otvorenih portova i pokrenutih usluga na njima.

Financijski phishing
Istražili smo aktivnosti jedne APT grupe koja je tijekom nekoliko godina provodila phishing napade protiv klijenata različitih banaka u različitim regijama. Karakteristika ove grupe bila je registracija domena koje su bile vrlo slične nazivima stvarnih banaka, a velika većina phishing web stranica imala je identičan dizajn, razlike su bile samo u nazivima banaka i njihovim logotipima.

U ovom slučaju, automatska grafička analiza bila nam je od velike pomoći. Uzevši jedan od njihovih domena — lloydsbnk-uk[.]com, za nekoliko sekundi izgradili smo graf s dubinom od 3 koraka, koji je otkrio više od 250 malicioznih domena koje je ova grupa koristila od 2015. godine i koje i dalje koristi. Neki od ovih domena su već otkupljeni od strane banaka, ali iz povijesnih zapisa je vidljivo da su prethodno bili registrirani na napadače.
Za preglednost, na slici je prikazan graf s dubinom od 2 koraka.
Zanimljivo je da su napadači već 2019. godine malo promijenili taktiku i počeli registrirati ne samo bankovne domene za hosting web phishinga, već i domene raznih konzultantskih tvrtki za slanje phishing poruka. Na primjer, domene swift-department.com, saudconsultancy.com, vbgrigoryanpartners.com.

Cobalt gang
U prosincu 2018. godine, hakerska grupa Cobalt, specijalizirana za ciljana napada na banke, provela je kampanju u ime Nacionalne banke Kazahstana.

U e-porukama su bile veze na hXXps://nationalbank.bz/Doc/Prikaz.doc. Preuzeti dokument sadržavao je makro koji pokreće PowerShell, koji će pokušati preuzeti i izvršiti datoteku s hXXp://wateroilclub.com/file/dwm.exe u %Temp%einmrmdmy.exe. Datoteka %Temp%einmrmdmy.exe aka dwm.exe — CobInt stager, postavljen da komunicira sa serverom hXXp://admvmsopp.com/rilruietguadvtoefmuy.
Zamislite da nemate mogućnost dobivanja ovih phishing poruka i provođenja potpune analize malicioznih datoteka. Graf za maliciozni domen nationalbank[.]bz odmah prikazuje veze s drugim malicioznim domenima, pripisuje to grupi i pokazuje koje su datoteke korištene u napadu.

Uzmimo iz ovog grafa IP adresu 46.173.219[.]152 i izgradimo graf s njom u jednom prolazu i isključimo čišćenje. S njom je povezano 40 domena, na primjer, bl0ckchain[.]ug
paypal.co.uk.qlg6[.]pw
cryptoelips[.]com
Sudeći po imenima domena, čini se da se koriste u prevarantskim shemama, ali algoritam čišćenja je shvatio da nemaju nikakve veze s tim napadom i nije ih istaknuo na grafu, što značajno pojednostavljuje proces analize i atribucije.

Ako ponovno izgradimo graf za nationalbank[.]bz, ali isključimo algoritam čišćenja grafa, tada dolazi do više od 500 elemenata, od kojih većina nema veze niti s grupom Cobalt, niti s njihovim napadima. Primjer kako izgleda takav graf prikazan je u nastavku:

Zaključak
Nakon nekoliko godina finog podešavanja, testiranja u stvarnim istraživanjima, proučavanja prijetnji i lova na napadače, uspjeli smo ne samo stvoriti jedinstveni alat, već i promijeniti stav stručnjaka unutar kompanije prema njemu. U početku su tehnički stručnjaci željeli potpunu kontrolu nad procesom izrade grafa. Bilo je izuzetno teško uvjeriti ih da automatska izrada grafa može to raditi bolje od osobe s dugogodišnjim iskustvom. Sve je riješilo vrijeme i višestruka “ručna” provjera rezultata koje je graf generirao. Sada naši stručnjaci ne samo da vjeruju sustavu, već i koriste njegove rezultate u svakodnevnom radu. Ova tehnologija radi unutar svih naših sustava i omogućuje bolje otkrivanje prijetnji bilo koje vrste. Sučelje za ručnu analizu grafa ugrađeno je u sve proizvode Group-IB i znatno proširuje mogućnosti za lov na cyber kriminal. To potvrđuju povratne informacije analitičara naših klijenata. A mi, zauzvrat, i dalje obogaćujemo graf podacima i radimo na novim algoritmima koji koriste umjetnu inteligenciju za što precizniji mrežni graf.
Izvor: habr.com
