No nosso material anterior sobre o tema da nuvem, discutimos , como proteger recursos de TI na nuvem pública e por que os antivírus tradicionais não são adequados para esses fins. Neste post, continuaremos a discutir segurança em 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 de aplicativos web e sites: esses ataques são geralmente invisíveis para a infraestrutura de segurança da informação e para os serviços de segurança. As vulnerabilidades de aplicativos web, por sua vez, acarretam riscos de comprometimento e fraude de contas e dados pessoais dos usuários, senhas e números de cartões de crédito. Além disso, as vulnerabilidades em um site servem como ponto de entrada para os invasores na rede corporativa.
O Web Application Firewall (WAF) é uma camada de proteção que bloqueia ataques a aplicativos web: injeções SQL, cross-site scripting, execução remota de código, força bruta e bypass de autenticação. Isso inclui ataques que utilizam vulnerabilidades zero-day. Os firewalls de aplicativos fornecem proteção monitorando o conteúdo das páginas web, incluindo HTML, DHTML e CSS, e filtrando solicitações potencialmente maliciosas via HTTP/HTTPS.
Quais foram as primeiras soluções?
As primeiras tentativas de criar um Web Application Firewall ocorreram no início dos anos 90. Sabe-se de pelo menos três engenheiros que trabalharam nesta área. O primeiro deles foi o professor de ciência da computação Gene Spafford da Universidade Purdue. Ele descreveu a arquitetura de um firewall de aplicativos com proxy e publicou isso em 1991 no livro .
Os segundo e terceiro foram os especialistas em segurança da informação William Cheswick e Marcus Ranum dos Bell Labs. Eles desenvolveram um dos primeiros protótipos de firewalls de aplicativos. A empresa DEC comercializou essa solução com o nome de SEAL (Secure External Access Link).
Mas o SEAL não era uma solução WAF completa. Ele era um firewall de rede clássico com funcionalidades ampliadas — a capacidade de bloquear ataques a FTP e RSH. Por essa razão, a primeira solução WAF hoje é considerada o produto da Perfecto Technologies (depois Sanctum). Em 1999, ela o sistema AppShield. Na época, a Perfecto Technologies estava desenvolvendo soluções de segurança da informação para e-commerce, e o público-alvo de seu novo produto eram lojas online. O AppShield era capaz de analisar solicitações HTTP e bloqueava ataques com base em políticas dinâmicas de segurança da informação.
Por volta da mesma época do AppShield (em 2002), surgiu o primeiro WAF de código aberto. Ele tornou-se . Foi criado com o objetivo de popularizar as tecnologias WAF e ainda é mantido pela comunidade de TI (aqui está seu ). O ModSecurity bloqueia ataques a aplicativos com base em um conjunto padrão de expressões regulares (assinaturas) — ferramentas para verificar solicitações de acordo com um padrão — .
No final, os desenvolvedores conseguiram alcançar seu objetivo — novas soluções de WAF começaram a surgir no mercado, incluindo aquelas construídas com base no ModSecurity.
Três gerações — já é história
É comum distinguir três gerações de sistemas WAF, que evoluíram à medida que as tecnologias se desenvolveram.
A primeira geração. Funciona com expressões regulares (ou gramáticas). Isso inclui o ModSecurity. O fornecedor do sistema estuda os tipos de ataques a aplicativos e cria padrões que descrevem solicitações legítimas e potencialmente maliciosas. O WAF compara essas listas e decide o que fazer em uma situação específica — bloquear o tráfego ou não.
Um exemplo de detecção baseada em expressões regulares é o já mencionado projeto de código aberto. Outro exemplo é , que também é de código aberto. Sistemas baseados em expressões regulares têm uma série de desvantagens, especialmente quando uma nova vulnerabilidade é descoberta, o administrador precisa criar regras adicionais manualmente. No caso de uma infraestrutura de TI em larga escala, pode haver milhares de regras. Gerenciar essa quantidade de expressões regulares é bastante complicado, sem mencionar que a verificação delas pode diminuir o desempenho da rede.
As 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 das gramáticas, dividindo-as em quatro níveis condicionais de complexidade. De acordo com essa classificação, as expressões regulares podem descrever apenas as regras de firewall que não preveem desvios do padrão. Isso significa que invasores podem facilmente "enganar" um WAF de primeira geração. Um dos métodos de combate a isso é adicionar caracteres especiais às requisições para os aplicativos que não afetam a lógica dos dados maliciosos, mas que quebram a regra de assinatura.

Segunda geração. Para contornar os problemas relacionados ao desempenho e à precisão dos WAFs, foram desenvolvidos firewalls de aplicações de segunda geração. Neles, surgiram os analisadores, que são responsáveis por identificar tipos específicos de ataques (como HTML, JS, etc.). Esses analisadores trabalham com tokens especiais que descrevem as requisições (por exemplo, variável, string, desconhecido, número). Sequências potencialmente maliciosas de tokens são colocadas em uma lista separada, que é verificada regularmente pelo sistema WAF. Esse conceito foi demonstrado pela primeira vez na conferência Black Hat 2012 na forma da biblioteca C/C++ , que permite detectar injeções de SQL.
Comparado aos WAFs de primeira geração, os analisadores especializados podem operar mais rapidamente. No entanto, eles não resolveram as dificuldades relacionadas à configuração manual do sistema diante de novos ataques maliciosos.

Terceira geração. A evolução na lógica de detecção da terceira geração consiste na aplicação de métodos de aprendizagem de máquina, permitindo aproximar ao máximo a gramática de detecção da gramática real de SQL/HTML/JS dos sistemas protegidos. Essa lógica de detecção tem a capacidade de adaptar uma máquina de Turing para abranger gramáticas recursivamente enumeráveis. Anteriormente, a tarefa de criar uma máquina de Turing adaptável era insolúvel, até que as primeiras pesquisas em máquinas de Turing neurais foram publicadas.
O aprendizado de máquina oferece uma oportunidade única de adaptar qualquer gramática para abranger qualquer tipo de ataque sem a necessidade de criar listas de assinaturas manualmente, como era exigido na detecção de primeira geração, e sem a necessidade de desenvolver novos tokenizadores/analisadores para novos tipos de ataques, como injeções Memcached, Redis, Cassandra, SSRF, conforme requerido pela metodologia de segunda geração.
Ao combinar 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 é destacada com um contorno vermelho (ver Fig. 3). Esta geração inclui uma das soluções que estamos implementando na nuvem em parceria com a 'OnSec', desenvolvedora da plataforma de proteção adaptativa de aplicações web e API Valarm.
Agora, na lógica de detecção, utiliza-se o feedback da aplicação para autoconfiguração. Dentro do aprendizado de máquina, esse ciclo de feedback é chamado de 'reforço'. Normalmente, existem um ou mais tipos desse reforço:
- Análise do comportamento da resposta da aplicação (passivo)
- Escaneamento/fuzzer (ativo)
- Arquivos de relatórios/procedimentos de interceptação/armadilhas (pós-fato)
- Manual (definido pelo supervisor)
Como resultado, a lógica de detecção de terceira geração também aborda um problema importante de precisão. Agora é possível não apenas evitar falsos positivos e falsos negativos, mas também detectar verdadeiros resultados negativos aceitáveis, como a detecção do uso de comandos SQL no painel de controle, o upload de templates de páginas web, solicitações AJAX relacionadas a erros de JavaScript e outros.

![]()

Em seguida, consideraremos as capacidades tecnológicas das diversas opções de implementação de WAF.
Hardware, software ou nuvem — o que escolher?
Uma das opções de implementação de firewalls de aplicações é a solução 'hardware'. Esses sistemas são dispositivos computacionais especializados que a empresa instala localmente em seu data center. Contudo, nesse caso, é necessário adquirir hardware próprio e pagar integradores para sua configuração e ajuste (caso a empresa não tenha um departamento de TI próprio). Além disso, qualquer equipamento se torna obsoleto e falha, portanto, os clientes precisam alocar orçamento para a atualização do hardware.
Outra opção de implantação do WAF é a implementação de software. A solução é instalada como um complemento para algum software (por exemplo, o ModSecurity é configurado sobre o Apache) e opera no mesmo servidor que ele. Normalmente, essas soluções podem ser implantadas tanto em servidores físicos quanto na nuvem. Sua desvantagem é que possuem capacidades limitadas de escalabilidade e suporte por parte do fornecedor.
A terceira opção é configurar o WAF a partir da nuvem. Essas soluções são fornecidas por provedores de nuvem como um serviço por assinatura. As empresas não precisam adquirir e configurar hardware especializado, essas tarefas ficam a cargo do prestador do serviço. Um ponto importante é que um WAF moderno em nuvem não implica na migração de recursos para a plataforma do provedor. O site pode ser implantado em qualquer lugar, mesmo on-premise.
Por que cada vez mais se olha para o WAF em nuvem, contaremos a seguir.
O que o WAF em nuvem pode fazer
Do ponto de vista das capacidades tecnológicas:
- As atualizações são responsabilidade do provedor. O WAF é fornecido por assinatura, portanto, o fornecedor do serviço monitora a atualidade das atualizações e licenças. As atualizações se referem não apenas ao software, mas também ao hardware. O provedor atualiza a infraestrutura do servidor e cuida de sua manutenção. Ele também é responsável pelo balanceamento de carga e pela redundância. Se ocorrer uma falha no servidor WAF, o tráfego é imediatamente redirecionado para outra máquina. A distribuição racional do tráfego ajuda a evitar situações onde o firewall entra em modo de falha — não consegue lidar com a carga e para de filtrar as solicitações.
- Patching virtual. Os patches virtuais limitam o acesso a partes comprometidas do aplicativo até que a vulnerabilidade seja corrigida pelo desenvolvedor. Como resultado, o cliente do provedor de nuvem pode aguardar tranquilamente enquanto o fornecedor do software em questão publica os "patches" oficiais. Fazer isso o mais rápido possível é prioridade para o fornecedor de software. Por exemplo, na plataforma "Valarm", o patching virtual é responsabilidade de um módulo de software separado. O administrador pode adicionar expressões regulares personalizadas para bloquear solicitações maliciosas. O sistema permite marcar algumas solicitações com a flag "Dados confidenciais". Assim, seus parâmetros são mascarados e elas, sob nenhuma circunstância, são transmitidas para fora da zona de trabalho do firewall.
- Scanner de perímetro e vulnerabilidades incorporado. Isso permite definir independentemente as fronteiras da infraestrutura de TI usando dados de solicitações DNS e do protocolo WHOIS. Após isso, o WAF analisa automaticamente os serviços e aplicações que operam dentro do perímetro (realiza a varredura de portas). O firewall é capaz de detectar todos os tipos comuns de vulnerabilidades — SQLi, XSS, XXE, entre outros — e identificar erros na configuração do software, como acesso não autorizado a repositórios Git e BitBucket, e chamadas anônimas ao Elasticsearch, Redis, MongoDB.
- Os ataques são monitorados pelos recursos da nuvem. Geralmente, os provedores de nuvem possuem grandes volumes de poder computacional. Isso permite realizar análises de ameaças com alta precisão e velocidade. Na nuvem, um cluster de nós filtrantes é implantado, pelo qual todo o tráfego passa. Esses nós bloqueiam ataques a aplicativos web e enviam estatísticas para o Centro de Análise. Ele utiliza algoritmos de aprendizado de máquina para atualizar as regras de bloqueio para todos os aplicativos protegidos. A implementação desse tipo de esquema está ilustrada na fig. 4. Essas regras de segurança adaptadas minimizam o número de falsos positivos do firewall.

Agora, um pouco sobre as características dos WAF em nuvem do ponto de vista de aspectos organizacionais e de gerenciamento:
- Transição para OpEx. No caso dos WAF em nuvem, o custo de implementação será igual a zero, pois todo o hardware e licenças já foram pagos pelo provedor, e o pagamento pelo serviço é feito por assinatura.
- Planos tarifários variados. O usuário do serviço em nuvem pode conectar ou desconectar rapidamente opções adicionais. O controle das funcionalidades é realizado a partir de um único painel de controle, que também é seguro. O acesso a ele é feito via HTTPS, além de contar com um mecanismo de autenticação de dois fatores baseado no protocolo TOTP (Time-based One-Time Password Algorithm).
- Conexão via DNS. É possível alterar o DNS por conta própria e configurar o roteamento na rede. Para resolver essas tarefas, não é necessário treinar e contratar profissionais especializados. Normalmente, o suporte técnico do provedor pode ajudar com a configuração.
As tecnologias WAF evoluíram de simples firewalls com regras empíricas para sistemas complexos de proteção com algoritmos de aprendizado de máquina. Atualmente, os firewalls de aplicativos possuem uma ampla gama de funções que eram difíceis de implementar na década de 90. Em grande parte, o surgimento de novas funcionalidades foi possível graças às tecnologias em nuvem. As soluções WAF e seus componentes continuam a evoluir, assim como outras áreas da segurança da informação.
Texto preparado por Alexander Karpuzikov, gerente de desenvolvimento de produtos de segurança da informação do provedor de nuvem #CloudMTS.
Fonte: habr.com
