TLDR:
Os ataques de dia zero, que exploram vulnerabilidades desconhecidas dos fornecedores de software, representam uma ameaça cibernética significativa. As firewalls de aplicações Web tradicionais (WAF) muitas vezes não conseguem impedir estes ataques, exigindo correcções frequentes. A Auto-Proteção de Aplicações em Tempo de Execução (RASP) adopta uma abordagem diferente, que não se baseia em regras escritas, mas monitoriza ativamente o comportamento das aplicações através de integrações nativas, o que conduz a uma maior proteção contra os 0-Days.
O objetivo ao criar o Aikido Zen para NodeJS era permitir que os programadores adaptassem as suas aplicações e as protegessem, por defeito, contra classes comuns de ataques de injeção, tais como injecções SQL, injecções shell, path traversal e SSRF. O programador deve estar protegido não só contra erros no seu próprio código, mas também contra falhas desconhecidas nas bibliotecas que está a utilizar.
Para avaliar a sua eficácia, avaliámos o Zen em relação a uma série de CVEs. Este whitepaper explica a abordagem, classifica a eficácia e apresenta as compensações e limitações. Para este documento, a equipa identificou 17 vulnerabilidades, das quais 11 foram bloqueadas pelo Zen sem qualquer conhecimento prévio da exploração específica.
Introdução
Os WAFs sempre foram a última esperança contra os 0-days, uma vez que dependiam de uma combinação de sorte e padrões recorrentes para apanhar 0-days durante a sua janela de "ataque de dia zero" (como mostrado abaixo). Só depois de as vulnerabilidades terem sido divulgadas publicamente (t0) é que as regras do WAF podem ser actualizadas para impedir o novo ataque.

Um WAF analisará os dados de ligação de entrada (cabeçalhos, corpo, ...) antes de chegarem à sua aplicação. Examina os dados em busca de padrões suspeitos (injecções SQL, passagens de caminho) e bloqueia ou remove os dados suspeitos. Embora eficaz, tem a tendência para criar muitos falsos positivos, como se pode ver na investigação da System Weakness.

Se tiver 10.000 clientes, a melhor solução pode ainda bloquear 56 deles.
O Aikido Zen adopta uma abordagem fundamentalmente diferente à segurança das aplicações Web. Em vez de se basear apenas em assinaturas e padrões conhecidos, concentra-se em compreender e atenuar os comportamentos de ataque a um nível mais profundo da aplicação.
A abordagem Zen do Aikido
Ao concentrar-se na monitorização e interceção de actividades maliciosas no ponto em que estas tentam aceder ou manipular recursos críticos, o Aikido Zen consegue proporcionar uma redução significativa dos falsos positivos, adoptando uma estratégia que apenas bloqueia os ataques quando estes interagem com os sistemas subjacentes.
Isto é conseguido através da implementação de um sistema que analisa vários tipos de interações com o ambiente subjacente. Estes incluem:
- Interações com bases de dados: A monitorização de chamadas feitas a bibliotecas de bases de dados, tanto SQL como NoSQL, permite a deteçã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 destas chamadas de base de dados, a atividade maliciosa pode ser identificada e bloqueada antes de causar danos.
- Chamadas externas: A monitorização de chamadas externas efectuadas através de HTTP, HTTPS ou outros protocolos pode revelar tentativas de comunicação com servidores de comando e controlo, descarregamento de malware ou exfiltração de dados. Ao inspecionar o conteúdo e o destino destas chamadas, o tráfego malicioso pode ser identificado e bloqueado.
- Acesso ao sistema de ficheiros e execução de shell: A monitorização do acesso ao sistema de ficheiros pode detetar tentativas de leitura, escrita ou modificação de ficheiros sensíveis, ou de execução de código malicioso. Ao analisar os caminhos dos ficheiros, permissões e operações envolvidas nestes acessos, a atividade não autorizada pode ser identificada e bloqueada.
- Tentativas de falsificação de pedidos do lado do servidor (SSRF): Os ataques SSRF podem ser devastadores, permitindo que os invasores aproveitem a confiança do seu servidor para acessar recursos internos ou até mesmo interagir com serviços externos em seu nome. Ao monitorizar de perto o destino e a natureza dos pedidos internos provenientes dos seus servidores, o Zen consegue bloquear os ataques SSRF.
Ao concentrar-se nestes pontos críticos de interação com os sistemas subjacentes, a abordagem Zen permite uma deteção e bloqueio de ataques mais precisos e eficazes, minimizando o número de falsos positivos que podem perturbar a atividade legítima. Essa estratégia também fornece informações valiosas sobre a natureza e os alvos dos ataques, que podem ser usados para melhorar a postura geral de segurança.
Investigação
Como um esforço contínuo, a equipa do Aikido Zen executa testes contra vulnerabilidades recentemente descobertas para medir a eficácia do Aikido Zen. A equipa identifica novos 0 dias, cria um ambiente de teste reproduzível, valida a vulnerabilidade com uma injeção de carga útil bem sucedida e, em seguida, instala o Aikido Zen para verificar se o ataque é bloqueado.
Para este documento, a equipa identificou 17 vulnerabilidades, das quais 11 foram bloqueadas pelo Zen e 6 não o foram por uma miríade de razões.
Os resultados da nossa investigação podem ser consultados abaixo e todos os ambientes de teste, exploits e recursos necessários para a reprodução foram disponibilizados em open source.
Bloqueado
Não bloqueado
O Aikido está continuamente a investigar e a expandir a proteção de dia zero do Aikido Zen com um novo suporte de estrutura e algoritmos melhorados.
Um princípio fundamental é manter um impacto mínimo no desempenho (≤ 5%) para 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 solicitação em 2x-10x), estamos a desenvolver ativamente abordagens alternativas e eficientes.
Considere o Aikido Zen uma camada *adicional* de proteção, complementando os componentes reactivos abrangentes do Aikido, como a verificação de código, testes de API e outras capacidades de segurança robustas.
Conclusão
O Aikido Zen é um grande avanço na segurança das aplicações Web. Oferece uma forte proteção contra ataques de dia zero sem necessidade de aplicação constante de patches, 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 das aplicações Web à medida que o cenário de ameaças muda.