
Sistema de defesa reativa para websites alimentado por IA que detecta ataques, os analisa e corrige autonomamente o código-fonte em tempo real usando agentes LLM.
Sistema de defesa reativo para webapps, alimentado por IA, projetado para resistir a ataques de IA em tempo real.
O Mahoraga Defender é uma Prova de Conceito (PoC) de um sistema de defesa reativo, agnóstico ao tipo de atacante, operando em tempo real. O mecanismo central envolve enganar um adversário para realizar descobertas e ataques em um ambiente benigno e falso (ambiente "sombra") e registrar esses ataques. Em seguida, um agente LLM analisa os logs e repassa os detalhes de quaisquer explorações detectadas para mais agentes LLM corrigirem as vulnerabilidades e implantarem os patches.
O sistema foi projetado para ser totalmente automatizado, com otimização de custos de API em mente. Uma interface gráfica foi criada para monitorar facilmente os logs de tráfego, a atividade dos agentes e o pipeline de patches, além de controlar o número de agentes a serem implantados.
O site alvo (vítima) é um fork do crAPI (Completely Ridiculous API), uma aplicação web intencionalmente vulnerável criada pela OWASP para ensinar testes de segurança de API. O crAPI simula uma plataforma de proprietários de veículos com microsserviços que cobrem as vulnerabilidades de API do OWASP Top 10. O defensor foi projetado para distinguir claramente entre sessões de usuário normais e adversárias, de modo que os usuários comuns não experimentem qualquer queda na qualidade da experiência enquanto o defensor protege o site dos atacantes.
Nosso fork (crapi-fork/) adiciona:
Uma cópia original é mantida em crapi-original/ para que o ambiente possa ser redefinido entre os experimentos.
crapi-fork/. Opera em um ambiente bash isolado com acesso restrito apenas a crapi-fork/.Na implantação, os serviços Python são recarregados a quente via gunicorn (instantâneo), enquanto os serviços Java/Go são reconstruídos via docker compose up -d --build.
Por que não há um agente Testador? Consideramos adicionar um agente dedicado de teste de usuário e um ambiente de teste separado, mas removemos ambos para manter o sistema leve.
conda create -n XYZ python=3.13, depois conda activate XYZ).pip install -r requirements.txt./start.sh a partir do diretório raiz do projeto — redefine o código fonte de crapi-fork/ a partir de crapi-original/, reconstrói todos os serviços, planta flags e honeypots.python3 -m harness.main --app-url http://localhost:8888 -v.localhost:8888 (a descrição do desafio está em localhost:8888/challenge). Se estiver testando com um agente de IA, o agente não deve ter acesso a processos docker internos, pois isso seria considerado trapaça.localhost:3000 para ver logs em tempo real, ações dos agentes, patches, flags capturadas, etc.docker compose down -v para remover os containers docker e bancos de dados que foram iniciados para este projeto.Painel: http://localhost:3000
Uma barra de status global de agentes é visível em todas as abas, mostrando a saúde do agente (ativo/travado/ocioso/erro) com controles de escala.
Visualizador de logs de requisições de produção/sombra em tela dividida em tempo real, com entradas coloridas por severidade e agrupamento de tráfego
Feed de atividade por agente com prompts do sistema, chamadas de ferramentas e rótulos do modelo LLM
Quadro Kanban: Detectado → Corrigindo → Revisando → Implantado, com painel de detalhes redimensionável
Diffs de código, arquivos modificados, comandos de reversão e linha do tempo por patch