TLDR:
Ataques de dia zero (0-day), explorando vulnerabilidades desconhecidas pelos fornecedores de software, representam uma ameaça cibernética significativa. Firewalls de aplicação web (WAFs) tradicionais frequentemente falham em prevenir esses ataques, exigindo patching frequente. Runtime Application Self Protection (RASP) adota uma abordagem diferente que não depende de regras escritas, mas monitora ativamente o comportamento da aplicação através de integrações nativas, levando a uma proteção aprimorada contra 0-Days.
O objetivo ao construir o Aikido Zen para NodeJS foi permitir que os desenvolvedores adaptassem seus aplicativos e os protegessem por padrão contra classes comuns de ataques de injeção, como SQL injections, shell injections, path traversal e SSRF. O desenvolvedor não só deve ser protegido contra erros em seu próprio código, mas também contra falhas desconhecidas nas bibliotecas que está utilizando.
Para avaliar sua eficácia, avaliamos o Zen contra uma série de CVEs. Este whitepaper explica a abordagem, classifica a eficácia e apresenta os tradeoffs e as limitações. Para este artigo, a equipe identificou 17 vulnerabilidades zero-day, das quais 11 foram bloqueadas pelo Zen sem conhecimento prévio sobre o exploit específico.
Introdução
WAFs sempre foram uma última esperança contra 0-days, pois dependiam de uma combinação de sorte e padrões recorrentes para detectar 0-days durante sua janela de "ataque zero-day" (conforme mostrado abaixo). Somente após as vulnerabilidades serem divulgadas publicamente (t0) as regras do WAF podem ser atualizadas para interromper o novo ataque.

Um WAF analisará os dados de conexão de entrada (cabeçalhos, corpo, ..) antes que atinjam sua aplicação. Ele escaneia os dados em busca de padrões suspeitos (SQL injections, path traversals) e bloqueia ou remove os dados suspeitos. Embora eficaz, ele tem a tendência de criar muitos falsos positivos, como visto em pesquisas da System Weakness.

Se você tiver 10.000 clientes, a melhor solução ainda poderia bloquear 56 deles.
Aikido Zen adota uma abordagem fundamentalmente diferente para a segurança de aplicações web. Em vez de depender apenas de assinaturas e padrões conhecidos, ele se concentra em compreender e mitigar comportamentos de ataque em um nível de aplicação mais profundo.
A Abordagem Aikido Zen
Ao focar no monitoramento e interceptação de atividades maliciosas no ponto em que tentam acessar ou manipular recursos críticos, o Aikido Zen consegue proporcionar uma redução significativa de falsos positivos ao adotar uma estratégia que bloqueia ataques apenas quando interagem com os sistemas subjacentes.
Isso é realizado pela implementação de um sistema que examina vários tipos de interações com o ambiente subjacente. Estes incluem:
- Interações com Banco de Dados: O monitoramento de chamadas feitas a bibliotecas de banco de dados, tanto SQL quanto NoSQL, permite a detecção de consultas não autorizadas, tentativas de exfiltração de dados ou ataques de injeção. Ao analisar o conteúdo e a estrutura dessas chamadas de banco de dados, atividades maliciosas podem ser identificadas e bloqueadas antes que causem danos.
- Chamadas Externas: O monitoramento de chamadas externas feitas via HTTP, HTTPS ou outros protocolos pode revelar tentativas de comunicação com servidores de comando e controle, download de malware ou exfiltração de dados. Ao inspecionar o conteúdo e o destino dessas chamadas, o tráfego malicioso pode ser identificado e bloqueado.
- Acesso ao Sistema de Arquivos e Execução de Shell: O monitoramento do acesso ao sistema de arquivos pode detectar tentativas de ler, gravar ou modificar arquivos sensíveis, ou de executar código malicioso. Ao analisar os caminhos dos arquivos, permissões e operações envolvidas nesses acessos, atividades não autorizadas podem ser identificadas e bloqueadas.
- Tentativas de Server-Side Request Forgery (SSRF): Ataques SSRF podem ser devastadores, permitindo que invasores usem a confiança do seu servidor para acessar recursos internos ou até mesmo interagir com serviços externos em seu nome. Ao monitorar de perto o destino e a natureza das requisições internas originadas de seus servidores, o Zen é capaz de bloquear ataques SSRF.
Ao focar nesses pontos críticos de interação com os sistemas subjacentes, a abordagem Zen permite uma detecção e bloqueio de ataques mais precisos e eficazes, minimizando o número de falsos positivos que podem interromper atividades legítimas. Essa estratégia também fornece insights valiosos sobre a natureza e os alvos dos ataques, que podem ser usados para melhorar a postura de segurança geral.
Pesquisa
Como um esforço contínuo, a equipe do Aikido Zen realiza testes contra vulnerabilidades descobertas recentemente para medir a eficácia do Aikido Zen. A equipe identifica novos 0-days, cria um ambiente de teste reproduzível, valida a vulnerabilidade com uma injeção de payload bem-sucedida e, em seguida, instala o Aikido Zen para verificar se o ataque é bloqueado.
Para este artigo, a equipe identificou 17 vulnerabilidades, das quais 11 foram bloqueadas pelo Zen e 6 não foram por uma infinidade de razões.
Bloqueados
Não Bloqueado
Aikido está pesquisando e expandindo continuamente a proteção zero-day do Aikido Zen com suporte a novos frameworks e algoritmos aprimorados.
Um princípio fundamental é manter um impacto mínimo no desempenho (≤ 5%) para uma proteção contínua. Embora isso nos impeça de implementar imediatamente certos algoritmos de proteção que consomem muitos recursos (o que poderia aumentar os tempos de requisição em 2x-10x), estamos desenvolvendo ativamente abordagens alternativas e eficientes.
Considere o Aikido Zen uma camada de proteção *adicional*, complementando os componentes reativos abrangentes do Aikido, como varredura de código, teste de API e outras capacidades de segurança robustas.
Conclusão
O Aikido Zen representa um grande avanço na segurança de aplicações web. Ele oferece forte proteção contra ataques zero-day sem exigir patching constante, concentrando-se nos comportamentos de ataque e utilizando tecnologias de ponta. O Aikido Zen oferece uma solução potencial para garantir a segurança contínua de aplicações web à medida que o cenário de ameaças muda.

