Home Artigos técnicos Como proteger seu serviço OTT de um ataque de enchimento de credenciais
Applications

Como proteger seu serviço OTT de um ataque de enchimento de credenciais

About The Author

Outline

A ameaça representada por ataques de preenchimento de credenciais em serviços de streaming OTT tornou-se clara recentemente. Dentro de algumas horas após o lançamento de um serviço de streaming popular, as contas de usuário foram hackeadas e oferecidas para venda com desconto. Essa violação se transformou em um desafio de RP, à medida que milhares de assinantes se voltaram para as redes sociais para desabafar suas frustrações sobre o acesso bloqueado à conta e problemas de acessibilidade de serviços.

Como essa experiência ilustra, os ataques de preenchimento de credenciais são um desafio emergente para as equipes de segurança OTT. As assinaturas de serviços de streaming, impulsionadas por testes gratuitos, corte de cabos e conteúdo exclusivo, geraram grandes coleções de informações do usuário, tornando os serviços OTT cada vez mais atraentes alvos para roubo de dados. Revender o acesso a contas violadas não é o único motivo para hackers. Eles também podem raspar valiosos detalhes privados de contas de usuário violadas, como endereços, histórico de telefone e navegação e dados de cartão de crédito. O hacker pode então vender essas informações pela dark web ou causar mais danos por meio de engenharia social e ataques de phishing.

A zona de dano de um ataque de preenchimento de credenciais vai muito além do impactos na privacidade e finanças de um usuário. Os ataques de preenchimento de credenciais usam botnets capazes de automatizar milhões de solicitações de login por hora, causando estragos na infraestrutura de aplicativos. Mesmo com uma baixa taxa de sucesso, um volume tão alto de solicitações pode aumentar o custo de operação da plataforma de streaming. Ciclos extras de CPU, memória e taxas de entrada/saída de dados aumentam ao longo do tempo. Dado o custo relativamente alto de gerenciar backends de aplicativos, especialmente na nuvem, as solicitações de login, que dependem muito dos sistemas de back-end, são o ataque mais caro. Em última análise, um alto nível de atividade nefasta não verificada degrada o serviço para usuários legítimos que tentam autenticar, navegar e transmitir conteúdo.

Como um serviço de streaming pode neutralizar essa ameaça crescente? este artigo técnico analisará o que é necessário para gerenciar bots no mundo de hoje e o que é necessário para um serviço de streaming para minimizar o impactos – e reduzir a probabilidade – de um ataque de preenchimento de credenciais.

A anatomia de um ataque de preenchimento de credenciais

Os cibercriminosos podem iniciar um ataque de preenchimento de credenciais obtendo credenciais roubadas por vários meios, incluindo a descoberta de bancos de dados mal configurados, ataques de phishing, infetando os dispositivos dos usuários com malware ou comprando credenciais invadidas na dark web. Em seguida, os invasores roteiam inúmeras solicitações de login por meio de servidores proxy distribuídos para ocultar a origem do ataque e amplificar as solicitações. Os criminosos podem comprar acesso a serviços de proxy, a preços acessíveis por hora, de pastores de bots em fóruns da dark web. Por fim, os invasores criam scripts para automatizar solicitações de autenticação usando a lista de credenciais violadas, geralmente preying em senhas reutilizadas ou simplistas, para obter acesso aos serviços. Os invasores também podem comprar kits de ferramentas na dark web, como solucionadores CAPTCHA, emuladores de navegador ou scripts de falsificação de impressões digitais, para ajudar a neutralizar as defesas existentes.

Defesa contra ataques de preenchimento de credenciais

Parar tais ataques requer a capacidade de distinguir bots de humanos. Infelizmente, os operadores de bot encontram continuamente novas maneiras de contornar os métodos de deteção de bots. A última geração de bots é quase indistinguível dos humanos.

À medida que os bots se tornaram mais sofisticados, estratégias simples de mitigação que podem ter funcionado no passado, como bloquear a solicitação do bot, o endereço IP ou o user-agent (UA), não são mais suficientes. Atualmente, os invasores provavelmente usam um dos serviços de proxy IP rotativos baratos e abundantes em vez de atacar IPs estáticos, o que os ajuda a contornar a limitação de taxa e a proteção de lista de controle de acesso simples (ACL). Além disso, o bloqueio não é aconselhável porque serve como um mecanismo de feedback útil para operadores de bots, dizendo-lhes para evoluir sua automação para derrotar o método de deteção.

As técnicas de deteção de bots tiveram que se tornar mais sofisticadas para combinar com a crescente sofisticação dos ataques de bots. As técnicas de deteção de bots de última geração de hoje envolvem três formas de análise tanto no lado do servidor quanto no lado do cliente. São eles:

  1. Solicitar impressão digital
  2. Impressão digital do cliente
  3. Impressão digital comportamental

Você precisará de uma combinação de todos os três para derrotar ataques sofisticados de preenchimento de credenciais.

Método de deteção de ataque 1: Solicitar impressão digital

A impressão digital da solicitação é geralmente feita no lado do servidor assim que o servidor recebe todas as informações solicitadas do cliente. Uma solicitação de cliente normalmente consiste em uma combinação de uma rede (IP), conexão, criptografia e outros metadados HTTP analisados e usados para gerar uma impressão digital de solicitação. Esta impressão digital inclui detalhes essenciais, como endereço IP, handshake TCP, handshake TLS (ou seja, protocolo TLS, cifras, etc.) e extensões), cabeçalhos HTTP e ordens de cabeçalho, e outras informações derivadas dos metadados, como o ASN e o tipo de dispositivo. Quando colocadas juntas, essas caraterísticas de solicitação podem gerar uma assinatura única ou impressão digital para cada cliente.

Figura 1. Uma pequena amostra de caraterísticas de solicitação que podem trabalhar em conjunto para criar uma impressão digital de solicitação única.

A partir da impressão digital, podemos começar a procurar anomalias. Por exemplo, se uma solicitação afirma ser de uma UA do Chrome, ela inclui cabeçalhos na ordem esperada nessa versão do navegador Chrome, conforme indicado no agente do usuário? Ele usa os protocolos HTTP e TLS típicos? A mensagem ClientHello contém o protocolo e cifra com a ordem preferida típica desta versão do Chrome? Além de analisar os metadados da solicitação, o servidor também pode realizar uma análise de comportamento limitada, como o número de solicitações e sua frequência e se há um padrão de navegação que pode ajudar a determinar se as solicitações são automatizadas.

Solicitar impressão digital é um primeiro passo necessário, mas é insuficiente por conta própria.

Método de deteção de ataque 2: Impressão digital do cliente

O desafio com a impressão digital de solicitações é que os invasores agora podem falsificar impressões digitais de solicitações que, na maioria das vezes, parecerão 100% idênticas ao cliente real. Se os atacantes cometerem um erro, a impressão digital de pedidos identificará esses erros, mas você não pode contar com isso acontecendo regularmente.

Fundamentalmente, a impressão digital de pedidos só conta metade da história. O servidor precisa ver o que está acontecendo no lado do cliente e gerar uma impressão digital do cliente para complementar a impressão digital da solicitação para obter mais informações. Isso dá aos sistemas de deteção de bots uma imagem mais completa do cliente e torna mais difícil para os invasores evitar a deteção.

Um servidor de impressão digital do cliente pode injetar um pequeno pedaço de JavaScript (JS) para ser executado no lado do cliente reescrevendo o HTML em resposta à página solicitada. Alternativamente, o servidor pode injetar uma tag de script que aponte para um JS remoto que o cliente pode baixar ao carregar a página de login. O JS pode realizar verificações no lado do cliente e coletar informações do dispositivo, como se JS ou cookies estão ativados, e examina o sistema operacional, tela, renderizador, navegador, mecanismo JS, e mais para gerar uma impressão digital completa do cliente.

Espera-se que um navegador normal tenha suporte a cookies e seja JS ativado (para que eles possam acessar e usar adequadamente seus serviços de streaming); não tê-lo ativado pode causar suspeita. A impressão digital do cliente pode identificar outros elementos suspeitos não típicos do dispositivo anunciado que podem indicar um potencial cliente falso, como um navegador Safari UA com Blink (mecanismo de navegador) ou Chrome com um mecanismo SpiderMonkey JS.

Esses detalhes são coletados e podem ser enviados para um servidor remoto como API exige análise adicional ou ser criptografados e definidos como um cookie ou cabeçalho para ser enviado ao servidor para análise em solicitações subsequentes de clientes. As técnicas acima para coletar e gerar impressões digitais de clientes também podem ser adotadas para aplicativos de streaming que não sejam do navegador, como aplicativos para iPhone/Android, Roku ou Samsung TVs através de diferentes SDKs.

Figura 2. Uma pequena amostra de caraterísticas que podem trabalhar em conjunto para criar uma impressão digital única do cliente.

Embora a combinação de solicitação e impressão digital do cliente tenha sido eficaz com bots de primeira geração, bots mais avançados são baseados nos mesmos clientes que humanos, incluindo Chrome, Firefox e Safari. Eles também podem empregar navegadores sem cabeça, como Headless Chrome. Ao contrário de bots básicos que podem não ter funcionalidade, como suporte para JavaScript e cookies, bots mais avançados podem utilizar o navegador adequado e o mecanismo JS para executar solicitações de handshake TCP e TLS devidamente formadas, consistentes com o tipo de dispositivo.

Ataques baixos e lentos podem ser realizados distribuindo solicitações por meio de milhares de endereços IP, anulando qualquer método de deteção baseado em taxa. Para complicar ainda mais o problema, navegadores reais de dispositivos de usuários reais podem ser sequestrados e usados para atividades de preenchimento de credenciais, e esses ataques são quase certos de serem perdidos apenas com essas abordagens.

Método de deteção de ataque 3: Impressão digital comportamental

Para realmente superar o preenchimento de credenciais, você deve adicionar impressões digitais comportamentais inteligentes. Quando os usuários interagem com um serviço de streaming, eles não estão apenas fazendo solicitações de conteúdo, eles estão movendo, clicando, tocando e navegando pelo aplicativo. A impressão digital comportamental estuda essas ações coletando dados de telemetria do usuário no lado do cliente, geralmente via JS. Estes podem incluir padrões de movimento do mouse, pressionamentos de teclas, o tempo de uma ação, ou até mesmo tocar em sensores de dispositivo, como acelerômetros de telefone ou giroscópios para medir o padrão de movimento e o posicionamento de um usuário.

Com base nos dados recolhidos, as impressões digitais comportamentais são geradas e enviadas para análise em tempo real ou offline. O usuário está exibindo um padrão aleatório ou não orgânico? O mouse está se movendo em padrões lineares, ou a velocidade de rolagem é mais rápida do que um ser humano poderia alcançar? O telefone está sempre em um ângulo de grau fixo ao longo de toda a sessão de navegação? O número de solicitações de login por segundo é humanamente possível?

Este é o campo de batalha de cientistas de dados e pesquisadores que devem empregar técnicas de aprendizado de máquina para analisar continuamente os dados e obter inteligência sobre se uma solicitação é automatizada. Isso se deve em parte ao crescimento exponencial da combinação de solicitações, dispositivos e atributos comportamentais reunidos. Como os bots melhoraram a sua capacidade de imitar o comportamento humano através de sequestro comportamental, confiar em caraterísticas comportamentais básicas, como movimentos de mouse, não é mais adequado e pode aumentar a taxa de falsos positivos e impactar a experiência de usuários reais.

Esses tipos de bots representam o desafio mais difícil para mitigar o preenchimento de credenciais. Parar os bots mais sofisticados requer mais dados, como o comportamento de navegação do cliente ao longo da sessão, para analisar a intenção do cliente e assim identificar se a solicitação é maliciosa. Por exemplo, é um comportamento normal quando um usuário visita a página de login de um serviço de streaming diretamente sem passar pela página inicial? É normal que um usuário navegue imediatamente para a página da conta depois de fazer login no serviço de streaming e não execute qualquer outra ação? Esses pontos de dados podem identificar com precisão a intenção dos bots. A interação do usuário com o serviço de streaming ao longo de toda a sessão e outros dados comportamentais pode produzir uma impressão digital mais rica e completa com uma menor chance de falsos positivos.

Gerenciando bots

Depois de detetar com sucesso um bot tentando fazer uma solicitação de login, qual é a resposta correta? É para bloquear o bot e esperar que ele vá embora? Na maioria dos casos, essa é a ação errada. Suponha que você responda com um erro 4xx, como uma resposta não autorizada 401. Os invasores conhecem as técnicas inadequadas atuais e atualizam suas ferramentas de automação para superar seu mecanismo de deteção por meio de tentativa e erro. Nesse caso, você ajudou inadvertidamente os invasores fornecendo um loop de feedback para alertá-los para evoluir seu método.

Embora seja inevitável que os operadores de bots sofisticados detetem que estão a ser mitigados e evoluam os seus métodos, existem algumas boas práticas para evitar ou atrasar estes esforços. Quando detetado, em vez de bloquear as solicitações do bot, o servidor pode enviar um código de resposta padrão esperado quando uma tentativa de login for bem-sucedida, como 200 OK, juntamente com uma resposta estática da placa de identificação de caixa que não exponha dados confidenciais.

Os operadores de bots são mais propensos do que não a assumir que uma resposta bem-sucedida indica que seu método atual é bem-sucedido. E que as credenciais roubadas são úteis, mesmo que não seja o caso, mantendo o atacante no escuro. Outra opção é tarpit o pedido do bot não fornecendo nenhuma resposta, deixando o pedido do bot suspenso até que ele se limite. Isso pode ser feito se você usar uma grande plataforma distribuída globalmente com muita capacidade de servidor, como uma rede de entrega de conteúdo (CDN). Esses métodos de desinformação são provavelmente mais eficazes do que simplesmente bloquear as solicitações do bot.

Outra estratégia para gerenciar bots, que tem menos impactos na experiência do usuário em caso de falso positivo, requer que um bot suspeito resolva um CAPTCHA. Somente depois de concluir o CAPTCHA o login será bem-sucedido. Isso permite que os usuários reais continuem mesmo que eles sejam mal identificados como um bot. Ele também fornece feedback valioso para ajustar seu método de deteção para reduzir falsos positivos.

Mantenha a transmissão segura

Evitar ataques de preenchimento de credenciais é uma prioridade importante para qualquer serviço de streaming OTT. À medida que esses serviços ganham popularidade, também os riscos de segurança também se fazem. Uma abordagem de várias camadas para a segurança de aplicativos e o gerenciamento de bots pode identificar com precisão até mesmo os bots mais sofisticados usados para alimentar ataques de preenchimento de credenciais e evitar que esses ataques afetem a experiência ou a reputação do cliente.

Saiba mais sobre como nossos recursos de segurança na nuvem podem proteger sua presença online contra ataques de preenchimento de credenciais, ataques DDoS e muito mais.