• Português
  • English
  • Español
  • Privacidade Digital em Dispositivos Móveis

    Por: em 13 de abril de 2018

    Neste artigo iremos abordar o tema de de privacidade digital, mais especificamente em dispositivos móveis Android, o que pode ser capturado em um aparelho de acordo com cada tipo de permissão e analisar algumas das aplicações mais populares da Play Store.

    Cambridge Analytica

    Muito tem se falado sobre o último grande vazamento de dados, ocorrido entre a Cambridge Analytica e o Facebook. Descartando-se as suposições, o que temos de comprovação até o momento é que em 17 de Março desse ano, os jornais New York Times e The Guardian relataram que a empresa Cambridge Analytica, juntamente com a empresa Strategic Communications Laboratories, tiveram acesso sem consentimento aos de mais de 50 milhões de eleitores americanos. Segundo relatos de ex-funcionários da empresa, esses dados foram adquiridos de um pesquisador de fora da empresa que, de acordo com o Facebook, alegou que os dados seriam coletados para propósitos acadêmicos. Os jornalistas que tiveram acesso aos dados revelaram que os mesmos incluem a identidade dos usuários, rede de amizades e as curtidas na plataforma social. Além disso, apenas uma pequena parcela dos usuários havia dado o consentimento necessário para que essas informações fossem repassadas a terceiros.

    Mais detalhes ainda irão surgir em relação a esse assunto e não é improvável que esse acontecimento ainda repercuta e/ou favoreça leis e regulamentações mais estritas no uso e compartilhamento de dados gerados por pessoas em dispositivos móveis ou redes sociais. O que deve ser realçado nesse momento é que esse vazamento ocorreu a partir dos servidores do Facebook. Ou seja, o fluxo de informações foi realizado da seguinte maneira:

    1) Usuários concederam o acesso aos seus dados a aplicativos de terceiros que são disponibilizados no Facebook (os famosos testes de personalidade);

    2) Uma vez concedido o acesso, os desenvolvedores dos aplicativos podem fazer consultas na base de dados do Facebook, de acordo com as permissões concedidas pelos usuários.

    3) No caso em questão, esse acesso teria sido explorado pelos pesquisadores da Global Science Research, que também teriam obtido dados da rede de contatos dos usuários que realizaram os testes;

    4) Agindo contra as normas do Facebook, os pesquisadores teriam feito a venda dos dados para a Cambridge Analytica, para serem usados na campanha presidencial americana de 2016.

     

    Dados em todo lugar

    O que fazemos nas redes sociais, as pessoas com quem interagimos, nossas curtidas e o conteúdo que acessamos diz muito sobre nós mesmos. Mas, de certa maneira, essas interações estão contidas dentro da rede em si. O Facebook sabe quem são os meus melhores amigos no Facebook, mas isso não necessariamente reflete a minha vida real, já que nem todos têm um perfil na rede social. Da mesma forma, é impossível saber em que banco eu tenho uma conta corrente ou quantas vezes eu fiz uma recarga no mês. Pelo menos essa é a linha de raciocínio adotada pela maioria das pessoas. Mas isso é verdade?

    Você já parou para pensar em todas as informações armazenadas em seu celular e o que elas dizem a respeito de você? Ao analisar o meu aparelho, eu pude encontrar os aplicativos de Home Banking (onde sou correntista), mensagens de texto de confirmação de recarga, aplicativos de compra e venda de carros, mobilidade urbana, estadia, além das principais redes sociais. Adicione a isso outras informações sensíveis, que a grande maioria das pessoas não sabe que pode ser capturada, como a rede sem fio em que você está conectado nesse momento, o modelo do seu celular ou os lugares por onde você passa.

    Os dados encontrados em nossos smartphones dizem tanto quanto, ou mais, que nossa atividade nas redes sociais. Apenas para exemplificar o meu ponto, considere a questão: qual característica tem maior peso ao predizer a minha capacidade de comprar uma Ferrari? O fato de eu curtir o perfil da Ferrari em alguma mídia social ou o fato de eu ter um celular topo de linha, com aplicativos de investimento instalados e passar a maior parte do tempo frequentando lugares nobres de São Paulo?

    Nesse momento é primordial darmos atenção ao smartphone, entender quais informações são geradas por este que provavelmente é o dispositivo mais importante em nossas vidas e como essas informações podem ser capturadas por aplicativos maliciosos e como podem revelar insights importantes sobre nós, como poder de compra, classe social e até mesmo nossa atividade econômica.

     

    Android

    O Sistema Operacional Android, cujo lançamento oficial ocorreu em Setembro de 2008, alcançou recentemente o título de mais popular, desbancando por muito pouco o campeão inconteste, Microsoft Windows. Hoje em dia podemos encontrar dispositivos como geladeiras, carros, relógios de pulso, videogames, câmeras digitais, além dos já populares tablets.

    Mesmo que o Android perca a posição absoluta de SO mais popular, ele dificilmente perderá esse título na categoria de dispositivos móveis. Isso porque, a depender do país, seu market share varia entre 70% no continente europeu a 85% no Brasil.

    Afinal, como o Android trata as permissões de acesso e que tipo de acesso os desenvolvedores de aplicativos tem a partir do momento em que tais permissões são concedidas?

    Essa questão é um pouco mais complicada do que parece, pois Sistemas Operacionais são elementos computacionais muito dinâmicos, que passam por modificações a todo momento, seja por pressão gerada pela concorrência, falhas de segurança ou evoluções no hardware e no comportamento dos consumidores — quem poderia prever que o celular iria acabar tomar o lugar dos aparelhos de GPS, câmeras e despertadores?

    Essa evolução também incluiu o aspecto de segurança, com mudanças significativas não só nos sistemas físicos (biometria), como também nos sistemas lógicos de permissionamento e que controlam o acesso às informações do usuário.

    Com o objetivo de manter um escopo restrito e relevante, nossa análise será dividida em dois momentos significativos: até a API 22 (Android 5.1.1 – Lollipop – Março de 2015), e depois da API 23 (Android 6.0 – Marshmallow – Outubro de 2015).

     

    Permissionamento

    O propósito de uma permissão é proteger a privacidade de um usuário Android. No atual modelo de gerenciamento de permissões, aplicativos Android devem requisitar ao usuário a permissão para acessar dados sensíveis (como os contatos e mensagens SMS), bem como certos recursos de sistema (como a câmera e acesso à Internet). Dependendo do recurso, o sistema pode: 1) conceder a permissão automaticamente; ou 2) exibir uma pergunta ao usuário, pedindo que ele aprove ou negue a solicitação.

    A listagem deve ser feita previamente, no momento da publicação do aplicativo na Play Store. Ao empacotar o aplicativo, o desenvolvedor lista em um arquivo manifesto todas as permissões requeridas. Se as permissões forem classificadas como “normais” — ou seja, não colocam em risco a privacidade do usuário ou a operação normal do aparelho — o sistema automaticamente concede as permissões ao aplicativo e não é permitido ao usuário revogá-las. Como exemplo de permissões normais, temos o acesso ao estado das redes 2G/3G/4G e Wi-Fi, Bluetooth, Internet, criação de despertadores, alteração de papel de parede e vibrar.

    Aplicativos mal-intencionados podem: 1) fazer com que o usuário forneça permissões adicionais que não são necessárias para o correto funcionamento do aplicativo; ou 2) esconder código malicioso atrás de permissões legítimas.

    Além de uma análise detalhada, usuários ainda podem verificar os comentários a respeito da última versão do app na loja de aplicativos. Essa etapa é importante mas não deve ser definitiva, uma vez que desenvolvedores mal intencionados podem inserir comentários e avaliações falsos na Play Store.

    Como conselho geral, siga seus instintos e só forneça a permissão se estiver completamente seguro da necessidade desse dado. Não faz sentido que um jogo de xadrez solicite acesso aos seus contatos ou que um aplicativo de comércio eletrônico queira verificar seu calendário.

    Do início até o Lollipop

    Se um dispositivo possui a versão Android 5.1.1 (Lollipop – API nível 22) ou inferior, as permissões requeridas são apresentadas ao usuário no momento da instalação do aplicativo. Cabe ao usuário analisar todas as permissões solicitadas, sejam 2 ou sejam 20 e ponderar, naquele instante, se concorda com todas ou não. Em caso afirmativo, o usuário seleciona a opção “Aceitar” e procede com a instalação do aplicativo. Caso contrário, cabe apenas ao usuário a opção de não seguir em frente com a instalação e procurar por aplicativos alternativos àquele que foi desejado inicialmente.

    E quando o desenvolvedor incrementa o aplicativo e requer novas permissões? Nesse caso, o usuário é requisitado a autorizar as mesmas no momento de atualização do aplicativo, que não ocorre enquanto uma decisão não é tomada.

    Para dispositivos antigos, o momento da instalação é crucial para evitar problemas futuros. O sistema de permissionamento original sempre causou muita preocupação nos especialistas em segurança, pois tradicionalmente poucos usuários tem a disposição e o conhecimento necessário para escrutinar, em tempo de instalação, o que é realmente requerido pela aplicação funcionar corretamente e o que é simplesmente coleta de dados.

    Para piorar a situação, uma vez instaladas, as aplicações são capazes de realizar todas as tarefas autorizadas sem o conhecimento do usuário.

     

    Do Marshmallow em diante

    Após sete anos, o sistema de permissionamento foi finalmente redesenhado no Android 6.0 (Marshmallow – Outubro de 2015). No novo modelo, as aplicações passariam a solicitar as permissões em tempo de execução, uma por vez, ao usuário.

    Boas práticas também foram incorporadas ao sistema, que oferece a opção de revogar ou conceder as permissões posteriormente e permitir ao desenvolvedor que explique a motivação por trás de cada solicitação. Ao usuário, também foi dado o poder de negar permanentemente, por meio da opção “Não perguntar novamente”.

    As boas práticas de design e programação recomendam que as aplicações apresentem uma explicação ao usuário do que querem coletar e qual o propósito daquela coleta. Um aplicativo bancário avisa aos usuários que deseja ter acesso às mensagens de SMS porque isso fornece insights poderosos para combater as mensagens de phishing recebidas por seus clientes.

    Mesmo apresentando melhorias significativas, ainda podemos considerar o mecanismo atual falho, uma vez que as permissões funcionam em sistemas de grupo. Esse sistema agrupa as permissões em grupos de permissionamento, a saber: Calendar (Calendário), Camera (Câmera), Contacts (Contatos), Location (Localização), Microfone, Phone (Telefone), Sensors (Sensores), SMS e Storage (Armazenamento).

    Se o app não possui qualquer permissão de um determinado grupo, o sistema exibe uma caixa de diálogo descrevendo o grupo de permissões que o aplicativo está solicitando ao usuário o acesso. Essa caixa de diálogo não descreve a permissão específica dentro daquele grupo. Por exemplo, se um app requisita a permissão de leitura de contatos (READ_CONTACTS), o diálogo do sistema apenas informa que o app deseja ter acesso aos contatos do dispositivo. Se o usuário concede a aprovação o sistema dá ao app apenas a permissão requisitada. O grande problema é que, se em um segundo momento, o app solicitar uma segunda permissão dentro de um grupo que já foi aprovado, por exemplo alteração/adição de contatos (WRITE_CONTACTS), o sistema imediatamente concede aquela permissão sem questionar o usuário. Assim, quando um aplicativo solicita acesso ao calendário, não importa se é para leitura ou escrita, porque o SO Android vai conceder as duas permissões ao app.

    Um desenvolvedor mal-intencionado poderia criar uma aplicação com uma simples funcionalidade de acrescentar algum evento ao seu calendário pessoal e levaria de brinde a permissão de leitura. A partir daí, esse aplicativo poderia coletar todos os eventos do seu calendário, tanto os que já se passaram quanto os que ainda estão por acontecer. Em um primeiro momento isso não parece ser uma informação tão crítica, mas pense em todos os eventos de consulta médica em sua agenda, ou de vencimento de faturas/contas ou até mesmo o seu histórico de viagens. Quanto esses eventos descrevem você e de quantas maneiras diferentes poderiam ser explorados comercialmente?

     

    O que pode ser capturado?

    A tabela abaixo, retirada da documentação oficial descreve as permissões perigosas e seus respectivos grupos. Importante notar que não existe um mecanismo que avisa ao usuário quando uma aplicação efetivamente utilizou seu direito de coletar os dados requisitados. Qualquer app (bem ou mal intencionado) pode coletar continuamente dados do aparelho, seja enquanto a aplicação estiver sendo utilizada (foreground) ou quando estiver inativa (background).

    Calendar (Calendário) — Esse grupo permite ao aplicativo manipular (adicionar, excluir e ler) todos os eventos passados e futuros de todos os calendários associados à sua conta Google. Além dos detalhes básicos como início e fim, título e detalhes, também é possível capturar o local e o contato dos participantes.

     

    Camera (Câmera) — Esse grupo permite ao aplicativo manipular a câmera do aparelho, capturando imagens mesmo quando o app não estiver sendo utilizado no momento. O Google removeu o uso do microfone e câmera em background a partir do Android 9.0 (P – Sem data de lançamento definida).

     

    Contacts (Contatos) — Esse grupo permite ao aplicativo manipular (adicionar, excluir e ler) todos os contatos do dispositivo. Isso implica em permissão de leitura em campos como número de telefone, data de nascimento, endereços de email, notas, última data de interação e um estimador de quantas vezes você interagiu com cada contato. Além disso, a permissão GET_ACCOUNTS dá direito aos apps de acessar uma espécie de tabela compartilhada por todas as aplicações, geralmente utilizada para gravar dados como endereço de email, IDs únicos e até mesmo números de cartões do usuário.

     

    Location (Localização) — Esse grupo permite ao aplicativo obter a) a localização aproximada do dispositivo (ACCESS_COARSE_LOCATION), feita por triangulação de antenas; e b) a localização precisa do dispositivo (ACCESS_FINE_LOCATION), feita com o auxílio do GPS e redes Wi-Fi próximas. A primeira estratégia possui precisão que varia em centenas de metros enquanto a segunda varia entre alguns até dezenas (menos de 100) metros. A partir do Android 8.0 (Oreo – Agosto de 2017), os aplicativos inativos (background) poderão obter a localização do dispositivo apenas algumas vezes a cada hora, enquanto as versões anteriores não apresentam nenhuma limitação nesse sentido.

     

    Microphone (Microfone) — Essa permissão/grupo permite que o aplicativo faça capturas de áudio do microfone. O Google removeu o uso do microfone e câmera em background a partir do Android 9.0 (P – Sem data de lançamento definida).

     

    Phone (Telefone) — Uma das permissões mais abrangentes, permite que o aplicativo execute operações que vão desde acessar identificadores confidenciais do aparelho (IMEI) e do(s) chip(s) instalado(s) (IMSI), até ler o histórico de ligações a efetuá-las.

     

    Sensors (Sensores) — Permite capturar dados dos sensores do dispositivo, entre eles o acelerômetro/giroscópio (pode estimar se o usuário está caminhando, dirigindo ou parado) e a temperatura ambiente. Além disso, ainda permite acessar sensores que monitoram o corpo do usuário, como a frequência cardíaca. O Google removeu o uso dos sensores em background a partir do Android 9.0 (P – Sem data de lançamento definida).

     

    SMS — Permite enviar e ler todo o conteúdo (inclusive metadados) das mensagens SMS. Com essa permissão, um aplicativo pode ler o corpo da mensagem, o telefone que gerou o evento (enviado ou recebido) e a data e hora de recepção/envio das mensagens.

     

    Storage (Armazenamento) — Os aplicativos com essa permissão são capazes de ler o dispositivo de armazenamento externo do celular (cartão SD), tendo acesso a todos os dados armazenados no mesmo.

     

     

    O que pode ser feito com esses dados?

    Para simplificar a nossa análise, vamos explorar o potencial de cada item individualmente. Entretanto, o mais comum é que um aplicativo solicite mais de uma permissão. Como o Sistema Operacional Android não impõe limites e deixa a decisão a cargo do usuário, os aplicativos podem, em teoria, solicitar todas as permissões possíveis. Cada permissão concedida e cada informação capturada, quando usada por desenvolvedores ou terceiros, pode ser potencializada por modernas ferramentas de Big Data e Machine Learning, ampliando em muito as possibilidades de empresas obterem conhecimento a respeito do usuário de um dispositivo. Abaixo, listamos alguns exemplos.

    Microfone: Como o Android ainda não limitou a captura de áudio por aplicativos em segundo plano, empresas da indústria de marketing estão fazendo explorando essa “vulnerabilidade” para fazer a captura de ultrassom pelo microfone do aparelho. Isso permite a elas fazer a confirmação de visualização de propagandas de TV e aferir visitas em lojas físicas.

    SMS: Se considerarmos que o SMS se tornou o canal oficial de comunicação de bancos, seguradoras e outros serviços, o acesso ao conteúdo das mensagens deve ser muitíssimo justificado por um aplicativo. Pense em todas as mensagens enviadas pelo banco no formato “Sua compra no valor de R$ XX,XX no estabelecimento YYYYYYYY foi feita com sucesso.” ou até mesmo mensagens de cobrança do tipo “Fulano(a), aproveite para quitar sua dívida”. O quanto as mensagens no seu aparelho são capazes de descrever a sua vida financeira? Até mesmo as inocentes mensagens de confirmação de recarga podem ser utilizadas para construir um modelo matemático de inferência de renda e capacidade de pagamento.

    Localização: O uso de localização tem se tornado cada vez mais solicitado por aplicativos, com as mais diversas justificativas: propagandas mais relevantes, amigos mais próximos, lugares mais interessantes, etc. Mas em algum momento você já se deu conta que os lugares que frequentamos dizem muito sobre nossos padrões de vida? Pense nas viagens de fim-de-semana para a praia, os restaurantes em que realizamos nossas refeições, as idas ao parque ou ao shopping. O que podemos inferir sobre alguém que deixou de frequentar restaurantes? Sobre o estilo de vida de alguém que parou de frequentar shopping centers e passou a ir à academia e ao parque Ibirapuera?

    Ligações: Outra fonte riquíssima de informações a respeito de alguém. Vivemos hoje em uma sociedade que tornou a regra o envio de mensagens, especialmente por aplicativos como Whatsapp e Telegram. A partir desse fato, podemos inferir que as ligações telefônicas ocorrem apenas em momentos notáveis e para pessoas notáveis de nosso círculo. Quantos minutos você se dedica a falar com seu círculo de amigos ou parentes? Você é do tipo que liga mais ou que recebe mais ligações? Todos esses comportamentos, combinados com a quantidade de pessoas no seu círculo poderiam fornecer insights poderosos sobre você.

    Contatos: O uso de contatos também pode ser explorado no sentido de criar análises da rede social dos usuários. A China está implementando um sistema de pontos até 2020, em que tanto o mundo online quanto o offline são considerados. Tenha amigos virtuais com boa reputação, o seu score aumenta; seus amigos começam a não pagar as multas de trânsito e, em última instância, você tem que pegar uma fila diferente, mais demorada, para fazer o embarque no aeroporto.

    Envio de dados para terceiros

    Com o intuito de monetizar suas aplicações, muitos desenvolvedores têm inserido cada vez mais em suas aplicações, componentes desenvolvidos por empresas terceiras, geralmente para exibição de anúncios dentro do aplicativo.

    O que muitos não sabem é que, pela arquitetura do Sistema Operacional Android, esses componentes têm acesso às mesmas permissões concedidas ao aplicativo. Com isso, muitos usuários, sem saber, também estão cedendo seus dados a terceiros.

    Na grande maioria das vezes, os desenvolvedores de aplicativos não se dão conta do que os componentes efetivamente fazem, focando apenas no retorno financeiro das parcerias, como forma de viabilizar um modelo de serviços sem custo para os usuários.

    Estudos recentes afirmam que, em média, 70% dos aplicativos instalados em seu dispositivo compartilham dados do aparelho com empresas terceiras.

    Para complicar ainda mais a situação, quanto mais popular um componente terceiro, mais fácil para a empresa desenvolvedora construir perfis detalhados de um usuário. Consideremos o seguinte cenário: o usuário instala em seu dispositivo o aplicativo de mapas A, que obviamente necessita de acesso ao GPS e, em seguida, instala o aplicativo B, de rede social, que solicita acesso aos contatos. Se ambos utilizarem o componente de monetização C, o desenvolvedor desse componente pode se aproveitar das permissões dos dois aplicativos, capturando os dados de GPS através da permissão obtida pelo aplicativo A com os dados de contato obtidos pela permissão obtida pelo aplicativo B. Com isso, a empresa C poderia conhecer muito mais a respeito dos seus usuários do que as empresas A e B individualmente, pois poderia conectar esses dados em seus servidores.

    Quanto mais popular tornar-se o componente C, mais se agrava essa situação, uma vez que cada vez mais aplicativos, dos mais diversos tipos e necessidades de permissão, utilizariam essa plataforma de monetização, acrescentando mais dados a respeito dos usuários.

     

    Como se proteger?

    projeto Haystack (Palheiro) é uma iniciativa liderada por pesquisadores acadêmicos independentes de diversas universidades americanas. No centro do projeto está um aplicativo desenvolvido por essa iniciativa, chamado Lumen Privacy Monitor, que tem como principal função identificar vazamentos de dados privados causados por aplicativos e as organizações envolvidas na captura dessas informações.

    Esse projeto realiza as atividades de:

     

     

     

    Sobre esse último aspecto, é possível acessar um mapa interativo, chamado de Panopticon, em que é possível buscar por vários aplicativos e ver quais os serviços terceiros de coleta utilizados.

    Conclusões

    Esse artigo teve como principal objetivo demonstrar a facilidade com que dados sensíveis podem ser capturados em dispositivos Android e a sua importância quando comparados com dados extraídos de redes sociais. Nosso foco foi explorar a real importância desses dados e como poderiam, em tese, ser usados para modelar características importantes do proprietário do dispositivo, como classe social, padrão de gastos, rede de relacionamentos e pontos de interesse.

    Também tratamos das ferramentas que podem ser utilizadas em uma investigação sobre possíveis vazamentos de informações para terceiros e os perigos de instalar aplicativos que não tenham como origem a Play Store.

     

    Referências

    13 de abril de 2018