Din udgang, graf: hvordan vi ikke fandt et godt netværksgraf og skabte vores eget

Din udgang, graf: hvordan vi ikke fandt et godt netværksgraf og skabte vores eget

Når det kommer til undersøgelser relateret til phishing, botnet, svindeltransaktioner og kriminelle hackergrupper, har eksperter fra Group-IB i mange år anvendt grafanalyse til at afdække forskellige former for forbindelser. Der findes specifikke datasæt, algoritmer til at identificere forbindelser og grænseflader tilpasset specifikke opgaver i forskellige sager. Alle disse værktøjer er blevet udviklet internt af Group-IB og var kun tilgængelige for vores medarbejdere.

Grafanalyse af netværksinfrastruktur (netværksgraf) blev det første interne værktøj, vi integrerede i alle virksomhedens offentlige produkter. Før vi skabte vores netværksgraf, analyserede vi mange lignende udviklinger på markedet og fandt ikke ét produkt, der opfyldte vores egne behov. I denne artikel vil vi fortælle om, hvordan vi skabte netværksgrafen, hvordan vi bruger den, og hvilke vanskeligheder vi mødte.

Dmitry Volkov, CTO for Group-IB og leder af cyberafterretning

Hvad kan netværksgrafen fra Group-IB?

Undersøgelser

Siden stiftelsen af Group-IB i 2003 har identifikation, de-anonymisering og retsforfølgning af cyberkriminelle været vores vigtigste prioritet. Ingen undersøgelse af en cyberangreb er blevet gennemført uden analyse af angriberens netværksinfrastruktur. I begyndelsen var det et ret omhyggeligt 'håndarbejde' at finde forbindelser, der kunne hjælpe med at identificere kriminelle: information om domænenavne, IP-adresser, digitale fingeraftryk af servere og mere.

De fleste angribere forsøger at forblive så anonyme som muligt på nettet. Men ligesom alle mennesker laver de fejl. Hovedopgaven med sådan en analyse er at finde "hvide" eller "grå" historiske projekter fra kriminelle, der har overlap med den ondsindede infrastruktur, der bruges i den aktuelle hændelse, som vi undersøger. Hvis vi kan opdage "hvide projekter", bliver det ofte en triviel opgave at finde angriberen. I tilfælde af de "grå" tager det mere tid og kræfter at finde dem, da deres ejere forsøger at anonymisere eller skjule registreringsoplysninger, men chancerne for succes er stadig forholdsvis høje. Typisk i starten af deres kriminelle aktiviteter lægger angriberne mindre vægt på deres egen sikkerhed og begår flere fejl, så jo dybere vi kan dykke ind i historien, desto højere er chancerne for en vellykket efterforskning. Derfor er et netværksgraf med en god historie et yderst vigtigt element i en sådan efterforskning. Kort sagt, jo dybere historiske data virksomheden har, desto bedre er dens graf. Antag, at en historie på 5 år kan hjælpe med at opklare 1-2 ud af 10 forbrydelser, mens en historie på 15 år giver chancer for at opklare alle ti.

Identificering af phishing og svindel

Hver gang vi modtager et mistænkeligt link til phishing, svindel eller piratkopierede ressourcer, opretter vi automatisk et graf af relaterede netværksressourcer og kontrollerer alle fundne værter for at finde lignende indhold. Det gør det muligt at finde både gamle phishing-websteder, der har været aktive, men ukendte, samt helt nye, der er forberedt til fremtidige angreb, men endnu ikke er i brug. Et simpelt eksempel, der ofte forekommer: vi fandt et phishing-websted på en server, hvor der kun er 5 websteder. Ved at kontrollere hver af dem finder vi phishing-indhold på de andre websteder, hvilket betyder, at vi kan blokere 5 i stedet for 1.

Søgning efter backends

Denne proces er nødvendig for at fastslå, hvor den ondsindede server rent faktisk befinder sig.
99% af kortshops, hackerfora, mange phishingressourcer og andre ondsindede servere skjuler sig både bag egne proxyservere og bag legitime tjenesters proxyer, såsom Cloudflare. Viden om den reelle backend er meget vigtig for efterforskninger: hostingudbyderen, hvorfra serveren kan beslaglægges, bliver kendt, og det bliver muligt at opbygge forbindelser til andre ondsindede projekter.

For eksempel, hvis du har en phishingwebside til indsamling af bankkortdata, som resolveres til IP-adressen 11.11.11.11, og adressen til kortshoppen, der resolveres til IP-adressen 22.22.22.22. Ved analysen kan det vise sig, at både phishing-websiden og kortshoppen har en fælles IP-adresse bagved, for eksempel 33.33.33.33. Denne viden gør det muligt at bygge en forbindelse mellem phishingangreb og kortshoppen, hvor bankkortdata muligvis sælges.

Korrelasjon af hændelser

Når du har to forskellige udløsninger (lad os sige, på IDS) med forskellig ondsindet software og forskellige servere til at styre angrebet, vil du betragte dem som to uafhængige begivenheder. Men hvis der er en god forbindelse mellem de ondsindede infrastrukturer, bliver det klart, at dette ikke er forskellige angreb, men trin i et mere komplekst, flerstadiet angreb. Og hvis en af hændelserne allerede er attribueret til en hvilken som helst gruppe angribere, så kan den anden også attribueres til den samme gruppe. Selvfølgelig er attributeringsprocessen betydeligt mere kompleks, så betragt det skrevne som et simpelt eksempel.

Berigelse af indikatorer

Vi vil ikke bruge meget tid på dette, da det er det mest almindelige anvendelsesscenarie for grafer i cybersikkerhed: du giver en indikator som input og modtager et array af relaterede indikatorer som output.

Identifikation af mønstre

Identifikation af mønstre er nødvendig for effektiv jagt. Grafer tillader ikke kun at finde relaterede elementer, men også at identificere fælles egenskaber, der tilhører en bestemt gruppe hackere. Viden om sådanne unikke kendetegn gør det muligt at genkende angriberens infrastruktur allerede på forberedelsesstadiet, selv uden beviser, der bekræfter angrebet, såsom phishing-e-mails eller ondsindede programmer.

Hvorfor oprettede vi vores netværksgraf?

Jeg gentager, at vi overvejede løsninger fra forskellige leverandører, før vi kom frem til, at vi var nødt til at udvikle vores eget værktøj, der kan det, som ikke er tilgængeligt i nogen eksisterende produkter. Det tog flere år at skabe det, hvor vi flere gange ændrede det helt. Men på trods af den lange udviklingstid har vi stadig ikke fundet en eneste analog, der opfylder vores krav. Med vores eget produkt er vi i sidste ende i stand til at løse næsten alle de problemer, vi har fundet i de eksisterende netværksgrafer. Nedenfor vil vi se nærmere på disse problemer:

Problemet
Løsning

Manglen på en leverandør med forskellige datasamlinger: domæner, passive DNS, passive SSL, DNS-poster, åbne porte, tjenester, der kører på de porte, filer, der interagerer med domænenavne og IP-adresser. Forklaring. Normalt tilbyder leverandører separate datatyper, og for at samle et fuldstændigt billede skal man købe abonnementer fra alle. Men selv da er det ikke altid muligt at få alle data: nogle leverandører af passive SSL giver kun data om certifikater udstedt af betroede CA'er, og dækningen af selvunderskrevne certifikater er ekstremt dårlig. Andre tilbyder data om selvunderskrevne certifikater, men indsamler dem kun fra standardporte.
Vi har selv indsamlet alle de førnævnte samlinger. For eksempel, for at indsamle data om SSL-certifikater, har vi skrevet vores egen tjeneste, der indsamler dem både fra betroede CA'er og ved at scanne hele IPv4-området. Certifikaterne blev indsamlet ikke kun fra IP'er, men også fra alle domæner og underdomæner i vores database: hvis du har et domæne eksempel.com og dets underdomæne www.example.com og de alle resolveres til IP 1.1.1.1, så når du forsøger at få et SSL-certifikat fra port 443 via IP, domænet og dets underdomæne, kan du få tre forskellige resultater. For at indsamle data om åbne porte og kørende tjenester var vi nødt til at lave vores eget distribuerede scanningssystem, fordi andre tjenester ofte havde IP-adresserne til deres scannende servere på 'blacklists'. Vores scannende servere havner også på 'blacklists', men resultatet af opdagelsen af de nødvendige tjenester er højere end dem, der bare scanner så mange porte som muligt og sælger adgangen til disse data.

Manglende adgang til hele databasen med historiske optegnelser. Forklaring. Hver ordentlig udbyder har en god opbygget historik, men af naturlige årsager kunne vi som kunder ikke få adgang til alle historiske data. Det vil sige, at man kan få hele historien om en enkelt optegnelse, for eksempel om et domæne eller en IP-adresse, men man kan ikke se hele historien – og uden dette kan man ikke få et klart billede.
For at samle så mange historiske optegnelser om domæner som muligt, købte vi forskellige databaser, parserede mange åbne ressourcer, der havde denne historie (heldigvis var der mange), og forhandlede med registratorer af domænenavne. Alle opdateringer i vores egne samlinger opbevares selvfølgelig med en komplet historik over ændringer.

Alle eksisterende løsninger tillader at opbygge grafen manuelt. Forklaring. Antag, at du har købt mange abonnementer fra alle mulige dataleverandører (de kaldes normalt 'berigere'). Når du skal bygge en graf, giver du 'manuelt' kommandoen til at opbygge fra det ønskede forbindelselement, vælger derefter de relevante elementer fra, der er dukket op, og giver kommando til at opbygge forbindelser fra dem, og så videre. I dette tilfælde ligger ansvaret for, hvor kvalitativt grafen vil blive bygget, helt hos personen.
Vi har lavet automatisk opbygning af grafer. Det vil sige, at hvis du skal bygge en graf, så bygges forbindelserne fra det første element automatisk, og derefter fra alle efterfølgende – også. Specialisten angiver kun den dybde, fra hvilken grafen skal opbygges. Selve processen med automatisk opbygning af grafer er enkel, men andre leverandører implementerer den ikke, fordi den giver et enormt antal irrelevante resultater, og denne ulempe måtte vi også tage højde for (se nedenfor).

Mange irrelevante resultater er et problem for alle grafer over netværkselementer. Forklaring. For eksempel er et 'dårligt domæne' (som har deltaget i et angreb) forbundet med en server, som i de sidste 10 år har været forbundet med 500 andre domæner. Ved manuel tilføjelse eller automatisk opbygning af grafen skal alle disse 500 domæner også vises i grafen, selvom de ikke har noget at gøre med angrebet. Eller for eksempel, hvis du kontrollerer en IP-indikator fra en sikkerhedsleverandørs rapport. Som regel kommer sådanne rapporter med betydelig forsinkelse og dækker ofte et år eller mere. Sandsynligvis, på det tidspunkt hvor du læser rapporten, er serveren med denne IP-adresse allerede blevet lejet ud til andre med andre forbindelser, og opbygningen af grafen vil igen føre til, at du får irrelevante resultater.
Vi har trænet systemet til at identificere irrelevante elementer på samme måde, som vores eksperter gjorde det manuelt. For eksempel, hvis du kontrollerer det dårlige domæne example.com, som nu resolveres til IP 11.11.11.11, men for en måned siden blev resolveret til IP 22.22.22.22. Udover domænet example.com er også example.ru forbundet med IP 11.11.11.11, mens IP 22.22.22.22 er forbundet med 25 tusinde andre domæner. Systemet, ligesom et menneske, forstår, at 11.11.11.11 formentlig er en dedikeret server, og da domænet example.ru er lignende i skrivemåde til example.com, er der stor sandsynlighed for, at de er forbundet og bør vises i grafen; men IP 22.22.22.22 tilhører shared hosting, så alle hans domæner skal ikke vises i grafen, medmindre der er andre forbindelser, der viser, at et af disse 25 tusinde domæner også bør medtages (for eksempel example.net). Før systemet forstår, at forbindelserne skal brydes, og at nogle elementer ikke skal vises i grafen, tager det højde for mange egenskaber ved elementerne og de klynger, som disse elementer er samlet i, samt styrken af de nuværende forbindelser. For eksempel, hvis vi har en lille klynge (50 elementer) i grafen, som indeholder det dårlige domæne, og en anden stor klynge (5.000 elementer), og begge klynger er forbundet med en forbindelse (linje) med meget lav styrke (vægt), så vil den forbindelse brydes, og elementerne fra den store klynge vil blive fjernet. Men hvis der er mange forbindelser mellem den lille og den store klynge, og deres styrke gradvist øges, så vil denne forbindelse ikke brydes, og de nødvendige elementer fra begge klynger forbliver i grafen.

Ejendomsejerens intervaller for servere og domæner tages ikke i betragtning. Forklaring. Registreringsperioden for "dårlige domæner" udløber før eller senere, og de købes igen til ondsindede eller legitime formål. Selv blandt bulletproof-hostingudbydere udlejes servere til forskellige hackere, så det er kritisk at kende og tage hensyn til den periode, hvor et bestemt domæne/server styres af en enkelt ejer. Vi støder ofte på situationer, hvor serveren med IP 11.11.11.11 nu bruges som C&C for bankbots, mens den for to måneder siden blev styret af ransomware. Hvis forbindelsen opbygges uden at tage ejerskabsintervallerne i betragtning, vil det se ud som om, der er en forbindelse mellem ejerne af bankbots og løsesummen, selvom der faktisk ikke er nogen. En sådan fejl er kritisk i vores arbejde.
Vi har lært systemet at bestemme ejerskabsintervaller. For domæner er det relativt enkelt, da der ofte er angivet start- og udløbsdatoer i whois, og når der er en fuld historik over ændringer i whois, er det let at bestemme intervallerne. Når et domæne ikke er udløbet, men forvaltningen er overdraget til andre ejere, kan dette også spores. SSL-certifikater har ikke dette problem, da de udstedes én gang, ikke forlænges eller overdrages. Men for selvsignerede certifikater kan man ikke stole på de datoer, der er angivet i gyldighedsperioden, fordi man kan generere et SSL-certifikat i dag, men angive startdatoen til 2010. Det er sværest at bestemme ejerskabsintervallerne for servere, da datoer og lejeperioder kun findes hos hostingudbydere. For at bestemme serverens ejerskabsperiode begyndte vi at anvende resultaterne af portscanning og oprettelse af fingeraftryk af de kørende tjenester på portene. På baggrund af denne information kan vi ret præcist sige, hvornår ejeren af serveren er blevet skiftet.

Få forbindelser. Forklaring. Det er nu ikke et problem at få en liste over domæner, hvor en bestemt e-mailadresse er angivet i whois, eller at finde alle domæner, der har været knyttet til en bestemt IP-adresse, selv gratis. Men når det gælder hackere, der gør alt for at gøre det svært at spore dem, kræves der ekstra "tricks" for at finde nye egenskaber og etablere nye forbindelser.
Vi har brugt meget tid på at undersøge, hvordan man kan udtrække data, der ikke er tilgængelige på almindelig vis. Af åbenlyse grunde kan vi ikke beskrive, hvordan dette virker, men under visse omstændigheder laver hackere fejl ved registrering af domæner eller ved leje og opsætning af servere, der tillader at afsløre e-mailadresser, hackernes kaldenavne og backend-adresser. Jo flere forbindelser du udtrækker, jo mere præcist kan graferne konstrueres.

Hvordan vores graf fungerer

For at begynde at bruge netværksgrafen skal du indtaste et domæne, IP-adresse, e-mail eller fingeraftryk af et SSL-certifikat i søgefeltet. Der er tre betingelser, som analytikeren kan styre: tid, dybde af skridt og rensning.

Din udgang, graf: hvordan vi ikke fandt et godt netværksgraf og skabte vores eget

Tid

Tid – datoen eller intervallet, hvornår den søgte genstand blev brugt til ondsindede formål. Hvis denne parameter ikke angives, vil systemet automatisk bestemme det seneste interval for ejerskab af denne ressource. For eksempel den 11. juli offentliggjorde Eset en rapport om, hvordan Buhtrap bruger 0-day exploit til cyberspionage. I slutningen af rapporten er der 6 indikatorer. En af dem, secure-telemetry[.]net, blev genregistreret den 16. juli. Så hvis du bygger grafen efter den 16. juli, vil du få irrelevante resultater. Men hvis du angiver, at dette domæne blev brugt før denne dato, så vil 126 nye domæner, 69 IP-adresser, som ikke er nævnt i Eset-rapporten, komme med i grafen:

  • ukrfreshnews[.]com
  • unian-search[.]com
  • vesti-world[.]info
  • runewsmeta[.]com
  • foxnewsmeta[.]biz
  • sobesednik-meta[.]info
  • rian-ua[.]net
  • og andre.

Udover netværksindikatorerne finder vi straks forbindelser til ondsindede filer, der har haft forbindelser til denne infrastruktur og tags, der antyder, at Meterpreter, AZORult blev brugt.

Det mest bemærkelsesværdige er, at du får dette resultat inden for én sekund, og du skal ikke længere bruge dage på dataanalyse. Denne tilgang reducerer bestemt nogle gange efterforskningstiden med flere gange, hvilket ofte er kritisk.

Din udgang, graf: hvordan vi ikke fandt et godt netværksgraf og skabte vores eget

Antal skridt eller dybden af rekursion, der vil blive brugt til at konstruere grafen

Som standard er dybden 3. Det betyder, at der fra den søgte genstand vil blive fundet alle direkte tilknyttede elementer, og herefter vil der fra hvert nyt element blive bygget nye forbindelser til andre elementer, og allerede fra de nye elementer fra det forrige skridt vil der blive fundet nye elementer.

Lad os tage et eksempel, der ikke er relateret til APT og 0-day exploits. For nylig blev der på Хабре beskrevet en interessant sag om svindel relateret til kryptovalutaer. I rapporten nævnes domænet — themcx[.]co, der blev brugt af svindlere til hosting af en hjemmeside, der angiveligt var en vekselbørs for Miner Coin Exchange, samt phone-lookup[.]xyz, til at tiltrække trafik.

Fra beskrivelsen er det klart, at ordningen kræver en temmelig stor infrastruktur for at tiltrække trafik til de svigagtige ressourcer. Vi besluttede at se nærmere på denne infrastruktur ved at bygge et diagram i 4 trin. Resultatet blev et diagram med 230 domæner og 39 IP-adresser. Derefter opdeler vi domænerne i 2 kategorier: dem, der ligner kryptovalutarelaterede tjenester, og dem, der er beregnet til at generere trafik via telefonopkaldsverifikationstjenester:

Relateret til kryptovaluta
Relateret til tjenester til opkaldsregistration

coinkeeper[.]cc
caller-record[.]site.

mcxwallet[.]co
phone-records[.]space

btcnoise[.]com
fone-uncover[.]xyz

cryptominer[.]watch
number-uncover[.]info

Din udgang, graf: hvordan vi ikke fandt et godt netværksgraf og skabte vores eget

Rydning

Som standard er indstillingen "Ryd diagram" aktiveret, og alle irrelevante elementer vil blive fjernet fra diagrammet. For resten blev den også brugt i alle de tidligere eksempler. Jeg forudser et naturligt spørgsmål: hvordan kan vi så sikre, at der ikke slettes noget vigtigt? Svaret er: for analytikere, der kan lide at bygge diagrammer manuelt, kan den automatiserede rengøring deaktiveres, og antallet af trin kan sættes til 1. Derefter kan analytikeren fortsætte med at bygge diagrammet fra de elementer, han har brug for, og fjerne irrelevante elementer i forhold til den opgave, der er blevet stillet.

Allerede på diagrammet får analytikeren adgang til historik over whois-ændringer, DNS samt åbne porte og tjenester, der kører på dem.

Din udgang, graf: hvordan vi ikke fandt et godt netværksgraf og skabte vores eget

Finansiel phishing

Vi har undersøgt handlingerne fra en APT-gruppe, der i flere år har gennemført phishingangreb mod kunder i forskellige banker i forskellige regioner. Et kendetegn ved denne gruppe var registreringen af domæner, der var meget lig de virkelige bankers navne, og størstedelen af phishing-hjemmesiderne havde et ensartet design, hvor forskellene kun var i bankens navne og deres logoer.

Din udgang, graf: hvordan vi ikke fandt et godt netværksgraf og skabte vores eget
I denne situation blev vi meget hjulpet af automatiseret grafanalyse. Ved at tage et af deres domæner — lloydsbnk-uk[.]com, byggede vi på få sekunder et graf med en dybde på 3 trin, som afslørede mere end 250 ondsindede domæner, der blev brugt af denne gruppe siden 2015 og stadig anvendes. Nogle af disse domæner er allerede købt af banker, men ifølge historiske optegnelser kan vi se, at de tidligere var registreret af angriberne.

For tydelighedens skyld vises grafen med en dybde på 2 trin på billedet.

Bemærkelsesværdigt er det, at angriberne allerede i 2019 ændrede taktik og begyndte at registrere ikke kun bankdomæner til hosting af web-fiskeri, men også domæner fra forskellige konsulentfirmaer til at sende phishing-e-mails. For eksempel domænerne swift-department.com, saudconsultancy.com, vbgrigoryanpartners.com.

Din udgang, graf: hvordan vi ikke fandt et godt netværksgraf og skabte vores eget

Cobalt gang

I december 2018 udførte hackergruppen Cobalt, som specialiserer sig i målrettede angreb på banker, en udsendelse på vegne af Nationalbanken i Kasakhstan.

Din udgang, graf: hvordan vi ikke fandt et godt netværksgraf og skabte vores eget
I e-mails var der links til hXXps://nationalbank.bz/Doc/Prikaz.doc. Det downloadede dokument indeholdt et makro, der kørte PowerShell og forsøgte at downloade og udføre en fil fra hXXp://wateroilclub.com/file/dwm.exe i %Temp%einmrmdmy.exe. Filen %Temp%einmrmdmy.exe aka dwm.exe — CobInt stager, der er konfigureret til at interagere med serveren hXXp://admvmsopp.com/rilruietguadvtoefmuy.

Forestil dig, at du ikke har mulighed for at modtage disse phishing-e-mails og udføre en fuld analyse af ondsindede filer. Grafen for det ondsindede domæne nationalbank[.]bz viser straks forbindelser til andre ondsindede domæner, attribuerer dette til gruppen og viser, hvilke filer der blev brugt i angrebet.

Din udgang, graf: hvordan vi ikke fandt et godt netværksgraf og skabte vores eget
Lad os tage IP-adressen 46.173.219[.]152 fra denne graf og opbygge en graf for den i en enkelt gennemgang og deaktivere rensning. Der er 40 domæner knyttet til det, for eksempel bl0ckchain[.]ug
paypal.co.uk.qlg6[.]pw
cryptoelips[.]com

Dømt ud fra domænenavnene ser det ud til, at de anvendes i svindelscenarier, men rensningsalgoritmen forstod, at de ikke havde forbindelse til dette angreb og derfor ikke blev inkluderet i grafen, hvilket væsentligt forenkler analysen og attributeringen.

Din udgang, graf: hvordan vi ikke fandt et godt netværksgraf og skabte vores eget
Hvis man genopbygger grafen for nationalbank[.]bz, men deaktiverer rensningsalgoritmen, så viser den mere end 500 elementer, hvoraf størstedelen ikke har forbindelse til hverken Cobalt-gruppen eller deres angreb. Et eksempel på, hvordan en sådan graf ser ud, vises nedenfor:

Din udgang, graf: hvordan vi ikke fandt et godt netværksgraf og skabte vores eget

Konklusion

Efter flere års finjustering, testning i virkelige undersøgelser, trusselundersøgelser og jagt på angribere har vi ikke kun været i stand til at skabe et unikt værktøj, men også ændre eksperternes opfattelse af det internt i virksomheden. I starten ønskede de tekniske eksperter fuld kontrol over processen med at opbygge grafen. At overbevise dem om, at den automatiserede grafbygning kunne gøre det bedre end en person med mange års erfaring, var ekstremt svært. Tid og gentagne 'manuelle' tjek af resultaterne, som grafen gav, ændrede alt. Nu stoler vores eksperter ikke kun på systemet, men bruger også de resultater, det giver, i deres daglige arbejde. Denne teknologi fungerer inden i hver af vores systemer og gør det muligt bedre at identificere trusler af enhver art. Grænsefladen til manuel analyse af grafen er indbygget i alle Group-IB-produkter og udvider markant mulighederne for jagt på cyberkriminalitet. Dette bekræftes af tilbagemeldinger fra analytikere fra vores kunder. Og vi fortsætter med at berige grafen med data og arbejde på nye algoritmer, der anvender kunstig intelligens for at skabe den mest præcise netværksgraf.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster