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.



PreAMo : 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.

PreAMo : Google Play

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.

PreAMo : Google Play

Figur 3 - Påvisningsmetode nr. 1

PreAMo : Google Play

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)

PreAMo : Google Play

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.

PreAMo : Google Play

Figur 6-Betinget sjekk utført av PreAMo

PreAMo : Google Play

Figur 7 - Forhåndsbestemte koordinater lest fra xdd

PreAMo : Google Play

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.

PreAMo : Google Play

Figur 9 - Trådoppretting

PreAMo : Google Play

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.

PreAMo : Google Play

Figur 11 - Kontroller annonsekonfigurasjonen

PreAMo : Google Play

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).

PreAMo : Google Play

Figur 13 - Presage reimplementeringsmetode

PreAMo : Google Play

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.

PreAMo : Google Play

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.

PreAMo : Google Play

Figur 16-Smidd vertsinformasjon

PreAMo : Google Play

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.

PreAMo : Google Play

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

PreAMo : Google Play

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.

PreAMo : Google Play

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 ’