Безпека екосистеми
(Розділ: Екосистема та Мережа)
1) Цілі та принципи
Мета - забезпечити конфіденційність, цілісність і доступність (CIA) сервісів і даних при масштабуванні екосистеми та еволюції протоколів.
Принципи:- Zero-Trust by design: недовіряти мережі/хостам, перевіряти кожну дію по контексту.
- Least Privilege (PoLP) и need-to-know: доступ - мінімальний і вимірний.
- Cryptographic assurance: підписи/атестації/анкери замість «довіри за замовчуванням».
- Observability by default: сигнали безпеки вбудовані в протоколи.
- Defense-in-Depth: шарувата захист (identichnost→set→dannyye→vypusk).
- Secure-by-default: «закрито» за замовчуванням, явні allow-листи.
2) Модель загроз (High-level)
Мережа та периметр: DoS/L7-флуди, BGP/Anycast зловживання, MITM, DNS-підміна.
Ідентичності та ключі: компрометація ключів, уразливі токени, повтор підписів.
Дані: ексфільтрація PII, витік телеметрії, маніпуляції метаданими.
Ланцюжок поставок: шкідливі залежності/білди, підміна артефактів, вразливі SDK.
Протоколи/мости: реорги, підроблені пруфи, затримки DA, replay крос-ланцюгових повідомлень.
Внутрішні ризики: помилки конфігів, надлишкові права, слабкі процеси депрекейту.
3) Ідентичності та довіра
Ідентичності: 'org _ id','peer _ id', сервісні акаунти, користувачі.
Автентифікація: mTLS (X.509), OAuth2/OIDC (короткоживучі JWT, DPoP/PoP), WebAuthn для людей.
Авторизація: багаторівневий RBAC/ABAC + policy-as-code (OPA/Rego).
Узгодження можливостей (capability negotiation) при рукостисканні: оголошення версій, QoS, лімітів і допустимих доменів.
Політика (YAML)
yaml authz:
roles:
operator. p0: [payouts:write, events:subscribe, bridge:finalize]
reader. api: [rpc:read, catalog:read]
abac:
- when: {org_tier: "gold", region: "eu"}
allow: [qos:P0, data_class:P1]
tokens:
ttl_s: 900 rotation: "7d"
4) Мережева безпека і транспорт
Шлюзи/edge: WAF, L7-rate-limit, circuit-breaker, outlier-ejection.
Шифрування трафіку: TLS1. 3/mTLS, PFS, строгі ciphers, QUIC/HTTP/3.
Ізоляція: сегментація середовищ (prod/stage/dev), приватні сітки, egress-контроль, eBPF-firewall.
P2P: підписи повідомлень, анти-replay вікна, контроль бенкетів (allow/deny), ліміти gossip.
Приклад мережевих правил
yaml network:
ingress:
allow: ["443/tcp","443/udp"] # HTTPS/HTTP3 deny: [""]
egress:
allow_domains: [".trusted. psp",".oracle","crl. ocsp."]
waf:
block: ["sql-injection","xss","proto-smuggling"]
dos:
rps_per_ip: 200 burst: 400
5) Захист даних
Класи даних: P0 (платіж/ключі), P1 (операційні), P2 (лог/діагностика).
Шифрування: at-rest (AES-GCM/ChaCha20-Poly1305), ключі per-region/tenant, HSM/KMS, envelope-шифрування.
Токенізація і псевдонімізація PII; заборона PII в телеметрії/лейблах.
Резидентність: регіональні вольти і об'єктні склади, білі списки експортів.
Цілісність: хеш-адресація артефактів, мерклізація журналів.
Каталог політик зберігання (SQL)
sql
CREATE TABLE data_policies(
data_class TEXT, region TEXT, residency TEXT, kms_key TEXT, retention_days INT,
pii BOOLEAN, export_whitelist TEXT[]
);
6) Управління секретами і ключами
Генерація в HSM/KMS, ротація за розкладом і за подією (компрометація/звільнення).
Поділ повноважень (SoD) і M-of-N для критичних операцій.
Секрети тільки в секрет-менеджері (не в змінних оточення/репозиторіях).
Key pinning для міжсервісних mTLS, OCSP-stapling/CRL.
Політика ключів
yaml keys:
rotation_days: 30 pinning: true revoke_on:
- "suspicious_use"
- "employee_exit"
audit_required: ["signing_keys","bridge_keys"]
7) Безпечний ланцюжок поставок (SLSA-підхід)
Provenance: підписи артефактів (sigstore/cosign), SBOM, атестації збірок.
Ізоляція збірки: hermetic builds, відтворюваність, scan залежностей (SCA).
Політика релізів: canary/blue-green, SLO-гейти, kill-switch, відкати по хешу.
SDK/клієнт: CSP/Referrer-Policy, integrity-атрибути, анти-tamper.
yaml supply_chain:
require_sbom: true attestations: ["build","test","scan"]
deploy:
strategy: "canary"
gates: { error_rate_pct: 0. 4, tti_p95_ms: 2500 }
8) Доступи та привілеї
RBAC/ABAC: права за ролями/атрибутами, тимчасові ескалації (JIT).
Сервіси: розмежування читання/запис/адмін, заборона wildcard-прав.
Оператори: break-glass доступ по багатофактору, з записом сесії.
Аудит: незмінювані журнали (append-only), кореляція'request _ id/trace _ id'.
Реєстр ролей/прав (SQL)
sql
CREATE TABLE roles(name TEXT PRIMARY KEY, description TEXT);
CREATE TABLE permissions(role TEXT, resource TEXT, action TEXT, PRIMARY KEY(role,resource,action));
9) Спостережуваність, SLI/SLO і сигнали безпеки
SLI (ядро):- AuthN/AuthZ Success%, Anomalous Deny%;
- Key/Cert Drift (до закінчення/невідповідності);
- Integrity Violations (підписи, CSP);
- Abuse Signals: rate-limit hits, DoS/scan events;
- Data Residency Violations;
- Error Budget Burn по P0.
- Auth p95 ≤ 200 мс, Success ≥ 99. 95%;
- Підписані події ≥ 99. 9%;
- CSP порушень ≤ 0. 05% хітів;
- Порушень резидентності = 0.
Дашборди: Security Posture, Keys & Certs, Supply Chain, Abuse/DoS, Residency & DLP.
10) Реагування на інциденти (IR) і SOAR
Готовність: runbook'і на P0/P1, відповідальні 24 × 7, канали зв'язку.
Детекція: сигнатури/поведінкові правила, кореляція в SIEM, автоматизація SOAR.
Стримування: блок токенів/ключів, deny-лист маршрутів, quarantine топіків.
Ерадикація/відновлення: ротації, патчі, перезбирання, відновлення зі снапшотів.
Пост-мортем: протягом 72 год, екшен-айтеми, оновлення політик/тестів.
SOAR-правила (приклад)
yaml soar:
playbooks:
key_compromise:
trigger: ["anomalous_sign","suspicious_kid"]
actions: ["revoke_key","rotate","notify_owners","enable_strict_mode"]
11) Комплаєнс і резидентність
Регуляторні вимоги: зберігання/видалення даних (DSR), звітність, сертифікація RNG/криптографії.
Резидентність: per-region ключі і вольти, експорт за білими списками.
Процеси: регулярні аудити, журнал змін, timelock на критичні політики.
yaml residency:
eu: { pii: "tokenized", export: ["anonymized_metrics"] }
uk: { pii: "tokenized", export: [] }
compliance:
dsr:
erase_sla_days: 30 export_sla_days: 30
12) DR/BCP і стійкість
RPO/RTO цілі: P0 сервіси - RPO ≤ 5 хв, RTO ≤ 15 хв.
Geo-реплікація: актив-пасив/актив-актив, періодичні тести відновлення.
Ізольований режим: finalized-only, cache-only, обмеження «дорогих» операцій.
Резервні канали: незалежні IX/провайдери, шифровані міжрегіональні тунелі.
Політика DR
yaml dr:
rpo_min: 5 rto_min: 15 exercises: ["quarterly-failover","annual-blackhole"]
13) Метрики та тестування безпеки
Chaos-security: тесты MITM/DNS-poison/packet-loss/latency.
Red/Blue Team: сценарії фішингу, викрадення токенів, supply-chain ін'єкцій.
Tabletop-drills: моделювання прийняття рішень і комунікацій.
Автотести: SAST/DAST/IAST, fuzzing протоколів, лінтери політик.
14) Плейбуки інцидентів
A. компрометація ключа учасника
1.'revoke _ key'→'rotate'→ оновити довірений реєстр;
2. увімкнути strict-mode підписів; 3) пересігнувати критичні батчі; 4) звіт партнерам.
B. Порушення резидентності
1. Негайний блок експорту; 2) redaction/видалення; 3) повідомити DPO/Compliance; 4) оновити тести.
C. supply-chain ін'єкція
1. Відкат по хешу, kill-switch; 2) ревалідувати SBOM/атестації; 3) ротація токенів CI; 4) пост-мортем.
D. масовий DoS/L7-флуд
1. Активація посилених rate-лімітів/WAF; 2) Anycast-дреблінг; 3) пріоритизація P0; 4) спілкування з провайдерами.
E. drift політик/контрактів
1. Увімкнути deny для несумісних схем; 2) випуск адаптерів; 3) оновити лінтери/регістри.
15) Чек-лист впровадження (за кроками)
1. Введіть модель ідентичностей (org/peer/service/user) і mTLS + OIDC.
2. Опишіть policy-as-code (RBAC/ABAC), PoLP і JIT-ескалації.
3. Шифруйте дані «в дорозі» і «в спокої», токенізуйте PII, налаштуйте резидентність.
4. Увімкніть Supply-chain захист: підписи артефактів, SBOM, атестації, canary + kill-switch.
5. Налаштуйте WAF/Rate-limits/DoS-гварди та egress-контроль.
6. Підніміть SIEM/SOAR, опишіть SLI/SLO, алерти і дашборди Security.
7. Регламентуйте ротації ключів/сертів і break-glass доступи.
8. Відпрацюйте DR/BCP та ізольовані режими, проведіть навчання.
9. Організуйте аудит/логування та регулярні пост-мортеми.
10. Переглядайте політики щокварталу, автоматизуйте перевірки.
16) Глосарій
Zero-Trust - модель, де кожна дія перевіряється незалежно від локації.
PoLP - принцип мінімально необхідних прав.
Policy-as-Code - управління доступом/правилами через декларативні політики.
SLSA - рівні захищеності ланцюжка поставок ПЗ.
RPO/RTO - цільові значення втрати даних/часу відновлення.
DPoP/PoP - прив'язка токена до конкретного TLS-каналу/клієнта.
Strict-mode - режим, що забороняє невідповідні схеми/підписи.
Підсумок: безпека екосистеми - це не «міжмережевий екран і TLS», а сплав криптографічної довіри, строгих політик доступу, спостережуваності та операційної дисципліни. Слідування Zero-Trust, PoLP, supply-chain контролям і вимірним SLO перетворює безпеку в керовану інженерну практику, стійку до збоїв, атак і регуляторних змін.