Home Technical Articles Como proteger o seu serviço OTT de um ataque de enchimento de credencial
Applications

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

About The Author

Outline

A ameaça representada pelos ataques de preenchimento de credenciais aos serviços de streaming OTT tornou-se clara recentemente. Dentro de algumas horas após um lançamento muito exagerado de um serviço de streaming popular, as contas de usuário foram pirateadas e oferecidas para venda com um desconto. Esta violação transformou-se num desafio de relações públicas à medida que milhares de assinantes se voltaram para as redes sociais para desabafar as suas frustrações sobre o acesso bloqueado à conta e problemas de acessibilidade ao serviço.

Como esta experiência ilustra, os ataques de preenchimento de credenciais são um desafio emergente para as equipas de segurança da OTT. As assinaturas de serviços de streaming, impulsionadas por testes gratuitos, cortes de cabos e conteúdo exclusivo, têm gerado 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 os hackers. Eles também podem raspar valiosos detalhes privados de contas de usuário violadas, como endereços, telefone e histórico de navegação e dados de cartão de crédito. O hacker pode então vender esta informação através da dark web ou causar mais danos através de engenharia social e ataques de phishing.

A zona de danos de um ataque de enchimento de credenciais vai muito além do impactos na privacidade e nas finanças de um utilizador. Os ataques de preenchimento de credenciais usam botnets capazes de automatizar milhões de pedidos de login por hora, causando estragos na infraestrutura de aplicativos. Mesmo com uma baixa taxa de sucesso, um volume tão alto de pedidos pode aumentar o custo de operar a plataforma de streaming. Ciclos extras de CPU, memória e taxas de entrada/saída de dados aumentam com o tempo. Dado o custo relativamente elevado de gerir os backends de aplicações, especialmente na nuvem, os pedidos de início de sessão, que dependem fortemente 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 utilizadores legítimos que tentam autenticar, navegar e transmitir conteúdo.

Como é que um serviço de streaming pode neutralizar esta ameaça crescente? este artigo técnico irá rever o que é necessário para gerir 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 enchimento 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 atacantes encaminham inúmeras solicitações de login através de servidores proxy distribuídos para obscurecer 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 predando 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.

Defender-se contra ataques de enchimento de credenciais

Parar esses ataques requer a capacidade de distinguir bots dos humanos. Infelizmente, os operadores de bots encontram continuamente novas formas 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), já não são suficientes. Os atacantes hoje em dia estão provavelmente a usar um dos serviços de proxy IP de rotação baratos e abundantes em vez de atacarem por IPs estáticos, o que os ajuda a contornar a limitação de taxa e a simples proteção da lista de controlo de acesso (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 evoluírem a sua automação para derrotar o método de deteção.

As técnicas de deteção de bots tiveram de se tornar mais sofisticadas para corresponder à crescente sofisticação dos ataques de bots. As técnicas de deteção de bots modernas envolvem três formas de análise, tanto no lado do servidor como no lado do cliente. São eles:

  1. Pedir fingerprinting
  2. Impressão digital do cliente
  3. Impressão digital comportamental

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

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

A impressão digital de pedidos é normalmente 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, aperto de mão de TCP, aperto de mão de TLS (ou seja, protocolo de TLS, cifras e extensões), cabeçalhos de HTTP e ordens de cabeçalho, e outras informações derivadas dos metadados, como o ASN e o tipo de dispositivo. Quando colocadas juntas, estas caraterísticas de pedido podem produzir uma assinatura única ou impressão digital para cada cliente.

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

A partir da impressão digital, podemos começar a procurar anomalias. Por exemplo, se uma solicitação afirma ser de uma Chrome UA, ela inclui cabeçalhos na ordem esperada nessa versão do navegador Chrome, conforme indicado no agente do usuário? Usa os protocolos HTTP e TLS típicos? A mensagem ClientOlá contém o protocolo e a codificação 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.

Pedir fingerprinting é um primeiro passo necessário, mas é insuficiente por si só.

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

O desafio com a impressão digital de pedidos é que os atacantes agora podem pedir impressões digitais 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 não se pode contar com isso acontecendo regularmente.

Fundamentalmente, a impressão digital de pedidos só conta metade da história. O servidor precisa de ver o que está a acontecer no lado do cliente e gerar uma impressão digital do cliente para completar a impressão digital do pedido 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. Como alternativa, 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 coleta informações do dispositivo, como se JS ou os cookies estão ativados, e examina o sistema operacional, tela, renderizador, navegador, mecanismo JS e muito mais para gerar uma impressão digital completa do cliente.

Espera-se que um navegador normal tenha suporte a cookies e esteja habilitado para JS (para que eles possam fazer login 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 (motor de navegador) ou Chrome com um motor SpiderMonkey JS.

Estes detalhes são recolhidos e podem ser enviados para um servidor remoto como a API pede para análise posterior ou ser encriptados e definidos como um cookie ou cabeçalho para serem enviados para o servidor para análise em pedidos subsequentes de clientes. As técnicas acima para recolher e gerar impressões digitais dos clientes também podem ser adotadas para aplicações de transmissão que não sejam do navegador, como aplicações 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 fosse eficaz com bots de geração anterior, 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 dos bots básicos que podem não ter funcionalidade, como suporte para JavaScript e cookies, os bots mais avançados podem utilizar o navegador adequado e o mecanismo JS para executar o aperto de mão de TCP e TLS devidamente formados e pedidos de HTTP consistentes com o tipo de dispositivo.

Ataques baixos e lentos podem ser realizados distribuindo pedidos através de milhares de endereços IP, anulando qualquer método de deteção baseado em taxas. Para complicar ainda mais o problema, navegadores reais de dispositivos de usuário reais podem ser sequestrados e usados para atividades de preenchimento de credenciais, e esses ataques quase certamente serão perdidos apenas com essas abordagens.

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

Para realmente superar o enchimento de credenciais, você deve adicionar impressões digitais comportamentais inteligentes. Quando os utilizadores interagem com um serviço de streaming, não estão apenas a fazer pedidos de conteúdo, estão a mover-se, a clicar, a tocar e a navegar pela aplicação. A impressão digital comportamental estuda estas ações através da recolha de dados de telemetria do utilizador no lado do cliente, geralmente através de JS. Estes podem incluir padrões de movimento do rato, teclas digitadas, o tempo de uma ação, ou até mesmo tocar em sensores de dispositivos, como acelerómetros de telemóvel ou giroscópios, para medir o padrão de movimento e o posicionamento de um utilizador.

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

Este é o campo de batalha de cientistas de dados e investigadores que devem empregar técnicas de aprendizagem automática para analisar continuamente os dados e obter inteligência sobre se um pedido é automatizado. Isto deve-se, em parte, ao crescimento exponencial da combinação de pedidos, dispositivos e atributos comportamentais reunidos. À medida que 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 rato, já não é adequado e pode aumentar a taxa de falsos positivos e afetar a experiência de utilizadores 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 utilizador visita a página de início de sessão de um serviço de streaming diretamente sem passar pela página inicial? É normal que um utilizador navegue imediatamente para a página da conta depois de iniciar sessão no serviço de transmissão 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 utilizador com o serviço de transmissão ao longo de toda a sessão e outros dados comportamentais pode produzir uma impressão digital mais rica e completa com uma menor probabilidade de falsos positivos.

Gerir bots

Depois de detetar com sucesso um bot a tentar fazer um pedido de início de sessão, qual é a resposta correta? É bloquear o bot e esperar que ele vá embora? Na maioria dos casos, essa é a ação errada. Suponhamos que você responde com um erro 4xx, como uma resposta 401 não autorizada. Os atacantes conhecem as técnicas inadequadas atuais e atualizam as suas ferramentas de automação para superar o seu mecanismo de deteção através de tentativa e erro. Neste caso, você inadvertidamente ajudou os atacantes fornecendo um ciclo de feedback para alertá-los para evoluírem seu método.

Embora seja inevitável que os sofisticados operadores de bots 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 e esperado quando uma tentativa de login for bem sucedida, como 200 OK, juntamente com uma resposta estática da placa de identificação 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 o 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 é fazer o tarpit do 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 distribuição de conteúdo (CDN). Esses métodos de desinformação são provavelmente mais eficazes do que simplesmente bloquear as solicitações dos bots.

Outra estratégia para o gerenciamento de bots, que tem menos impactos na experiência do usuário em caso de falso positivo, requer que um bot suspeito resolva um CAPTCHA. Só depois de completar o CAPTCHA o login será bem sucedido. Isso permite que os utilizadores reais continuem mesmo que estejam mal identificados como um bot. Também fornece feedback valioso para ajustar o método de deteção para reduzir falsos positivos.

Mantenha a transmissão segura

Prevenir ataques de preenchimento de credenciais é uma prioridade importante para qualquer serviço de streaming OTT. À medida que estes 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é os bots mais sofisticados usados para alimentar ataques de preenchimento de credenciais e impedir que esses ataques tenham impactos na experiência ou reputação do cliente.

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