
Descubra Serviços de IA Expostos
Plataforma de descoberta e testes de segurança em escala de internet para infraestrutura exposta de agentes de IA.
O AIMap encontra, identifica por impressão digital e testa a segurança de endpoints de IA publicamente expostos — servidores MCP, instâncias Ollama, proxies vLLM/LiteLLM, cadeias LangServe, aplicativos Gradio, nós ComfyUI e muito mais. Pense no Shodan, mas criado especificamente para a superfície de ataque de agentes de IA.
Criado pela Bishop Fox.
Aviso Esta ferramenta destina-se exclusivamente a testes de penetração autorizados e pesquisa de segurança. Você deve usar o AIMap apenas contra sistemas que possui ou para os quais tem permissão explícita por escrito para testar. O acesso não autorizado a sistemas de computador é ilegal. A Bishop Fox não assume nenhuma responsabilidade e não se responsabiliza por qualquer uso indevido ou dano causado por esta ferramenta. Use com responsabilidade.
┌─────────────┐ ┌──────────────┐ ┌───────────┐
│ React SPA │────▶│ FastAPI │────▶│ MongoDB │
│ (Vite) │ WS │ Backend │ │ │
└─────────────┘ └──────┬───────┘ └───────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Shodan │ │ Nuclei │ │ Redis │
│ API │ │ Scanner │ │ Streams │
└──────────┘ └──────────┘ └──────────┘
Backend — Python/FastAPI com MongoDB assíncrono (Motor), Redis Streams para transmissão de logs de ataque e um mecanismo de descoberta que orquestra consultas Shodan → verificações de disponibilidade httpx → varreduras de templates Nuclei → pipeline de enriquecimento.
Frontend — React 18 + TypeScript + Tailwind CSS + shadcn/ui. Inclui um globo 3D (globe.gl), transmissão de ataques em tempo real via WebSocket e uma interface de busca no estilo Shodan.
Varredura — 5 templates YAML personalizados do Nuclei para detecção de servidores MCP, enumeração de ferramentas MCP, detecção de APIs compatíveis com OpenAI, detecção de LangServe e teste de vazamento de prompt.
| Protocolo | Método de Detecção | Consultas Shodan |
|---|---|---|
| MCP (Model Context Protocol) | transporte SSE, JSON-RPC, caminhos /mcp/sse | 4 consultas |
| Ollama | porta padrão 11434, impressão digital do produto | 3 consultas |
| vLLM / LiteLLM / LocalAI | endpoints /v1/models, /v1/chat/completions | 4 consultas |
| LangServe / LangChain | endpoints de playground, marcadores langserve | 2 consultas |
| OpenClaw / Clawdbot | painel de controle, porta 18789 | 3 consultas |
| Open WebUI / LibreChat | detecção baseada no título | 2 consultas |
| Gradio | título, marca d'água no rodapé, hash de favicon | 3 consultas |
| Streamlit | título, hash de favicon | 2 consultas |
| ComfyUI / Stable Diffusion | título, detecção baseada na porta | 4 consultas |
| HuggingFace TGI | marcadores HTML | 1 consulta |
| Inferência genérica | caminhos /api/generate, /api/tags | 2 consultas |
Cada endpoint recebe uma pontuação de risco de 0 a 10 calculada a partir de:
| Fator | Impacto na Pontuação |
|---|---|
| Sem autenticação | +4.0 |
| Status de autenticação desconhecido | +1.0 |
| 10+ ferramentas expostas | +2.0 |
| 5+ ferramentas expostas | +1.0 |
Ferramenta de risco crítico (ex.: exec_code, run_shell) | +1.0 cada |
Ferramenta de alto risco (ex.: query_db, file_read) | +0.5 cada |
CORS aberto (*) | +1.0 |
| Sem TLS | +0.5 |
| Prompt de sistema vazado | +0.5 |
| Modelos expostos | +1.0 |
| Modelo sem censura detectado | +2.0 |
| Cadastro habilitado (sem exigir convite) | +1.5 |
| Combinação perigosa (ex.: sem autenticação + ferramenta de execução de código) | +1.0 cada |
# Clone
git clone [email protected]:BishopFox/aimap.git
cd aimap
# Configure
cp .env.example .env
# Edit .env — at minimum set SHODAN_API_KEY
# Launch
docker compose up --build
Isso inicia 4 serviços:
Abra http://localhost para acessar a interface.
# Backend
cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000
# Frontend (separate terminal)
cd frontend
npm install
npm run dev # starts on http://localhost:5173
Certifique-se de que o MongoDB esteja rodando localmente na porta 27017. O Redis é opcional — o backend usa buffers em memória quando o Redis não está disponível.
Crie um arquivo .env na raiz do projeto:
# Required
SHODAN_API_KEY=your_shodan_api_key
# Optional — Censys as an additional discovery source
CENSYS_API_ID=
CENSYS_API_SECRET=
# Optional — enables AI-powered attack analysis
ANTHROPIC_API_KEY=
# MongoDB (defaults work for local dev)
MONGODB_URI=mongodb://localhost:27017
MONGODB_DB=aimap
# Redis (defaults work for local dev; optional)
REDIS_URL=redis://localhost:6379/0
# CORS (default allows all origins)
CORS_ORIGINS=*
# Modal serverless (dispatches scans/attacks to Modal containers)
MODAL_ENABLED=false
# Clerk auth — see below
CLERK_ISSUER=
O AIMap usa Clerk para autenticação. Para habilitar:
# .env (project root)
CLERK_ISSUER=https://your-app.clerk.accounts.dev
# frontend/.env.local
VITE_CLERK_PUBLISHABLE_KEY=pk_test_...
Para desabilitar a autenticação (desenvolvimento local, demonstrações): deixe CLERK_ISSUER vazio ou não definido. O backend aceitará todas as requisições com uma identidade de usuário sintética local.