GH GambleHub

威胁建模和风险控制

1)原则

1.Architectural First.我们从上下文、信任边界和数据流开始。
2.Risk ≈ Likelihood × Impact.测量而不是感觉。
3.Defense in Depth.每层控制器:代码→协议→平台→人员。
4.Shift Left/Right.PR+监视和销售反应中的早期门。
5.Privacy by Design.我们不仅模拟安全威胁,而且模拟隐私风险。
6.Automate Where Possible.策略作为代码,自动反驳,"红线"。


2)库存: 资产、实体、信托界限

资产:数据(PII,财务,秘密),计算资源,密钥,可用性,业务流程。
受试者:用户,服务,管理人员,合作伙伴,外部提供商。
信任边界:用户↔前端、API网关↔服务↔ DB/缓存/队列、区域/云。
攻击面:输入点(API, webhook, UI, network, CI/CD, supply chain)。

DFD(例如,美人鱼):
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)威胁框架

STRIDE (безопасность): Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege.

LINDDUN (приватность): Linkability, Identifiability, Non-repudiation, Detectability, Disclosure, Unawareness, Non-compliance.

PASTA(流程):从业务目标和威胁行为者→技术细节→测试场景。

表(片段、STRIDE ×组件):
构成部分STRIDE控制权
API GatewaymTLS/OIDC, WAF, rate-limit, audit, HSTS
KafkaACL、签名事件、配额、DLQ
PostgresTLS、RLS、KMS、验证迁移

4)风险评估

针对漏洞的DREAD/OWASP风险评级或CVSS。
概率(L):攻击者的动机/能力,复杂性,表面曝光。
影响(I):金融,侏罗纪,停机,PD泄漏。
风险(R=L × I)→优先级和临界值:Avoid/Reduce/Transfer/Accept。

矩阵(示例):

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

风险寄存器(最小字段):'id,脚本,STRIDE,资产,L,I,R,所有者,控制者,状态,修订日期'。


5)主计长: Prevent/Detect/Respond

预防(预防):
  • 身份验证/授权:OIDC/OAuth2,PoLP,RBAC/ABAC,短期服务信用。
  • 秘密/密钥:KMS/HSM,旋转,"不知情"原则,FPE/字段加密。
  • 安全协议:TLS1。2+,mTLS,webhook签名,等效性和反重播。
  • 验证/卫生:计划(JSON 计划/Proto),限制,正常化。
  • 隔离:网络政策,细分,sandbox,namespaces,bulkheads。
检测:
  • 审核逻辑(不可响应),在SIEM中重播,异常异常。
  • 监视签名和完整性(导出工件哈希,attestation)。
  • Honeytokens/金丝雀用于早期密钥泄漏检测。
响应(反应):
  • Runbook IR:分类,隔离,召回密钥,警报,forenzika.
  • 自动杀手开关/功能旗,令牌的"黑名单"。
  • 在PD事件中通知用户/监管机构。

6) SDL和安全门

在想法/设计中:威胁模型(RFC/ADR),控制检查表。
在开发中:SAST/秘密扫描,依存扫描(SCA),依存策略。
在装配中:SBOM、工件签名、漏洞策略(CVSS阈值)。
Deply: OPA/Kyverno-IaC/清单 (securityContext、网络策略、秘密漏洞)策略。
销售:IDS/WAF,匿名检测,金丝雀检查,混沌安全(例如,过期证书)。

门示例(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)供应链供应和人工制品信任

每个映像/软件包的SBOM;依存关系更新-通过机器人/策略。
SLSA/Provenance:可重现的组件、签名、状态。
容器:最小外观,rootless,下降capabilities,只读FS。
IaC扫描:Terraform/Helm是加密政策,开放端口,网络规则。


8)隐私和合规性

LINDDUN隐私威胁卡,数据最小化,别名/匿名化。
保留策略:TTL/重建,"删除权限",对PD访问进行审核。
本地化:地理限制,"数据保留在该地区"。
透明度:处理、通知和同意记录。


9)云层和外围

零信任:验证每个请求,服务之间的mTLS/OPA。
分段:VPC/子网/SG,私人端口,egress控制。
钥匙/秘密:KMS,rotation,CI(OIDC联合会)中的短信。
备份/DR:加密备份,单独密钥,恢复排练。


10)红色/紫色团队和平板运动

红色团队:威胁假设验证,社会工程,链条操作。
紫色团队:联合调试探测器/警报器,改进IR的剧本。
Tabletop:"证书到期"、"密钥泄漏"、"供应链损害"脚本。结果-更新控制和指标。


11)成熟度量与管理

覆盖:具有当前威胁模型和DFD的服务百分比。
MTTD/MTTR安全,控制者捕获的事件比例。
CI中的Policy pass-rate(策略通票率),按临界值关闭漏洞的时间。
隐私:具有TTL/ILM的dataset的百分比,具有合理性的可用性份额。
审计:定期审查风险登记册(季度)。


12)工件模板

12.1个风险卡(示例)


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设计支票清单

DFD/数据轮廓是组成并绑定到 ADR的?

STRIDE/LINDDUN是通过每个DFD箭头吗?

如何添加代码(OPA/Kyverno/CI门)策略?

监视/警报计划和IR-runbook是否更新?

已确定资产和PII?信任界限是标记的吗?
选择风险临界点;有所有者/截止日期/国防部?

隐私: 最小化、加密、TTL/还原、本地化?

12.3 Webhook策略(伪代码)

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)反模式

没有DFD/不变量的威胁模型"用于打勾"。
"超级外围"无需内部验证服务。
环境/回购变量中的长期秘密。
未作为代码实施的策略→手动"忘记"。
带有PD的徽标没有伪装,也没有重生/TTL。
忽略供应链(无SBOM/签名/扫描)。
接受风险(接受)没有所有者和审查日期。


14)流程整合

RFC/ADR:每个有意义的解决方案都包含"威胁和控制"部分。
Docs-as-Code:威胁模型,DFD,代码旁边的版本中的风险寄存器。
Release gates:当SAST/SCA/SBOM策略失败或缺少高临界性控制时,该发布被阻止。
培训:面向开发人员的花花公子(秘密,签名,PoLP),常规平板电脑。


二.结论

威胁建模是风险管理的工程实践,不是一次性文档。通过应用STRIDE/LINDDUN定义资产和信任界限,测量风险,将其记录在寄存器中,并通过将其嵌入到CI/CD和操作中来实现控制作为代码。随着成熟度指标和定期修订,您将将安全性转变为可预测的体系结构能力-价格、效果和速度是可以理解的。

Contact

联系我们

如需任何咨询或支持,请随时联系我们。我们随时准备提供帮助!

开始集成

Email — 必填。Telegram 或 WhatsApp — 可选

您的姓名 可选
Email 可选
主题 可选
消息内容 可选
Telegram 可选
@
如果填写 Telegram,我们也会在 Telegram 回复您。
WhatsApp 可选
格式:+国家代码 + 号码(例如:+86XXXXXXXXX)。

点击按钮即表示您同意数据处理。