Реестр модулей Umbryx¶
Статус: живой документ — отражает текущую кодовую базу. Когда код меняет форму, обновляйте эту страницу вместе с ним.
Реестр различает три вида «модулей» в Umbryx: формальные серверные
модули-плагины (BackendModule), decorator-реестры подключаемых
адаптеров и manifest-модули расширений из каталога modules/
репозитория.
Раздел A: Формальные модули-плагины (BackendModule)¶
4 встроенных BackendModule регистрируются в app/plugins/loader.py.
| # | Модуль | Описание |
|---|---|---|
| A1 | topology |
Построитель сетевой топологии из импортов сканов. Гейтится registry.get("topology") в роутах; имеет собственный пакет роутеров (routers/topology/). |
| A2 | nmap_parser |
Парсер nmap XML + коннекторы инструментов сканирования (nmap, nuclei, netexec, httpx, ffuf, donpapi). |
| A3 | attacker_ssh |
Удалённое SSH-исполнение на атакующих машинах. Конфиг в global_settings.attacker_ssh_config; используется роутерами сканов/exec/bulk и core/attacker_transport.py. |
| A4 | c2_integration |
Синхронизация с C2-фреймворками (Adaptix, Mythic, Sliver; Cobalt Strike — на данном этапе не поддерживается). Пакет роутеров routers/c2/; фоновый цикл автосинхронизации. |
Каждый отключается админом (POST /api/modules/{id}/disable) без
поломки остальной платформы.
Раздел B: Decorator-реестры¶
Используют паттерн адаптера @Registry.register("type").
| # | Реестр | Зарегистрированное | Примечания |
|---|---|---|---|
| B1 | CloudProviderRegistry (ee/infra/cloud_provider.py) |
ssh_host, hetzner, proxmox, aws, docker, k8s, cloudflare_dns, route53_dns |
Адаптеры cloud- и DNS-провайдеров (стек инфры Enterprise). |
| B2 | DeployMethodRegistry (ee/infra/deploy_method.py) |
ssh, docker, k8s, terraform, ssh_bare |
ssh_bare ставит nginx прямо на хост через пакетный менеджер дистрибутива. |
| B3 | ProviderRegistry (legacy, ee/infra/provider_adapter.py) |
ssh, docker, k8s |
Заменён B1+B2; оставлен для обратной совместимости. |
| B4 | Реестр DNS-провайдеров | core: manual, cloudflare; EE добавляет адаптеры cloudflare_dns, route53_dns с синком зон и ANetExec DNS-01 |
DNS живёт под /api/infra-v2/dns в UI Platform Ops EE. |
| B5 | Бэкенд хранилища (core/storage.py) |
Локальная ФС, S3 | Хранилище loot, вложений и evidence. |
| B6 | Менеджер AI-провайдеров (core/ai_manager.py) |
anthropic, openai, groq, mistral, openrouter, ollama, litellm | OpenAI-совместимые локальные эндпоинты (ollama, litellm) для air-gap. |
| B7 | Диспетчер уведомлений (core/notifications.py) |
Telegram, Slack, Webhook | Управляется конфигурацией, fire-and-forget. |
Раздел C: Роутеры¶
Роутеры живут в app/routers/ (70+ модулей плюс пакеты c2/,
playbooks/ и topology/) и регистрируются централизованно в
app/routing.py::register_all. Enterprise добавляет
app/ee/routers/:
| EE-only роутер | Префикс |
|---|---|
dns_api |
/api/infra-v2/dns |
infra_v2_api |
/api/infra-v2 (провайдеры, стеки, сервисы, учётные данные, агенты) |
instance_templates_api, managed_instances_api, instance_credentials_api |
жизненный цикл управляемых экземпляров |
ssl_api |
сертификаты / ANetExec |
Заметные core-роутеры (не исчерпывающий список):
| Роутер | Префикс | Назначение |
|---|---|---|
auth, oidc_auth, oidc_admin, oidc_platform_admin |
/api/auth, /api/orgs/{id}/oidc-providers, /api/system/oidc-providers |
сессии, MFA, SSO |
projects, members, organizations, project_access |
/api/projects, /api/orgs |
жизненный цикл проектов и org, сводная информация о доступе |
hosts, creds, findings, notes, loots, domains |
/api/... |
сущности engagement |
scans, bulk_actions, attacker_exec, jobs |
/api/... |
операции на атакующих машинах |
пакет c2 (8 файлов) |
/api/c2 |
интеграции, сессии, exec, sync |
c2_ops_api |
/api/infra-v2/c2 |
listener по требованию и генерация полезной нагрузки |
пакет playbooks, automations_api |
/api/playbooks, /api/automations |
прогоны плейбуков и автоматизации |
sync_api |
/api/sync |
синхронизация между экземплярами (события с HMAC) |
firewall_configs |
/api/.../firewall-configs |
импорт конфигов файрволов/роутеров (9 вендоров) |
surface_monitor_api |
/api/.../watch |
мониторинг поверхности атаки |
deconfliction |
/api/.../deconfliction |
claims хостов между операторами |
ai_v2 |
/api/ai |
AI-чаты, провайдеры, настройки |
modules_api, plugins, system_modules |
/api/modules, /api/plugins, /api/admin/modules |
тумблеры модулей, .rnplugin-бандлы, серверная загрузка |
admin, audit, audit_api, system_api, system_metrics |
/api/admin, /api/audit, /api/system |
администрирование платформы |
Раздел D: Модели¶
app/models/ — ~47 файлов: проекты/участники/org/команды, сущности
engagement (hosts, creds, findings, notes, loot, scopes), infra v2
(стеки, сервисы, links, учётные данные, шаги развёртывания, записи DNS),
workstations (пул, доступ, SSH-ключи, actions), OIDC, лицензии,
AI-чаты, автоматизации, конфиги файрволов, прокси, снапшоты сканов,
surface watches и таблицы sync/конфликтов.
Раздел E: Manifest-модули расширений¶
Каталог modules/ репозитория — модули расширений с
manifest.yaml (см. Гайд разработчика модулей):
hello-world, ai-assistant, dns-management, notifications,
reporting, roe, ioc-tracker, playbook-automation.
Точки расширения фронта (sidebar nav, табы, панели, вью объектов)
регистрируются из этих манифестов и рендерятся через компоненты
ExtensionPoint.
Раздел F: Экраны фронта¶
Навигация фронта группирует вью в Overview / Recon / Exploit /
Automate / Infra / Output (см. frontend/src/constants.js::TAB_GROUPS).
Модули расширений добавляют табы и панели через реестр плагинов
(frontend/src/features/plugins/registry.js).