A evolução do Web Application Firewall: dos firewalls aos sistemas de segurança baseados em nuvem de aprendizado de máquina

Em nosso material anterior baseado em nuvem, falamos sobre como proteger os recursos de TI em uma nuvem pública e por que os antivírus tradicionais não são adequados para esses fins. Neste post, continuaremos o tópico de segurança na nuvem e falaremos sobre a evolução do WAF e o que é melhor escolher: hardware, software ou nuvem.



O que é WAF?


Mais de 75% dos ataques de hackers são direcionados a vulnerabilidades em aplicativos e sites da Web: esses ataques geralmente são invisíveis para a infraestrutura de segurança da informação e os serviços de segurança da informação. As vulnerabilidades em aplicativos da Web carregam, por sua vez, os riscos de comprometimento e fraude de contas de usuário e dados pessoais de usuários, senhas e números de cartão de crédito. Além disso, as vulnerabilidades no site servem como um ponto de entrada para os cibercriminosos na rede corporativa.

O WAF (Web Application Firewall) é um firewall que bloqueia ataques a aplicativos da Web: injeções de SQL, scripts entre scripts, execução remota de código, força bruta e desvio de autenticação. Incluindo ataques usando vulnerabilidades de dia zero. Os firewalls de aplicativos fornecem proteção, monitorando o conteúdo das páginas da web, incluindo HTML, DHTML e CSS, e filtrando solicitações potencialmente maliciosas via HTTP / HTTPS.

Quais foram as primeiras decisões?


As primeiras tentativas de criar um firewall de aplicativo Web foram feitas no início dos anos 90. Pelo menos três engenheiros que trabalham nesta área são conhecidos. O primeiro é Gene Spafford, professor de ciência da computação na Universidade Purdue. Ele descreveu a arquitetura do firewall do aplicativo com um proxy e, em 1991, publicou-o no livro “UNIX Security in Practice” .

O segundo e o terceiro - foram os especialistas em segurança da informação William Cheswick e Marcus Ranum, da Bell Labs. Eles desenvolveram um dos primeiros protótipos de firewalls de aplicativos. A DEC estava envolvida em sua distribuição - o produto foi lançado com o nome SEAL (Secure External Access Link).

Mas o SEAL não era uma solução completa da WAF. Era um firewall de rede clássico com funcionalidade avançada - a capacidade de bloquear ataques no FTP e RSH. Por esse motivo, a primeira solução WAF hoje é considerada o produto da Perfecto Technologies (mais tarde Sanctum). Em 1999, ela introduziu o sistema AppShield. Naquela época, a Perfecto Technologies estava desenvolvendo soluções de segurança da informação para comércio eletrônico, e as lojas on-line se tornaram o público-alvo de seu novo produto. O AppShield foi capaz de analisar solicitações HTTP e bloquear ataques com base em políticas dinâmicas de segurança da informação.

Na mesma época que AppShield (em 2002), o primeiro WAF de código aberto apareceu. Eles se tornaram o ModSecurity . Foi criado para popularizar as tecnologias WAF e ainda é suportado pela comunidade de TI (aqui está seu repositório no GitHub ). O ModSecurity bloqueia ataques a aplicativos com base em um conjunto padrão de expressões regulares (assinaturas) - ferramentas para verificar consultas em relação a um padrão - OWASP Core Rule Set .

Como resultado, os desenvolvedores conseguiram atingir seu objetivo - novas soluções WAF começaram a aparecer no mercado, incluindo aquelas criadas com base no ModSecurity.

Três gerações é história


É habitual distinguir três gerações de sistemas WAF que evoluíram à medida que a tecnologia se desenvolve.

Primeira geração . Funciona com expressões regulares (ou gramáticas). Isso inclui ModSecurity. O fornecedor do sistema examina os tipos de ataques a aplicativos e gera padrões que descrevem solicitações legítimas e potencialmente maliciosas. O WAF verifica essas listas e decide o que fazer em uma situação específica - bloqueie o tráfego ou não.

Um exemplo de descoberta de expressão regular é o projeto de conjunto de regras principais de código aberto já mencionado. Outro exemplo é o Naxsi , que também é de código aberto. Os sistemas com expressões regulares têm várias desvantagens, em particular, quando uma nova vulnerabilidade é descoberta, o administrador precisa criar regras adicionais manualmente. No caso de uma infraestrutura de TI em larga escala, pode haver vários milhares de regras. Gerenciar tantas expressões regulares é bastante difícil, sem mencionar que a verificação delas pode reduzir o desempenho da rede.

Expressões regulares também têm um nível bastante alto de falsos positivos. O famoso linguista Noam Chomsky propôs uma classificação de gramáticas, na qual as dividiu em quatro níveis de dificuldade condicional. De acordo com essa classificação, expressões regulares podem descrever apenas regras de firewall que não implicam em desvios do padrão. Isso significa que os invasores podem facilmente "enganar" a WAF de primeira geração. Um dos métodos para combater isso é adicionar caracteres especiais às solicitações de aplicativos que não afetam a lógica dos dados maliciosos, mas violam a regra de assinatura.



Segunda geração . Para contornar problemas de desempenho e precisão com o WAF, foram desenvolvidos firewalls de aplicativos de segunda geração. Os analisadores apareceram neles responsáveis ​​por identificar tipos de ataques estritamente definidos (HTML, JS, etc.). Esses analisadores funcionam com tokens especiais que descrevem solicitações (por exemplo, variável, sequência, desconhecido, número). Sequências potencialmente maliciosas de tokens são colocadas em uma lista separada com a qual o sistema WAF é verificado regularmente. Essa abordagem foi mostrada pela primeira vez na conferência do Black Hat 2012 na forma da biblioteca de libinjeção C / C ++, que permite detectar injeções de SQL.

Comparado aos WAFs de primeira geração, os analisadores especializados podem trabalhar mais rapidamente. No entanto, eles não resolveram as dificuldades associadas à configuração manual do sistema quando novos ataques maliciosos apareceram.



Terceira geração . A evolução na lógica de detecção de terceira geração consiste na aplicação de métodos de aprendizado de máquina que possibilitam aproximar a gramática de detecção da gramática SQL / HTML / JS real dos sistemas protegidos. Essa lógica de detecção é capaz de adaptar a máquina de Turing para cobrir gramáticas recursivamente enumeradas. Além disso, anteriormente a tarefa de criar uma máquina de Turing adaptável era insolúvel até que os primeiros estudos de máquinas de Turing neurais fossem publicados.

O aprendizado de máquina fornece uma oportunidade única de adaptar qualquer gramática para cobrir qualquer tipo de ataque sem criar manualmente listas de assinaturas, conforme necessário ao detectar a primeira geração, e sem desenvolver novos tokenizadores / analisadores para novos tipos de ataques, como implantações de Memcached, Redis, Cassandra, SSRF, conforme exigido pela metodologia de segunda geração.

Combinando todas as três gerações de lógica de detecção, podemos desenhar um novo diagrama no qual a terceira geração de detecção é representada por um contorno vermelho (Fig. 3). Essa geração inclui uma das soluções que implementamos na nuvem, juntamente com a Onsek, desenvolvedora da plataforma de proteção adaptativa para aplicativos da web e a API Valarm.

Agora, a lógica de detecção usa feedback do aplicativo de autoajuste. No aprendizado de máquina, esse loop de feedback é chamado de reforço. Normalmente, existem um ou mais tipos de tais reforços:

  • Análise do comportamento da resposta do aplicativo (passivo)
  • Digitalização / Fuzzer (ativo)
  • Arquivos de relatório / procedimentos de interceptador / interceptação (post factum)
  • Manual (determinado pelo supervisor)

Como resultado, a lógica de detecção de terceira geração também resolve o importante problema de precisão. Agora é possível não apenas evitar falsos positivos e falsos negativos, mas também detectar resultados negativos verdadeiros válidos, como detectar o uso do elemento de comando SQL no painel de controle, carregar modelos de páginas da web, solicitações AJAX relacionadas a erros de JavaScript e outros.







A seguir, consideramos os recursos tecnológicos de várias opções de implementação do WAF.

Ferro, software ou nuvem - o que escolher?


Uma das opções para implementar firewalls de aplicativos é uma solução de hardware. Esses sistemas são dispositivos de computação especializados que a empresa instala localmente em seu data center. Porém, nesse caso, você precisa comprar seu próprio equipamento e pagar aos integradores pela configuração e depuração (se a empresa não tiver seu próprio departamento de TI). Ao mesmo tempo, qualquer equipamento se torna obsoleto e se deteriora; portanto, os clientes são obrigados a estabelecer um orçamento para a atualização de hardware.

Outra opção de implantação do WAF é uma implementação de software. A solução é instalada como um complemento para qualquer software (por exemplo, o ModSecurity está configurado no Apache) e é executado no mesmo servidor. Normalmente, essas soluções podem ser implantadas em um servidor físico e na nuvem. O ponto negativo é a escalabilidade e suporte limitados do fornecedor.

A terceira opção é configurar o WAF a partir da nuvem. Essas soluções são fornecidas pelos provedores de nuvem como um serviço de assinatura. A empresa não precisa comprar e configurar hardware especializado; essas tarefas caem sobre os ombros do provedor de serviços. Um ponto importante é que o WAF moderno baseado na nuvem não implica a migração de recursos para a plataforma do provedor. Um site pode ser implantado em qualquer lugar, mesmo no local.

Por que agora, cada vez mais, olha para WAF nublado, diremos mais adiante.

O que pode WAF na nuvem


Em termos de capacidades tecnológicas:

  • O provedor é responsável pelas atualizações . O WAF é fornecido por assinatura, portanto, o provedor de serviços monitora a relevância de atualizações e licenças. As atualizações dizem respeito não apenas a software, mas também a hardware. O provedor atualiza a frota de servidores e está envolvido em sua manutenção. Ele também é responsável pelo balanceamento de carga e redundância. Se o servidor WAF falhar, o tráfego será imediatamente redirecionado para outra máquina. A distribuição racional de tráfego permite evitar situações em que o firewall entra no modo de falha de abertura - não lida com a carga e para de filtrar os pedidos.
  • Patch virtual . Os patches virtuais restringem o acesso a partes comprometidas do aplicativo até que a vulnerabilidade seja fechada pelo desenvolvedor. Como resultado, o cliente do provedor de nuvem tem a oportunidade de aguardar com calma até que o fornecedor de um ou outro software publique "patches" oficiais. Fazer isso o mais rápido possível é uma prioridade para o fornecedor do software. Por exemplo, na plataforma Valarm, um módulo de software separado é responsável pelo patch virtual. Um administrador pode adicionar expressões regulares personalizadas para bloquear solicitações maliciosas. O sistema possibilita sinalizar algumas consultas com o sinalizador Confidential Data. Seus parâmetros são mascarados e eles mesmos não são transferidos para fora da área de trabalho do firewall.
  • Scanner interno de perímetro e vulnerabilidade . Isso permite determinar independentemente os limites de rede da infraestrutura de TI usando os dados das consultas DNS e o protocolo WHOIS. Depois que o WAF analisa automaticamente os serviços em execução dentro do perímetro (executa a verificação de porta). O firewall é capaz de detectar todos os tipos comuns de vulnerabilidades - SQLi, XSS, XXE etc. - e detectar erros na configuração do software, por exemplo, acesso não autorizado aos repositórios Git e BitBucket e chamadas anônimas ao Elasticsearch, Redis, MongoDB.
  • Os ataques são monitorados pelos recursos da nuvem . Como regra, os provedores de nuvem possuem grandes quantidades de poder de computação. Isso permite analisar ameaças com alta precisão e velocidade. Na nuvem, um cluster de nós de filtragem é implantado através do qual todo o tráfego passa. Esses sites bloqueiam ataques a aplicativos da Web e enviam estatísticas para o Analytics Center. Ele usa algoritmos de aprendizado de máquina para atualizar as regras de bloqueio para todos os aplicativos protegidos. A implementação desse esquema é mostrada na Fig. 4. Essas regras de segurança adaptadas minimizam o número de falsos positivos para o firewall.



Agora, um pouco sobre os recursos do WAF nublado em termos de questões organizacionais e de gerenciamento:

  • Transição para OpEx . No caso do WAF baseado em nuvem, o custo de implementação será zero, uma vez que todo o hardware e licenças já foram pagos pelo provedor, o pagamento pelo serviço é feito por assinatura.
  • Diferentes planos tarifários . Um usuário de um serviço de nuvem pode ativar ou desativar rapidamente opções adicionais. O gerenciamento de funções é implementado a partir de um único painel de controle, que também é protegido. O acesso é feito via HTTPS, além de haver um mecanismo de autenticação de dois fatores baseado no protocolo TOTP (algoritmo de senha de uso único baseado em tempo).
  • Conexão DNS Você mesmo pode alterar o DNS e configurar o roteamento na rede. Para resolver esses problemas, não é necessário recrutar e treinar especialistas individuais. Como regra, o suporte técnico do provedor pode ajudar com a configuração.

As tecnologias WAF evoluíram de firewalls simples com regras empíricas para sistemas de segurança complexos com algoritmos de aprendizado de máquina. Agora, os firewalls de aplicativos têm uma ampla gama de funções que eram difíceis de implementar nos anos 90. De várias maneiras, o surgimento de novas funcionalidades foi possível graças à tecnologia em nuvem. As soluções WAF e seus componentes continuam a evoluir. Bem como outras áreas de segurança da informação.

O texto foi preparado por Alexander Karpuzikov, gerente de desenvolvimento de produto do provedor de nuvem IS #CloudMTS.

Source: https://habr.com/ru/post/pt485220/


All Articles