
MCP, Gemini 2.0 Flash, Dynatrace अवलोकन क्षमता और MongoDB का उपयोग करने वाला स्वायत्त AI-संचालित साइबर रक्षा प्रणाली। Google Cloud Hackathon प्रस्तुति।
Google Cloud Hackathon प्रस्तुति — Google Cloud Agent Builder (Vertex AI Agent) द्वारा संचालित स्वायत्त खतरे का पता लगाना और उपचार, जो Gemini 2.0 Flash, Model Context Protocol (MCP) और Dynatrace observability द्वारा संचालित है।
सुरक्षा टीमों को सामान्य घटनाओं के लिए 30 मिनट का MTTD और 4 घंटे का MTTR का सामना करना पड़ता है। जब तक कोई मानव विश्लेषक हमले का पता लगाता है, फायरवॉल नियम लिखता है और उसे तैनात करता है, तब तक नुकसान हो चुका होता है।
SentinelMCP एक Google Cloud Agent Builder एजेंट तैनात करके MTTD को < 30 सेकंड और MTTR को < 30 सेकंड तक कम करता है, जो Dynatrace anomaly webhooks प्राप्त करता है, उन पर Gemini 2.0 Flash के साथ तर्क करता है, और MCP के माध्यम से वास्तविक रक्षा उपकरणों को आमंत्रित करता है — सिर्फ अलर्ट नहीं करता, बल्कि लाइव इंफ्रास्ट्रक्चर पर कार्य करता है।
Dynatrace webhook → Agent Builder receives alert → Gemini reasons → MCP tools execute → Threat neutralized
1 s 2 s 8 s 15 s 25 s total
परिणाम: एक घटना जीवनचक्र जिसके लिए पहले एक मानव विश्लेषक और 4 घंटे की आवश्यकता होती थी, अब स्वायत्त रूप से 30 सेकंड से भी कम समय में पूरा हो जाता है, MongoDB में पूर्ण ऑडिट ट्रेल और Jaeger में वितरित ट्रेस के साथ।
┌──────────────────────────────────────────────────────────────────────┐
│ 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 │
└──────────────────────────────────────────────────┘
मुख्य डिज़ाइन सिद्धांत: ग्रेसफुल डिग्रेडेशन + ह्यूमन-इन-द-लूप (HITL)। Agent Builder एजेंट सुरक्षित रूप से रुक जाता है और ऑपरेटर को नियंत्रण वापस सौंप देता है जब वह पर्याप्त आत्मविश्वास के साथ निर्णय नहीं ले पाता — यह महत्वपूर्ण बुनियादी ढांचे पर कभी अनुमान नहीं लगाता।
सभी तीन सेवाएं Google Cloud Run पर तैनात और चल रही हैं:
उत्पादन के विरुद्ध लाइव हमला चलाएं:
.\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
हमलावर कंटेनर स्थानीय रूप से चलता है और HTTPS के माध्यम से Cloud Run victim-service को लक्षित करता है। वास्तविक समय में पूर्ण पहचान → तर्क → निष्प्रभावीकरण चक्र के लिए कमांड सेंटर डैशबोर्ड देखें।
Google Cloud Agent Builder (Vertex AI ReasoningEngine) SentinelMCP का केंद्रीय ऑर्केस्ट्रेटर है। कार्यान्वयन sentinel_mcp/agent/agent_builder.py में रहता है।
SentinelAgent vertexai.preview.reasoning_engines.Queryable से विरासत में मिलता है — आधिकारिक Agent Builder प्रोग्रामेटिक इंटरफ़ेस — और एक ही कमांड के साथ स्थानीय रूप से चल सकता है या प्रबंधित Agent Builder सेवा में तैनात किया जा सकता है।
मुख्य कोड — sentinel_mcp/agent/agent_builder.py:
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, ...}
Google Cloud Agent Builder पर तैनात करें:
# 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
Agent Builder को सक्रिय बैकएंड के रूप में सेट करें:
# .env
GEMINI_BACKEND=agent_builder
GOOGLE_CLOUD_PROJECT=my-gcp-project
VERTEX_LOCATION=us-central1
SentinelMCP Dynatrace observability को तीन परतों पर एकीकृत करता है:
OpenTelemetry पाइपलाइन — sentinel-otel-collector FastAPI कोर से स्पैन और मेट्रिक्स इनजेस्ट करता है और उन्हें Dynatrace Mock एंडपॉइंट (OTLP/HTTP :14318) पर फॉरवर्ड करता है। प्रत्येक घटना, उपकरण निष्पादन और LLM कॉल को पूर्ण सहसंबंध आईडी के साथ एंड-टू-एंड ट्रेस किया जाता है।
स्वचालित ट्रिगर के साथ एनॉमली इंजन — dynatrace-mock एक बैकग्राउंड लूप चलाता है जो http_requests_total की निगरानी करता है, एक थ्रेट रिस्क स्कोर (dynatrace_mock_sentinel_risk_score, 0–10) की गणना करता है, और जब स्कोर क्रिटिकल थ्रेशोल्ड को पार कर जाता है तो स्वचालित रूप से SentinelMCP पर POST /api/v1/alerts/simulate/{type} फायर करता है — एक उत्पादन Dynatrace Davis एनॉमली डिटेक्शन वेबहुक के सटीक व्यवहार को दोहराता है।
Dynatrace मेट्रिक्स द्वारा संचालित Grafana डैशबोर्ड — रिस्क स्कोर गेज और टाइमलाइन सीधे dynatrace_mock_sentinel_risk_score का उपभोग करते हैं, जिससे उस सटीक क्षण को देखना संभव हो जाता है जब Dynatrace ने एनॉमली को फ्लैग किया था बनाम जब SentinelMCP ने निष्प्रभावीकरण प्राप्त किया था।
Gemini एजेंट अपनी रक्षा क्षमताओं को रनटाइम पर गतिशील रूप से खोजता है — कोई हार्डकोडेड उपकरण सूची नहीं, क्षमताओं के बदलने पर कोई प्रॉम्प्ट पुनर्लेखन नहीं:
GET /mcp/tools → returns 11 tool descriptors → Gemini selects and invokes tools
प्रत्येक उपकरण को लाइव कैटलॉग में REAL या Audit-Only लेबल किया जाता है। Gemini इस फ्लैग को पढ़ता है, समझता है कि वह लाइव इंफ्रास्ट्रक्चर पर वास्तव में क्या कर सकता है, और अपने तर्क ट्रेस में प्रत्येक उपकरण चयन को उचित ठहराता है। एक नई रक्षा क्षमता जोड़ने के लिए शून्य प्रॉम्प्ट इंजीनियरिंग की आवश्यकता होती है।
लाइव इंफ्रास्ट्रक्चर पर कार्य करने वाले उपकरण:
आवश्यकताएं: Docker Desktop 24+, Google Cloud क्रेडेंशियल्स या AI Studio API कुंजी, ~3 GB डिस्क, ~2 GB RAM।
docker compose up -d --build
पहली बार चलाने पर बेस इमेज डाउनलोड होती हैं (~3 GB, 5–10 मिनट)। बाद के रन 1 मिनट से कम समय लेते हैं।
cd simulacion
docker compose up -d victim-service
cd ..
docker compose ps
# Expected: 8 services running/healthy
curl http://localhost:8000/health
# Expected: {"status": "healthy", "service": "SentinelMCP", ...}
.\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
हमला चलने के दौरान कमांड सेंटर खोलें:
http://localhost:8000/dashboard
~25 सेकंड में 4 चरण देखें:
THREAT DETECTED — Dynatrace अलर्ट फायर करता हैDEFENDING — Gemini MCP उपकरण कैटलॉग पढ़ता है, क्रियाओं का चयन करता है, तर्क लॉग करता हैNEUTRALIZED — पूर्ण ऑडिट ट्रेल के साथ MTTD और MTTR प्रदर्शितSentinelMCP Gemini पर बनाया गया है। अपने वातावरण के अनुकूल प्रमाणीकरण विधि चुनें:
विकल्प A — Google AI Studio (सबसे तेज़ सेटअप):
# Edit .env
GOOGLE_API_KEY=AIza...your_key_here
GEMINI_BACKEND=google_ai_studio
विकल्प B — Google Cloud पर Vertex AI:
gcloud auth application-default login
.\scripts\setup_gcloud.ps1 # sets project, creates SA key, updates .env automatically
फिर AI इंजन को पुनरारंभ करें: docker compose restart api
GET http://localhost:8001/mcp/tools
SentinelMCP Fail-Safe Audit Mode नियोजित करता है। यदि लक्ष्य बुनियादी ढांचा अप्राप्य है, तो एजेंट पाइपलाइन को तोड़े बिना इच्छित कार्यों को रिकॉर्ड करता है, ग्रेसफुल डिग्रेडेशन सुनिश्चित करता है। Gemini कैटलॉग में REAL / Audit-Only फ्लैग पढ़ता है — यह ठीक से जानता है कि वह क्या निष्पादित कर सकता है बनाम वह केवल क्या अनुशंसा कर सकता है।
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
| सेवा | URL |
|---|
| कमांड सेंटर (डैशबोर्ड) | https://sentinel-api-62d3d66zda-uc.a.run.app/dashboard |
| Swagger API दस्तावेज़ | https://sentinel-api-62d3d66zda-uc.a.run.app/docs |
| स्वास्थ्य जांच | https://sentinel-api-62d3d66zda-uc.a.run.app/health |
| MCP उपकरण सूची | https://sentinel-mcp-62d3d66zda-uc.a.run.app/mcp/tools |
| पीड़ित सेवा | https://victim-service-62d3d66zda-uc.a.run.app |
| जिम्मेदारी | कार्यान्वयन |
|---|
| वेबहुक इनटेक | SentinelAgent.query(incident=...) — Agent Builder द्वारा प्रत्येक Dynatrace अलर्ट पर कॉल किया जाता है |
| उपकरण घोषणाएं | 6 MCP उपकरण set_up() में Vertex AI FunctionDeclaration ऑब्जेक्ट के रूप में पंजीकृत हैं |
| तर्क | Gemini 2.0 Flash खतरे के संदर्भ + उपकरण कैटलॉग पढ़ता है, न्यूनतम उपकरणों का चयन करता है, उन्हें स्वचालित रूप से आमंत्रित करता है |
| HITL गेट | यदि Gemini कोई उपकरण कॉल नहीं लौटाता (आत्मविश्वास < सीमा), तो escalate_to_humans=True उत्सर्जित होता है |
| ऑडिट | प्रत्येक उपकरण कॉल MongoDB Atlas में लॉग की जाती है और Jaeger को OTel span के रूप में निर्यात की जाती है |
| उपकरण | यह क्या करता है |
|---|
block_ip_address | POST /admin/block_ip — चल रहे मिडलवेयर में हमलावर IP को ब्लॉक करता है |
activate_waf | POST /admin/waf — चल रही सेवा में WAF ब्लॉकिंग मोड सक्षम करता है |
rate_limit_requests | POST /admin/rate_limit — स्लाइडिंग-विंडो रेट लिमिटर, तुरंत सक्रिय |
scale_service | सॉकेट पर Docker SDK — लोड के तहत वास्तविक रेप्लिका कंटेनर शुरू करता है |
rollback | POST /admin/reset_defenses — पूर्ण घटना जीवनचक्र प्रदर्शित करता है: हमला → बचाव → पुनर्स्थापना |
collect_forensic_logs | घटना के बाद की समीक्षा के लिए चल रहे कंटेनरों से वास्तविक साक्ष्य कैप्चर करता है |
build_attack_timeline | लाइव कंटेनर लॉग से कालानुक्रमिक समयरेखा |
analyze_attack_pattern | वास्तविक घटना संदर्भ डेटा के साथ हमले के प्रकार को वर्गीकृत करता है |
identify_iocs | लाइव घटना फ़ाइलों से वास्तविक IP, user-agents और payloads निकालता है |
| URL | यह क्या दिखाता है |
|---|
| https://sentinel-api-62d3d66zda-uc.a.run.app/dashboard | कमांड सेंटर — मुख्य डेमो UI |
| https://sentinel-api-62d3d66zda-uc.a.run.app/docs | Swagger — इंटरैक्टिव API एक्सप्लोरर |
| https://sentinel-api-62d3d66zda-uc.a.run.app/health | स्वास्थ्य जांच |
| https://sentinel-api-62d3d66zda-uc.a.run.app/api/v1/incidents | घटना इतिहास (JSON) |
| https://sentinel-mcp-62d3d66zda-uc.a.run.app/mcp/tools | Gemini द्वारा पढ़ी गई लाइव MCP उपकरण सूची |
| https://victim-service-62d3d66zda-uc.a.run.app | पीड़ित सेवा (हमले के तहत लक्ष्य) |
| URL | यह क्या दिखाता है |
|---|
http://localhost:8000/dashboard | कमांड सेंटर — मुख्य डेमो UI |
http://localhost:8000/docs | Swagger — इंटरैक्टिव API एक्सप्लोरर |
http://localhost:8000/api/v1/incidents | घटना इतिहास (JSON) |
http://localhost:8000/api/v1/incidents/statistics/summary | सभी घटनाओं में MTTD / MTTR औसत |
http://localhost:8001/mcp/tools | Gemini द्वारा पढ़ी गई लाइव MCP उपकरण सूची |
http://localhost:8080 | पीड़ित सेवा (हमले के तहत लक्ष्य) |
http://localhost:14499 | Dynatrace Mock — लाइव मेट्रिक्स + एनॉमली इंजन |
http://localhost:16686 | Jaeger — वितरित ट्रेस |
http://localhost:9090 | Prometheus — कच्ची मेट्रिक्स |
http://localhost:3000 | Grafana — बुनियादी ढांचा डैशबोर्ड (admin / admin) |
| परिदृश्य | स्क्रिप्ट | क्या होता है |
|---|
| DDoS | .\attack.ps1 ddos | 1000 req/s बाढ़; Gemini IP ब्लॉक करता है + रेट लिमिट सक्षम करता है |
| SQL Injection | .\attack.ps1 sql | Payload पहचान; Gemini WAF को ब्लॉकिंग मोड में सक्रिय करता है |
| Brute Force | .\attack.ps1 brute | लॉगिन हैमरिंग; Gemini स्रोत IP ब्लॉक करता है + WAF सक्षम करता है |
| ऑटो-मोड | डैशबोर्ड 🎯 Auto ON | हर 45–90 सेकंड में यादृच्छिक हमले, पूरी तरह से स्वायत्त प्रतिक्रिया |
| उपकरण | श्रेणी | मोड |
|---|
analyze_attack_pattern | विश्लेषण | REAL |
identify_iocs | विश्लेषण | REAL |
block_ip_address | रक्षा | REAL → victim-service |
activate_waf | रक्षा | REAL → victim-service |
rate_limit_requests | रक्षा | REAL → victim-service |
scale_service | रक्षा | REAL → Docker SDK |
collect_forensic_logs | फोरेंसिक | REAL |
build_attack_timeline | फोरेंसिक | REAL |
patch_vulnerabilities | उपचार | Audit-Only |
apply_hardening | उपचार | Audit-Only |
rollback | उपचार | REAL → victim-service |
| परत | प्रौद्योगिकी |
|---|
| एजेंट ऑर्केस्ट्रेटर | Google Cloud Agent Builder (Vertex AI Agent) |
| LLM | Gemini 2.0 Flash — google-genai SDK के माध्यम से |
| उपकरण प्रोटोकॉल | MCP (Model Context Protocol) — 11 वास्तविक उपकरण |
| API | FastAPI + Uvicorn (Python 3.11) |
| डेटाबेस | MongoDB 7.0 Atlas (Motor async) |
| ऑब्जर्वेबिलिटी | OpenTelemetry → Dynatrace |
| ट्रेसिंग | Jaeger |
| मेट्रिक्स | Prometheus + Grafana |
| HTTP क्लाइंट | httpx (async) |
| कंटेनर ऑर्केस्ट्रेशन | Docker Compose v2 |