PreAMo: Aktivitet for annonseklikk i Google Play
Preamo Ad Click Activity Google Play
Oversikt
Checkpoint-sikkerhetsforskere har oppdaget en rekke applikasjoner for falske aktiviteter mot annonsører. Blant dem er en skadelig programvare, PreAMo, som kan simulere brukere ved å klikke på bannerne til tre annonsører, som er Presage, Admob og Mopub.
Totalt er over 90 millioner nedlastinger av de seks programvarene gjort, og Google har fjernet infiserte applikasjoner fra Google Play.
Figur 1 - RAM Master Google Play-informasjon
PreAMo
PreAMo består av tre forskjellige koder, som hver har ansvar for å håndtere en annonsør. Fordi disse tre kodene er distribuert i forskjellige pakker, er utløsningsmetodene forskjellige, og det er ingen forbindelse. De tre delene av koden er alle koblet for å kommunisere med den samme C2-serveren, som brukes til å sende statistiske data og motta konfigurasjonsdata. Oppførselen til de tre delene av koden er lik. De registrerer en lytter på banneret som er lagt inn av annonsenettverket. Når banneret er lastet inn, bruker PreAMo klassen Android Motion 'MotionEvent' for å simulere klikk.
På grunn av forskjellene i implementeringen av reklamebiblioteket bruker angriperne bak PreAMo imidlertid forskjellige metoder for å håndtere hver annonsør.
1. Annonsebyrå 1 - Admob:
‘PreAMo’ er registrert i manifestet av com.google.android.gms.ads.internal.tools.ConfigProvider, formålet er å initialisere AdMobFixer-klassen når vertsapplikasjonen starter. Denne klassen bruker en tidtaker for å registrere en dynamisk mottaker for periodisk å se etter konfigurasjonsoppdateringer fra C2-serveren.
Figur 2 - Mottakerregistrering
‘PreAMo’ bruker to forskjellige metoder for å oppdage om et reklamebanner vises. Den første metoden er å bruke refleksjon for å bryte den inn i en intern struktur og installere tilbakeringinger. Den andre metoden er basert på tilbakeringing av aktivitetslivssyklusen.
Figur 3 - Påvisningsmetode nr. 1
Figur 4 - Påvisningsmetode nr. 2
Android-systemet varsler lytteren når en ny aktivitet opprettes i applikasjonen. PreAMo vil rekursivt søke etter en spesifikk annonsevisning fra toppvinduet (dekor)
Figur 5-Implementering av OnAdActiviy
Etter å ha oppdaget banneret, vil PreAMo sjekke følgende sett med betingelser:
· Om brukeren er organisk. Denne taggen er en del av com.DianXinOS-biblioteket og er satt i henhold til intensjonen mottatt av lytteren til INSTALL_REFERRER. Hvis innholdet inneholder ordet organisk, noe som indikerer at applikasjonen ble installert etter søk i Google Play, blir verdien satt til Sann, ellers blir den satt til falsk. Autoklikking fungerer bare når verdien er usann. I noen versjoner av PreAMo mottas denne verdien imidlertid fra C2-serveren.
· Brukeren har ikke klikket på reklamebanneret.
· Intervallet mellom klikk og maksimalt antall daglige klikk er under den forhåndsdefinerte grensen.
· Sjekk tilfeldige verdier.
Hvis alle ovennevnte betingelser er oppfylt, vil PreAMo simulere å klikke på banneret. For å oppnå dette leser skadelig programvare de forhåndsdefinerte koordinatposisjonene fra filressursene / xdd. I noen tilfeller er dette basert på størrelsen på banneret. PreAMo kan bruke tilfeldig genererte koordinater.
Figur 6-Betinget sjekk utført av PreAMo
Figur 7 - Forhåndsbestemte koordinater lest fra xdd
Figur 8 - Bruk av tilfeldig genererte koordinater
Annonsebyrå # 2 - Presage:
Utførelsen av denne delen av koden kommer fra klassen com.DianXinOS.OService. I metoden for å ringe til StartCommand, vil PreAMo starte en ny tråd for periodisk å vise in-stream-annonser fra Presage (ogury) -biblioteket.
I tråden kommuniserer skadelig programvare med C2-serveren og laster konfigurasjonsdata fra URL-en hxxps: //res.mnexuscdn [.] Com / dp / 0845e0150308bcdf5ef03ba8295075f9.
Figur 9 - Trådoppretting
Figur 10 - Annonsestrategi (konfigurasjonsdata)
PreAMo vil motta konfigurasjonsfilen og sjekke perioden for annonser (min_i_sec_limit) og daglige maksimale annonser (max_p_ad). Etter vellykket bekreftelse vil PreAMo vise aktivitetene knyttet til reklame fra Presage.
Figur 11 - Kontroller annonsekonfigurasjonen
Figur 12 In-stream-reklame
I tillegg til å vise annonser fra Presage, vil PreAMo også registrere sin egen hendelsesbehandling for vertsapplikasjonen, og deretter implementere følgende metode (Figur 13) og erstatte standard Presage-webklient for å bruke tilfeldig genererte koordinater for å klikke på banneret (Figur 14).
Figur 13 - Presage reimplementeringsmetode
Figur 14 - Tilfeldig genererte koordinater
Annonsebyrå # 3 - Mopub:
Når PreAMo håndterer Mopub, blir den første delen lokalisert i innholdsleverandøren. Leverandøren er i klassen com.android.stats.tools.InitProvider. Når vertsapplikasjonen starter, det vil si i OnCreate-metoden, kjøres koden og tidtakeren konfigureres.
Timeren vil med jevne mellomrom sende en forespørsel til URL-en som er satt for å se etter konfigurasjonsoppdateringer:
· hxxps: //res.mnexuscdn [.] com / dp / a79a2d1b9a8252fcc6917d6c46211199 ’
· hxxps: //res.mnexuscdn [.] com / dp / 75d109e54ce75b05064374ae0b77a359 ’
· hxxps: //res.mnexuscdn [.] com / dp / dd87a43132f3ce443d1e50b29019de3b ’
· hxxps: //res.mnexuscdn [.] com / dp / 8c7d12b8c28d8e573439c59627df9092 ’
I likhet med forrige avsnitt inkluderer konfigurasjonen forskjellige forsinkelser og forhold knyttet til klikkalgoritmen. Fordi Mopub-biblioteket er åpen kildekode, er ProAMo-kildekodeinjeksjonskoden integrert i kildekoden til biblioteket. Bruk for eksempel den falske pakkeinformasjonen i metoden com.mopub.common.AdUrlGenerator.
Figur 15 - Informasjon om smidd pakke
På samme måte vil angriperen endre koden til Mraid-kontrolleren for å håndtere koblingene som er åpnet i WebView-komponenten. Kontrolleren inneholder objekter som implementerer MraidListener-grensesnittet, som inneholder tilbakeringinger for hendelser utløst av JS. En av tilbakeringingsmetodene kalles onOpen, og åpen kildekode reagerer på URL-er som er åpnet i JS.
Figur 16-Smidd vertsinformasjon
Figur 17-implementering av MraidController
Implementeringen av onOpen kalles klasse URLHandler, som er ansvarlig for behandlingen av URL-en som tilsvarer ordningen. Angriperen bak PreAMo endret denne prosessen. Hvis URL-en behandles riktig, og det er en HTML-side, blir klikk simulert.
Figur 18 - Klikk på etterligning 1
HTMLWebViewClient gjør lignende ting, inkludert en metode som bør OverrideUrlLoading som gir vertsapplikasjonen en sjanse til å kontrollere når URL-en lastes inn i gjeldende WebView. Mopub bruker den til å sjekke hvordan man håndterer URL-er som skal lastes inn i WebView, men malwareutviklere vil injisere sin egen kode for å utføre klikk på siden som skal lastes inn. Himmelfarge
Figur 19 - Klikkimitasjon nr. 2
C2-server
C2-serverens domenenavn res.mnexuscdn.com ble registrert gjennom en anonym tjeneste. I henhold til dataene om passiv total, dukket den tidligste opp 12. desember 2018.
Figur 20-WhoIS-data for RiskIQ
Klikk for å motta konfigurasjonsdata fra AdMob:
· https: //res.mnexuscdn [.] com / dp / 4456476a30e111ba1b3ee299c279d51a ’
Klikk for å motta konfigurasjonsdata fra Mopub:
· https: //res.mnexuscdn [.] com / dp / a79a2d1b9a8252fcc6917d6c46211199 ’
· https: //res.mnexuscdn [.] com / dp / dd87a43132f3ce443d1e50b29019de3b ’
· https: //res.mnexuscdn [.] com / dp / 8c7d12b8c28d8e573439c59627df9092 ’
· https: //res.mnexuscdn [.] com / dp / cdaef0b66c347591bffd32260d76c6cc ’
· https: //res.mnexuscdn [.] com / dp / 9a641c69cf5186982e8ac8c4e06e80f4 ’
· https: //res.mnexuscdn [.] com / dp / f61f3f92d0dbcebe26d47dea3af1492a ’
Klikk på motta konfigurasjonsdata fra presage / ogury:
· https: //res.mnexuscdn [.] com / dp / 0845e0150308bcdf5ef03ba8295075f9 ’