TaintDroid: Advarer om Android-apper som lekker sensitive data

Android-operativsystemene gir oss et valg om en app kan få tilgang til vår sensitive informasjon eller ikke. Vi sier at appen blir installert. Eller, vi sier ingen vei, og appen er ikke installert. Ikke den beste løsningen, men vi vet i det minste hvilke tillatelser som brukes.

Jeg er redd for at det ikke er nok. Vi har fortsatt ingen anelse om hva appen gjør med vår sensitive informasjon.

Møt TaintDroid

Jeg lærte første gang om TaintDroid mens jeg undersøkte forrige ukes artikkel om App Scanner: Et forskningsprosjekt som er bestemt til å belyse vagariene i Android-tillatelsessystemet og installere tredjepartsapplikasjoner.

En viktig del av App Scanner-prosjektet var å lære hva som skjer når du gir en app visse tillatelser. Du husker kanskje følgende lysbilde fra forrige ukes artikkel.

Selv etter en ekstra uke med research, har jeg fremdeles ikke funnet noen grunn til at en lommelykt-app trenger å kjenne telefonens GPS-plassering. Her kommer TaintDroid til å spille. TaintDroid lar App Scanner spore hva apper gjør med data - for eksempel GPS-posisjonsdata.

For å få en ide om hvordan TaintDroid fungerer, så jeg denne videodemonstrasjonen. Demonstrasjonen viser hvordan TaintDroid reagerer når den bestemmer at sensitive data lekker fra et program som er installert på verttelefonen. Ikonet i øvre venstre hjørne er den første indikasjonen på at noe skjer.

Neste lysbilde viser hvilken informasjon som legger igjen telefonen.

Fascinerende.

Nettstedet TaintDroid koblet også til forskerteamets papir - en annen skremmende tittel: "TaintDroid: Et informasjonsflyt-sporingssystem for overvåkning av personvern i sanntid på smarttelefoner." Jeg lærte leksjonen min forrige uke og prøvde ikke engang å finne ut hva jeg leste denne gangen. Jeg kontaktet en av hovedforfatterne, Dr. William Enck, adjunkt ved NC State University, og spurte om han ville forklare hvordan TaintDroid fungerer.

Kassner : Professor Enck, hvordan bestemte du deg for hvilke apper du skulle teste? Hva fant du? Enck : Vi startet med et øyeblikksbilde av de 50 gratis gratisprogrammene fra hver av kategoriene i Android Market. Dette ga oss 1100 applikasjoner - altfor mange til å teste manuelt. Så vi beskjærte listen ned til applikasjoner som ønsket tilgang til Internett pluss muligheten til å bruke en av følgende - GPS, kamera eller mikrofon. Det ga oss 358 apper, fortsatt mer enn vi kunne takle, så vi valgte tilfeldig 30.

Vi kjørte da de 30 appene og registrerte både TaintDroid-loggene så vel som nettverkssporene (for å bekrefte hva TaintDroid fant). Etter å ha kjørt dette eksperimentet hadde vi over 1 000 TCP-nettverkstilkoblinger, og 105 inneholdt sensitiv informasjon.

Når vi ser på de 105 forbindelsene, observerte vi at 37 var legitime. De resterende 68 nettverkstilkoblingene var imidlertid ikke like klare. Ved nøye inspeksjon fant vi 15 av de 30 applikasjonene delte posisjonsinformasjon med annonseservere og syv applikasjoner delte telefonidentifikatorer med en ekstern Internett-server. Alt dette skjedde uten kunnskap fra brukeren, hvorfra jeg mener, ingen lisensavtaler for sluttbrukere (EULA), og ingen visuelle indikatorer som antydet at informasjonen ble brukt på denne måten.

Kassner : Jeg forstår ikke helt, jeg trodde vi gir appen tillatelse? Enck : Før en app kan få tilgang til de fleste typer personvernfølsom informasjon, må den ha tillatelse til det. I Android formidles disse tillatelsene til brukeren når appen er installert. På dette tidspunktet har brukeren muligheten til å installere applikasjonen etter å ha tillatt alle tillatelsene den ber om, eller ikke installert applikasjonen.

Merk at dette bare beskriver hvilken informasjon appen har tilgang til, og ikke hva den kan gjøre med informasjonen når den har fått tilgang til den. Dette siste stykket er det TaintDroid bestemmer.

Noen applikasjoner inkluderer EULAer som blir presentert for brukeren første gang applikasjonen starter. EULA er ganske vanlig for PC-programvare. Hvis de er skrevet riktig, kan EULAer formidle til brukeren hvordan sensitiv informasjon vil bli brukt, og på det tidspunktet kan brukeren velge å ikke bruke appen.

I vår studie inkluderte noen apper en EULA, men få, om noen, indikerte hvor sensitiv informasjon som skulle brukes. Uansett er en EULA bare en tekstuttalelse, og det er ingen kode som faktisk håndhever en EULA. Det er ganske enkelt en måte å formidle intensjon til brukeren.

Når det er sagt, vil ikke alle søknader stjele informasjonen din generelt. Noen applikasjoner har avmerkingsbokser i innstillingsmenyer for å konfigurere om bestemte typer informasjon (f.eks. Plassering) brukes eller ikke. Du må imidlertid stole på at applikasjonsutvikleren respekterer disse innstillingene.

Kassner : Professor Enck, hvorfor navnet TaintDroid? Enck : TaintDroid bruker en vitenskapelig teknikk som kalles "dynamisk taint analyse", som også er kjent som "taint tracking." Tanken er at du merker eller "smaker" informasjon du bryr deg om på et punkt der du kjenner typen for sikker (f.eks. På API-metoden som brukes for å få tilgang til verdien eller dataene).

Ideen om "taint tracking" ble først brukt i serverprogramvare for å spore potensielt dårlige innganger mottatt fra nettverket. Disse verdiene ble skjemt til de ble renset på noen måte. Senere arbeid vippet spenning rundt og brukte det til å spore hvordan innganger forlater et system. Slik bruker TaintDroid taint-sporing.

Kassner : Papirets forklaring på hvordan TaintDroid fungerer refererer til følgende lysbilde.

Vil du kort forklare hva vi ser på?

Enck : Hver gang du snakker om sporing av taint, er den første du tror du gjør å identifisere "taint kilder" og "taint synker." Taint kilden er der du opprinnelig markerer informasjon som en viss type (f.eks. Beliggenhet, IMEI, adressebok osv.). Taint vasken er der du bryr deg om den går. I vårt tilfelle er taint sink i Java-biblioteket som skriver informasjon til nettverket.

Resten av figuren viser hvordan malingsmarkeringene forplanter seg gjennom systemet når det kjøres. På venstre side ser vi en markering som beveger seg fra en variabel til en annen, indikert som (3). Hvis en applikasjon sender den variabelen til en annen applikasjon gjennom Android's Binder-kommunikasjonssystem, sprer TaintDroid markeringen, indikert som (5). Forplantningen fortsetter på høyre side, og når variabelen sendes til nettverket, identifiserer vi den ved taint sink, indikert som (9).

Kassner : Professor Enck, jeg er nysgjerrig. Har du en Android-telefon? I så fall, hvilke forholdsregler tar du for å forhindre uønsket bruk av dine personopplysninger? Enck : Jeg følger de samme beste praksisene som jeg foreslår for alle Android-brukere. Akkurat som når du surfer på Internett, hvis en app ser skissert ut, foreslår jeg at du ikke laster ned den. Se også etter tillatelser som gir tilgang til beliggenhet og telefonidentitet. Spør deg selv, hvorfor? Hvis du ikke er sikker, ikke installer appen, les kommentarene fra andre brukere nøye, og send eventuelt e-post til utvikleren for en forklaring (og vær omhyggelig av svaret).

Selvfølgelig har jeg også muligheten til å teste en app på en egen telefon som kjører TaintDroid. Det er noen få prosjekter som kjører TaintDroid i en emulator på din PC, derfor er det ikke et krav å ha en ekstra telefon. Så hvis du har utfordringen, kan du også teste apper.

Ulike synspunkt

Hvis du har fulgt Android-utnyttelsene våre, vet du at William Francis er min mentor for alle ting Android og en apputvikler - en god en. Å være utvikler gir William et helt annet synspunkt. Så jeg ba ham kommentere avisens konklusjon:

"Studien vår avdekket at to tredjedeler av applikasjonene i vår studie viser mistenkelig håndtering av sensitive data, og at 15 av de 30 applikasjonene rapporterte brukernes beliggenhet til eksterne annonseringsservere. Våre funn viser effektiviteten og verdien av å forbedre smarttelefonplattformer med overvåking verktøy som TaintDroid. "

Francis : Konklusjonen - etter min mening - er å forvente. Forskerteamet sier at halvparten av applikasjonene i studien sendte lokasjon eller brukerdata til et eksternt annonsenettverk.

Men forskerne er ikke sikre på hva som ble gjort med dataene. Av erfaring kan jeg fortelle deg at det meste gikk til annonsører. Når du velger å bruke en app støttet av reklame, er du villig til å handle litt info i bytte mot et "gratis" program eller en tjeneste. En bedre test kan være å kjøre testene på apper som ikke støttes av annonser.

Jeg tror forfatterne av TaintDroid prøver å gjøre noe viktig for mobilsamfunnet for øvrig. De prøver å adressere sikkerhets- og personvernproblemer på det laveste nivået - med andre ord ikke som et tillegg eller noe som skjer etter det faktum, men som en integrert del av plattformen.

Min forståelse av å lese papiret er at de har måter å gå før programvaren kan anses som klar for hele verden. Brukere av små fotavtrykksenheter som mobiltelefoner forventer mye ytelse fra enhetene sine, og teknikker som de som brukes av TaintDroid kan legge til betydelig overhead. Når det er sagt, ser det ut til at TaintDroid-teamet allerede har overvunnet mange av de tekniske hindringene og tar imponerende fremskritt.

Til slutt tror jeg TaintDroid eller noe lignende er den neste fasen i det utviklende smarttelefonøkosystemet.

Siste tanker

Mitt håp med disse to artiklene er å fjerne oppfatningen om at det å si ja eller nei til et tillatelsessett er bra nok. Hva apper faktisk gjør med personlig og sensitiv informasjon, skal være gjennomsiktig og lett tilgjengelig for smarttelefoneiere.

Takk Dr. Enck og forskerteamet bak TaintDroid. Det er en god start.

© Copyright 2021 | pepebotifarra.com