2 pontos por GN⁺ 2024-07-29 | 1 comentários | Compartilhar no WhatsApp
  • Documentos públicos de uma ação coletiva antitruste contra a Meta e a engenharia reversa de um APK Android arquivado do Onavo Protect revelaram a estrutura que permitia ao Facebook descriptografar, por meio de man-in-the-middle, o tráfego HTTPS de apps concorrentes
  • O ponto central era fazer com que um certificado CA do Facebook Research fosse instalado no dispositivo e então encaminhar o tráfego da VPN Onavo para o ssl bump de um proxy transparente Squid na infraestrutura do Facebook
  • O Onavo Protect teve mais de 10 milhões de instalações no Android; uma versão distribuída em 2016 incluía certificados CA como assets do app, e um deles era válido até 2027
  • Depois do Android 7, restrições ao fluxo de instalação de certificados e à confiança em CAs adicionadas pelo usuário reduziram a eficácia, mas foi confirmado que, na época, o sc-analytics.appspot.com do Snapchat não tinha certificate pinning, permitindo MITM
  • Após o reforço de segurança do Android e a disseminação do pinning, o Facebook chegou a considerar o uso da Accessibility API, e a configuração de permissões do Onavo também deixava aberta a possibilidade de acesso a informações sensíveis como IMSI

Estrutura do Onavo confirmada por documentos públicos e engenharia reversa do APK

  • Documentos públicos da atual ação coletiva contra a Meta incluem materiais que indicam a possibilidade de o Facebook ter violado o Wiretap Act
    • Segundo a explicação de um usuário do HN, o caso em si não é uma ação por wiretapping, mas uma ação antitruste sobre violação do Sherman Act; a equipe jurídica dos autores teria descoberto, por acaso, a possibilidade relacionada ao Wiretap Act durante a fase de produção de provas
  • A análise se baseia em documentos judiciais públicos e na engenharia reversa de um pacote arquivado do app Android Onavo Protect
  • Como as informações divulgadas são limitadas e parciais, alguns fatos podem estar imprecisos ou incompletos
    • Ainda não está claro se o tráfego de todos os usuários do app foi interceptado ou se isso afetou apenas alguns usuários

Como determinados tráfegos HTTPS foram descriptografados com ssl bump

  • O Facebook chamava essa técnica de ssl bump, nome vindo do recurso de proxy transparente do Squid caching proxy
  • O fluxo de funcionamento era próximo da seguinte configuração
    • Instalação, no dispositivo, de um certificado confiável emitido pelo Facebook Research
    • Envio do tráfego do dispositivo para a infraestrutura controlada pelo Facebook por meio da VPN Onavo
    • Redirecionamento do tráfego para um proxy transparente Squid
    • Descriptografia do tráfego TLS de determinados domínios por meio da configuração ssl bump
  • Nos documentos judiciais, os domínios de interesse aparecem como relacionados a Snapchat, Amazon e YouTube
  • Apenas com o app Onavo arquivado, é difícil confirmar se o tráfego de outros usuários foi de fato interceptado ou se apenas passou pelo proxy

Permissões e funções de coleta do app Onavo Protect

  • O app Android Onavo Protect teve mais de 10 milhões de instalações e incluía código para induzir o usuário a instalar um certificado CA no repositório de confiança do usuário do dispositivo
  • O app exigia várias permissões sob a justificativa de “proteção” e exibição de uso de dados
    • Display over other apps
    • Access past and deleted app usage
  • O manifest do Android incluía android.permission.PACKAGE_USAGE_STATS, permitindo coletar estatísticas de uso de outros apps e uso de rede
  • O esquema do banco de dados local parece armazenar dados relativamente agregados, como estatísticas de uso de apps e volume de tráfego de rede por app
  • E-mails em documentos públicos incluíam a necessidade de “reliable analytics” para o Snapchat e a ideia de um “kit para iOS e Android que interceptasse o tráfego de subdomínios específicos”

Instalação de certificados CA e mudanças de segurança no Android

  • O app Onavo tinha uma função que chamava KeyChain.createInstallIntent() do Android para instalar certificados, com uma estrutura em que o usuário via um pop-up de instalação com o nome Facebook Research
  • KeyChain.createInstallIntent() deixou de funcionar da mesma forma no Android 7 Nougat
  • A política de segurança do Android também mudou bastante depois disso
    • Apps voltados ao Android 6.0 API level 23 ou inferior confiavam, por padrão, no repositório de CAs adicionadas pelo usuário
    • A partir do Android 7, apps deixaram de confiar por padrão em CAs adicionadas pelo usuário, a menos que definissem uma configuração de segurança separada
    • No Android 7, deixou de ser possível instalar certificados no repositório do sistema sem root
  • O Android 11 bloqueou completamente o mecanismo pelo qual apps induziam usuários a instalar certificados, e nenhum app passou a confiar por padrão em certificados do repositório do usuário
  • O método que era possível entre 2016 e 2019 hoje é tecnicamente difícil de executar da mesma forma no ambiente Android atual

Certificados do Facebook Research incluídos no app

  • O APK do Onavo na versão de setembro de 2017 incluía old_ca.cer e new_ca.cer na pasta assets
  • O código relacionado foi identificado na classe ResearchCertificateManager
  • A diferença entre os dois certificados era o período de validade
    • O primeiro certificado era válido a partir de 8 de setembro de 2016 e tinha validade de um ano
    • O segundo certificado era válido de 8 de junho de 2017 a 8 de junho de 2027
  • Os documentos judiciais contêm a frase de que o certificado usado para SSL bump é “gerado no servidor e enviado ao dispositivo”
  • Nos apps obtidos, ainda não foi confirmada uma função concreta de adição de certificados pelo servidor após 2017, e o ponto exige investigação adicional

Domínio de analytics do Snapchat e certificate pinning

  • Se o app tivesse implementado certificate pinning por completo, esse método de MITM não teria funcionado
  • Entre as provas dos documentos públicos, sc-analytics.appspot.com aparece como domínio relacionado ao Snapchat
  • Após decompilar uma versão antiga do app Snapchat, constatou-se que o tráfego desse domínio de analytics não tinha certificate pinning aplicado
  • O Facebook tinha consciência de que o reforço da segurança do Android e a disseminação do certificate pinning reduziam a viabilidade de longo prazo do ssl bump

Avaliação da Accessibility API e acesso a informações sensíveis

  • À medida que o reforço de segurança do Android e a adoção de certificate pinning se espalhavam, o Facebook considerou usar a Accessibility API como alternativa
  • O Google afirmou que recursos de acessibilidade só podem ser declarados como ferramentas de acessibilidade quando forem serviços destinados a ajudar pessoas com deficiência a usar o dispositivo ou superar dificuldades decorrentes de uma deficiência
  • O uso indevido de recursos de acessibilidade do Android costuma ser associado a exemplos de apps maliciosos, como banking malware
  • O app Onavo incluía a permissão READ_PHONE_STATE no manifest e, na época, isso podia permitir obter informações sensíveis como subscriber IMSI
  • A possibilidade de acesso ao IMSI mostra que também é necessária verificação adicional sobre outros dados que o app Onavo pode ter coletado

Controvérsias anteriores do Onavo e diferença desta análise

  • As informações relacionadas a MITM nesta análise são um assunto diferente das controvérsias sobre o Facebook Project Atlas e o Onavo conhecidas em 2019
  • Em 2019, o app Onavo foi removido das lojas após uma investigação segundo a qual o Facebook pagava adolescentes para usar um app e coletava dados sobre seus hábitos de uso
  • Em 2023, duas subsidiárias do Facebook receberam ordem do Tribunal Federal da Austrália para pagar multas totalizando 20 milhões de dólares australianos por conduta potencialmente enganosa sob a lei australiana do consumidor
  • O foco desta análise está no fato de que, mesmo depois de o app ter sido removido, APKs arquivados permitiram confirmar a implementação técnica da época

1 comentários

 
GN⁺ 2024-07-29
Comentários do Hacker News
  • Para organizar exatamente qual é a questão levantada, há um detalhe que vários textos parecem omitir: pelo que entendi, o FB fez usuários do SC instalarem um proxy em troca de participar de uma pesquisa de mercado
    A maioria dos textos é escrita de forma a soar como hacking, mas na prática não parece ser isso. Eu gostaria de saber mais sobre o que disseram aos participantes que eles estavam recebendo em troca, mas não me parece provável que eles não soubessem que seu comportamento estava sendo monitorado
    Se uma das partes da comunicação está quebrando a criptografia com uma ferramenta fornecida por terceiros, a alegação de que isso é escuta clandestina me parece um pouco fraca. Não sou advogado, mas se isso for escuta clandestina, então eu descriptografar e analisar o tráfego de API de algum serviço com um proxy SSL local também seria escuta clandestina?

    • A Neilson também faz algo parecido com TV. Ela instala uma caixa de captura nas casas do painel para saber o que as pessoas estão assistindo: https://www.nytimes.com/athletic/3194414/2022/03/22/the-ulti...
      Espero que tenham sido honestos sobre o que coletavam. O artigo não mostra como era a tela de consentimento antes da instalação do proxy
    • Segundo o artigo, este é um novo caso, diferente daquele coberto pelo TechCrunch em que o Facebook pagou adolescentes para coletar dados sobre seus hábitos de uso
      Nesse caso, o app Onavo acabou removido da app store e resultou em multa
    • Sobre a frase “soa como hacking, mas não parece ser”, os melhores e mais eficazes hacks em geral funcionam justamente fazendo alguém baixar algo que não deveria para contornar a segurança
    • Não é que o texto esteja omitindo algo; ele está misturando casos diferentes. Este texto é sobre o Onavo Protect, “Free VPN + Data Manager”, que não pagava ninguém
      Separadamente, houve um programa em que o Facebook pagava adolescentes para instalar o Facebook Research VPN via canal de distribuição enterprise, contornando a App Store e as regras, e essa versão paga era mais invasiva
      Portanto, esse caso do Onavo é completamente indefensável
      https://apkpure.com/onavo-protect-from-facebook/com.onavo.sp...
      https://techcrunch.com/2019/01/29/facebook-project-atlas/?re...
    • A parte de “o FB fez usuários do SC instalarem um proxy em troca de pesquisa de mercado” parece estar confundindo com o caso anterior. Esse app podia ser baixado por qualquer pessoa no Google Play e na Apple App Store
      O post do blog também distingue a controvérsia anterior — em que, em 2023, um tribunal federal australiano mandou duas subsidiárias do Facebook pagarem um total de 20 milhões de dólares por conduta enganosa com potencial de violar a lei do consumidor australiana — da atual alegação de escuta clandestina
      Quanto a “descriptografar e analisar meu tráfego com meu proxy SSL local também seria escuta clandestina?”, se você está olhando seu próprio tráfego na sua própria rede ou no seu próprio equipamento, então obviamente não
  • Partes dos e-mails são impressionantes em vários sentidos, especialmente por mostrarem o quão idiotas ou arrogantes as pessoas do FB eram. Falar abertamente de MITM e ainda deixar por escrito que colocaram esse kit em produtos de várias outras empresas foi realmente muito estúpido
    Algo como “Zuck, tenho uma ideia sobre o que você sugeriu, vamos conversar” já seria suspeito, mas pelo menos não seria uma prova de culpa. Parece gente que nunca viu um filme ou uma reportagem sobre outras empresas que foram pegas

    • Guardo muito o conselho de que, sempre que você mandar algo por escrito, deve pensar em como se sentiria se tivesse de repetir a mesma coisa em tribunal ou se aquela mensagem saísse no noticiário. Nunca escrevi nada tão grave quanto isso, mas mesmo assim ajuda
    • Você preferiria que eles fossem mais inteligentes e conseguissem esconder os rastros do comportamento malicioso?
      O verdadeiro problema é a ausência total de ética. Se ética é vista como obstáculo, parece o tipo de lugar em que você seria ridicularizado em uma sala de reunião ou demitido. A cultura corporativa parece voltada acima de tudo para o lucro, e no setor de software isso é especialmente ruim porque há gente demais que simplesmente não pensa nas implicações éticas do que faz
    • Chefes bilionários vivem cercados de oportunistas e puxadores de saco. Com o tempo, esse grupo cresce até ficar incontrolável como uma enorme zona de lixo, e qualquer pessoa que aja de forma minimamente normal passa a ser tratada como uma ameaça ontológica às fantasias deles de domínio, controle, manipulação, luxo e lazer, sendo empurrada para fora
    • O que você precisa saber sobre a Meta já basta pelo fato de ela ter contribuído para o genocídio em Mianmar. É trágico que trabalhar em empresas ligadas à defesa muitas vezes seja visto com desprezo, enquanto trabalhar na Meta em geral seja tratado como algo neutro. Isso mesmo quando o impacto negativo da segunda pode ser esmagadoramente maior que o da primeira
      E isso sem nem falar do Instagram
      No fim, parece que eles simplesmente pagam dinheiro demais e empregam gente demais do setor, o que reduz as críticas. Todos nós temos um amigo que trabalhou na Meta ou talvez até tenhamos nos candidatado alguma vez. Já alguém que tenha passado pela Anduril quase ninguém conhece
    • Se alguma dessas pessoas estiver procurando um novo emprego, o lugar onde você trabalha provavelmente também vai correr para colocá-las no loop de entrevistas
  • Sem querer minimizar, mas isso não era tão comum assim, já que ao menos exigia que o usuário baixasse o app Onavo
    O que me vem mais à cabeça são dois tipos de webview no iOS que podem ser usados e não foram descontinuados: WKWebView e SFSafariViewController. Os dois têm usos pretendidos bem diferentes
    Ao tocar em um link no app do Facebook, ele deveria usar SFSafariViewController. Ele é privado porque o código do app não consegue ver o que acontece lá dentro, compartilha cookies com o Safari e foi literalmente feito para “carregar conteúdo web externo dentro do contexto deste app”
    Mas o FB ainda usa WKWebView. Com ele, dá para injetar JS arbitrário na página que você quiser e rastrear tudo: navegação, recursos carregados etc. Depois deste texto e de outras revelações, dá medo imaginar o que o FB faz com esse recurso. Há uma boa chance de estarem rastreando até em qual pixel o usuário toca em sites externos. Pensar que talvez rastreiem todos os nomes de usuário e senhas digitados na webview interna parece paranoia, mas tecnicamente isso é possível. E dá mesmo para acreditar que eles não fariam isso?

    • Eles de fato injetam JS. Já tive no passado um problema em que isso quebrava uma chamada JS específica no preenchimento automático de pagamento
      https://x.com/jameshartig/status/1534886418266431488
    • Eu não sabia que WKWebView dava tanto poder assim ao app. Existe alguma forma de o usuário descobrir se, ao abrir uma página, ela está em WKWebView ou SFSafariViewController? Não uso FB, mas uso webviews de outros apps, e preferia que eles não pudessem fazer esse tipo de coisa
    • Sobre dizer que isso era incomum porque exigia instalar o app Onavo, segundo o AndroidRank houve 10 milhões de instalações no Android
      O que ainda não sabemos é em que porcentagem dessas instalações o tráfego dos concorrentes do FB passou por ataque MITM
      https://www.androidrank.org/application/onavo_protect_from_f...
    • Veja este texto: https://krausefx.com/blog/ios-privacy-instagram-and-facebook...
    • Não tenho Instagram, mas uso Facebook, e quando as pessoas enviam links de vídeos do Instagram pelo Messenger, não dá para ver dentro do app a menos que você faça login, ou na prática crie uma conta. Só dá para abrir por fora, no Safari
  • Não sei bem por quê, mas o Facebook é a única empresa de tecnologia que simplesmente não consigo ver com bons olhos. Google, Microsoft, Apple, Nvidia, AMD, Intel etc. têm coisas de que gosto e de que não gosto; Facebook eu só não gosto
    Fechei minha conta do Facebook uns 10 ou 11 anos atrás e coloquei um filtro para tirar o Facebook dos resultados de busca, e isso funciona. Quase não vejo nada relacionado ao Facebook nem no feed do Google Notícias. Ainda uso o WhatsApp, porém, porque ele é o maior app de mensagens na Ásia fora da China

    • Acho que o motivo é uma mistura de várias coisas. Desde casos como o deste artigo até pixels de rastreamento, os chamados perfis fantasma e a postura de enfrentar qualquer coisa que atrapalhe o rastreamento, há um longo histórico de enfraquecimento da privacidade para aumentar lucro. Das empresas que você listou, só o Google se aproxima um pouco, mas nem tanto assim
      Além disso, há irresponsabilidade quanto ao efeito do algoritmo em amplificar discurso de ódio. As outras empresas não têm problemas nessa escala
      O marketing também é desonesto. Em praticamente toda propaganda do Quest e anúncio de recurso, usam visualizações conceituais para enganar sobre o que é possível fazer. O Mark também recorre muito a linguagem dupla ao tratar dos problemas. Isso não é exclusivo da Meta, mas, em comparação com as outras empresas listadas, ela leva a publicidade enganosa ao limite
      Neste ciclo de IA, a popularidade da Meta voltou a subir graças aos pesos abertos e aos modelos que não são open source, e o Mark também tenta recriar a própria imagem com a ofensiva recente de relações públicas
      Ainda assim, entre as empresas listadas, a Meta é a única que me parece culturalmente sem um núcleo moral no trabalho. Cultura vem de cima, e Zuckerberg e Thiel incutiram na forma de operar da Meta uma cultura de que “o sucesso é tudo”
      As outras empresas certamente também são capitalistas, mas ao menos têm algum senso de responsabilidade pelo que produzem
    • Continuar usando o WhatsApp contribui para o monopólio da Meta. O monopólio do WhatsApp está crescendo, e eles já começaram até a copiar descaradamente o Telegram, que é concorrente
      Se eu mesmo estou fortalecendo o outro lado, então me opor publicamente não tem efeito nenhum
    • Como o nome da empresa agora é Meta, talvez esse também seja um motivo para você não ver tantas notícias sobre Facebook
  • A frase “na atual ação coletiva contra a Meta, os documentos judiciais incluem a alegação de que a empresa violou o Wiretap Act” é imprecisa
    Isto não é uma ação por escuta. Todos os pedidos são por violação do Sherman Act, ou seja, antitruste. Os advogados dos autores apenas encontraram por acaso, durante a fase de produção de provas, evidências de que o Facebook pode ter violado o Wiretap Act. Não há pedido relacionado a escuta; é um caso antitruste

    • Isso também não violaria a DMCA? Afinal, envolve contornar um sistema criptografado
      Fico confuso e curioso se a DMCA não é forte o bastante para algo nessa escala, se é uma questão de legitimidade ativa ou de danos comprováveis, ou se os autores simplesmente esqueceram disso
  • Um parente meu quase entrou uma vez em uma pesquisa de mercado que era essencialmente semelhante a isso. Funcionava redirecionando todo o tráfego de internet do celular por uma VPN e proxy controlados pela empresa de pesquisa de mercado, além de instalar um certificado
    Ele teria recebido uma pequena compensação e teria concordado com a instalação. Não me lembro de a empresa ter enganado explicitamente sobre o que era
    Ainda assim, embora eu em geral não goste de políticas excessivamente paternalistas, questiono o quanto faz sentido o consentimento de alguém com relativamente pouco conhecimento técnico para esse tipo de coisa. Não foi enganação, mas também não explicaram de forma realmente clara e concreta o que estava acontecendo para quem não entendia do assunto

    • O fato de algumas empresas de pesquisa de mercado fazerem divulgação suficiente não significa de forma alguma que a Onavo fizesse o mesmo. A Onavo não se apresentava aos usuários como uma “empresa de pesquisa de mercado”; parecia mais um app gratuito de utilidade para classificar o uso de dados da internet
  • Ler isto me faz pensar que o Facebook agora tem um departamento que é basicamente uma organização de fachada da NSA

    • As pessoas parecem esquecer que a pesquisa que deu origem ao Google também recebeu, no começo, financiamento da NSA e da CIA
      https://qz.com/1145669/googles-true-origin-partly-lies-in-ci...
      Agora os carros já vêm com serviços do Google e Android embutidos no sistema de infotainment, e não há como tirar isso. O que poderia dar errado quando uma empresa de publicidade consegue ver para onde você vai e quem está no carro com você?
    • Na época dos vazamentos do Prism, quase todas as grandes empresas de tecnologia cooperaram
    • Ou talvez seja uma organização de fachada da Unidade 8200. Já que estamos falando do Facebook Israel
  • Ooooh, SSLbump
    Imagino que já deva existir jurisprudência tratando como crime farejar tráfego de rede do lado do cliente
    Provavelmente foi em algum dos vários casos envolvendo escuta de informações bancárias

    • O Computer Fraud and Abuse Act não cobre isso?
  • É por isso que, antes de enviar informações nocivas pela internet, servidor e cliente deveriam usar mTLS, trocando certificados dos dois lados. Mas na prática, nãããão

    • Como o mTLS teria ajudado aqui?
    • Dá para fazer certificate pinning
  • É lamentável, mas não surpreende. É bem provável que agentes maliciosos como a Meta já tenham inserido vários dark patterns
    Por exemplo, dá para imaginar riscos de vazamento por dados de sensores em que se monitora informações como acelerômetro e giroscópio para inferir conteúdo de áudio. Se os dados coletados forem retransmitidos discretamente para fora e processados, pode-se reconstruir informações sensíveis sem acessar diretamente o microfone do aparelho
    Não seria nada estranho se eles fossem capazes de fazer isso
    É bem provável que a Meta e outras empresas nocivas, assim como órgãos governamentais, estejam usando técnicas de escuta muito mais numerosas, piores e mais simples no mundo real