1 pontos por GN⁺ 2025-03-19 | 1 comentários | Compartilhar no WhatsApp

Bloqueando anúncios do YouTube na Apple TV

Visão geral

Foi possível colocar um proxy man-in-the-middle entre a Apple TV e o mundo externo para descriptografar o tráfego HTTPS. Isso permitiu ler os dados ProtocolBuffer que o Google usa para inserir anúncios no YouTube. Como decodificar ProtocolBuffer em tempo real exige muito da CPU, foi possível remover os anúncios ao descobrir uma falha no formato ProtocolBuffer.

Objetivo

Construir um roteador com criptografia robusta usando FreeBSD e pfSense, e bloquear completamente os anúncios do YouTube em toda a rede na Apple TV e no iPhone explorando uma falha no formato Google ProtocolBuffer.

Necessidade de bloquear anúncios e rastreamento comportamental

  • Privacidade: a atividade online dos usuários está sendo monitorada, e isso é uma informação extremamente valiosa para os anunciantes.
  • Largura de banda: 25% a 40% do tráfego de rede é composto por anúncios e scripts de rastreamento.
  • Clickbait: o clickbait pode atrair usuários e levá-los a sites maliciosos.
  • Cryptojacking: alguns sites tentam minerar criptomoedas usando o computador do usuário.

Hardware de roteador necessário

  • Mini PC com conjunto de instruções AES-NI (ex.: J4125)
  • Vários gigabytes de RAM DDR4 (ex.: 32 GiB)
  • Unidade SSD mSATA adequada (ex.: 128 GiB)
  • Unidade USB para gravar o pfSense

Instalação e configuração do pfSense

  • Gravar o pfSense em uma unidade USB para instalação.
  • Ativar as instruções de criptografia AES-NI.
  • Ativar disco RAM para uso em /var e /tmp.
  • Configurar bloqueio de anúncios com pfBlockerNG.

Separação da LAN da rede

  • Criar uma rede de hardware separada para dispositivos não confiáveis.
  • Interceptar solicitações DNS pelo pfSense e bloquear também requisições para servidores DNS codificados no dispositivo.

Enganando o algoritmo de anúncios do YouTube

  • Pesquisar formas de limitar os anúncios do YouTube na Apple TV.
  • Roteamento seletivo do tráfego da Apple TV por meio de VPN.

Descriptografando o tráfego HTTPS

  • Instalar o MITMProxy para interceptar e analisar o tráfego HTTPS.
  • Fazer engenharia reversa das mensagens Protobuf para remover anúncios.

Resumo

  • Experimento para bloquear anúncios por meio do YouTube Premium.
  • Considerações sobre DMCA e outras questões legais.
  • Análise da aplicação bem-sucedida da tecnologia de bloqueio de anúncios.

1 comentários

 
GN⁺ 2025-03-19
Comentários do Hacker News
  • É possível remover os anúncios ao encontrar uma falha no formato Protobuf
    • Supostamente, o número do campo foi alterado para um número grande não utilizado
    • Varre os bytes do Protobuf para encontrar a assinatura da URL do anúncio, localiza a tag do campo e altera a chave do campo
    • Isso não é uma falha, e sim um comportamento intencional
    • Se você se esforçar para encontrar a tag, pode ler o comprimento ao lado dela e pular os bytes
    • É preciso copiar o buffer ou mover os bytes, mas o objeto de bytes retornado pela API do mitmproxy é imutável
    • Um pequeno proxy em C++/Go pode fazer a mesma coisa com menos overhead
    • Rotear tudo por um proxy degrada o desempenho
    • Em vez de pfSense, um servidor Linux simples com um conjunto de regras do iptables é mais eficiente
    • É possível escrever um arquivo .proto com campos proto obtidos por engenharia reversa para gerar código e alternar flags
    • Ignorar tags de campos desconhecidos é um recurso importante do Protobuf
  • Bloqueei os anúncios do YouTube, mas assinei o YouTube Premium porque quero apoiar os criadores de conteúdo
    • Fico me perguntando se o YouTube Premium realmente apoia os criadores
  • A conta do YouTube da minha namorada não mostra anúncios
    • Fico curioso sobre qual flag interna foi definida para desativar os anúncios
  • Foi possível descriptografar o tráfego HTTPS colocando um proxy man-in-the-middle entre a Apple TV e a internet
    • Fiquei surpreso ao saber que dá para adicionar uma CA ao repositório de certificados da Apple TV
    • Obrigado pela explicação detalhada
  • É triste ter que se esforçar tanto para realmente ter posse do hardware ou do software
  • Tentei algumas vezes na Apple TV, mas não consegui
    • Parece que o app do YouTube implementou certificate pinning
  • Gosto de bloquear serviços online em toda a rede
    • Além de bloquear anúncios, queria que houvesse mais formas de bloquear rolagem infinita
    • Quero ver as postagens/stories das pessoas que sigo no Instagram, mas não quero receber recomendações de vídeos que disputam minha atenção
  • Eu nem sabia que havia anúncios no YouTube
    • A experiência na Apple TV é muito pior do que em um navegador web comum
    • A Apple trava o hardware, o que acaba beneficiando mais a receita de anúncios do YouTube
  • Se a situação exige descriptografar e fazer engenharia reversa do protocolo, talvez seja melhor simplesmente não usar esses dispositivos
    • Talvez seja melhor sair dessa economia e procurar outras formas de se divertir