Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
sentinel-mcp — Автономная система киберзащиты на базе ИИ, использующая MCP, Gemini 2.0 Flash, Dynatrace observability и MongoDB. Заявка на хакатон Google Cloud. | Kitploit
Инструменты/GitLabGitLab/reyjesusq/sentinel-mcp
Оборонительные ИнструментыБезопасность облачных средОбнаружение ВторженийРеагирование на ИнцидентыБезопасность ИИОбнаружение Аномалий
GitLabreyjesusq/sentinel-mcp

sentinel-mcp

Автономная система киберзащиты на базе ИИ, использующая MCP, Gemini 2.0 Flash, Dynatrace observability и MongoDB. Заявка на хакатон Google Cloud.

Репозиторий
73 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

SentinelMCP — Система киберзащиты на базе ИИ

Работа для Google Cloud Hackathon — Автономное обнаружение угроз и реагирование, оркестрируемое Google Cloud Agent Builder (Vertex AI Agent), работающее на Gemini 2.0 Flash, Model Context Protocol (MCP) и Dynatrace observability.

Agent Builder Gemini 2.0 Flash Dynatrace MongoDB MCP Protocol


Проблема

Группы безопасности сталкиваются с MTTD в 30 минут и MTTR в 4 часа для типичных инцидентов. К тому времени, как человек-аналитик обнаружит атаку, напишет правило брандмауэра и развернет его, ущерб уже нанесен.

Решение

SentinelMCP сокращает MTTD до и MTTR до , развертывая , который получает вебхуки аномалий Dynatrace, анализирует их с помощью Gemini 2.0 Flash и вызывает реальные средства защиты через MCP — воздействуя на живую инфраструктуру, а не просто оповещая.

< 30 секунд
< 30 секунд
агента Google Cloud Agent Builder
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

Результат: жизненный цикл инцидента, который ранее требовал человека-аналитика и 4 часа, теперь завершается автономно менее чем за 30 секунд, с полным журналом аудита в MongoDB и распределенными трассировками в Jaeger.


Архитектура

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               │
                   └──────────────────────────────────────────────────┘

Ключевой принцип проектирования: Graceful degradation + Human-in-the-Loop (HITL). Агент Agent Builder безопасно останавливается и передает управление обратно оператору, когда не может принять решение с достаточной уверенностью — он никогда не гадает на критической инфраструктуре.


Живая демонстрация — Google Cloud Run

Все три сервиса развернуты и работают на Google Cloud Run:

СервисURL
Центр управления (Панель)https://sentinel-api-62d3d66zda-uc.a.run.app/dashboard
Документация Swagger APIhttps://sentinel-api-62d3d66zda-uc.a.run.app/docs
Проверка здоровьяhttps://sentinel-api-62d3d66zda-uc.a.run.app/health
Каталог инструментов MCPhttps://sentinel-mcp-62d3d66zda-uc.a.run.app/mcp/tools
Сервис жертвыhttps://victim-service-62d3d66zda-uc.a.run.app

Запустите живую атаку на production:

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

Контейнер атакующего запускается локально и нацеливается на Cloud Run victim-service через HTTPS. Смотрите панель Центра управления для полного цикла обнаружение → анализ → нейтрализация в реальном времени.


Как это использует Google Cloud Agent Builder

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:

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, ...}

Развертывание в 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

Установка Agent Builder в качестве активного бэкенда:

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

Как это использует Dynatrace и MCP

Dynatrace

SentinelMCP интегрирует наблюдаемость Dynatrace на трех уровнях:

  1. OpenTelemetry pipeline — sentinel-otel-collector принимает spans и метрики от ядра FastAPI и пересылает их на конечную точку Dynatrace Mock (OTLP/HTTP :14318). Каждый инцидент, выполнение инструмента и вызов LLM трассируются от начала до конца с полными корреляционными идентификаторами.

  2. Anomaly Engine with auto-trigger — dynatrace-mock запускает фоновый цикл, который отслеживает http_requests_total, вычисляет Threat Risk Score (dynatrace_mock_sentinel_risk_score, 0–10) и автоматически отправляет POST /api/v1/alerts/simulate/{type} в SentinelMCP, когда оценка превышает критический порог — воспроизводя точное поведение производственного вебхука обнаружения аномалий Dynatrace Davis.

  3. Grafana dashboard fed by Dynatrace metrics — датчик Risk Score и временная шкала потребляют dynatrace_mock_sentinel_risk_score напрямую, что позволяет визуализировать точный момент, когда Dynatrace зафиксировал аномалию, по сравнению с моментом, когда SentinelMCP достиг нейтрализации.

MCP (Model Context Protocol)

Агент Gemini динамически обнаруживает свои защитные возможности во время выполнения — никаких жестко заданных списков инструментов, никакого переписывания подсказок при изменении возможностей:

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

Каждый инструмент помечен как REAL или Audit-Only в живом каталоге. Gemini читает этот флаг, понимает, что он может реально сделать на живой инфраструктуре, и обосновывает каждый выбор инструмента в своей трассировке рассуждений. Добавление новой защитной возможности не требует никакого инженерного промпта.

Инструменты, действующие на живую инфраструктуру:

ИнструментЧто делает
block_ip_addressPOST /admin/block_ip — блокирует IP-адреса атакующего в работающем промежуточном ПО
activate_wafPOST /admin/waf — включает режим блокировки WAF в работающем сервисе
rate_limit_requestsPOST /admin/rate_limit — скользящий оконный ограничитель скорости, действует немедленно
scale_serviceDocker SDK через сокет — запускает реальные реплики контейнеров под нагрузкой
rollbackPOST /admin/reset_defenses — демонстрирует полный жизненный цикл инцидента: атака → защита → восстановление
collect_forensic_logsЗахватывает реальные доказательства из работающих контейнеров для последующего анализа инцидента
build_attack_timelineХронологическая шкала из живых журналов контейнеров
analyze_attack_patternКлассифицирует тип атаки с реальными данными контекста инцидента
identify_iocsИзвлекает реальные IP, user-agent и полезные данные из живых файлов инцидентов

Быстрый старт

Требования: Docker Desktop 24+, учетные данные Google Cloud или ключ API AI Studio, ~3 ГБ диска, ~2 ГБ ОЗУ.

1 — Запуск стека

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

Первый запуск загружает базовые образы (~3 ГБ, 5–10 мин). Последующие запуски занимают менее 1 минуты.

2 — Запуск симуляционной песочницы

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

3 — Проверка, что все работает

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

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

4 — Запуск атаки и наблюдение за защитой ИИ

root@kitploit:~
.\attack.ps1 ddos        # DDoS-атака (по умолчанию)
.\attack.ps1 sql         # SQL-инъекция
.\attack.ps1 brute       # Атака перебором
.\attack.ps1 stop        # Остановить атаку + сбросить защиту
.\attack.ps1 status      # Проверить состояние системы

Откройте Центр управления во время атаки:

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

Наблюдайте за 4 фазами в течение ~25 секунд:

  1. THREAT DETECTED — Dynatrace отправляет оповещение
  2. DEFENDING — Gemini читает каталог инструментов MCP, выбирает действия, записывает рассуждения
  3. Выполнение инструментов — IP заблокированы, WAF включен, ограничение скорости применено (все реально)
  4. NEUTRALIZED — MTTD и MTTR отображаются с полным журналом аудита

5 — Настройка Google Cloud (Vertex AI)

SentinelMCP построен на Gemini. Выберите метод аутентификации, подходящий для вашей среды:

Вариант A — Google AI Studio (самая быстрая настройка):

root@kitploit:~
# Отредактируйте .env
GOOGLE_API_KEY=AIza...your_key_here
GEMINI_BACKEND=google_ai_studio

Вариант B — Vertex AI на Google Cloud:

root@kitploit:~
gcloud auth application-default login
.\scripts\setup_gcloud.ps1   # устанавливает проект, создает ключ SA, автоматически обновляет .env

Затем перезапустите AI-движок: docker compose restart api


Все интерфейсы

Продуктивная среда (Google Cloud Run)

URLЧто показывает
https://sentinel-api-62d3d66zda-uc.a.run.app/dashboardЦентр управления — основной демо-интерфейс
https://sentinel-api-62d3d66zda-uc.a.run.app/docsSwagger — интерактивный обозреватель 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Живой каталог инструментов MCP в том виде, в котором его читает Gemini
https://victim-service-62d3d66zda-uc.a.run.appСервис жертвы (цель под атакой)

Локальная среда (Docker Compose)

URLЧто показывает
http://localhost:8000/dashboardЦентр управления — основной демо-интерфейс
http://localhost:8000/docsSwagger — интерактивный обозреватель API
http://localhost:8000/api/v1/incidentsИстория инцидентов (JSON)
http://localhost:8000/api/v1/incidents/statistics/summaryСредние значения MTTD / MTTR по всем инцидентам
http://localhost:8001/mcp/toolsЖивой каталог инструментов MCP в том виде, в котором его читает Gemini
http://localhost:8080Сервис жертвы (цель под атакой)
http://localhost:14499Dynatrace Mock — живые метрики + механизм аномалий
http://localhost:16686Jaeger — распределенные трассировки
http://localhost:9090Prometheus — сырые метрики
http://localhost:3000Grafana — панель инфраструктуры (admin / admin)

Сценарии атак

СценарийСкриптЧто происходит
DDoS.\attack.ps1 ddos1000 запросов/с флуд; Gemini блокирует IP + включает ограничение скорости
SQL Injection.\attack.ps1 sqlОбнаружение полезной нагрузки; Gemini активирует WAF в режиме блокировки
Brute Force.\attack.ps1 bruteПеребор логинов; Gemini блокирует исходные IP + включает WAF
Auto-modeПанель 🎯 Auto ONСлучайные атаки каждые 45–90 с, полностью автономный ответ

Реестр инструментов MCP (11 инструментов)

root@kitploit:~
GET http://localhost:8001/mcp/tools
ИнструментКатегорияРежим
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

SentinelMCP использует безопасный аудит-режим. Если целевая инфраструктура недоступна, агент записывает запланированные действия без нарушения конвейера, обеспечивая graceful degradation. Gemini читает флаг REAL / Audit-Only в каталоге — он точно знает, что может выполнить, а что может только рекомендовать.


Структура проекта

root@kitploit:~
sentinel_mcp/
├── api/              Ядро FastAPI — маршруты, схемы, пользовательский интерфейс панели управления
├── agent/            Движок принятия решений + провайдеры LLM (Gemini 2.0 Flash, Vertex AI)
├── mcp_server/       MCP сервер + 11 реализаций инструментов
├── services/         Сервис инцидентов, оркестратор исправлений, калькулятор угроз
├── observability/    Провайдеры OTel / Dynatrace / SigNoz
└── core/             Конфигурация, логирование, исключения

simulacion/
├── victim-service/   Целевой сервис FastAPI с плоскостью управления /admin/*
└── attacker/         Движок атак на Python (DDoS / SQL-инъекции / перебор)

docker/
├── prometheus.yml    Конфигурация сбора (victim-service с интервалом 5 с)
└── grafana/          Автоматически подготовленная панель — 6-панельная инфраструктурная панель

Технологический стек

СлойТехнология
Оркестратор агентаGoogle Cloud Agent Builder (Vertex AI Agent)
LLMGemini 2.0 Flash — через SDK google-genai
Протокол инструментовMCP (Model Context Protocol) — 11 реальных инструментов
APIFastAPI + Uvicorn (Python 3.11)
База данныхMongoDB 7.0 Atlas (Motor async)
НаблюдаемостьOpenTelemetry → Dynatrace
ТрассировкаJaeger
МетрикиPrometheus + Grafana
HTTP клиентhttpx (async)
Оркестрация контейнеровDocker Compose v2
Скачать инструмент