
Автономная система киберзащиты на базе ИИ, использующая MCP, Gemini 2.0 Flash, Dynatrace observability и MongoDB. Заявка на хакатон Google Cloud.
Работа для Google Cloud Hackathon — Автономное обнаружение угроз и реагирование, оркестрируемое Google Cloud Agent Builder (Vertex AI Agent), работающее на Gemini 2.0 Flash, Model Context Protocol (MCP) и Dynatrace observability.
Группы безопасности сталкиваются с MTTD в 30 минут и MTTR в 4 часа для типичных инцидентов. К тому времени, как человек-аналитик обнаружит атаку, напишет правило брандмауэра и развернет его, ущерб уже нанесен.
SentinelMCP сокращает MTTD до < 30 секунд и MTTR до < 30 секунд, развертывая агента Google Cloud Agent Builder, который получает вебхуки аномалий Dynatrace, анализирует их с помощью 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 │
└──────────────────────────────────────────────────┘
Ключевой принцип проектирования: Graceful degradation + Human-in-the-Loop (HITL). Агент Agent Builder безопасно останавливается и передает управление обратно оператору, когда не может принять решение с достаточной уверенностью — он никогда не гадает на критической инфраструктуре.
Все три сервиса развернуты и работают на Google Cloud Run:
| Сервис | 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 |
Запустите живую атаку на production:
.\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
Контейнер атакующего запускается локально и нацеливается на Cloud Run victim-service через HTTPS. Смотрите панель Центра управления для полного цикла обнаружение → анализ → нейтрализация в реальном времени.
Google Cloud Agent Builder (Vertex AI ReasoningEngine) является центральным оркестратором SentinelMCP. Реализация находится в sentinel_mcp/agent/agent_builder.py.
SentinelAgent наследуется от vertexai.preview.reasoning_engines.Queryable — официального программного интерфейса Agent Builder — и может запускаться локально или быть развернут в управляемый сервис Agent Builder одной командой.
| Обязанность | Реализация |
|---|---|
| Прием вебхуков | SentinelAgent.query(incident=...) — вызывается Agent Builder для каждого оповещения Dynatrace |
| Объявления инструментов | 6 инструментов MCP зарегистрированы как объекты Vertex AI FunctionDeclaration в set_up() |
| Рассуждение | Gemini 2.0 Flash читает контекст угрозы + каталог инструментов, выбирает минимальные инструменты, автоматически их вызывает |
| Ворота HITL | Если Gemini не возвращает вызовов инструментов (уверенность < порога), выдается escalate_to_humans=True |
| Аудит | Каждый вызов инструмента записывается в MongoDB Atlas + экспортируется как OTel span в Jaeger |
Ключевой код — 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()