Extraindo informações de aplicativos sociais: um caso de dados financeiros expostos

Por Hang Do Thi Duc

https://cdn.ttc.io/i/fit/1000/0/sm/0/plain/kit.exposingtheinvisible.org/il/Investigating-Apps_Venmo-Case-Study-cik-illustration.png


Resumindo: Um exemplo real de uma investigação sobre os dados coletados por um aplicativo. Apresentado pelo próprio investigador, o caso combina coleta de dados, design, narrativa e campanha. Isso mostra como você pode investigar questões importantes relacionadas a aplicativos sociais, o que você pode descobrir usando ferramentas de código aberto e como você pode tornar as descobertas públicas. Isso também é um ótimo exemplo da mentalidade investigativa envolvida em tal projetos.

Este artigo foi parcialmente traduzido automaticamente e ainda precisa ser revisado. Entre em contato conosco se quiser contribuir com alguma correção.

Por favor, note que a maioria dos hiperlinks apontam para sites e recursos em inglês.

O que está acontecendo atrás da tela?

“Se você não está pagando por isso, então você é o produto.” esta frase o usado com bastante frequência e você já deve ter ouvido isso antes. Refere-se ao fato de que ao invés de pagar por serviços online com dinheiro, abrimos mão nossos dados pessoais, nossa privacidade, que podem ajudar a alimentar os lucros da empresa por trás um aplicativo ou plataforma e impactar negativamente nossa privacidade e segurança. Acho que é justo dizer que raramente somos conscientes do tipo de dados que compartilhamos com os aplicativos que usamos e como quanto realmente vale.

Muitas vezes, as plataformas online que usamos diariamente tornam mais difícil do que deveria ser proteger nossas informações mais pessoais. Muitas dessas plataformas compartilham dados (publicamente) por padrão.

Como investigador ou apenas um curioso utilizador de plataformas online, pode acessar muitas ferramentas para ajudá-lo a descobrir o que está acontecendo por trás do tela dos aplicativos que as pessoas usam todos os dias. O que se pode inferir do informações que deixamos para trás ao usar aplicativos e redes sociais, e o que pode ser feito com elas?

Algumas plataformas oferecem uma visão geral dos dados pessoais que possuem coletados e armazenados.


Exemplo:

O Facebook, por exemplo, permite que você, como usuário, baixe um arquivo que contém as informações que você compartilhou direto na plataforma, ou mesmo com a plataforma através de outro site (sem saber). Você pode encontrar esses detalhes entrando em sua conta do Facebook, acessando as suas «Configurações da conta», selecionando «Suas informações do Facebook» e escolhendo uma das seguintes opções: «Acessar suas informações» / «Baixar suas informações» / «Atividade Log». Lembre-se de que o Facebook tende a mudar sua interface de usuário de vez em quando então, as localizações dessas funções podem mudar, assim como os títulos que os descrevem. Se você «Acessar» ou «Baixar» suas informações Facebook você encontrará uma seção chamada “ Informações de Segurança e login « que inclui detalhes sobre os dispositivos que você usou para acessar Facebook, bem como seus endereços IP – os números que identificam esses dispositivos na Internet.

Um endereço IP fornece informações valiosas porque pode ser usado para obter sua localização aproximada. Quando não sua localização precisa. No campo de publicidade direcionada, por exemplo, uma empresa pode pagar ao Facebook para veicular anúncios para moradores de uma região em que atua ou para a qual está se expandindo.

Investigar plataformas sociais – o que inclui o desenvolvimento de um compreensão dos direitos dos usuários, suas opções e os «termos de uso» das plataformas - e compartilhar suas descobertas pode ajudar você e as pessoas ao seu redor serem mais conscientes sobre os aplicativos e serviços que usa e o qual grande é a informação que as empresas que os administram são capazes de coletar e compartilhar sobre você. Embora os rastros de dados que os usuários deixam para trás podem ser benéficos para os investigadores que procuram saber mais sobre um indivíduo ou empresas objeto de investigação, as plataformas devem ser responsáveis por garantir que os usuários dão consentimento informado sobre como e para quem seus dados estão sendo disponibilizados.

Público por padrão

Em maio de 2015, registrei-me no Venmo, um aplicativo de pagamentos móveis de propriedade do PayPal que opera nos Estados Unidos. Cerca de sete milhões de usuários mensais ativos enviam pagamentos através desta plataforma. O que torna o aplicativo “social” é que outros usuários podem reagir, comentar e ter longas conversas sobre suas transações financeiras. Todos na minha rede de estudantes da cidade de Nova York estava usando.

A plataforma tornou incrivelmente fácil compartilhar pagamentos para jantar e almoçar, pagar o aluguel, emprestar dinheiro ou pedir emprestado a amigos. Alguns meses depois, no entanto, percebi que todas as minhas transações haviam sido exibidas em uma página (feed) público, onde qualquer pessoa no mundo poderia ver para quem enviei dinheiro e por quê. Felizmente, o valor em dólares não foi mostrado. Eu imediatamente tornei todas as minhas transações privadas por padrão.

Mas aquela configuração inicial “público por padrão” permaneceu ficou na minha cebeça.

Gravação de vídeo do feed público de Venmo. Captura por Hang Do Thi Duc

<video id=»Pubfeed» width=»100%» controles de pré-carregamento src=»https://01fa.de/temp/venmo_homepage_2018Nov28»>

Alguns anos depois, comecei a examinar a plataforma com mais profundidade. Em Em 2018, muitas pessoas ainda compartilhavam suas transações Venmo publicamente. Seus nomes reais, links de perfil (fornecendo acesso às suas transações passada), possivelmente suas IDs do Facebook (se eles conectaram a conta Venmo com o Facebook, como muitos usuários fazem ao se inscrever) e as conversas poderiam facilmente permitir a criação de um mapa de suas redes e hábitos sociais do mundo físico.

Pensei comigo mesmo: “Isso está errado. Eu preciso ou convencer as pessoas a mudar seu comportamento ou mudar o próprio sistema.

Meu projeto PublicByDefault.fyi visa mostrar a quantidade de dados pessoais dos usuários do Venmo - de traficantes de drogas a casais em conflito, vendedores de carrinhos de comida, etc - compartilham com o mundo e destacar as consequências de não saber ou não se importar com o que acontece com os seus dados pessoais e com quem pode observar o seu comportamento online.

Captura de tela do site Public Default - Venmo Stories of 2017 Página PublicByDefault.fy

Surpreendentemente, até chocantemente, Venmo fornece uma maneira fácil para qualquer um acessar os dados dos usuários. A interface de programação de aplicativos (API) pública da VENMO, a conexão através da qual você recupera dados da plataforma, é essencialmente apenas um URL pública ou endereço da web. Tudo que você precisa para acessá-la é um navegador; nenhum registro é necessário e nenhum limite de uso é aplicados. Pode-se tecnicamente acessar e baixar tanta informação do usuário quanto se queira.

Eu poderia alterar a URL para permitir que eu veja as transações públicas por completo de 2016 até os dias atuais. Então, usei a API pública para baixar todas as transações públicas de 2017, guardando um total de 207.984.218 transações. Apenas olhando os usuários e suas trocas, eu aprendi um bocado de informação alarmante sobre eles.

O que parece privado pode ser público

Como em qualquer investigação, tudo começa verificando trabalhos já existentes e informações relacionadas ao assunto em questão. O que foi descoberto até então? Que dados já existem? E o mais importante, o que e ainda precisa de resposta?

No caso do Venmo, como o feed do aplicativo é público há muito tempo, eu encontrei alguns projetos criativos que já haviam chamado a atenção para o problema.

Uma postagem de blog de Dan Gorelick de outubro de 2016 forneceu um ponto de partida útil para minha investigação. Ao olhar para o Guia “Rede” no console do desenvolvedor no navegador, Dan descobriu que venmo.com carregava os dados para seu feed público de um URL simples: venmo.com/api/v5/public, uma API pública de Venmo.


Observação:

Uma “interface de programação de aplicativos” (API, do inglês Application Programming Interface), é um mecanismo pelo qual uma plataforma online torna seus dados acessíveis para desenvolvedores externos. As APIs permitem que você acesse dados em vários formatos; dois exemplos comuns são XML e JSON. Facebook, Google e Twitter, entre muitas outras plataformas, possuem suas próprias APIs. Mesmo a Administração Nacional de Aeronáutica e Espaço dos EUA (NASA) tem uma API que dá aos desenvolvedores acesso aos seus dados, incluindo imagens de satélite.

Para evitar o abuso de sua API, uma plataforma geralmente tem um processo de autenticação que exige que seus usuários concedam permissão antes que um aplicativo ou desenvolvedor de terceiro possa acessar suas informações. No Facebook, por exemplo, um usuário teria que dar a permissão ao aplicativo/desenvolvedor externo para acessar suas informações primeiro, então o aplicativo/desenvolvedor recebe um token/chave de acesso com o qual eles podem acessar a API.

Para a API da NASA, como os dados disponibilizados não são pessoais, os aplicativos precisam apenas de uma chave de API, que podem obter por meio de registro. Ainda assim, mesmo um processo de autenticação simples como esse permite que a NASA limite o número de solicitações de dados por chave, que é a melhor prática para plataformas que precisam manter sob controle o tráfego em seus websites.

No caso da Venmo, a API pública não solicitava nenhuma autenticação para aplicativos e desenvolvedores terceiros, que podiam acessar a API sem permissão de seus usuários, sem chave de API e sem registro. Ou seja, a Venmo permitia que qualquer pessoa acessasse, visualizasse e salvasse os dados públicos de seus usuários. Vale a pena notar que mesmo algumas APIs públicas limitam a quantidade de dados que um terceiro pode acessar dentro de um determinado período de tempo - para manter sob controle o tráfego no website, conforme mencionado acima. Isso é chamado de limite de taxa e aparentemente foi o único tipo de restrição que a Venmo colocou em sua API.

Como usei a API pública?

Minha estratégia para chamar a atenção para as falhas e perigos potenciais do sistema de Venmo era explorar e até abusar desse sistema.

Quando iniciei minha coleta de dados no final de 2017, pude acesse as transações públicas da Venmo visitando este URL: venmo.com/api/v5/public. Sempre que carreguei esse URL, efetivamente enviei uma solicitação de dados para a API pública da Venmo. (Observe que mesmo no momento da nossa publicação no início de 2019, a API pública ainda mostra dados de transações e mensagens de usuários reais, à medida que acontecem).

Eu aprendi com o post no blog do Dan como você pode adicionar parâmetros para o URL para solicitar mais de 20 registros de dados (20 era um padrão que se poderia obter por solicitação, se nenhum parâmetro «limite» fosse especificado, conforme mostrado abaixo), e ainda especificar o prazo para o transações retornadas.

Meu objetivo era coletar todas as transações públicas de 2017. Um ano inteiro parecia que me daria dados suficientes para montar o usuário íntimo perfis e histórias que eu precisaria para demonstrar a seriedade do design do sistema e falhas de privacidade.

Minha primeira requisição foi receber o equivalente a um minuto de transações e a requisição ficou assim:

https://venmo.com/api/v5/public?limit=2000&since=1483228800&until=1483228860

Este comando solicitou até 2.000 transações públicas entre 1º de janeiro 2017 às 00h:00m:00s e 1º de janeiro de 2017 às 00h:01m:00s – totalizando um minuto.

Traduzindo. Para formular o comando acima de uma forma que gerasse os dados de que precisava, converti os tempos legíveis por humanos (por exemplo, 1 janeiro de 2017 às 00h:00m:00s / meia-noite) para algo chamado ‘carimbo de Era UNIX” (epoch timestamp). Isso também é conhecido como “Era UNIX” (em inglês “Unix epoch time”), Posix Time, Unix Timestamp, e é um sistema para descrever um ponto no tempo, em segundos decorridos desde 00:00:00 quinta-feira, 1º de janeiro de 1970 (uma hora de início aleatória que foi escolhida para fornecer uma ponto de partida para todas as conversões de tempo de Era UNIX).

Eu fiz essa conversão de tempo legível por humanos para era UNIX usando uma ferramenta chamada epoch converter. Para maior segurança e anonimato durante a pesquisa, esta ferramenta pode ser usada através do Tor Browser e não requer CAPTCHA.

Com esta conversão, fiz um pedido para cada minuto do ano 2017. Ou seja, 365 dias x 24 horas x 60 minutos, o que equivale a 525.600 minutos, o que significa 525.600 solicitações de API.

Eu não tinha nenhuma referência para essa API além daquela postagem de blog de 2016; nada foi documentado no site da Venmo. Para ter certeza de que eu realmente coletei todas as transações públicas para cada minuto do ano, eu implementei uma sobreposição de tempo de um segundo para cada solicitação, usando era UNIX no Horário Merediano de Greenwich (GMT , Greenwich Mean Time), como:

00h:00m:00s >>> 00h:01m:00s,

seguido pela

00h:00m:59s >>> 00h:02m:00s.

Inicialmente, escrevi um script usandoNode.js (um programa para fazer solicitações de API e enviar dados resultantes para um banco de dados) para salvar os dados localmente no meu computador.

Logo, porém, percebi que precisava de uma conexão estável com a Internet para eu poder fazer pedidos contínuos. Afinal, Eu tinha 525.600 solicitações de API para fazer.

Enquanto viajava, meu laptop costumava ficar offline, então assinei um servidor privado virtual) (VPS, Virtual Private Server) por 26 euros por mês e o tratei como um computador remoto sempre ligado. Depois de alguns dias as requisições do servidor foram negadas, provavelmente devido ao limite de taxa acima mencionado - a restrição na quantidade de dados que você mode acessar a partir de um URL em um determinado período de tempo.

A solução: obter outro servidor para compartilhar a carga de solicitação. Eu acabei usando mais três servidores – todos menores, menos potentes e mais baratos que o primeiro. Depois de cerca de duas semanas, eu tinha reunido todas as informações públicas transações de 2017 – mais de 200 milhões de trocas no total.

Eu encontrei alguns obstáculos; afinal, eu não sou nem desenvolvedor nem um cientista de dados profissional.

O fato de conseguir obter tantos dados em primeiro lugar me fez querer saber quem mais deve ter acessado a API do Venmo ao longo dos anos. Apenas pense em como essa informação pode ser valiosa para corretores de dados, seguradoras de saúde ou entidades financeiras.

Ao criar meus servidores virtuais, escolhi Ubuntu (uma distribuição Linux gratuita e de código aberto) como seu sistema operacional porque já havia trabalhado com ele antes. Além disso, o Ubuntu tem uma grande comunidade online, então eu estava confiante de que, se tivesse problemas, poderia encontrar soluções no stackoverflow, um site onde os desenvolvedores fazem e respondem perguntas. Stackoverflow também funciona no navegador Tor e não tem CAPTCHAS.

Em seguida, instalei o MongoDB em cada servidor. MongoDB é um serviço de banco de dados que pode armazenar dados usando estruturas em vez de linhas e colunas tradicionais.

Cada pedaço de dados que salvei era um conjunto de itens vinculados, onde cada item continha uma “chave” (um identificador exclusivo para um dado) e um “valor” (os dados reais associados a essa chave). Estes são chamados ‘pares chave-valor’. Um exemplo pode ser: ‘Nome: João, Idade: 15’. Ver abaixo para mais exemplos.

Isso foi perfeito, pois a API Venmo retorna dados no JSON (JavaScript Object Notation), que também consiste em chave-valor pares. Quando terminei, havia armazenado todas as transações públicas de 2017 no meu banco de dados.

Se você observar os dados retornados pela API, verá algo como isto:

“dados”: [{object}, {object}, {object}…]

Neste exemplo, “dados” é uma chave e o valor correspondente após o dois pontos (“:”) é uma lista (que está entre [ ]) de objetos (que estão entre { }). Cada objeto representa uma transação pública usando um conjunto de pares chave-valor, conforme mostrado abaixo.

Captura d tela mostrando os resultado de consulta de API no formato JSON com campos como payment_id, comments, actor, target, created_time, message, entre outrosO que está incluído em uma transação https://01fa.de/temp/publicapidata. Captura de tela de Hang Do Thi Duc

Assim, cada transação pública contém as seguintes informações:

  • identificação de pagamento

  • permalink (link permanente para cada transação, visível no site da Venmo)

  • nome de usuário, nome, sobrenome, link para uma foto de perfil e data de criação de conta tanto para o “ator” de um pagamento quanto para o “destino” / recebedor de um pagamento

  • data e hora em que a transação foi criada ou atualizada

  • tipo de transação (‘pagamento’ ou ‘cobrança’, por exemplo)

  • mensagem de transação (uma legenda escolhida pelo ‘ator’ da transação)

  • curtidas e comentários

Esses pedidos renderam 200 milhões de transações públicas inicialmente espalhados por diferentes servidores, o que significava que eu não poderia analisá-los tudo de uma vez. Então juntei os bancos de dados no primeiro e mais poderoso servidor e cancelei os outros. Todo o processo envolveu aprender fazendo. Usei o Google e DuckDuckGo (um buscador mais amigával com a privacidade) para pesquisa e pedi conselhos a amigos.

Descobrindo o drama nos dados

https://cdn.ttc.io/i/fit/1000/0/sm/0/plain/kit.exposingtheinvisible.org/il/Investigating-Apps_Venmo-Case-Study_Breakdown-cik-illustration_2.png

Uma lista de duzentos milhões de transações pode não parecer tão grande, em comparação com feeds públicos como os do Twitter ou Facebook, mas o Venmo dados contêm informações financeiras confidenciais que podem ser usadas para comprometer os indivíduos. Mesmo se eu tivesse coletado menos transações, tenho certeza de que teria sido capaz de encontrar muitas histórias no conjunto de dados.

Pude ver claramente que vários usuários do Venmo estavam compartilhando mais detalhes íntimos sobre suas finanças, uso de drogas e vida romântica, entre outras revelações,com o mundo – seja porque não sabem ou porque não se importaram.

Eu tinha certeza de que, se alguma coisa no sistema fosse mudar, eu precisava envolver o maior número de pessoas possível. A única maneira que eu poderia imaginar fazer isso, com minhas habilidades, era transformar esses dados em algo midiático e compartilhá-lo por toda parte. Para o maior impacto, eu precisava encontrar “sujeira” neste conjunto de dados.

Em um nível mais amplo, o projeto consistia em encontrar histórias no dados e apresentá-los para que outras pessoas pudessem entender o que estava acontecendo sobre. Ao fazê-lo, o principal desafio foi mostrar as falhas da plataforma relacionados a dados pessoais, sem expor nenhum usuário individual. EU queria comunicar claramente que a falha não é do usuário, mas com a própria plataforma.

Então, me propus a fazer algumas perguntas aos dados:

  • Quais são as palavras ou sequências de palavras mais usadas, incluindo emojis, nas mensagens de transação?

  • Quem teve mais transações em 2017? O que eles gastaram seus dinheiro em?

  • Existem pessoas que fizeram várias transações da mesma natureza?

  • Quais transações tiveram mais curtidas e comentários?

  • Existem pares de pessoas que só enviaram dinheiro um ao outro?

Especificamente, eu queria chamar a atenção para as mensagens de transação que referem-se a coisas que a maioria das pessoas concordaria que não deveriam ser públicas sobre um indivíduo: por exemplo, se gastam dinheiro com drogas ou se pagam um empréstimo, se vão sempre ao mesmo restaurante em um determinado dia da semana. EU queria mostrar o valor real desse tipo de dado, que está conectado para a agregação contínua das ações das pessoas. Então, eu também estava procurando para padrões de vida cotidiana e estilo de vida, em termos de consumo e localização.

Antes que eu pudesse começar a procurar histórias humanas nos dados, tive que limpar o conjunto de dados. Eu removi todas as duplicatas que provavelmente existiam em razão da sobreposição de um segundo que implementei quando fiz as solicitações à API. Então eu tive que adicionar um índice do MongoDB à chave “message” (também chamada de “campo”). Isso ajudou a agilizar outros processos envolvendo «mensagens» da transação.

Finalmente, eu estava pronto para começar a fazer perguntas aos dados. Para fazer isso, eu tinha que escrever e enviar consultas MongoDB, que são basicamente solicitações de informações do banco de dados que armazena as informações.


Exemplo:

Uma consulta se parece com isto:

db.collection.find( { mensagem: «🏠💸»”} )

Esta consulta retorna uma lista de itens na coleta de dados que contém o emoji especificado: ‘🏠💸’. Quando você começa a digitar ‘aluguel’ no Venmo, sugere um preenchimento automático para esses emojis, então essa consulta essencialmente significa “encontre mensagens que se referem ao pagamento do aluguel”.

Várias dessas consultas resultaram em uma série de usuários ou transações, que exigia um bom trabalho jornalístico à moda antiga: ir através dos registros um por um até encontrar algo interessante.

Havia, por exemplo, cerca de 350 usuários que tinham 1.000 ou mais transações. A maioria deles eram pequenas empresas que aceitam pagamentos através de Venmo; alguns eram apenas indivíduos realmente ativos. Às vezes era chato passar por todos os seus gastos e interações sociais, mas encontrei algumas histórias potencialmente escandalosas e muito drama pessoal.

Por exemplo, havia um varejista de cannabis cujo perfil e transações (e de seus clientes) ajudou a divulgar a área em que ele opera. Havia um casal atormentado cujas transações ilustrou toda a saga de seu relacionamento, do amor ao ódio. Havia uma mulher com hábitos alimentares muito pouco saudáveis (baseados nas comidas fast-food e refrigerantes que comprava diariamente), cujo perfil sinalizava uma bandeira vermelha para uma companhia de seguros de saúde. (Isso pode soar extremo, mas as seguradoras são conhecidas por escanear as mídias sociais para ajudar criar perfis precisos de clientes atuais e potenciais, bem como para fazer avaliações de risco sólidas. Basta verificar alguns artigos como estes de Huffington Post ou NextAdvisor ).

Os dados de 2017 expuseram muitas histórias como essas. Mais são retratados (anonimamente) no site PublicByDefault (Público por Padrão): publicbydefault.fyi.

Entre os softwares que usei para fazer essas consultas de dados estavam Robomongo e Studio 3T, que tinham boa documentação, tutoriais e exemplos. Essas ferramentas também me permitiram exportar os dados que eventualmente precisei para meu site de histórias. Os formatos de dados que encontrei foram JSON e CSV (valores separados por vírgula). Para criar o site, usei HTML, CSS e JavaScript, incluindo bibliotecas como jQuery, PixieJS, GSAP, D3.js, Lodash e Moment.js.

Causando impacto

Publiquei PublicByDefault.fyi em julho de 2018. O projeto recebeu atenção de vários meios de comunicação, como The Guardian, ArsTechnica e outros, que você pode ver em PublicByDefault.

Na mesma época, alguém criou um bot no Twitter para tornar as transações públicas ainda mais públicas tuitando-as. Alguns dias depois, Venmo lançou uma série de telas pop-up lembrando os usuários que suas transações são públicas por padrão.

Captura de tela da página com termos de privacidade do app Venmo, com título Things to know about privacy (Coisas para saber sobre privacidade)

Captura de tela da página com termos de privacidade do app Venmo, com título What the Public privacy settings means (O que significa pública na configuração de privacidade)

Captura de tela da página com termos de privacidade do app Venmo, com título You are in control (Você está no controle). You decide who can see your payments. (Você decide quem pode ver seus pagamentos). Exemplos de mensagem pop-up de privacidade do Venmo.

A plataforma também reduziu significativamente (mas silenciosamente) a taxa na qual os dados podem ser recuperados de sua API pública, portanto, o acesso em massa - obtendo centenas de transações públicas a cada dois segundos, como eu fiz – não são mais possível. Eles também desativaram os parâmetros de data (“desde” e “até”), então você não pode mais solicitar transações passadas. Isto torna impossível criar um banco de dados com a mesma quantidade de dados que eu coletei.

Na minha opinião, este é apenas um pequeno passo em direção a uma melhor segurança e respeito pelos usuários. No início de 2019, a configuração padrão do Venmo ainda e público e a API pública ainda existe. Para mim, essas mudanças ainda não estão a altura do compromisso alegado pela empresa de proteger totalmente os dados e privacidade de seus usuários. Ainda é possível criar um banco de dados de transações públicas, e o limite de taxa pode ser contornado com a implantação uma série de servidores com diferentes endereços IP.

Em 23 de agosto de 2018, um **artigo da Bloomberg ** relatou: “Nas últimas semanas, executivos da PayPal Holdings Inc., a controladora da Venmo, estavam avaliando se removeriam a opção de postar e visualizar transações públicas, disse uma pessoa familiarizada com o deliberações. Não está claro se essas discussões ainda estão em andamento.

No mês seguinte, em setembro de 2018, a Mozilla entregou uma petição com mais de 25.000 assinaturas para pressionar Venmo a alterar seu padrão de privacidade configurações.

No início de 2019, no entanto, um estudante de ciência da computação conseguiu replicar o processo de download das transações públicas da Venmo. Conforme detalhado neste artigo do Techcrunch, Dan Salmon raspou sete milhões de transações em seis meses para mostrar que a atividade pública dos usuários ainda pode ser facilmente obtida na plataforma. Embora o Venmo tenha tornado o download em massa dos dados mais difícil ultimamente, o recurso «público por padrão» ainda está disponível e há pouco esforço para aumentar a privacidade dos usuários (ou pelo menos sua consciência sobre privacidade).

Devo observar que Venmo não é uma exceção. Existem muitas outras plataformas onde os dados dos usuários são divulgados ou compartilhados com terceiros por padrão. Neste caso particular, você pode supor que, quando aparece um novo serviço que lida com pagamentos privados, a privacidade por design receberia alta prioridade. Infelizmente, não é o caso.

O alvo da minha investigação era a empresa que estava deixando públicos os dados de transações privadas. Mas a disponibilidade desses dados, que é essencialmente uma violação da privacidade dos usuários, também representa uma oportunidade para pesquisadores para extrair informações para outros tipos de investigações. Por exemplo, se você estiver investigando subornos, corrupção ou lavagem, pesquisar esses dados pode revelar links ocultos entre indivíduos e/ou empresas que tentam movimentar dinheiro para fins ilícitos propósitos.

Os dilemas éticos de expor falhas de privacidade

Como tecnólogo em design, sempre me interessei por dados e privacidade – especificamente, como a mídia social expõe tanto de nossa vida para tantas pessoas, muitas vezes sem entendermos completamente como. Em 2016 eu criei o Data Selfie https://dataselfie.it, uma extensão de navegador que mostrou o que o Facebook pode saber sobre você por meio de vários dados algoritmos de perfil. A extensão, que não mantenho mais, permitia a qualquer usuário investigar seus próprios dados, histórico, comunicação e relacionamentos armazenados no arquivo do Facebook.

Ao lidar com um tema delicado como a privacidade das pessoas, há uma enorme dilema ético para um investigador que procura usar dados e evidências para provar um ponto. Afinal, você precisa ver e processar dados reais, senão não há como construir uma narrativa forte e ganhar a confiança dos outros.

Além disso, com este projeto, meu objetivo era incitar as pessoas a reconsiderar sua perspectiva e incentivá-las a tomar decisões conscientes se perguntando: “Estou bem com uma plataforma sabendo tudo isso sobre mim? Estou confortável com todos sabendo que gosto de gastar dinheiro com fast food, que às vezes pago meu aluguel atrasado ou que posso ser encontrado no mesmo lugar e horário todas as quartas-feiras? As outras pessoas acham normal compartilhar essas informações sobre si mesmos? Será que eles sabem o que está acontecendo?”

Ao longo de todo este processo tomei consciência de uma contradição: ao tentar aumentar a conscientização sobre privacidade, chamando mais atenção para como a transações deveriam ser pública, eu as estava tornando ainda mais públicos. Com isso em mente, minha principal prioridade para o resultado final sempre foi evitar nomes reais, nomes de usuário e fotos de perfil. Essa abordagem também ajudou a manter os leitores focados na história e não nos indivíduos expostos.

Desde o início deste projeto, lutei com a questão do que fazer com os dados depois de terminar minha análise e publicação. É algo que exorto todo investigador a pensar com cuidado. No momento em que escrevo este texto, o conjunto de dados é armazenado localmente e não o compartilhei com ninguém.

Segurança digital ao trabalhar com dados de outras pessoas

Quando você está em posso de informações confidenciais que, de certa forma, pertence a outras pessoas, é sua responsabilidade protegê-las. Mantê-las em um dispositivo local (computador, disco rígido externo, USB etc.) – em vez de em um servidor remoto ou em armazenamento na ‘nuvem’ – é um passo importante para cumprir essa responsabilidade. No entanto, também é importante considerar a possibilidade de que seu computador, telefone ou dispositivo de armazenamento pode ser perdido, roubado ou confiscado. Ter seus dadoscriptografados é uma forma de evitar esses riscos.

Para proteger “seus” dados, você deve se perguntar os três seguintes questões:

  1. Qual ferramenta você usará para criptografar dados em seu computador ou telefone?

  2. Qual ferramenta você usará para criptografar dados em um armazenamento externo dispositivo?

  3. Qual senha você usará para impedir que outras pessoas descriptografem o dados?

Abaixo estão alguns conselhos sobre todos os três.

1. Criptografia de dados em seu dispositivo

Cada um dos principais sistemas operacionais fornece uma maneira de ativar criptografia total do disco que protegerá todos os dados em seu dispositivo quando ele estiver desligado.

  • Em um Mac, você pode habilitar o FileVault, que o provavelmente é mais simples dos três mecanismos de criptografia de disco completo mencionado aqui. Quase todo mundo com um Mac deveria usar o FileVault.

  • No Windows, você pode ativar o BitLocker, embora seja disponível apenas nas versões mais caras do sistema operacional. Este é um bom motivo por que você deve considerar optar para Windows “Pro” na próxima vez que você comprar um PC.

  • No Linux, esperamos que você tenha configurado LUKS(Linux Unified Key Setup) quando você instalou o sistema operacional. É possível fazê-lo após a instalação (aqui está um exemplo de 2019 para Ubuntu Linux 16.04) mas provavelmente é mais fácil apenas fazer backup de seus dados e reinstalar o Linux.

  • Nos iPhones, a criptografia é chamada de “proteção de dados” e está ativada por padrão.

  • Em telefones Android, é, chamado de “Criptografar dispositivo” e dependendo da versão pode ser necessário você mesmo ativar, então vale a pena dar uma olhada suas configurações. (nota do tradutor: a partir do Androi 10, a criptografia de disco inteiro foi substituída pela criptografia baseada nos arquivos. Veja nota a seguir)


Nota: Desde a versão 10, o sistema operacional de celulares Android utiliza criptografia por padrão se você configurar uma tela de bloqueio com pin ou, ainda mais seguro, senha. Entretanto, desde a mesma versão pasou a utilizar a criptografia baseada em arquivo (FBE, File Based Encryption), ao invés de criptografia de disco inteiro, e segundo os responsáveis pelo projeto, o novo método oferece o mesmo nível de segurança. De forma simplificada, passou-se de um «disco» totalmente criptografado para «todos os arquivos» criptografados. Em teoria é uma mudança técnica apenas e recomendamos enfaticamente que você se assegure de ativar a criptografia no seu celular

Finalmente, VeraCrypt é uma ferramenta de criptografia gratuita e de código aberto que funciona em computadores Macs, Windows e Linux. O VeraCrypt é normalmente usado para criptografar uma pasta específica de dados, em vez do que tudo no seu computador, mas pode ser sua única opção se você trabalha em vários sistemas operacionais. Dê uma olhada em Security-in-a-Box para saber mais sobre como usar o VeraCrypt em um Mac, Windows ou Linux computador.

2. Criptografia de dados em um dispositivo de armazenamento externo

Cada sistema operacional fornece uma maneira de reformatar um «pendrive» USB ou disco rígido externo de forma a criptografar todos os dados armazenados posteriormente nele. Infelizmente, os dispositivos criptografados dessa maneira são apenas acessíveis a partir de computadores que executam o mesmo sistema operacional. Então, um pendrive que você formata em um MAC não funcionará em um computador Linux (mais um razão para se familiarizar com o VeraCrypt!).

  • Em um Mac, você pode fazer essa formatação com o programa Disk Utility.

  • Em versões compatíveis do Windows, você pode fazer isso usando o BitLocker.

  • No Linux, você pode usar a ferramenta “Discos”.

3. Criação e manutenção de senhas fortes

Sua criptografia é tão forte quanto a senha que você escolhe quando você configurá-lo. Uma senha forte deve ter várias características:

  • deve ser longa o suficiente para que não possa ser violada utilizando “força bruta” por vários computadores rápidos trabalhando em conjunto. Se sua senha for completamente aleatória e contiver símbolos, letras minúsculas, letras maiúsculas e números, e ao menos 16 caracteres, deve ser suficiente. Se incluir elementos fáceis de adivinhar, como palavras ou informações pessoais, então precisa ser muito mais longa. (Veja abaixo sobre senhas “diceware” ou frases-chave.)

  • Não deveria estar em nenhum dicionário. Infelizmente, isso também refere-se a “dicionários de quebra de senha” especializados que contêm citações famosas, letras de músicas, gr4fi4 4lt3rn4t1v4 de palavras e, em alguns casos, frases personalizadas que se relacionam com o alvo, como datas de nascimento, nomes de animais de estimação, idiomas específicos e lemas da empresa.

  • Você nunca deve reutilizar a mesma senha para vários dispositivos ou contas. Sério. Para saber por quê, dê uma olhada no site HaveIBeenPwned e você poderá ver o quão frequente uma mesma senha, que foi vazada, é utilizada em diversos serviços.

Uma técnica popular, que satisfaz todos esses requisitos enquanto ainda produzindo senhas relativamente memoráveis, é chamado de “diceware”. Para criar uma senha diceware, basta selecionar sete palavras aleatoriamente e conectá-las. Dependendo dos requisitos do software ou serviço para o qual você está criando a senha, os exemplos podem incluir:

  • torradeira salão gelo tragédia bruta bolo bicicleta,

  • PombasRodasVerdeLentoApartamentoCafé, ou

  • Nublado!sem4foroJogador#VespaBacon

Por fim, utilize um gerenciador de senhas criptografado como KeePassXC. Os gerenciadores de senha permitem que você memorize muito menos senhas sem reutilizá-las para vários serviços. Para que você possa acessar seu computador para inicie o KeePassXC, você ainda vai precisar memorizar a senha da criptografia de seu disco completo, é claro.


Publicado em abril de 2019
Traduzido para português em abril de 2024

Recursos

Artigos e guias

  • PublicByDefault.fyi (Público Por Padrão). O site criado pelo autor, Hang Do Thi Duc com histórias de sua pesquisa de exposição de dados Venmo.

  • Scraping Venmo, do desenvolvedor Dan Gorelick. Um artigo detalhando como Gorelick descobriu o processo de extração de dados dos usuários do Venmo devido às vulnerabilidades de a aplicação.

  • Como instalar o MongoDB no Ubuntu 16.04, de HowtoForge.com. Um tutorial.

Ferramentas e Bancos de Dados

  • D3.js. Uma biblioteca JavaScript para produzir visualizações de dados dinâmicas e interativas em navegadores da web.

  • Data Selfie. Um aplicativo e experimento de Hang Do Thi Duc que visa fornecer uma perspectiva pessoal sobre mineração de dados, análise preditiva e identidade de dados online das pessoas.

  • Epoch Converter. Uma ferramenta para converter hora e data do formato legível por humanos em um registro de data e hora para a Era Unix e vice-versa.

  • GSAP. Uma biblioteca de animação JavaScript, boa para projetos complexos e animações personalizáveis com alto desempenho.

  • jQuery. Uma biblioteca JavaScript para manipulação de documentos HTML, animação e tratamento de eventos.

  • Lodash. Uma biblioteca de utilitários JavaScript, transformando e filtrando dados.

  • Moment.js. Uma ferramenta usada para analisar, validar, manipular e exibir datas e vezes em JavaScript.

  • MongoDB. Um programa de banco de dados de documentos gratuito e de código aberto.

  • Node.js. Uma ferramenta que permite usar JavaScript fora do navegador. Por exemplo, em um servidor ou no seu computador para realizar tarefas e criar programas

  • PixieJS. Uma biblioteca JavaScript para simulações ou animação de muitos elementos.

  • Stackoverflow. Um site de perguntas e respostas para desenvolvedores, programadores, e afins.

  • Studio 3T. Uma plataforma que fornece ferramentas para quem trabalha com MongoDB.

Glossário

term-api

API – significa interface de programação de aplicativos (Application Programming Interface em inglês), uma ferramenta de software que facilita a comunicação entre um usuário e um conjunto de dados, entre outras coisas. uma forma pela qual um plataforma pode tornar seus dados acessíveis a desenvolvedores externos gratuitamente ou sob algumas condições ou taxas. Por exemplo, a API da biblioteca de anúncios do Facebook permite que os usuários consultem dados de anúncios usando um conjunto particular de comandos desenvolvidos pelo Facebook.

term-bot

Robô – também chamado de robot, bot, web bot ou internet bot, é um software aplicativo que executa tarefas automatizadas pela internet. Por exemplo, um robô do Twitter que publica mensagens automatizadas e feeds de notícias.

term-extension

Extensão do navegador – também chamados de add-ons, são pequenos pedaços de software usado para estender as funcionalidades de um navegador da web. Estes podem fazer qualquer coisa, desde permitir fazer imagens de páginas da web que você visita a verificar e corrigir sua ortografia, ou bloquear anúncios nos sites.

term-brute

Força bruta - uma técnica de quebra de senha que envolve tentar todas as combinações possíveis.

term-captcha

CAPTCHA – um teste automatizado usado por sites e serviços online para determinar se um usuário é humano ou robô. Por exemplo, um teste pedindo usuários para identificar todos os semáforos em uma série de nove fotos.

term-cloud

Armazenamento em nuvem - um modelo de armazenamento de dados em que as informações são mantidas em servidores remotos que os usuários podem acessar via internet.

term-database

Banco de dados - um sistema usado para armazenar e organizar coleções de dados com um foco ou propósito específico. Por exemplo, um banco de dados de terras e propriedade de propriedade no país Z.

term-databroker

Corretor de dados – uma empresa ou pessoa que coleta e processa informações dados a serem usados como um ativo para fins comerciais ou políticos. Dados d coletado da coleta de registros de banco de dados, pesquisa e redes sociais, entre outros.

term-dataset

Conjunto de dados – uma coleção de dados que compartilham alguns atributos comuns e que geralmente é organizado em linhas e colunas para facilitar em processamento. Por exemplo, um conjunto de dados dos proprietários estrangeiros de terras e propriedades no país Z.

term-devconsole

Console do desenvolvedor – um espaço em um aplicativo ou plataforma onde os desenvolvedores pode obter acesso a sua API, ferramentas e dados para testar bugs, ajudar desenvolver o código existente ou usar os dados para criar novas aplicações de esse código.

term-fulldisk

Criptografia de disco completo – também chamada de FDE (Full Disk Encryption), é criptografia que ocorre em um nível de dispositivo, disco, drive ou hardware. Por exemplo, criptografar todo o disco do computador também criptografaria automaticamente todos os dados salvos nele.

term-encryption

Criptografia- Uma maneira de usar matemática para criptografar, ou codificar, uma mensagem ou informação de forma que só possa ser decodificada e lida por alguém que tenha uma senha específica ou uma chave de criptografia. (fonte: Security-in-a-Box)

term-ip

Endereço IP – Endereço de Protocolo de Internet (IP vem do inglês Internet Protocol), é um conjunto de números usados para identificar um computador ou local de dados ao qual você está se conectando. Exemplo: 213.108.108.217 (IPv4) ou 2606:4700:4700::1111 (IPv6)

term-json

JSON - JavaScript Object Notation, um formato popular para troca de dados. De acordo com o site JSON, é fácil para os humanos lerem e escrever e fáceis para as máquinas analisarem e gerarem.

term-nodejs

Node.js – permite que você use JavaScript fora do seu navegador, por exemplo, para fazer solicitações de API e interagir com um banco de dados.

term-publicapi

Public API (API aberta) – uma API que é publicada na internet e é livremente acessível para os desenvolvedores trabalharem.

term-feed

Feed (web) público – um serviço de fornecimento de dados online que oferece informações atualizadas regularmente para seus usuários ou para o público em geral público. Pode ser configurado através da assinatura do feed de um site/mídia ou pode estar publicamente disponível para todos.

term-ratelimit

Limite (de acesso) – é usado para limitar o tráfego de entrada e saída de redes e sites.

term-script

Script – uma lista de comandos que são executados por um determinado programa para automatizar processos. Por exemplo, visitar um URL a cada dois segundos e salvar o dados que são retornados.

term-socialnet

Rede social – refere-se a sites que focam em conteúdo e interações como Facebook, Twitter, Instagram, etc.

term-targetads

Publicidade ou Anúncios direcionados – uma forma de publicidade que visa atingir ou serem mostrados apenas acertos grupos selecionados ou indivíduos com características particulares ou de áreas geográficas específicas, com base nos dados disponíveis sobre eles. Por exemplo, colocar anúncios de venda de bicicletas em contas do Facebook de jovens em Amsterdã.

term-thirdparty

Terceiro - uma pessoa ou entidade que não faz parte diretamente de um contrato ou relacionamento, mas pode ter uma função relacionada a ele no entanto.

term-tor

Navegador Tor – um navegador que mantém suas atividades online mais privadas. Ele disfarça sua identidade e protege seu tráfego na web de várias formas de vigilância na internet. Também pode ser usado para ignorar certos filtros da Internet.

term-url

Universal Resource Locator (URL) – um endereço da web usado para recuperar um página ou dados em uma rede ou internet. Popularmente chamado de endereço, e às vezes, link.

term-userbase

Base de usuários - uma lista de usuários associados a uma determinada plataforma ou sistema.

term-vps

Servidor Privado Virtual (VPS) - Do inglês Virtual Private Server, é uma máquina virtual, alugada como um serviço, por uma empresa de hospedagem na Internet.

term-webdomain

Domínio da Web – um nome comumente usado para acessar um site que se traduz em um endereço IP. Por exemplo, tacticaltech.org.

term-webinterf

Interface da Web – uma interface gráfica do usuário na forma de uma página da Web que é acessada através do navegador de internet.

term-webpage

Página da Web – um documento (página) acessível pela Internet, exibido em um navegador da web.

term-webserver

Servidor da Web – também conhecido como servidor de internet, é um sistema que hospeda websites e entrega seu conteúdo e serviços aos usuários finais através da Internet. Inclui hardware (máquinas servidoras físicas que armazenam o informação) e software que facilitam o acesso dos usuários ao conteúdo.