Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitLabGitLab/reyjesusq/sentinel-mcp
Strumenti DifensiviSicurezza CloudRilevamento IntrusioniRisposta agli IncidentiSicurezza dell'IARilevamento di Anomalie
GitLabreyjesusq/sentinel-mcp

sentinel-mcp

Sistema autonomo di cyber difesa basato su AI che utilizza MCP, Gemini 2.0 Flash, l'osservabilità di Dynatrace e MongoDB. Proposta per Google Cloud Hackathon.

Vedi Repository
83 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

SentinelMCP — Sistema di Difesa Cyber Alimentato dall'IA

Sottomissione per Google Cloud Hackathon — Rilevamento e correzione autonoma delle minacce orchestrata da Google Cloud Agent Builder (Vertex AI Agent), alimentata da Gemini 2.0 Flash, Model Context Protocol (MCP) e osservabilità Dynatrace.

Agent Builder Gemini 2.0 Flash Dynatrace MongoDB MCP Protocol


Il Problema

I team di sicurezza affrontano 30 minuti di MTTD e 4 ore di MTTR per gli incidenti tipici. Quando un analista umano rileva l'attacco, scrive la regola del firewall e la distribuisce, il danno è già fatto.

La Soluzione

SentinelMCP riduce l'MTTD a < 30 secondi e l'MTTR a < 30 secondi distribuendo un agente di Google Cloud Agent Builder che riceve webhook di anomalie Dynatrace, li elabora con Gemini 2.0 Flash e invoca strumenti di difesa reali tramite MCP — agendo su infrastruttura live, non solo segnalando.

root@kitploit:~
Dynatrace webhook  →  Agent Builder receives alert  →  Gemini reasons  →  MCP tools execute  →  Threat neutralized
       1 s                        2 s                      8 s                  15 s                  25 s total

Il risultato: un ciclo di vita dell'incidente che in precedenza richiedeva un analista umano e 4 ore ora si completa autonomamente in meno di 30 secondi, con una traccia di audit completa in MongoDB e tracce distribuite in Jaeger.


Architettura

root@kitploit:~
┌──────────────────────────────────────────────────────────────────────┐
│                         SANDBOX ENVIRONMENT                          │
│                                                                      │
│   ┌─────────────┐   100–1000 req/s   ┌──────────────────────────┐   │
│   │  attacker   │ ──────────────────►│    victim-service        │   │
│   │ (DDoS/SQLi) │                    │    port 8080             │   │
│   └─────────────┘                    │    /admin/* control API   │   │
│                                      └────────────┬─────────────┘   │
└───────────────────────────────────────────────────│──────────────────┘
                                                    │ metrics + anomaly webhook
                   ┌────────────────────────────────▼─────────────────┐
                   │         Dynatrace Mock  (anomaly engine)          │
                   │  Threat Risk Score → fires POST /alerts/simulate  │
                   └────────────────────────┬─────────────────────────┘
                                            │ webhook
          ┌─────────────────────────────────▼──────────────────────────┐
          │          Google Cloud Agent Builder  (Vertex AI Agent)      │
          │  ┌──────────────────────────────────────────────────────┐  │
          │  │  Gemini 2.0 Flash  ──  reasons over threat context   │  │
          │  │  Tool manifest  ──  dynamically fetched from MCP     │  │
          │  │  HITL gate  ──  halts if confidence < threshold      │  │
          │  └──────────────────────────────────────────────────────┘  │
          └──────────────┬─────────────────────────┬───────────────────┘
                         │ REST calls                │ audit write
         ┌───────────────▼──────┐      ┌────────────▼──────────┐
         │  MCP Server  :8001   │      │  MongoDB 7.0  Atlas   │
         │  11 real tools       │      │  incidents + traces   │
         └───────────┬──────────┘      └───────────────────────┘
                     │ acts on live infra
         ┌───────────▼──────────┐
         │  FastAPI  :8000      │
         │  victim-service :8080│
         └──────────────────────┘

                   ┌──────────────────────────────────────────────────┐
                   │              OBSERVABILITY STACK                  │
                   │  OTel Collector ──► Jaeger  (distributed traces)  │
                   │  Prometheus ──────────────► Grafana               │
                   └──────────────────────────────────────────────────┘

Principio chiave di progettazione: Degradazione graduale + Human-in-the-Loop (HITL). L'agente Agent Builder si arresta in sicurezza e restituisce il controllo all'operatore quando non può prendere una decisione con sufficiente confidenza — non indovina mai sull'infrastruttura critica.


Demo Live — Google Cloud Run

Tutti e tre i servizi sono distribuiti e in esecuzione su Google Cloud Run:

ServizioURL
Centro di Comando (Dashboard)https://sentinel-api-62d3d66zda-uc.a.run.app/dashboard
Documentazione API Swaggerhttps://sentinel-api-62d3d66zda-uc.a.run.app/docs
Controllo Salutehttps://sentinel-api-62d3d66zda-uc.a.run.app/health
Catalogo Strumenti MCPhttps://sentinel-mcp-62d3d66zda-uc.a.run.app/mcp/tools
Servizio Vittimahttps://victim-service-62d3d66zda-uc.a.run.app

Esegui un attacco live contro la produzione:

root@kitploit:~
.\attack.production.ps1 status   # verify all services healthy
.\attack.production.ps1 ddos     # DDoS — Gemini blocks IPs + rate limit
.\attack.production.ps1 sql      # SQL Injection — Gemini activates WAF
.\attack.production.ps1 brute    # Brute Force — Gemini blocks source IPs
.\attack.production.ps1 stop     # reset defenses

Il contenitore dell'attaccante viene eseguito localmente e colpisce il servizio-vittima su Cloud Run tramite HTTPS. Guarda la dashboard del Centro di Comando per il ciclo completo di rilevamento → ragionamento → neutralizzazione in tempo reale.


Come utilizza Google Cloud Agent Builder

Google Cloud Agent Builder (Vertex AI ReasoningEngine) è l'orchestratore centrale di SentinelMCP. L'implementazione si trova in sentinel_mcp/agent/agent_builder.py.

SentinelAgent eredita da vertexai.preview.reasoning_engines.Queryable — l'interfaccia programmatica ufficiale di Agent Builder — e può essere eseguita localmente o distribuita al servizio gestito Agent Builder con un singolo comando.

ResponsabilitàImplementazione
Ricezione webhookSentinelAgent.query(incident=...) — chiamato da Agent Builder ad ogni allarme Dynatrace
Dichiarazioni strumenti6 strumenti MCP registrati come oggetti FunctionDeclaration di Vertex AI in set_up()
RagionamentoGemini 2.0 Flash legge il contesto della minaccia + il catalogo strumenti, seleziona gli strumenti minimi, li invoca automaticamente
Gate HITLSe Gemini non restituisce chiamate a strumenti (confidenza < soglia), viene emesso escalate_to_humans=True
AuditOgni chiamata a strumento registrata in MongoDB Atlas + esportata come span OTel a Jaeger

Codice chiave — sentinel_mcp/agent/agent_builder.py:

root@kitploit:~
class SentinelAgent(reasoning_engines.Queryable):

    def set_up(self):
        # MCP tools as Vertex AI FunctionDeclarations — Gemini selects at runtime
        mcp_tools = Tool(function_declarations=[
            FunctionDeclaration(name="block_ip_address", ...),
            FunctionDeclaration(name="activate_waf", ...),
            FunctionDeclaration(name="rate_limit_requests", ...),
            FunctionDeclaration(name="scale_service", ...),
            FunctionDeclaration(name="collect_forensic_logs", ...),
            FunctionDeclaration(name="analyze_attack_pattern", ...),
        ])
        self._model = GenerativeModel("gemini-2.0-flash-001", tools=[mcp_tools])
        self._chat = self._model.start_chat()

    def query(self, *, incident: dict) -> dict:
        # Entry point — Agent Builder calls this for every Dynatrace webhook
        response = self._chat.send_message(threat_prompt(incident))
        tool_calls = [{"name": p.function_call.name, "args": dict(p.function_call.args)}
                      for p in response.candidates[0].content.parts if p.function_call]
        return {"engine": "agent_builder", "tool_calls": tool_calls, ...}

Distribuisci su Google Cloud Agent Builder:

root@kitploit:~
# Test locally (no GCP needed with google_ai_studio backend)
python scripts/deploy_agent_builder.py --test-only

# Deploy to managed Agent Builder endpoint
python scripts/deploy_agent_builder.py --project my-gcp-project

Imposta Agent Builder come backend attivo:

root@kitploit:~
# .env
GEMINI_BACKEND=agent_builder
GOOGLE_CLOUD_PROJECT=my-gcp-project
VERTEX_LOCATION=us-central1

Come utilizza Dynatrace e MCP

Dynatrace

SentinelMCP integra l'osservabilità Dynatrace a tre livelli:

  1. Pipeline OpenTelemetry — Il sentinel-otel-collector ingerisce span e metriche dal core FastAPI e li inoltra all'endpoint Dynatrace Mock (OTLP/HTTP :14318). Ogni incidente, esecuzione di strumento e chiamata LLM viene tracciata end-to-end con ID di correlazione completi.

  2. Motore di anomalie con attivazione automatica — dynatrace-mock esegue un loop in background che monitora http_requests_total, calcola un Threat Risk Score (dynatrace_mock_sentinel_risk_score, 0–10) e attiva automaticamente POST /api/v1/alerts/simulate/{type} verso SentinelMCP quando il punteggio supera la soglia critica — replicando il comportamento esatto di un webhook di rilevamento anomalie Dynatrace Davis in produzione.

  3. Dashboard Grafana alimentata dalle metriche Dynatrace — Il gauge e la timeline del Risk Score consumano direttamente dynatrace_mock_sentinel_risk_score, rendendo possibile visualizzare il momento preciso in cui Dynatrace ha segnalato l'anomalia rispetto al momento in cui SentinelMCP ha ottenuto la neutralizzazione.

MCP (Model Context Protocol)

L'agente Gemini scopre le sue capacità difensive dinamicamente in fase di esecuzione — nessuna lista di strumenti hardcodata, nessuna riscrittura del prompt quando le capacità cambiano:

root@kitploit:~
GET /mcp/tools  →  returns 11 tool descriptors  →  Gemini selects and invokes tools

Ogni strumento è etichettato REAL o Audit-Only nel catalogo live. Gemini legge questo flag, capisce cosa può realmente fare sull'infrastruttura live e giustifica ogni selezione dello strumento nella sua traccia di ragionamento. Aggiungere una nuova capacità difensiva richiede zero ingegneria del prompt.

Strumenti che agiscono sull'infrastruttura live:

StrumentoCosa fa
block_ip_addressPOST /admin/block_ip — blocca gli IP dell'attaccante nel middleware in esecuzione
activate_wafPOST /admin/waf — abilita la modalità di blocco WAF nel servizio in esecuzione
rate_limit_requestsPOST /admin/rate_limit — limitatore di velocità a finestra scorrevole, attivo immediatamente
scale_serviceDocker SDK su socket — avvia repliche reali del contenitore sotto carico
rollbackPOST /admin/reset_defenses — dimostra il ciclo di vita completo dell'incidente: attacco → difesa → ripristino
collect_forensic_logsAcquisisce prove reali dai contenitori in esecuzione per revisione post-incidente
build_attack_timelineCronologia cronologica dai log live dei contenitori
analyze_attack_patternClassifica il tipo di attacco con dati reali del contesto dell'incidente
identify_iocsEstrae IP, user-agent e payload reali dai file live dell'incidente

Avvio Rapido

Requisiti: Docker Desktop 24+, credenziali Google Cloud o chiave API AI Studio, ~3 GB di disco, ~2 GB di RAM.

1 — Avvia lo stack

root@kitploit:~
docker compose up -d --build

Il primo avvio scarica le immagini di base (~3 GB, 5–10 min). Le esecuzioni successive richiedono meno di 1 minuto.

2 — Avvia il sandbox di simulazione

root@kitploit:~
cd simulacion
docker compose up -d victim-service
cd ..

3 — Verifica che tutto sia attivo

root@kitploit:~
docker compose ps
# Expected: 8 services running/healthy

curl http://localhost:8000/health
# Expected: {"status": "healthy", "service": "SentinelMCP", ...}

4 — Lancia un attacco e guarda l'IA difendere

root@kitploit:~
.\attack.ps1 ddos        # DDoS attack (default)
.\attack.ps1 sql         # SQL Injection
.\attack.ps1 brute       # Brute Force
.\attack.ps1 stop        # Stop attack + reset defenses
.\attack.ps1 status      # Check system state

Apri il Centro di Comando mentre l'attacco è in esecuzione:

root@kitploit:~
http://localhost:8000/dashboard

Guarda le 4 fasi in ~25 secondi:

  1. THREAT DETECTED — Dynatrace attiva l'allarme
  2. DEFENDING — Gemini legge il catalogo degli strumenti MCP, seleziona azioni, registra il ragionamento
  3. Esecuzione degli strumenti — IP bloccati, WAF abilitato, limitazione della velocità applicata (tutti reali)
  4. NEUTRALIZED — MTTD e MTTR visualizzati con traccia di audit completa

5 — Configura Google Cloud (Vertex AI)

SentinelMCP è basato su Gemini. Scegli il metodo di autenticazione adatto al tuo ambiente:

Opzione A — Google AI Studio (configurazione più rapida):

root@kitploit:~
# Edit .env
GOOGLE_API_KEY=AIza...your_key_here
GEMINI_BACKEND=google_ai_studio

Opzione B — Vertex AI su Google Cloud:

root@kitploit:~
gcloud auth application-default login
.\scripts\setup_gcloud.ps1   # sets project, creates SA key, updates .env automatically

Quindi riavvia il motore AI: docker compose restart api


Tutte le Interfacce

Produzione (Google Cloud Run)

URLCosa mostra
https://sentinel-api-62d3d66zda-uc.a.run.app/dashboardCentro di Comando — interfaccia demo principale
https://sentinel-api-62d3d66zda-uc.a.run.app/docsSwagger — esploratore API interattivo
https://sentinel-api-62d3d66zda-uc.a.run.app/healthControllo salute
https://sentinel-api-62d3d66zda-uc.a.run.app/api/v1/incidentsStorico incidenti (JSON)
https://sentinel-mcp-62d3d66zda-uc.a.run.app/mcp/toolsCatalogo strumenti MCP live letto da Gemini
https://victim-service-62d3d66zda-uc.a.run.appServizio vittima (il bersaglio sotto attacco)

Locale (Docker Compose)

URLCosa mostra
http://localhost:8000/dashboardCentro di Comando — interfaccia demo principale
http://localhost:8000/docsSwagger — esploratore API interattivo
http://localhost:8000/api/v1/incidentsStorico incidenti (JSON)
http://localhost:8000/api/v1/incidents/statistics/summaryMedie MTTD / MTTR su tutti gli incidenti
http://localhost:8001/mcp/toolsCatalogo strumenti MCP live letto da Gemini
http://localhost:8080Servizio vittima (il bersaglio sotto attacco)
http://localhost:14499Dynatrace Mock — metriche live + motore di anomalie
http://localhost:16686Jaeger — tracce distribuite
http://localhost:9090Prometheus — metriche grezze
http://localhost:3000Grafana — dashboard infrastruttura (admin / admin)

Scenari di Attacco

ScenarioScriptCosa succede
DDoS.\attack.ps1 ddosInondazione 1000 req/s; Gemini blocca IP + abilita limitazione velocità
SQL Injection.\attack.ps1 sqlRilevamento payload; Gemini attiva WAF in modalità blocco
Brute Force.\attack.ps1 bruteTentativi di login massivi; Gemini blocca IP sorgente + abilita WAF
Modalità AutoDashboard 🎯 Auto ONAttacchi casuali ogni 45–90 s, risposta completamente autonoma

Registro Strumenti MCP (11 strumenti)

root@kitploit:~
GET http://localhost:8001/mcp/tools
StrumentoCategoriaModalità
analyze_attack_patternanalisiREAL
identify_iocsanalisiREAL
block_ip_addressdifesaREAL → victim-service
activate_wafdifesaREAL → victim-service
rate_limit_requestsdifesaREAL → victim-service
scale_servicedifesaREAL → Docker SDK
collect_forensic_logsforenseREAL
build_attack_timelineforenseREAL
patch_vulnerabilitiesriparazioneAudit-Only
apply_hardeningriparazioneAudit-Only
rollbackriparazioneREAL → victim-service

SentinelMCP impiega una Modalità Audit Fail-Safe. Se l'infrastruttura di destinazione non è raggiungibile, l'agente registra le azioni intese senza interrompere la pipeline, garantendo una degradazione graduale. Gemini legge il flag REAL / Audit-Only nel catalogo — sa esattamente cosa può eseguire rispetto a cosa può solo raccomandare.


Struttura del Progetto

root@kitploit:~
sentinel_mcp/
├── api/              FastAPI core — routes, schemas, dashboard UI
├── agent/            Decision engine + LLM providers (Gemini 2.0 Flash, Vertex AI)
├── mcp_server/       MCP server + 11 tool implementations
├── services/         Incident service, remediation orchestrator, threat calculator
├── observability/    OTel / Dynatrace / SigNoz providers
└── core/             Config, logging, exceptions

simulacion/
├── victim-service/   FastAPI target service with /admin/* control plane
└── attacker/         Python attack engine (DDoS / SQLi / brute force)

docker/
├── prometheus.yml    Scrape config (victim-service at 5s interval)
└── grafana/          Auto-provisioned dashboard — 6-panel infrastructure witness

Stack Tecnologico

LivelloTecnologia
Orchestratore AgenteGoogle Cloud Agent Builder (Vertex AI Agent)
LLMGemini 2.0 Flash — via google-genai SDK
Protocollo StrumentiMCP (Model Context Protocol) — 11 strumenti reali
APIFastAPI + Uvicorn (Python 3.11)
DatabaseMongoDB 7.0 Atlas (Motor async)
OsservabilitàOpenTelemetry → Dynatrace
TracciamentoJaeger
MetrichePrometheus + Grafana
Client HTTPhttpx (async)
Orchestrazione ContenitoriDocker Compose v2
Scarica lo strumento