Repository navigation
scenarios architect
Данный документ описывает сценарии работы Архитектора информационной безопасности (Security Architect), Enterprise-архитектора и Инфраструктурного архитектора при проектировании периметра защиты, интеграции платформы Shapoclyack в корпоративный ландшафт и обеспечении комплаенса.
graph TB
subgraph Enterprise ["Корпоративный IT-ландшафт"]
CMDB["CMDB / Active Directory<br/>(Владельцы, сервисы, критичность)"]
CICD["CI/CD Pipelines<br/>(GitLab, Jenkins, ArgoCD)"]
SIEM["SIEM / SOAR / SOC<br/>(QRadar, Splunk, MaxPatrol)"]
Jira["Issue Tracker<br/>(Jira, ServiceNow, DefectDojo)"]
end
subgraph Shapoclyack ["Платформа Shapoclyack"]
API["FastAPI Control Plane<br/>(RBAC, Multi-tenancy, Assets)"]
NATS["NATS JetStream<br/>(Durable Event Bus)"]
CH["ClickHouse & PostgreSQL<br/>(Аналитика & OLTP-состояние)"]
Agents["Distributed Agents Fleet<br/>(DMZ, Private Clouds, Branch Offices)"]
end
CMDB -->|PATCH /api/assets/{id}| API
CICD -->|Service Token /api/jobs| API
API -->|Outbound Webhooks / NATS| SIEM
API <-->|Two-way ticket sync| Jira
API <--> NATS
NATS <--> Agents
| Направление | Архитектурная задача | Реализация в Shapoclyack |
|---|---|---|
| EASM и инвентарь периметра | Выявление Shadow IT, учет активов, картографирование графа сервисов | Модуль org_profile, /attack-surface, /assets
|
| Сетевая топология и агенты | Проектирование безопасного размещения сканеров в DMZ и VPC | Распределенный флот Remote Agents через NATS JetStream |
| Интеграция с CMDB и каталогами | Автоматическое обогащение активов бизнес-контекстом и владельцами | Контракт PATCH /api/assets/{id} (context_source: cmdb/ad) |
| Встраивание в DevSecOps (CI/CD) | Автоматизированный контроль релизных контуров и динамических сред | Сервисные токены (/service-tokens), REST API, Idempotency-Key |
| SOC & Event-Driven архитектура | Потоковая передача событий об уязвимостях и новых активах | Webhooks dispatcher, NATS JetStream asset-event streams |
| Архитектура комплаенса | Автоматизированный аудит контролей PCI DSS, CIS Controls, ISO 27001 | Движок сигналов и каталоги фреймворков (/compliance) |
Архитектор формирует достоверную карту внешних активов организации, выявляя скрытые домены, забытые тестовые стенды и утечки инфраструктуры.
В модуле Организационного профиля архитектор запускает процесс анализа корневого домена компании:
- Анализ владения (Ownership Attribution): система опрашивает RDAP регистраторов доменов, RIPEstat/ARIN по диапазонам ASN и собирает Organization-поля TLS-сертификатов.
- Поиск ассоциированных доменов (Related Domains): платформа находит дочерние и партнерские домены компании.
- Граница безопасности (Promote-flow): найденные домены не добавляются в сканирование автоматически во избежание юридических рисков (сканирование чужой инфраструктуры). Архитектор валидирует список в UI и утверждает доверенные домены («Promote to approved scope»).
Архитектор использует визуализатор графа:
- Выявляются аномалии: нетипичные открытые порты в DMZ (например, доступность SSH, Redis, RDP наружу);
- Проверяется наличие «висячих записей» (Dangling CNAME), создающих риск атаки Subdomain Takeover при удалении ресурсов в публичных облаках (AWS S3, Azure Blob, GitHub Pages);
- Оценивается гигиена DNS (наличие DNSSEC, CAA-записей) и почтового периметра (SPF, DKIM, DMARC-политики
reject/quarantine).
Для сканирования изолированных сред (DMZ, сегменты обработки данных платежных карт, приватные облака AWS/GCP/Yandex Cloud) архитектор проектирует распределенную схему размещения воркеров.
[ Интернет ]
│
┌─────▼────────────────────────┐
│ Балансировщик / Ingress │
└─────┬────────────────────────┘
│
┌───────────▼────────────────────────────────────────────────────────┐
│ Корпоративный ЦОД / Kubernetes Cluster │
│ │
│ ┌────────────────────────┐ ┌───────────────────────────┐ │
│ │ FastAPI Control Plane │ ◄─────► │ NATS JetStream Cluster │ │
│ └───────────┬────────────┘ └─────────────▲─────────────┘ │
│ │ │ │
│ ┌───────────▼────────────┐ │ (TLS mTLS) │
│ │ PostgreSQL & ClickHouse│ │ │
│ └────────────────────────┘ │ │
└───────────────────────────────────────────────────┼────────────────┘
│
┌──────────────────────────────────────┴──────────────┐
│ │
┌────────────▼──────────────────────┐ ┌─────────────────────────▼────────────────────────┐
│ DMZ Segment Worker │ │ Isolated VPC / PCI DSS CDE Worker │
│ ┌───────────────────────────────┐ │ │ ┌──────────────────────────────────────────────┐ │
│ │ Shapoclyack Remote Agent │ │ │ │ Shapoclyack Remote Agent │ │
│ │ (Claiming jobs via NATS) │ │ │ │ (Claiming jobs via NATS) │ │
│ └───────────────────────────────┘ │ │ └──────────────────────────────────────────────┘ │
│ Исходящее соединение: │ │ Исходящее соединение: │
│ NATS:4222 / HTTPS:443 к Control │ │ NATS:4222 / HTTPS:443 к Control Plane │
│ НЕТ входящих сетевых портов! │ │ НЕТ входящих сетевых портов! │
└───────────────────────────────────┘ └──────────────────────────────────────────────────┘
- Никаких входящих портов на агентах: Remote Agent инициирует только исходящие сессии к центральному NATS JetStream и FastAPI Control Plane по mTLS.
-
Изоляция очередей тенантов: задачи тенанта изолированы в NATS-субъектах (
shapoclyack.jobs.<tenant_id>.*), агент одного тенанта физически не может перехватить задачи другого заказчика. -
Защита от сбоев (Leases & Fencing): агент получает задачу в аренду на ограниченное время (
claimed_until). Если агент завис или потерял связь, задача возвращается в очередь без потери статуса. Токен попытки (attempt) предотвращает запись устаревших результатов.
Точная оценка рисков невозможна без знания владельца и бизнес-назначения сервера. Архитектор настраивает сквозную синхронизацию с CMDB (ServiceNow, Jira Service Management, внутренние учетные системы).
Поля сущности Asset в Shapoclyack:
| Поле | Допустимые значения | Влияние на систему |
|---|---|---|
owner_email |
email ответственного | Автоматическое назначение ответственного за устранение (assignee) |
business_unit |
Свободный текст (название департамента) | Группировка находок и отчетов по дивизионам компании |
business_service |
Имя ИС (например, BillingCore) |
Агрегация риска по бизнес-системе |
environment |
production, staging, development, lab
|
Фильтрация в отчетах и приоритизация инцидентов |
data_classification |
public, internal, confidential, restricted
|
Оценка критичности в комплаенс-моделях |
asset_criticality |
0 (тест), 1 (низкая) ... 4 (бизнес-критичная) |
Прямой множитель Impact в формуле риска NIST SP 800-30 |
exposure_level |
internet, partner, internal, unknown
|
Экспертное определение доступности хоста |
context_source |
cmdb, ad, operator
|
Источник записи для аудита |
Скрипт синхронизации опрашивает CMDB и обновляет данные в Shapoclyack вызовом:
curl -X PATCH https://shapoclyack.company.local/api/assets/asset_prod_srv_42 \
-H "Authorization: Bearer $CMDB_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"owner_email": "team-lead-billing@company.com",
"business_unit": "FinTech Core",
"business_service": "PaymentGateway",
"environment": "production",
"data_classification": "restricted",
"asset_criticality": 4,
"exposure_level": "internet",
"context_source": "cmdb"
}'Каждое изменение автоматически фиксируется в журнале asset_context_events с фиксацией автора, старых и новых значений.
Архитектор выстраивает автоматизированный контроль качества безопасности при выпуске релизов в динамических тестовых средах (Dynamic Staging / Ephemeral Environments).
sequenceDiagram
autonumber
participant CI as GitLab CI / Jenkins
participant API as Shapoclyack API
participant Agent as Scanner Agent
participant Gate as Quality Gate Check
CI->>CI: Деплой ветки во временный стенд (staging-pr-42.test.local)
CI->>API: POST /api/jobs (service_token, intent: quick, targets: [FQDN])
API-->>CI: 201 Created (Job ID: job_xyz789)
loop Опрос статуса
CI->>API: GET /api/jobs/job_xyz789
API-->>CI: Status: running / succeeded
end
CI->>API: GET /api/runs/run_xyz789/findings?min_severity=high
API-->>CI: Список находок и NIST Risk Level
alt Обнаружены Critical/High уязвимости
CI->>Gate: Блокировка релиза (Quality Gate Failed)
else Уязвимостей нет
CI->>Gate: Успешный пропуск в продуктив
end
-
Сервисные токены (
/service-tokens): создаются с ограниченными правами для конкретного конвейера сборки. -
Идемпотентность запусков: использование заголовка
Idempotency-Key: commit-sha-build-idисключает дублирование сканов при повторном запуске пайплайна в GitLab CI.
Shapoclyack реализует доказательный подход к комплаенсу: система оценивает только то, что может подтвердить реальными техническими данными.
Вместо ручного проставления «галочек» платформа транслирует находки и конфигурации в строго типизированные сигналы:
-
unpatched_cve— наличие открытой CVE; -
overdue_remediation— нарушение установленного SLA устранения; -
weak_cryptography— устаревшие версии TLS 1.0/1.1, слабые шифры; -
insecure_protocol— открытый доступ к Telnet, FTP, незащищенному HTTP; -
exposed_admin_service— открытые интерфейсы SSH, RDP, баз данных, административных панелей; -
unowned_asset— сервер, у которого отсутствует назначенный владелец (owner_email).
- PCI DSS 4.0: требования 1.2.1 (ограничение трафика к админ-сервисам), 2.2.4/2.2.7 (отключение небезопасных протоколов), 4.2.1 (стойкая криптография при передаче), 6.3.3 (устранение High/Critical уязвимостей в установленные сроки), 11.3.1/11.3.2 (регулярное внутреннее и внешнее сканирование).
- CIS Controls v8: контроли 1.1 (инвентарь активов), 2.1 (инвентарь ПО), 4.6 (защита сетевых портов), 7.1/7.3/7.7 (управление уязвимостями и прикладными патчами).
- ISO/IEC 27001:2022: контроли A.5.9/A.5.10 (инвентарь активов и правила использования), A.8.8 (управление техническими уязвимостями), A.8.20/A.8.24 (сетевая безопасность и использование криптографии).
Архитектор использует выгрузки раздела /compliance для демонстрации внешним аудиторам объективных технических подтверждений выполнения контролей.