Skip to content

Threat 和 Abuse Model

ModelFaucet 0.8.0 在 hosted pilot 之前对源码 beta 做安全加固。本文件记录最高风险的误用路径,以及每个版本都必须保留的控制措施。

安全不变量

  1. Provider API key 只保留在服务端。
  2. BYOK 行为必须显式,不允许隐藏 BYOK markup。
  3. 云服务不能访问 localhost、metadata service 或私有 LAN URL。
  4. Local Bridge 可以访问 localhost/LAN,是因为它运行在用户本地信任边界内。
  5. 资金流在 payout transition 前必须可审计。

Threat Model

ThreatImpact当前控制
Client bundle 包含 provider credentialsProvider account compromiseProvider key 只通过 server route 接收,持久化前加密,response 只返回 masked value,并由 pnpm verify:secrets 扫描。
BYOK base URL 指向私有网络SSRF 到本地、LAN 或 metadata service共享 CloudSafeBaseUrlSchema 拦截 localhost、private IPv4、carrier NAT、link-local、private IPv6、IPv4-mapped IPv6 和已知 metadata hostname。
Production CORS 默认 wildcard跨站滥用 token/session API生产环境必须配置 API_CORS_ORIGINSGATEWAY_CORS_ORIGINS,且不能为 *
Session token 被盗用重放未授权模型调用Token 短期有效,只以 hash 存储,并校验 active app/developer/session。
Provider failure 在 response 中泄漏 secretSecret disclosureGateway provider attempt metadata 只包含 status/error class,不包含 bearer credentials。
Payout 未审核就 mark-paid未授权资金移动mark-paid 必须先通过 payout approval 进入 processing,所有 transition 写 audit log。
已知高危依赖进入 releaseSupply-chain exposureCI 运行 pnpm security:audit high severity 和 pnpm verify:secrets

Abuse Model

Abuse caseDetection signalsControls
通过大量用户薅免费 creditsSession 创建速率异常、重复 IP/device pattern、wallet failureIP+route rate limit、wallet balance check、未来增加 device/app-level velocity limits。
开发者创建滥用 app新 app traffic spike、provider error rate 高、feature metadata 可疑Developer admin review、audit logs、app status controls、roadmap tenant isolation checks。
BYOK 被用来隐藏平台成本route/cost mismatchBYOK 记录 zero platform upstream cost,并显式记录 route mode。
Developer provider key budget 被耗尽Developer-key spend 接近 limitGateway 在 developer-key routing 前做 budget check。
Webhook replay 重复入账重复 Stripe event/session IDTop-up crediting 通过 Stripe event/session state 保持 idempotent。
Payout fraudPayout velocity、ledger reconciliation mismatch、未审核 statusLedger reconciliation、payout approval gate、audit logs、pending/processing review。

Release 回归要求

Tag release 前:

  • 运行 pnpm verify:secrets
  • 运行 pnpm security:audit
  • 运行 lint、typecheck、tests。
  • 运行 docs build 和 app builds。
  • 运行包含 ledger reconciliation 的 local smoke。
  • 确认 API response 和 dashboard surface 不返回原始 provider key。
  • 确认 production CORS 没有显式 allowlist 时不能启动。
  • 确认云端 provider URL 路径会拒绝 localhost、private LAN、metadata 和 IPv4-mapped private host。

Hosted Pilot 缺口

Hosted beta 前仍需完成:

  • 真实 secret manager 集成。
  • 面向 hosted data store 的 tenant/app isolation tests。
  • API 和 Gateway 前面的 WAF 或 edge rate limits。
  • 带告警的 Provider 和 Stripe test accounts。
  • 真实 payout 所需的 KYC/AML workflow。
  • Incident response contact 和 key-rotation runbook。

Released under the Apache-2.0 license.