Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
sentinel-mcp — Système autonome de cybersécurité alimenté par l'IA utilisant MCP, Gemini 2.0 Flash, l'observabilité Dynatrace et MongoDB. Soumission au Google Cloud Hackathon. | Kitploit
Outils/GitLabGitLab/reyjesusq/sentinel-mcp
Outils DéfensifsSécurité CloudDétection d'IntrusionRéponse aux IncidentsSécurité de l'IADétection d'Anomalies
GitLabreyjesusq/sentinel-mcp

sentinel-mcp

Système autonome de cybersécurité alimenté par l'IA utilisant MCP, Gemini 2.0 Flash, l'observabilité Dynatrace et MongoDB. Soumission au Google Cloud Hackathon.

Voir le dépôt
7il y a 3 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

SentinelMCP — Système de Cyberdéfense Piloté par IA

Soumission au Google Cloud Hackathon — Détection et remédiation autonomes orchestrées par Google Cloud Agent Builder (Vertex AI Agent), propulsées par Gemini 2.0 Flash, le Model Context Protocol (MCP) et l'observabilité Dynatrace.

Agent Builder Gemini 2.0 Flash Dynatrace MongoDB MCP Protocol


Le Problème

Les équipes de sécurité font face à un MTTD de 30 minutes et un MTTR de 4 heures pour les incidents typiques. Le temps qu'un analyste humain détecte l'attaque, rédige la règle de pare-feu et la déploie, les dégâts sont déjà faits.

La Solution

SentinelMCP réduit le MTTD à < 30 secondes et le MTTR à < 30 secondes en déployant un agent Google Cloud Agent Builder qui reçoit les webhooks d'anomalies Dynatrace, les analyse avec Gemini 2.0 Flash, et exécute de véritables outils de défense via MCP — agissant sur l'infrastructure en direct, pas seulement en alertant.

root@kitploit:~
Webhook Dynatrace  →  Agent Builder reçoit l'alerte  →  Gemini raisonne  →  Outils MCP exécutent  →  Menace neutralisée
       1 s                        2 s                      8 s                  15 s                  25 s total

Le résultat : un cycle de vie d'incident qui nécessitait auparavant un analyste humain et 4 heures se termine désormais de manière autonome en moins de 30 secondes, avec une piste d'audit complète dans MongoDB et des traces distribuées dans Jaeger.


Architecture

root@kitploit:~
┌──────────────────────────────────────────────────────────────────────┐
│                         ENVIRONNEMENT SANDBOX                        │
│                                                                      │
│   ┌─────────────┐   100–1000 req/s   ┌──────────────────────────┐   │
│   │  attaquant  │ ──────────────────►│    victim-service        │   │
│   │ (DDoS/SQLi) │                    │    port 8080             │   │
│   └─────────────┘                    │    /admin/* API contrôle │   │
│                                      └────────────┬─────────────┘   │
└───────────────────────────────────────────────────│──────────────────┘
                                                    │ métriques + webhook d'anomalie
                   ┌────────────────────────────────▼─────────────────┐
                   │         Dynatrace Mock  (moteur d'anomalies)     │
                   │  Score de Risque de Menace → POST /alerts/simulate│
                   └────────────────────────┬─────────────────────────┘
                                            │ webhook
          ┌─────────────────────────────────▼──────────────────────────┐
          │          Google Cloud Agent Builder  (Agent Vertex AI)      │
          │  ┌──────────────────────────────────────────────────────┐  │
          │  │  Gemini 2.0 Flash  ──  analyse le contexte de menace │  │
          │  │  Manifeste d'outils ──  récupéré dynamiquement du MCP│  │
          │  │  Porte HITL ──  s'arrête si confiance < seuil        │  │
          │  └──────────────────────────────────────────────────────┘  │
          └──────────────┬─────────────────────────┬───────────────────┘
                         │ appels REST              │ écriture d'audit
         ┌───────────────▼──────┐      ┌────────────▼──────────┐
         │  Serveur MCP :8001   │      │  MongoDB 7.0 Atlas    │
         │  11 outils réels     │      │  incidents + traces   │
         └───────────┬──────────┘      └───────────────────────┘
                     │ agit sur l'infra en direct
         ┌───────────▼──────────┐
         │  FastAPI :8000       │
         │  victim-service:8080 │
         └──────────────────────┘

                   ┌──────────────────────────────────────────────────┐
                   │              STACK D'OBSERVABILITÉ                │
                   │  Collecteur OTel ──► Jaeger  (traces distribuées)│
                   │  Prometheus ──────────────► Grafana               │
                   └──────────────────────────────────────────────────┘

Principe de conception clé : Dégradation progressive + Humain dans la boucle (HITL). L'agent Agent Builder s'arrête en toute sécurité et redonne le contrôle à l'opérateur lorsque qu'il ne peut pas prendre une décision avec une confiance suffisante — il ne devine jamais sur une infrastructure critique.


Démo en direct — Google Cloud Run

Les trois services sont déployés et fonctionnent sur Google Cloud Run :

ServiceURL
Centre de commande (Tableau de bord)https://sentinel-api-62d3d66zda-uc.a.run.app/dashboard
Documentation API Swaggerhttps://sentinel-api-62d3d66zda-uc.a.run.app/docs
Vérification de santéhttps://sentinel-api-62d3d66zda-uc.a.run.app/health
Catalogue d'outils MCPhttps://sentinel-mcp-62d3d66zda-uc.a.run.app/mcp/tools
Service victimehttps://victim-service-62d3d66zda-uc.a.run.app

Exécuter une attaque en direct contre la production :

root@kitploit:~
.\attack.production.ps1 status   # vérifier que tous les services sont sains
.\attack.production.ps1 ddos     # DDoS — Gemini bloque les IP + limite de débit
.\attack.production.ps1 sql      # Injection SQL — Gemini active le WAF
.\attack.production.ps1 brute    # Force brute — Gemini bloque les IP sources
.\attack.production.ps1 stop     # réinitialiser les défenses

Le conteneur attaquant s'exécute localement et cible le service victime Cloud Run via HTTPS. Observez le tableau de bord du Centre de commande pour le cycle complet détection → raisonnement → neutralisation en temps réel.


Comment cela utilise Google Cloud Agent Builder

Google Cloud Agent Builder (Vertex AI ReasoningEngine) est l'orchestrateur central de SentinelMCP. L'implémentation se trouve dans sentinel_mcp/agent/agent_builder.py.

SentinelAgent hérite de vertexai.preview.reasoning_engines.Queryable — l'interface programmatique officielle d'Agent Builder — et peut être exécuté localement ou déployé vers le service géré Agent Builder avec une seule commande.

ResponsabilitéImplémentation
Réception du webhookSentinelAgent.query(incident=...) — appelé par Agent Builder pour chaque alerte Dynatrace
Déclarations d'outils6 outils MCP enregistrés comme objets FunctionDeclaration de Vertex AI dans set_up()
RaisonnementGemini 2.0 Flash lit le contexte de menace + le catalogue d'outils, sélectionne les outils minimaux, les invoque automatiquement
Porte HITLSi Gemini ne renvoie aucun appel d'outil (confiance < seuil), escalate_to_humans=True est émis
AuditChaque appel d'outil est enregistré dans MongoDB Atlas + exporté comme span OTel vers Jaeger

Code clé — 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, ...}

Déployer sur Google Cloud Agent Builder :

root@kitploit:~
# Tester localement (pas besoin de GCP avec le backend google_ai_studio)
python scripts/deploy_agent_builder.py --test-only

# Déployer vers le point de terminaison géré Agent Builder
python scripts/deploy_agent_builder.py --project mon-projet-gcp

Définir Agent Builder comme backend actif :

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

Comment cela utilise Dynatrace et MCP

Dynatrace

SentinelMCP intègre l'observabilité Dynatrace à trois niveaux :

  1. Pipeline OpenTelemetry — Le sentinel-otel-collector ingère les spans et métriques du cœur FastAPI et les transmet au point de terminaison Dynatrace Mock (OTLP/HTTP :14318). Chaque incident, exécution d'outil et appel LLM est tracé de bout en bout avec des identifiants de corrélation complets.

  2. Moteur d'anomalies avec déclenchement automatique — dynatrace-mock exécute une boucle en arrière-plan qui surveille http_requests_total, calcule un Score de Risque de Menace (dynatrace_mock_sentinel_risk_score, 0–10), et envoie automatiquement POST /api/v1/alerts/simulate/{type} à SentinelMCP lorsque le score franchit le seuil critique — reproduisant exactement le comportement d'un webhook de détection d'anomalie Dynatrace Davis en production.

  3. Tableau de bord Grafana alimenté par les métriques Dynatrace — La jauge de Score de Risque et la chronologie consomment directement dynatrace_mock_sentinel_risk_score, permettant de visualiser le moment précis où Dynatrace a signalé l'anomalie par rapport au moment où SentinelMCP a atteint la neutralisation.

MCP (Model Context Protocol)

L'agent Gemini découvre dynamiquement ses capacités de défense à l'exécution — aucune liste d'outils codée en dur, aucune réécriture de prompt lorsque les capacités changent :

root@kitploit:~
GET /mcp/tools  →  renvoie 11 descripteurs d'outils  →  Gemini sélectionne et invoque les outils

Chaque outil est étiqueté RÉEL ou Audit uniquement dans le catalogue en direct. Gemini lit ce drapeau, comprend ce qu'il peut réellement faire sur l'infrastructure en direct, et justifie chaque sélection d'outil dans sa trace de raisonnement. L'ajout d'une nouvelle capacité de défense ne nécessite aucun travail d'ingénierie de prompt.

Outils qui agissent sur l'infrastructure en direct :

OutilCe qu'il fait
block_ip_addressPOST /admin/block_ip — bloque les IP des attaquants dans le middleware en cours
activate_wafPOST /admin/waf — active le mode de blocage WAF dans le service en cours
rate_limit_requestsPOST /admin/rate_limit — limiteur de débit à fenêtre glissante, actif immédiatement
scale_serviceSDK Docker via socket — démarre de vrais conteneurs de réplicas sous charge
rollbackPOST /admin/reset_defenses — démontre le cycle de vie complet d'un incident : attaque → défense → restauration
collect_forensic_logsCapture des preuves réelles depuis les conteneurs en cours pour examen post-incident
build_attack_timelineChronologie à partir des journaux des conteneurs en direct
analyze_attack_patternClassifie le type d'attaque avec des données réelles de contexte d'incident
identify_iocsExtrait les IP réelles, user-agents et charges utiles des fichiers d'incident en direct

Démarrage rapide

Prérequis : Docker Desktop 24+, identifiants Google Cloud ou clé API AI Studio, ~3 Go de disque, ~2 Go de RAM.

1 — Démarrer la pile

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

Le premier téléchargement télécharge les images de base (~3 Go, 5–10 min). Les exécutions suivantes prennent moins d'1 minute.

2 — Démarrer le bac à sable de simulation

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

3 — Vérifier que tout est opérationnel

root@kitploit:~
docker compose ps
# Attendu : 8 services en cours d'exécution / sains

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

4 — Lancer une attaque et regarder l'IA se défendre

root@kitploit:~
.\attack.ps1 ddos        # Attaque DDoS (par défaut)
.\attack.ps1 sql         # Injection SQL
.\attack.ps1 brute       # Force brute
.\attack.ps1 stop        # Arrêter l'attaque + réinitialiser les défenses
.\attack.ps1 status      # Vérifier l'état du système

Ouvrez le Centre de commande pendant l'attaque :

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

Observez les 4 phases en ~25 secondes :

  1. MENACE DÉTECTÉE — Dynatrace déclenche l'alerte
  2. DÉFENSE EN COURS — Gemini lit le catalogue d'outils MCP, sélectionne les actions, enregistre le raisonnement
  3. Exécution d'outils — IP bloquées, WAF activé, limite de débit appliquée (tout est réel)
  4. NEUTRALISÉE — MTTD et MTTR affichés avec la piste d'audit complète

5 — Configurer Google Cloud (Vertex AI)

SentinelMCP est construit sur Gemini. Choisissez la méthode d'authentification adaptée à votre environnement :

Option A — Google AI Studio (configuration la plus rapide) :

root@kitploit:~
# Modifier .env
GOOGLE_API_KEY=AIza...votre_clé_ici
GEMINI_BACKEND=google_ai_studio

Option B — Vertex AI sur Google Cloud :

root@kitploit:~
gcloud auth application-default login
.\scripts\setup_gcloud.ps1   # définit le projet, crée la clé SA, met à jour .env automatiquement

Redémarrez ensuite le moteur IA : docker compose restart api


Toutes les interfaces

Production (Google Cloud Run)

URLCe qu'elle affiche
https://sentinel-api-62d3d66zda-uc.a.run.app/dashboardCentre de commande — interface utilisateur principale de la démo
https://sentinel-api-62d3d66zda-uc.a.run.app/docsSwagger — explorateur API interactif
https://sentinel-api-62d3d66zda-uc.a.run.app/healthVérification de santé
https://sentinel-api-62d3d66zda-uc.a.run.app/api/v1/incidentsHistorique des incidents (JSON)
https://sentinel-mcp-62d3d66zda-uc.a.run.app/mcp/toolsCatalogue d'outils MCP en direct tel que lu par Gemini
https://victim-service-62d3d66zda-uc.a.run.appService victime (la cible sous attaque)

Local (Docker Compose)

URLCe qu'elle affiche
http://localhost:8000/dashboardCentre de commande — interface utilisateur principale de la démo
http://localhost:8000/docsSwagger — explorateur API interactif
http://localhost:8000/api/v1/incidentsHistorique des incidents (JSON)
http://localhost:8000/api/v1/incidents/statistics/summaryMoyennes MTTD / MTTR sur tous les incidents
http://localhost:8001/mcp/toolsCatalogue d'outils MCP en direct tel que lu par Gemini
http://localhost:8080Service victime (la cible sous attaque)
http://localhost:14499Dynatrace Mock — métriques en direct + moteur d'anomalies
http://localhost:16686Jaeger — traces distribuées
http://localhost:9090Prometheus — métriques brutes
http://localhost:3000Grafana — tableau de bord d'infrastructure (admin / admin)

Scénarios d'attaque

ScénarioScriptCe qui se passe
DDoS.\attack.ps1 ddosInondation de 1000 req/s ; Gemini bloque les IP + active la limite de débit
Injection SQL.\attack.ps1 sqlDétection de charge utile ; Gemini active le WAF en mode blocage
Force brute.\attack.ps1 bruteMartèlement de connexion ; Gemini bloque les IP sources + active le WAF
Mode autoTableau de bord 🎯 Auto ONAttaques aléatoires toutes les 45–90s, réponse entièrement autonome

Registre d'outils MCP (11 outils)

root@kitploit:~
GET http://localhost:8001/mcp/tools
OutilCatégorieMode
analyze_attack_patternanalyseRÉEL
identify_iocsanalyseRÉEL
block_ip_addressdéfenseRÉEL → victim-service
activate_wafdéfenseRÉEL → victim-service
rate_limit_requestsdéfenseRÉEL → victim-service
scale_servicedéfenseRÉEL → SDK Docker
collect_forensic_logsforensiqueRÉEL
build_attack_timelineforensiqueRÉEL
patch_vulnerabilitiesremédiationAudit uniquement
apply_hardeningremédiationAudit uniquement
rollbackremédiationRÉEL → victim-service

SentinelMCP emploie un Mode d'audit à sécurité intégrée. Si l'infrastructure cible est inaccessible, l'agent enregistre les actions prévues sans casser le pipeline, assurant une dégradation progressive. Gemini lit le drapeau RÉEL / Audit uniquement dans le catalogue — il sait précisément ce qu'il peut exécuter par rapport à ce qu'il peut seulement recommander.


Structure du projet

root@kitploit:~
sentinel_mcp/
├── api/              Cœur FastAPI — routes, schémas, interface utilisateur du tableau de bord
├── agent/            Moteur de décision + fournisseurs LLM (Gemini 2.0 Flash, Vertex AI)
├── mcp_server/       Serveur MCP + implémentations des 11 outils
├── services/         Service d'incidents, orchestrateur de remédiation, calculateur de menace
├── observability/    Fournisseurs OTel / Dynatrace / SigNoz
└── core/             Configuration, journalisation, exceptions

simulacion/
├── victim-service/   Service cible FastAPI avec plan de contrôle /admin/*
└── attacker/         Moteur d'attaque Python (DDoS / SQLi / force brute)

docker/
├── prometheus.yml    Configuration de collecte (victim-service à intervalle de 5s)
└── grafana/          Tableau de bord auto-provisionné — 6 panneaux de témoin d'infrastructure

Stack technique

CoucheTechnologie
Orchestrateur d'agentGoogle Cloud Agent Builder (Agent Vertex AI)
LLMGemini 2.0 Flash — via SDK google-genai
Protocole d'outilsMCP (Model Context Protocol) — 11 outils réels
APIFastAPI + Uvicorn (Python 3.11)
Base de donnéesMongoDB 7.0 Atlas (Motor asynchrone)
ObservabilitéOpenTelemetry → Dynatrace
TraçageJaeger
MétriquesPrometheus + Grafana
Client HTTPhttpx (asynchrone)
Orchestration de conteneursDocker Compose v2
Télécharger l’outil