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 do mundo real de uma investigação sobre os dados coletados por um aplicativo. Apresentado nas palavras do próprio pesquisador, o caso combina dados coleção, design, storytelling e advocacia. Isso mostra como você pode pesquise 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 m aambém uma ótima ilustração 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 fsado 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, que podem ajudar a alimentar os lucros da empresa por trás um aplicativo ou plataforma. 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 ele?

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 com e na plataforma. Você pode encontrar esses detalhes entrando em sua conta do Facebook, acessando nas 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» seu Facebook informações, você encontrará uma seção chamada “Segurança e login Informações” 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 aproximar sua localização. No campo de direcionado publicidade, 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» das plataformas de uso» - e compartilhar suas descobertas pode ajudar você e as pessoas ao seu redor você se torna mais consciente sobre os aplicativos e serviços que usa e como muita informação que as empresas que os administram são capazes de coletar e compartilhar sobre você. Enquanto os rastros de dados que os usuários deixam para trás podem ser benéfico para os investigadores que procuram saber mais sobre o assunto de suas pesquisas, as plataformas devem ser responsáveis por garantir que os usuários dão consentimento informado sobre como seus dados estão sendo disponibilizados e para quem.

Público por padrão

Em maio de 2015, registrei-me no Venmo, um aplicativo de pagamentos móveis de propriedade do PayPal e operando nos Estados Unidos. Cerca de sete milhões de usuários mensais ativos enviar pagamentos através desta plataforma. O que torna o aplicativo “social” é que outros usuários podem reagir, comentar e ter longas conversas sobre seus 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 exibido em um 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 presa na parte de trás Da minha mente.

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 ao seu passado transações), possivelmente seus IDs do Facebook (se eles conectaram seus conta Venmo com o Facebook, como muitos usuários fazem ao se inscrever) e conversas poderiam facilmente criar um mapa de suas redes sociais do mundo real rede e hábitos.

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

Meu projeto PublicByDefault.fyi visa para mostrar a quantidade de dados pessoais dos usuários do Venmo - de traficantes de drogas a casais rivais a vendedores de carrinhos de comida - compartilhe com o mundo e destaque as consequências de não saber ou não se importar com o que acontece com o seu dados pessoais e quem pode observar o seu comportamento online.

https://cdn.ttc.io/i/fit/800/0/sm/0/plain/kit.exposingtheinvisible.org/Venmo_publicbydefault.jpeg Página PublicByDefault.fy

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

Eu poderia alterar o 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, economizando um total de 207.984.218 transações. Apenas olhando os usuários e suas trocas, eu aprendeu uma quantidade alarmante sobre eles.

O que parece privado pode ser público

Como em qualquer investigação, tudo começa verificando o trabalho anterior e informações relacionadas ao assunto em questão. O que foi descoberto a data? Que dados já existem? E o mais importante, o que e iinda sem 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 fornecida um ponto de partida útil para minha investigação. Ao olhar para o Guia “Rede” do navegador console do desenvolvedor, Dan descobri que venmo.com carrega os dados para seu feed público de um URL simples: venmo.com/api/v5/public. Este é o público de Venmo API.


Observação:

Uma API, que significa “interface de programação de aplicativos”, é 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 um API que dá aos desenvolvedores acesso aos seus dados, incluindo satélite imagem.

Para evitar o abuso de sua API, uma plataforma geralmente terá 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 do aplicativo/desenvolvedor de terceiros 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 seu tráfego na web sob controle.

No caso da Venmo, ter uma API pública significava nenhuma autenticação necessária para aplicativos e desenvolvedores de terceiros: sem permissão de seus usuários, sem chave de API e sem registro. Que significa 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 tráfego da web sob controle, 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 de O 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 enviou 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 blog do Dan post 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.

Meu primeiro pedido foi receber 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.

Na tradução, para formular o comando acima de uma forma que gerar 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 ‘época carimbo de data/hora”. Isso também é conhecido como “UNIX epoch time” e é um sistema para descrevendo 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 época do UNIX).

Eu fiz essa conversão de tempo legível por humanos para timestamp de época por 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 implementou uma sobreposição de tempo de um segundo para cada solicitação, usando Greenwich Carimbos de data e hora de hora média (GMT), como:

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

seguido pela

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

Inicialmente, escrevi um script usando Node.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 poderia fazer pedidos contínuos. Eu tinha 525.600 solicitações de API para fazer afinal.

Enquanto viajava, meu laptop costumava ficar offline, então comprei um Virtual Private Server (VPS) por 26 euros por mês. Tratei-o como um computador remoto sempre ligado, mas 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 vocr 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 com 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 um profissional desenvolvedor nem um cientista de dados.

O fato de conseguir obter tantos dados em primeiro lugar me fez Gostaria de 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 dados corretores, seguradoras de saúde ou financeiras entidades.

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. Em Além disso, o Ubuntu tem uma grande comunidade online, então eu estava confiante de que, se Tive problemas, poderia encontrar soluções em stackoverflow, um site onde os desenvolvedores fazem e respondem perguntas. Stackoverflow também funciona em o 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: John, 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 esse:

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

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

https://cdn.ttc.io/i/fit/800/0/sm/0/plain/kit.exposingtheinvisible.org/Venmo_apiresults.pngO 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’ de a 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 cancelou os outros. Todo o processo envolveu muita aprendendo fazendo. Usei o Google e DuckDuckGo (um buscador mais preocupado com a privacidade) para pesquisa e pediu 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, estou certeza de que teria sido capaz de encontrar muitas histórias no dataset.

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 precisa 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 dados digitais mídia e compartilhá-la por toda parte. Para o maior impacto, eu precisava encontre “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 gastar dinheiro com drogas ou pagar um empréstimo, ou ir 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 limpe o conjunto de dados. Eu removi todas as duplicatas que provavelmente existiam porque da sobreposição de um segundo que implementei quando fiz as solicitações de API. Então eu tive que adicionar um índice do MongoDB à chave “message” (também chamada de como “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-me 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 no jejum comidas e refrigerantes que comprava diariamente), cujo perfil sinalizar 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: publicbydefault.fyi.

Entre os softwares que usei para fazer essas consultas de dados estavam Robomongo e Studio 3T, que teve bons resultados online documentação, tutoriais e exemplos. Essas ferramentas também me permitiram exportar os dados que eventualmente precisei para meu site de histórias. Os dados formatos 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 torne 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.

https://cdn.ttc.io/i/fit/800/0/sm/0/plain/kit.exposingtheinvisible.org/Venmo_privacynote.png

https://cdn.ttc.io/i/fit/800/0/sm/0/plain/kit.exposingtheinvisible.org/Venmo_privacynote1.png

https://cdn.ttc.io/i/fit/800/0/sm/0/plain/kit.exposingtheinvisible.org/Venmo_privacynote2.png 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 l oais tempo 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. isso faz com que impossível criar um banco de dados com a mesma quantidade de dados que eu coletados.

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 rublic e a API pública ainda existe. Para mim, essas mudanças não demonstrar o compromisso da empresa em 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 um 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 de privacidade).

Devo observar que Venmo não é uma exceção. Existem muitos outros 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 chega a um serviço que lida com pagamentos privados, privacidade por design receberia alta prioridade. Infelizmente, não é o caso.

O alvo da minha investigação era a empresa que estava fazendo transações privadas dados disponíveis. 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, passar por 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 de design, sempre me interessei por dados e privacidade – especificamente, como a mídia social expõe tanto de nosso vida para tantas pessoas, muitas vezes sem entendermos completamente como. Em 2016 eu criei Data Selfie https://dataselfie.it, uma extensão do navegador que mostrou o que o Facebook pode saber sobre você por meio de vários dados algoritmos de perfil. A prorrogação, que não mantenho mais, permitia qualquer usuário para 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ência para provar um ponto. Você precisa ver e processar dados reais afinal, 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á-los 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 em no mesmo lugar e horário todas as quartas-feiras? As outras pessoas estão bem com compartilhando essas informações sobre si mesmos? Será que eles sabem o que r sndo?”

Ao longo de todo este processo tomei consciência de uma contradição: ao tentar para aumentar a conscientização sobre privacidade, chamando mais atenção para as transações isso não deveria ser público, eu os estava tornando ainda mais públicos. Com isso em mente, minha principal prioridade para o resultado final sempre foi reter nomes reais, nomes de usuário e fotos de perfil. Essa abordagem também ajudou mantenha 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. Para agora, 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á segurando informações confidenciais que, de certa forma, pertence a outras pessoas, é sua responsabilidade protegê-lo. Mantê-lo em um dispositivo local (computador, disco rígido externo, USB etc.) – em vez de em um servidor remoto ou em armazenamento em ‘nuvem’ – u dm passo importante para cumprir essa responsabilidade. No entanto, u dambém é importante considerar a possibilidade de seu computador, telefone ou dispositivo de armazenamento pode ser perdido, roubado ou confiscado. Dados criptografia é 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 full criptografia de disco que protegerá todos os dados em seu dispositivo quando ele estiver desligado.

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

  • No Windows, você pode ativar BitLocker, embora seja disponível apenas nas versões mais caras do sistema operacional. Somente por esse motivo, 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 o fato (aqui está um exemplo para ubuntu Linux) mas provavelmente é mais fácil apenas fazer backup de seus dados e reinstale 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 pode ser necessário para ativá-lo você mesmo, então vale a pena dar uma olhada suas configurações.

Finalmente, VeraCrypt é gratuito e de código aberto ferramenta de criptografia 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 stick USB ou externo disco rígido para 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 USB 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$1 $2onfigurá-lo. Uma senha forte deve ter várias características:

  • deve ser longo o suficiente para que não possa ser “bruto forçado” 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, depois 16 caracteres deve ser bastante. Se incluir elementos fáceis de adivinhar, como palavras ou informações pessoais, então precisa ser muito mais longo. (Veja abaixo sobre senhas “diceware”.)

  • 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, alt3rn@t1ve sp3ll!ngs of w0rds 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, no entanto. Para saber por quê, dê uma olhada no site HaveIBeenPwned.

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

  • torradeira de sala de jogos em forma de gelo, tragédia bruta de bolo,

  • QuaintlyFreshResilientSnowstormReworkAbnormalBuilding, ou

  • Myst!fyFr0stlikeDisorderChessReversePortalGab.

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


Publicado em abril de 2019
Traduzido para português em julho de 2023

Recursos

Artigos e guias

  • PublicByDefault.fyi. O site criado por 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 de época e vice-versa.

  • GSAP. Uma biblioteca de animação JavaScript, boa para projetos complexos e altamente 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.

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

  • Stackoverflow. Um site onde os desenvolvedores fazem e respondem perguntas.

  • 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 Programmin 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 ser qualquer coisa, desde extensões que permitem fazer imagens de páginas da web que você visita àquelas que verificam e corrigem sua ortografia ou bloqueiam 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.