Uma visão holística da segurança na Internet

Por Henry Birge-Lee, Liang Wang, Grace Cimaszewski, Jennifer Rexford e Prateek Mittal

Em 3 de fevereiro de 2022, os invasores lançaram um ataque altamente eficaz à exchange de criptomoedas sul-coreana KLAYswap. Discutimos os detalhes deste ataque em uma postagem anterior no blog”Atacantes exploram falha fundamental na segurança cibernética para roubar US$ 2 milhões em criptomoeda. Nesse artigo, no entanto, apenas arranhamos a superfície de possíveis contramedidas que podem impedir esses ataques. Neste novo artigo, discutiremos como proteger o ecossistema da rede desses ataques. Esses ataques são realizados pela rede Composto por várias explorações em diferentes camadas da pilha. Referimo-nos a esses ataques como “ataques de camada cruzada” e fornecemos nossa perspectiva de por que eles são tão eficazes. Além disso, propomos uma estratégia de defesa prática, que chamamos de “Segurança de camada cruzada”.

Conforme discutimos abaixo, a segurança entre camadas envolve tecnologias de segurança em diferentes camadas da pilha de rede trabalhando em conjunto para se defender contra vulnerabilidades que são difíceis de detectar em apenas uma única camada.

Em um nível alto, o ataque de um adversário afeta muitas camadas da pilha de rede:

  • este Camada de rede Responsável por fornecer acessibilidade entre hosts na Internet.A primeira parte do ataque de um invasor envolve atingir a camada de rede Ataques do Border Gateway Protocol (BGP) Manipular rotas para sequestrar o tráfego para as vítimas.
  • este camada de sessão Responsável pela comunicação segura de ponta a ponta na rede.Para atacar a camada de sessão, o adversário Use-o para atacar a camada de rede Obtenha um certificado digital para o domínio da vítima de uma autoridade de certificação (CA) confiável. Com este certificado digital, o invasor estabeleceu uma sessão TLS criptografada e segura com o usuário KLAYswap.
  • este camada de aplicação Responsável por interpretar e processar os dados enviados pela rede. Os invasores usaram sessões TLS sequestradas com clientes KLAYswap para fornecer código Javascript malicioso que comprometeu o aplicativo da web KLAYswap e fez com que os usuários transferissem fundos para os invasores sem saber.

A dificuldade em se proteger totalmente contra essas vulnerabilidades entre camadas é que elas exploram as interações entre as diferentes camadas envolvidas: vulnerabilidades em sistemas de roteamento podem ser usadas para explorar pontos fracos na PKI, mesmo no ecossistema de desenvolvimento web. Participou deste ataque devido à forma como o javascript é carregado. A natureza de camada cruzada dessas vulnerabilidades geralmente leva os desenvolvedores que trabalham em cada camada a ver a vulnerabilidade como um problema com as outras camadas.

Várias tentativas foram feitas para proteger a Web desses ataques na camada HTTP.Curiosamente, essas técnicas muitas vezes acabam mortas na água (como Fixação HTTP e Certificado de validação estendida). Isso ocorre porque a camada HTTP sozinha não possui as informações de roteamento necessárias para detectar adequadamente esses ataques e só pode contar com as informações disponíveis para o aplicativo do usuário final. Isso pode fazer com que as defesas somente HTTP bloqueiem conexões quando ocorrem eventos benignos, como quando um domínio opta por migrar para um novo provedor de hospedagem ou alterar sua configuração de certificado, pois eles são muito semelhantes aos ataques de roteamento da camada HTTP.

Devido à natureza de camada cruzada dessas vulnerabilidades, precisamos de uma mentalidade diferente para abordar o problema: As pessoas em todos os níveis precisam implantar totalmente qualquer solução de segurança que seja prática nesse nível. Como explicaremos abaixo, não há bala de prata que possa ser implantada rapidamente em qualquer camada; em vez disso, nossa melhor esperança é obter melhorias de segurança mais modestas (mas mais fáceis de implantar) em todas as camadas envolvidas. Trabalhar com uma atitude de “outra camada resolverá o problema” apenas perpetuará essas vulnerabilidades.

Aqui estão algumas expectativas de curto e longo prazo ideais para cada camada da pilha envolvida nesses ataques. Embora, em teoria, qualquer camada que implemente uma dessas melhorias de segurança de “longo prazo” possa reduzir significativamente a superfície de ataque, essas tecnologias ainda não veem o tipo de implantação que precisamos confiar nelas no curto prazo. Por outro lado, todas as tecnologias na lista de curto prazo alcançaram até certo ponto a implantação em nível de produção/no mundo real, e os membros dessas comunidades podem começar a usá-las hoje sem muito esforço.

mudanças de curto prazo Objetivos de longo prazo
Aplicação Web (camada de aplicação) Reduza o uso de código carregado de domínios externos Assine e verifique todo o código que está sendo executado
PKI/TLS (Camada de Sessão) Implantação universal Verificação de vários ângulos Utiliza tecnologia de autenticação baseada em DNSSEC protegida por criptografia que fornece segurança na presença de poderoso ataque cibernético
Roteamento (camada de rede) Assine e verifique rotas usando RPKI e siga as práticas de segurança descritas pela MANRS Implante o BGPSec para eliminar virtualmente os ataques de roteamento

Descrição detalhada:

Na camada de aplicação: Os aplicativos da Web são baixados pela Internet e são completamente descentralizados. Atualmente, não existe um mecanismo que garanta universalmente a autenticidade do código ou conteúdo contido nas aplicações web. Se um invasor pudesse obter o certificado TLS do google.com e interceptar sua conexão com o Google, seu navegador (por enquanto) não teria como saber que o que foi servido não veio realmente dos servidores do Google. No entanto, os desenvolvedores podem ter em mente que quaisquer dependências de terceiros (especialmente aquelas carregadas de domínios diferentes) podem ser vulnerabilidades de terceiros e limitar o uso de código de terceiros em seu site (ou hospedar código de terceiros localmente para reduzir superfície de ataque).Além disso, o conteúdo hospedado localmente e hospedado por terceiros está disponível por meio de Integridade do sub-recurso onde o hash criptográfico (incluído na página web) garante a integridade das dependências. Isso permite que os desenvolvedores forneçam assinaturas criptográficas para dependências em suas páginas da web. Isso reduz bastante a superfície de ataque, forçando o ataque a direcionar apenas uma única conexão ao servidor web da vítima, em vez das muitas conexões diferentes envolvidas na recuperação de diferentes dependências.

Na camada de sessão: A CA precisa estabelecer a identidade do cliente que solicita o certificado, embora tenha sido proposto o uso de DNSSEC criptografado para verificar a identidade (como dinamarqueses), o estado atual é verificar a identidade por meio da comunicação de rede com o domínio listado na solicitação de certificado. Portanto, a menos que façamos mudanças mais substanciais na forma como os certificados são emitidos, um ataque de roteamento global pode ser muito eficaz contra CAs. Mas isso não significa que toda a esperança está perdida. Muitos ataques cibernéticos não são globais, mas na verdade estão limitados a partes específicas da Internet. As CAs podem mitigar esses ataques autenticando domínios de vários pontos de vista na Internet. Isso permite que alguns pontos de vantagem da CA sejam imunes a ataques e se comuniquem com proprietários de domínio legítimos.Nosso grupo em Princeton Projetado com vários pontos de vista para verificar E coopere com a maior rede do mundo PKI CA Let’s Encrypt Desenvolva a primeira implantação de produção dentro. As CAs podem e devem usar vários pontos de vantagem para validar domínios, protegê-los contra ataques de rede local e garantir que tenham uma visão global do roteamento.

Na camada de rede: No roteamento, é difícil se defender contra todos os ataques BGP. Requer uma operação de chave pública cara para cada atualização de BGP usando um protocolo chamado BGPsec que não é suportado pelos roteadores atuais. Recentemente, no entanto, houve um aumento significativo na adoção de uma tecnologia chamada Resource Public Key Infrastructure (RPKI), que protege contra ataques globais construindo um banco de dados criptografado de quais redes na Internet controlam quais endereços IP são bloqueados. É importante ressaltar que, quando configurado corretamente, o RPKI também especifica o tamanho dos prefixos IP que devem ser anunciados para evitar ataques de subprefixos globais e eficientes. Em um ataque de subprefixo, o invasor anuncia um prefixo IP mais longo e específico do que a vítima e se beneficia da rota de correspondência de prefixo mais longa para tornar seu anúncio preferido pela grande maioria da Internet. RPKI é totalmente compatível com o hardware atual do roteador. A única desvantagem é que o RPKI ainda pode ser contornado por alguns ataques locais de BGP, onde o invasor não afirma ter o endereço IP da vítima passando por uma verificação de banco de dados, mas simplesmente afirma ser o provedor de internet da vítima. O RPKI atualmente não protege um mapa completo de quais redes estão conectadas a quais outras redes. Isso deixa uma janela para alguns tipos de ataques BGP que vemos na natureza. No entanto, o impacto desses ataques é significativamente reduzido e geralmente afeta apenas uma parte da Internet.além do mais Projeto MANRS Fornece recomendações de práticas recomendadas, incluindo RPKIs que ajudam a prevenir e mitigar o seqüestro de BGP.

Defenda-se contra ataques entre camadas com segurança entre camadas

Olhando para essas camadas, vemos uma tendência comum: em cada camada, são propostas técnicas de segurança que podem impedir ataques como o ataque KLAYswap. No entanto, todas essas tecnologias enfrentam desafios de implantação. Além disso, existem muitas tecnologias mais modestas que são amplamente implantadas na prática hoje. No entanto, um adversário adaptável pode contornar cada uma dessas técnicas implantadas individualmente. Por exemplo, o RPKI pode ser contornado por ataques locais, a verificação multi-ângulo pode ser contornada por ataques globais e assim por diante. No entanto, se observarmos os benefícios fornecidos por todas essas tecnologias implantadas juntas em diferentes camadas, as coisas parecem mais promissoras. A tabela a seguir resume isso:

Tecnologia de segurança/camada Bom para detectar ataques de roteamento que afetam toda a Internet Bom para detectar ataques de roteamento que afetam partes da Internet Limite o número de alvos potenciais para ataques de roteamento
RPKI na camada de rede Sim Não faça Não faça
Verificação de vários ângulos na camada de sessão Não faça Sim Não faça
Integridade de sub-recursos e conteúdo hospedado localmente na camada do aplicativo Não faça Não faça Sim

Essa sinergia de tecnologias de segurança implantadas em diferentes camadas é o que chamamos de segurança entre camadas. RPKI sozinho pode ser contornado por adversários inteligentes (Use cada vez mais técnicas de ataque que vemos na natureza). No entanto, os ataques que burlam o RPKI tendem a ser locais (ou seja, não afetam toda a Internet). Isso é combinado com a verificação multi-vantagem que é melhor para capturar ataques locais. Além disso, como mesmo essas duas tecnologias trabalhando juntas não podem eliminar completamente a superfície de ataque, as melhorias na camada da Web que reduzem a dependência do código carregado de domínios externos podem ajudar a reduzir ainda mais a superfície de ataque. No final das contas, todo o ecossistema de rede pode se beneficiar muito com a implantação de cada camada de tecnologias de segurança que aproveitam as informações e ferramentas que são proprietárias dessa camada. Além disso, ao trabalhar em conjunto, essas tecnologias podem fazer algo que não podem fazer individualmente: evitar ataques entre camadas.

Os ataques entre camadas são muito eficazes porque nenhuma camada tem informações suficientes sobre o ataque para interrompê-lo completamente. Espera-se que cada camada se defenda contra uma parte diferente da superfície de ataque. Se os desenvolvedores dessas diferentes comunidades souberem que o tipo de segurança nas camadas em que estão na pilha é realista e esperado, veremos algumas melhorias significativas.

Embora o resultado ideal seja implantar tecnologias de segurança que defendam totalmente contra ataques entre camadas, ainda precisamos ver a adoção em massa de tais tecnologias. Ao mesmo tempo, se continuarmos a focar a segurança em uma única camada, evitando ataques entre camadas que levarão mais tempo para se defender. Mudar nossa maneira de pensar e entender os pontos fortes e fracos de cada camada nos permite nos defender contra esses ataques mais rapidamente, aumentando o uso de técnicas sinérgicas em diferentes camadas que já estão sendo usadas em implantações do mundo real.

Leave a Reply

Your email address will not be published.