Comparação de Aplicativos Livres para Android. Primeira etapa do desenevolvimento do SECUREGEN.

#38

Márcio Moretto Ribeiro
Marina Salles, Caio Canic, Carybé Silva

Em julho de 2014 o Ministério da Defesa anunciou a implementaçãode um sistema mais seguro de comunicação digital em 14 unidades da administração pública federal. Desenvolvido pela Serpro (Serviço Federal de Processamento de Dados), o software chamado de Expresso V3, é uma resposta às recentes denúncias de monitoramento da comunicação digital pela Agência de Segurança Nacional dos Estados Unidos (NSA) [1]. A denúncia feita por Edward Snowden, funcionário terceirizado da agência, trouxe a público o esquema de monitoramento de comunicações entre bilhões de pessoas em todas as partes do mundo [2]. Apesar de atingir diretamente milhões de cidadãos, o foco da resposta do governo brasileiro à vigilância em massa foi a proteção dos órgãos da administração pública.
Além de ser alvo da vigilância por parte de órgãos públicos de espionagem, a sociedade civil é também alvo do monitoramento de empresas atrás principalmente de hábitos de consumo. A popularização de celulares com acesso ininterrupto a internet facilitou imensamente o cruzamento de dados sobre indivíduos: suas mensagens, ligações, locais por onde trafega e sítios que visita na web.
O projeto SECUREGEN pretende oferecer uma proteção à sociedade civil contra a vigilância dos meios de comunicação. Para tanto, pretende desenvolver uma distribuição segura e livre de um sistema operacional para celular. O sistema será baseado no Cyanogenmod, uma distribuição livre do sistema Android, e conterá aplicativos que respeitem a privacidade dos usuários e que protejam o anonimato e a segurança de sua comunicação. A primeira etapa do projeto, descrita neste artigo, consiste na comparação de aplicações compatíveis com o sistema Android, buscando selecionar os aplicativos mais seguros e confiáveis, que deixem o usuário menos vulnerável a monitoramento e roubo de dados efetuados tanto por terceiros quanto pelas próprias prestadoras de serviço dos aplicativos.

Primeiramente foram selecionadas doze categorias de aplicativos: armazenamento remoto, navegadores de GPS, gerenciadores dearquivo, notas, tocadores de música, gravadores de som, teclados virtuais, navegadores de internet, mensageiros assíncronos, exibidores de vídeo, leitores de email e comunicadores VoIP. Para cada uma dessas categorias foram considerados todos os aplicativos disponíveis na loja de aplicativos livre F-Droid (https://f-droid.org/), além dos aplicativos mais populares na loja Google Play (https://play.google.com/store) totalizando mais de 50 aplicativos. Eles foram comparados de maneira qualitativa em relação a usabilidade, funcionalidades, permissões de uso e licença.
O projeto foca principalmente em aplicativos com licenças livres, pois aplicações de comunicação abertas são mais seguras e podem ser livremente e mais facilmente auditadas [3]. A possibilidade de ler o código-fonte de uma aplicação permite a verificação de quais dados estão sendo enviados para servidores remotos e suas vulnerabilidades tendem a ser resolvidas mais rapidamente.
Por padrão uma aplicação Android só pode ter acesso a uma quantia limitada de recursos do sistema. Tais recursos são protegidos por uma política de segurança baseada em permissões. O sistema Android e seus parentes livres, como o Cyanogenmod, funcionam sobre o kernel do Linux. No sistema Linux os usuários funcionam em ambientes isolados em vários aspectos: um usuário não é capaz de ler arquivos e não pode exaurir a capacidade de CPU de outros, não pode desconectar outro usuário, e assim por diante. Para garantir o isoladamento das aplicações, o sistema Android cria usuários diferentes para cada aplicação. Tais usuários (em que as aplicações são executadas) tem permissões restritas para o uso de hardwares específicos [5].
O sistema garante que, para acessar determinados componentes do dispositivo (placa de rede, bluetooth, GPS, câmera etc.), a aplicação precisa requerer uma permissão de maneira explícita em um arquivo chamado "manifest". Dessa maneira, é possível verificar facilmente que partes do hardware cada aplicativo é capaz de acessar. Quando solicitada a instalação de tais aplicações, o sistema informa ao usuário as permissões requeridas pela aplicação. É recomendado avaliar criticamente a necessidade de conceder cada permissão a cada aplicativo antes de optar pela instalação do mesmo. Por estes motivos, comparamos aplicações e suas necessidades de acesso, identificando possíveis aplicações mal intencionadas ou que exijam permissões não condizentes com suas características. Seguindo esta abordagem, em [6] os autores compararam milhares de aplicativos quanto a expectativa dos usuários em relação a suas permissões. A maior parte dos aplicativos que consideramos, porém, não foram considerados por esses autores por não estarem disponíveis na loja Google Play.
Outros critérios de comparação escolhidos são específicos de cada categoria. Na seção seguinte apresentaremos duas como exemplo.

Comparação de Aplicativos

Armazenamento Remoto
Aplicativos de armazenamento remoto guardam pastas e arquivos em servidores remotos. Consideramos as seguintes aplicações para comparação: Google Drive, Dropbox, SpiderOak, Wuala, OwnCloud e Syncthing. Além dos critérios apresentados na Seção Metodologia, para esta categoria analisamos a segurança da transmissão das informações entre o cliente (aparelho de celular) e o servidor remoto. As quatro primeiras são aplicações comerciais. O modelo de negócio delas é a venda de espaço para armazenamento em seus servidores. Todas elas oferecem uma quantidade variada de espaço gratuito e cobram valores variados para o acesso a mais espaço de armazenamento. Assim, devemos considerar não apenas a aplicação a ser instalada no aparelho de celular como também o servidor que se comunica com a aplicação.
O Dropbox e o Google Drive são as aplicações mais populares na categoria. A comunicação entre cliente e servidor é feita de maneira segura (criptografada), porém a chave de criptografia fica no servidor. No caso do Dropbox, a aplicação é fechada (não possui código aberto) em ambas as pontas, tanto no cliente quanto no servidor. O Google Drive, por sua vez, possui cliente livre (licença Apache), mas servidor fechado. O projeto PRISM da NSA, cujas informações foram vazadas e publicadas em reportagem do jornal inglês The Guardian [7], mencionam a empresa Google como parceira e o Dropbox como possível futuro parceiro. De fato, a arquitetura de ambas favorece este tipo de espionagem.
Diferente dos dois anteriores, o SpiderOak e o Wuala oferecem criptografia dos dados no lado do cliente ("end-to-end"). Ou seja, as chaves de criptografia de ambos aplicativos não são enviadas para o servidor. As informações enviadas dessa forma não estão acessíveis nem mesmo aos administradores do servidor remoto. O Wuala é fechado em ambas as pontas e o SpiderOak possui cliente livre.
O OwnCloud não oferece serviço de criptografia end-to-end, mas possui cliente e servidor livres. Sendo livre do lado do servidor, ele dá aos usuáriosa liberdade para abandonar um servidor caso desconfiem que sua privacidade está sendo violada, e migrar para outro servidor com o mesmo serviço instalado. O BoxCryptor e o Cryptonite são duas ferramentas que poderiam ser usadas para criptografar as informações do lado do cliente antes de enviá-las para o servidor. A primeira dessas ferramentas é, porém, fechada e a segunda ainda está em testes.
Todas as ferramentas que consideramos até aqui assumem a comunicação entre a aplicação e um servidor remoto. No caso das quatro primeiras aplicações o servidor é mantido por alguma empresa. No caso do OwnCloud é possível instalá-lo em alguma máquina compatível. A última ferramenta considerada, Syncthing, funciona de maneira diferente. Primeiramente o usuário deve configurar os dispositivos e aplicação então cria uma conexão P2P entre eles para mantê-los sincronizados. A comunicação é feita de maneira segura na rede.

Navegadores de Internet
Navegadores de internet (browsers) são aplicativos que permitem acessar sites e páginas na internet. Comparamos os seguintes aplicativos: Orweb, Firefox, Tint, Lightning, Zirco, Opera Mini, UC Browser e Dolphin. Nessa categoria, dada a grande variedade de operações que o usuário faz através do navegador, um critério importante de comparação é quais e quantas informações do usuário são enviadas pelo navegador para servidores remotos, e quanto controle o usuário tem sobre isso. Como desejamos selecionar aplicativos que ofereçam segurança por padrão, avaliamos também se o mecanismo de busca se as configurações padrão do aplicativo são seguras. O Orweb é um navegador feito para usar em conjunto com o cliente do Tor para celular. Opera, UC e Dolphin são softwares proprietários gratuitos bastante populares, e os restantes são softwares livres.
O Firefox é o navegador mais popular entre os disponíveis. Ele tem uma comunidade grande e ativa de desenvolvedores e usuários, com uma grande quantidade de extensões desenvolvidas, inclusive extensões que aumentam a segurança do usuário, o que o torna um navegador interessante tanto para o usuário leigo quanto avançado. Por outro lado, o Firefox por padrão envia para seu servidor informações a respeito das ações do usuário. O usuário precisa optar por configurações mais seguras, e por isso o consideramos inadequado ao nosso propósito.
Os aplicativos UC Browser e Dolphin Browser são aplicativos de código fechado, e constam nesta lista como padrão de comparação. Ambos os aplicativos exigem uma grande quantidade de permissões delicadas. Em particular, ambos são aplicativos que podem ser iniciados automaticamente quando o dispositivo é ligado, e que têm acesso a dados pessoais do usuário (inclusive, no caso do UC, a arquivos anexados em e-mails), assim como a dados do sistema. Considerando que os aplicativos de navegação na internet precisam se conectar à internet livremente, essa combinação de permissões abre a possibilidade de que informações sobre o usuário sejam enviadas sem que o usuário possa perceber. Além disso, uma aplicação com tantas permissões se torna uma falha de segurança em potencial, especialmente quando é de código fechado. O navegador Opera, em comparação, exige apenas permissões diretamente relacionadas com a função de navegação, e é de código aberto.
No outro extremo, Orweb é uma aplicação livre voltada a preservar a segurança do usuário. Para usá-la, é preciso instalar a aplicação Orbot, que redireciona o tráfego de internet pela rede Tor, com o objetivo de ocultar o IP e a localização do usuário, ou seja, garantir o anonimato do usuário. Além disso, essa aplicação esconde as configurações de navegação ao interagir com servidores na internet. Orweb também é o único navegador encontrado cujo buscador padrão não é Google, e sim Duck-Duck-Go, um mecanismo de busca livre que se compromete a não guardar informações sobre os usuários.
Lightning, Tint e Zirco são aplicações de software livres, com poucas permissões e facilmente configuráveis. O navegador Lightning também pode ser configurado para se conectar através de Orbot. Por outro lado, tanto Lightning quanto Tint são aplicações com acesso a localização GPS, uma informação que pode identificar o usuário. O navegador Zirco, além de ser a mais leve das aplicações avaliadas, não tem acesso ao GPS; a permissão não-essencial que essa aplicação requer é acesso ao histórico de navegação e favoritos. A desvantagem dessas aplicações em relação a outras mais populares, como Firefox e Opera, é a falta de extensões.

Em resposta à descoberta de que o Brasil está sendo vigiado pela NSA, o governo brasileiro implementou medidas adicionais de segurança, incluindo um sistema unificado de comunicações online criptografadas a ser utilizado por órgãos governamentais. Por outro lado, a população em geral continuará vulnerável a espionagem e monitoramento. Se queremos nos proteger da vigilância, é preciso que todos tenhamos acesso a um sistema de comunicações e uso da internet que seja seguro por padrão.
A contribuição do projeto SECUREGEN é o desenvolvimento de um sistema operacional para celular mais seguro contra vigilância em massa por padrão. Como primeira etapa do projeto comparamos aplicativos de diversas categorias quanto as suas permissões, licença, funcionalidades e usabilidade para selecionar aqueles que serão incluídos na distribuição. Focamos principalmente em aplicações livres que podem ser auditadas por qualquer um. O produto desta primeira etapa do projeto estará em breve disponível em um sítio na web.

Palavras-chave: android, privacidade, vigilância, Securegen, Cyanogenmod.

Referências:
[1] Brasil. (2009). Defesa implanta novo sistema de comunicação digital. Recuperado de http://www.brasil.gov.br/defesa-e-seguranca/2014/04/defesa-implanta-novo-sistema-de-comunicacao-digital
[2] Snowden, E. (2013). Ein Manifest für die Wahrheit, In Der Spiegel. Recuperado de http://www.spiegel.de/spiegel/print/d-119402581.html
[3] Wheeler, D. A. (2004). Secure Programming for Linux and Unix HOWTO. Recuperado de http://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/index.html
[5] Android Security Overview. Recuperado dehttps://source.android.com/devices/tech/security/
[6] Lin, J. et al. (2014). Modeling Users’ Mobile App Privacy Preferences: Restoring Usability in a Sea of Permission Settings. In Symposium on Usable Privacy and Security.
[7] Greenwald, G. & Macaskill, E. (2013). NSA Prism program taps in to user data of Apple, Google and others. The Guardian. Recuperado de http://www.theguardian.com/world/2013/jun/06/us-tech-giants-nsa-data