GH GambleHub

Modelowanie zagrożeń i kontrola ryzyka

1) Zasady

1. Architektoniczny pierwszy. Zaczynamy od kontekstów, granic zaufania i przepływów danych.
2. Prawdopodobieństwo ryzyka × wpływ. Mierzymy, nie czujemy.
3. Obrona w głębi. Sterowanie na każdej warstwie: kod → protokół → platforma → ludzie.
4. Zmiana w lewo/prawo. Wczesne bramy w PR + monitorowanie i reakcja w prod.
5. Prywatność przez Design. Symulujemy nie tylko zagrożenia bezpieczeństwa, ale także zagrożenia prywatności.
6. Automatyzuj tam, gdzie to możliwe. Zasady jako kod, automatyczne kontrole, „czerwone linie”.


2) Inwentaryzacja: aktywa, podmioty, granice zaufania

Aktywa: dane (PII, finanse, sekrety), zasoby obliczeniowe, klucze, dostęp, procesy biznesowe.
Tematy: użytkownicy, usługi, administratorzy, partnerzy, dostawcy zewnętrzni.
Granice zaufania: użytkownicy z przodu, przednia brama API, bazy danych/bufory/kolejki, regiony/chmury.
Powierzchnia ataku: punkty wejściowe (API, webhaki, interfejsy użytkowe, sieci, CI/CD, łańcuch dostaw).

DFD (przykład, Syrenka):
mermaid flowchart LR
U[Пользователь] -- TLS --> WAF[WAF/CDN]
WAF --> GW[API Gateway]
GW --> Svc[Service A]
Svc --> DB[(Postgres)]
Svc --> MQ[[Kafka]]
MQ --> SvcB[Service B]
subgraph Trust Boundary
GW; Svc; SvcB end

3) Ramy zagrożenia

STRIDE (беровасноста): Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege.
LINDDUN (бриватноста): Linkability, Identifiability, Non-repudiation, Detectability, Disclosure, Unawareness, Non-compliance.
PASTA (proces): od celów biznesowych i podmiotów zagrożenia → szczegóły techniczne → scenariusze testów.

Tabela (fragment, komponenty STRIDE ×):
KomponentSTRJADEKontrola
Brama APImTLS/OIDC, WAF, rate-limit, audyt, HSTS
KafkaACL, podpisane wydarzenia, kwoty, DLQ
PostgresTLS, RLS, KMS, migracje z walidacją

4) Ocena ryzyka

DREAD/OWASP Risk Rating lub CVSS dla słabości.
Prawdopodobieństwo (L): motyw/możliwości napastnika, złożoność, ekspozycja na powierzchnię.
Wpływ (I): finansowanie, ryzyko prawne, przestoje, wycieki PD.
Ryzyko (R = L × I) → Priorytety i tritment: Unikaj/Zmniejszaj/Przenoś/Akceptuj.

Macierz (przykład):

Impact
Low Med High Critical
Lik Low  L  L  M   H
Med  L  M  H   H
High M  H  High  Crit

Rejestr ryzyka (minimalne pola): „identyfikator, scenariusz, STRIDE, aktywa, L, I, R, właściciele, kontrole, status, data zmiany”.


5) Sterowanie: Zapobieganie/wykrywanie/reagowanie

Zapobieganie:
  • Uwierzytelnianie/autoryzacja: OIDC/OAuth2, PoLP, RBAC/ABAC, krótkoterminowe kredyty serwisowe.
  • Sekrety/klucze: KMS/HSM, obrót, nie wiem, szyfrowanie FPE/pole.
  • Bezpieczne protokoły: TLS1. 2 +, mTLS, podpisy webhook, idempotence i anty-replay.
  • Walidacja/kanalizacja: schematy (JSON Schema/Proto), granice, normalizacja.
  • Izolacja: zasady sieci, segmentacja, piaskownica, obszary nazw, grodzie.
Wykrywanie:
  • Dzienniki audytu (nierozpoznawalne), korelacja w SIEM, wpisy do anomalii.
  • Podpis monitorujący i integralność (eksport hashes artefaktu, zaświadczenie).
  • Pszczoły/kanarki do wczesnego wykrywania wycieków kluczy.
Odpowiedź:
  • Runbook IR: klasyfikacja, izolacja, odwołanie kluczy, alerty, technicy sądowi.
  • Automatyczne kill-switch/feature-flag, „czarne listy” żetonów.
  • Powiadomienia użytkowników/regulatorów w przypadku incydentów PD.

6) SDL i bramy bezpieczeństwa

W idei/projekcie: model zagrożenia (RFC/ADR), lista kontrolna sterowania.
W rozwoju: SAST/secret-scan, skany zależności (SCA), polityka zależności.
W zgromadzeniu: SBOM, podpis artefakt, polityka podatności (progi CVSS).
W dziedzinie: OPA/Kyverno - IaC/manifest policy (na przykład kontekst, polityka sieciowa, tajne przekazywanie).
W sprzedaży: IDS/WAF, wykrywanie anomalii, kontrole kanaryjskie, bezpieczeństwo chaosu (na przykład, wygasły certyfikat).

Przykład bramy (Policy as Code, pseudo-Rego):
rego package policy.cicd deny[msg] {
some v input.sbom.vulns[v].cvss >= 7.0 msg:= sprintf("High vuln blocked: %s %s", [v.package, v.id])
}
deny[msg] {
input.k8s.pod.spec.securityContext.runAsRoot == true msg:= "RunAsRoot forbidden"
}

7) Łańcuch dostaw i zaufanie do artefaktów

SBOM na obraz/pakiet; aktualizacje zależności - poprzez bot/policy.
SLSA/Pochodzenie: powtarzalne zespoły, podpisy, zaświadczenia.
Pojemniki: minimalne obrazy, bez korzeni, możliwości spadania, tylko do odczytu FS.
Skany IaC: Terraform/Helm - zasady szyfrowania, otwarte porty, zasady sieci.


8) Prywatność i zgodność

LINDDUN-mapa zagrożeń dla prywatności, minimalizacja danych, pseudonimizacja/anonimizacja.
Polityka zatrzymywania: TTL/retencja, „prawo do usunięcia”, kontrola dostępu do PD.
Lokalizacja: ograniczenia geograficzne, „dane pozostają w regionie”.
Przejrzystość: rejestry przetwarzania, powiadamiania i zgody.


9) Chmury i obwody

Zero Trust: uwierzytelnianie każdego żądania, mTLS/OPA między usługami.
Segmentacja: VPC/podsieci/SG, prywatne punkty końcowe, kontrola wyjścia.
Klucze/sekrety: KMS, obrót, krótkie kredyty w CI (federacja OIDC).
Rezerwa/DR: zaszyfrowane kopie zapasowe, klucze oddzielnie, próby odzyskiwania.


10) Czerwone/fioletowe zespoły i ćwiczenia stołowe

Czerwony zespół: testowanie hipotez zagrożenia, inżynieria społeczna, eksploatacja łańcucha.
Purple Team: wspólne debugowanie wykrywaczy/wpisów, poprawa IR odtwarzaczy.
Tablop: skrypty "wygasły certyfikat", "wyciekłe klucze", "kompromis łańcucha dostaw. "Rezultatem jest aktualizacja kontroli i mierników.


11) Wskaźniki zapadalności i zarządzanie

Zasięg:% usług z obecnym modelem zagrożenia i DFD.
Bezpieczeństwo MTTD/MTTR, odsetek incydentów złapanych przez kontrole.
Pass-rate polityki w CI, czas na zamknięcie słabości przez krytykę.
Prywatność:% zbiorów danych z TTL/ILM, udział dostępu z uzasadnieniem.
Audyt: prawidłowość przeglądu rejestru ryzyka (kwartalny).


12) Wzory artefaktów

12. 1 Karta ryzyka (przykład)


Risk ID: SEC-API-012
Сценарий: SSRF через изображение в профиле
STRIDE: Tampering/Info Disclosure
Актив: API / файловый прокси
Likelihood: High  Impact: High  Risk: Critical
Контроли: denylist схем, egress-прокси, URL-fetcher в изолированном рантайме,
DNS-resolv только через прокси, время/размер-лимиты, allowlist.
Владелец: team-accounts  Статус: Reduce (в работе)
Дата пересмотра: 2025-12-01

12. 2 Lista kontrolna projektu

Aktywa i PII zidentyfikowane? Granice zaufania oznaczone?
Czy DFD/pętle danych są skomponowane i mapowane do ADR?
STRZAŁKA/LINDDUN przemierzała każdą strzałkę DFD?
Wybrany tritment ryzyka; czy właściciele/terminy/DoD?
Zasady jako kod dodany (OPA/Kyverno/CI bramki)?
Plan monitorowania/wpisy i zaktualizowany IR-runbook?
Prywatność: minimalizacja, szyfrowanie, TTL/retencja, lokalizacja?

12. 3 Polityka Webhook (pseudokoda)

python def verify_webhook(req, keys):
ts = int(req.h["X-Timestamp"])
if abs(now_utc()-ts) > 300: return 401 if not hmac_ok(req.body, ts, keys.active_or_prev(), req.h["X-Signature"]):
return 401 if replay_cache.seen(req.h["X-Event-ID"]): return 200
PoLP: в обработчике — только нужные скоупы handle(json.loads(req.body))
replay_cache.mark(req.h["X-Event-ID"])
return 200

13) Anty-wzory

Model zagrożenia „na pokaz” bez DFD/niezmiennych.
„Superobwodu” bez uwierzytelniania usług wewnętrznych.
Długotrwałe tajemnice w środowisku/zmiennych repo.
Zasady nie wbudowane jako kod → instrukcja „zapomniane”.
Dzienniki z PD bez kamuflażu i bez retencji/TTL.
Ignorowanie łańcucha dostaw (brak SBOM/podpisów/skanów).
Akceptuj bez właściciela i daty zmiany.


14) Integracja z procesami

RFC/ADR - Każde znaczące rozwiązanie zawiera sekcję Zagrożenia i Kontroli.
Docs-as-Code: model zagrożenia, DFD, rejestr ryzyka w wersji obok kodu.
Bramki uwolnienia: zwolnienie jest zablokowane, gdy zasady SAST/SCA/SBOM nie działają lub brakuje kontroli o dużej powadze.
Szkolenie: playbooks dla programistów (sekrety, podpisy, PoLP), regularny tablet.


Wniosek

Modelowanie zagrożeń to praktyka inżynieryjna zarządzania ryzykiem, a nie dokument jednorazowy. Definiuj aktywa i granice zaufania, stosuj STRIDE/LINDDUN, mierz ryzyko, rejestruj je i wdrażaj kontrole jako kod, wbudowując je w CI/CD i działanie. Dzięki metrykom dojrzałości i regularnej rewizji, zmienisz bezpieczeństwo w przewidywalną zdolność architektoniczną - z zrozumiałą ceną, efektem i szybkością.

Contact

Skontaktuj się z nami

Napisz do nas w każdej sprawie — pytania, wsparcie, konsultacje.Zawsze jesteśmy gotowi pomóc!

Rozpocznij integrację

Email jest wymagany. Telegram lub WhatsApp są opcjonalne.

Twoje imię opcjonalne
Email opcjonalne
Temat opcjonalne
Wiadomość opcjonalne
Telegram opcjonalne
@
Jeśli podasz Telegram — odpowiemy także tam, oprócz emaila.
WhatsApp opcjonalne
Format: kod kraju i numer (np. +48XXXXXXXXX).

Klikając przycisk, wyrażasz zgodę na przetwarzanie swoich danych.