Tapjacking vendte tilbage i Android Marshmallow, og ingen bemærkede

click fraud protection

Visse Marshmallow-enheder er modtagelige for tapjacking, hvor en app overlejrer tekst oven på en tilladelsesdialog for at narre brugeren.

Mens mange af os savler over den nyligt udgivne Android Nougat til Nexus-enheder, er langt de fleste brugere stadig på Android Marshmallow. En udnyttelse, hvis eksistens er blevet dokumenteret siden i hvert fald medio 2015 påvirker stadig mange moderne Android-enheder.

Ondsindede applikationer er i stand til tapjack dine handlinger ind give dem en tilladelse, du aldrig eksplicit har givet. Her er hvordan udnyttelsen fungerer.


Tapjackingens tilbagevenden

Forestil dig, at du åbner Instagram og prøver at dele et billede, du for nylig tog, mens du var på ferie. Når du vælger at gennemse dit galleri efter et billede, beder Instagram dig om at give det tilladelse til at få adgang til dit lager. Men når du trykker på "ja" bliver du mødt af en fejlmeddelelse.

Du kan ikke give lagringstilladelsen til Instagram, fordi du har aktiveret en aktiv skærmoverlejring dette etui, en af ​​de mange applikationer, der toner din skærm, så du kan bruge din telefon om natten uden at blænde dig selv. Dette er et tilfælde af Android-tilladelsessystemet

fungerer efter hensigten: For at give en applikation en følsom tilladelse skal du deaktivere alle skærmoverlejringer, du har på din enhed.

Marshmallow Permission Tapjacking. Hvis du trykker på "Tillad", vises alle mine kontakter.

Programmer, der har evnen til at tegne over din skærm, kan potentielt narre dig til at give den følsomme data. For eksempel kan en skærmoverlejring placere en falsk adgangskodeinput oven på en rigtig login-skærm for at indsamle dine adgangskoder. En udnyttelse som denne kaldes 'tapjacking' og er poppet og blevet patchet på forskellige Android-versioner gennem årene, med et af de værste eksempler, der varer indtil Android 4.0.3. Men for nylig, udnyttet gjort en tilbagevenden med Android Marshmallows køretidstilladelsesmodel.

En udvikler ved navn Iwo Banaś skabt en Ansøgning demonstrere udnyttelsen. Måden det fungerer på er ret simpelt - når en applikation viser en tilladelsesdialog, den ondsindede applikation du har installeret vil vise en systemoverlejring for at dække over tilladelsesdialogens tekstblok med hvilken som helst tekst den har lyst. En uvidende bruger, der klikker på "tillad" på tilladelsesdialogboksen, vil blive narret til at give en tilladelse, som de blev bedt om - men som anmodningen var skjult for brugerens syn på. En sådan udnyttelse modarbejder fuldstændig formålet med Android Marshmallows tilladelsessystem, siden introduktionen af den nye model skulle sikre, at brugerne kun ville have tilladelser, som de udtrykkeligt har givet sit samtykke til.

Nu ved jeg, hvad du tænker på. Hvis Android opdagede en systemoverlejring og forhindrede mig i at give Instagram-lagringstilladelser, ville det så ikke forhindre denne udnyttelse i at ske? Svaret er nej, i min test ser det ud til, at det på visse enheder ikke udløser sikkerhedsmekanismen, hvis der vises en tekstoverlejring oven på en tilladelsesdialog. Udvikleren af ​​proof-of-concept tapjacking-applikationen siger, at udnyttelsen er effektiv, fordi den er afhængig af, at brugeren installerer en sekundær ondsindet applikation, der er målrettet mod API-niveau 22 og derunder (før Marshmallow). Dette skyldes det faktum, at alle applikationer før Android Marshmallow tildeles tilladelser under installationen.

Okay, så hvis du er på Marshmallow, skal du bare undgå at installere apps, du ikke har tillid til, og som anmoder om tilladelse til at tegne en overlejring, ikke? Hvis Androids tilladelsesmodel fungerede som oprindeligt lagt ud, ville du have ret. Men siden opdagelsen af ​​denne udnyttelse, selv apps, der er målrettet mod API-niveau 23 (Marshmallow), der anmoder om overlejringstilladelsen, er en potentiel risiko.


Et hul i tilladelsesmodellen?

Typiske apps, der bruger overlejringer. Via: Medium

Hvis du er en af ​​de mange millioner mennesker, der bruger Facebook Messenger til at chatte med dine venner, så er du stødt på en af ​​Androids bedste funktioner - muligheden for apps til at tegne oven på andre skærme. Hvor fedt er det, at du kan have en boble med din foretrukne Facebook-gruppechat, og følge brugeren oven på enhver applikation, de åbner? Selvom Facebooks Messenger bragte ideen om "flydende apps" ind i mainstream, har konceptet eksisteret i nogen tid i Android. Applikationer har været i stand til at skabe overlejringer oven på dine apps i nogen tid, takket være eksistensen af TYPE_SYSTEM_OVERLAY i Androids WindowManager.

"Tegn over andre apps" Tilladelsesmenu

Før Android Marshmallow skal applikationer anmode om en tilladelse kaldet SYSTEM_ALERT_WINDOW under installationen, før den kunne vise overlejringer oven på din skærm. Men dette ændrede sig med introduktionen af ​​6.0's granulære køretidstilladelsesmodel. Brugere ville nu skulle give tilladelser til applikationer, når de rent faktisk kører appen, hvilket forhåbentlig ville anspore gennemsnittet bruger til at beskytte deres egne private data fra applikationer, der mistænkeligt anmoder om tilsyneladende funktionelt urelaterede tilladelser.

SYSTEM_ALERT_WINDOW er dog ikke som andre tilladelser. Udviklere kan ikke vise en dialogboks for programmæssigt at anmode om, at tilladelsen gives af slutbrugeren, ligesom de fleste andre tilladelser på enhver app, der er målrettet mod Marshmallow. I stedet skal du manuelt navigere til indstillingsskærmen og selv aktivere tilladelsen. Selvfølgelig vil nogle apps såsom Facebook Messenger hjælpe dig med processen.

Google kræver dette af udviklere, fordi de har anset tilladelsen for at være "særligt følsomme."

Særlige tilladelser

Der er et par tilladelser, der ikke opfører sig som normale og farlige tilladelser. SYSTEM_ALERT_WINDOW og WRITE_SETTINGS er særligt følsomme, så de fleste apps bør ikke bruge dem. Hvis en app har brug for en af ​​disse tilladelser, skal den erklære tilladelsen i manifestet og sende en hensigt med anmodning om brugerens autorisation. Systemet reagerer på hensigten ved at vise en detaljeret administrationsskærm til brugeren.

I betragtning af, hvad vi ved ovenfor om tapjacking, giver dette mening. Men her er sagen. Google følger ikke engang sine egne regler. Skærmbillederne af Facebook Messenger, der guider dig gennem processen med at give den den SYSTEM_ALERT_WINDOW-tilladelse, som jeg viste dig ovenfor? Det sker kun, hvis du installerer APK'en uden for Google Play Butik. Hvis du installerer en applikation fra Google Play Butik, SYSTEM_ALERT_WINDOW-tilladelse gives automatisk.

Facebook Messengers manifestfil. Appen tildeles automatisk overlejringstilladelsen trods målretning mod API-niveau 23.

Google har ofret sikkerhed for nemheds skyld

I lang tid før Android Marshmallow blev SYSTEM_ALERT_WINDOW betragtet som en "farligt"tilladelse. Med Android Marshmallow 6.0 blev tilladelsen ændret til signatur|system|appop hvilket er det, der oprindeligt krævede, at udviklere skulle føre brugeren til indstillingsskærmen for at give tilladelsen. Men med Android version 6.0.1, SYSTEM_ALERT_WINDOW blev ændret så Google Play Butik automatisk kunne give tilladelsenuden at give brugeren besked. Hvorfor Google har foretaget denne ændring er uklart for os. Google er ikke selv gået ud og forklaret, hvorfor de lavede denne ændring, hvilket er særligt mærkeligt i betragtning af sproget om SYSTEM_ALERT_WINDOW, der stadig eksisterer på deres websider.

Det er muligt det nok udviklere var vrede ved de indledende ændringer af SYSTEM_ALERT_WINDOW, der krævede, at brugere manuelt gav den tilladelse, som Google stillede overhørte og blot gav den til enhver applikation, der anmodede om det. Men i den forbindelse har Google ofret sikkerhed for nemheds skyld. Der er en grund til, at Google selv anså tilladelsen for at være farlig i længst tid, for det er den. Og eksistensen af ​​Marshmallow tilladelse tapjacking udnyttelse er nok bevis på de iboende farer ved automatisk at give denne tilladelse til enhver app.

Denne tapjacking udnyttelse er først for nylig blevet gjort opmærksom på, selvom den har eksisteret i mange måneder nu. I vores interne test af enheder blandt XDA Portal-teamet har vi bekræftet det udnyttelsen fungerer på mange moderne enheder, der kører Android Marshmallow. Her er en hurtig gennemgang af de enheder, vi testede på de seneste tilgængelige softwareversioner for hver respektive enhed, og om tapjacking-udnyttelsen virker eller ej. Enhederne mærket "Sårbar" er modtagelige for tapjacking, mens enheder mærket "Ikke Sårbare" er i stand til at registrere en app, der viser overlejringen og anmode om, at du deaktiverer den før fortsætter.

  • Nextbit Robin - Android 6.0.1 med sikkerhedsrettelser fra juni - Sårbar
  • Moto X Pure - Android 6.0 med sikkerhedsrettelser i maj - Sårbar
  • Honor 8 - Android 6.0.1 med sikkerhedsrettelser til juli - Sårbar
  • Motorola G4 - Android 6.0.1 med sikkerhedsrettelser til maj - Sårbar
  • OnePlus 2 - Android 6.0.1 med sikkerhedsrettelser fra juni - Ikke sårbar
  • Samsung Galaxy Note 7 - Android 6.0.1 med sikkerhedsrettelser til juli - Ikke sårbar
  • Google Nexus 6 - Android 6.0.1 med sikkerhedsrettelser til august - Ikke sårbar
  • Google Nexus 6P - Android 7.0 med sikkerhedsrettelser til august - Ikke sårbar

Indtil videre er det alle de enheder, jeg var i stand til at få holdet til at teste. Jeg kunne ikke finde nogen sammenhæng mellem sikkerhedspatchversionen og udnyttelsen. Som du kan se fra vores seneste diskussion om Android-sikkerhedsopdateringer, mange mennesker kører alligevel ikke på de nyeste sikkerhedsrettelser og er derfor muligvis sårbare over for denne udnyttelse og andre, der er beskrevet på Android sikkerhedsbulletin.


Bevæger sig fremad

Tapjacking-tjenesten har givet overlejringstilladelsen

Vi opfordrer dig til selv at teste denne udnyttelse på din enhed for at se, om du er sårbar. Vi har samlet APK'erne fra kildekoden linket ovenfor (du kan også gøre det selv) og har uploadet dem til AndroidFileHost. For at teste udnyttelsen skal du installere både vigtigste tapjacking-applikation samt dens hjælper service. Derefter skal du blot køre hovedprogrammet og klikke på "test"-knappen. Hvis en tekstboks flyder oven på tilladelsesdialogen, og når du klikker på "tillad", vises en liste over din enheds kontakter, så er din enhed sårbar over for tapjacking. Du skal ikke bekymre dig om, at det flydende tekstfelt ikke helt dækker tilladelsesdialogen, denne proof-of-concept-app er ikke beregnet til perfekt at demonstrere, hvordan man pænt kaprer en tilladelsesdialog, men snarere at bevise, at det faktisk er muligt.

Vi håber, at der bliver introduceret en rettelse, der retter denne udnyttelse på alle Marshmallow-enheder, og at OEM'er opdaterer alle deres enheder til den seneste sikkerhedspatch. Fordi virkeligheden er, at det vil tage mange måneder for de fleste lovede enheder at få Nougat, så den eneste måde for de fleste brugere at holde sig ude af skade er enten at installere de nyeste sikkerhedsrettelser eller at tage tilladelser til overvågningsapp dem selv. Men med Googles beslutning om automatisk at give den potentielt farlige SYSTEM_ALERT_WINDOW-tilladelse, er der mange brugere kører ubevidst apps, der potentielt kan kapre deres telefoner for at give mere og mere farligt tilladelser.