你的資金,永遠在你自己手上
自動化交易 SaaS 的最大致命傷是 API key 集中託管的單點失靈。這頁說明 TVSBot 怎麼設計避開這個風險,以及你可以如何驗證。
為什麼我們要特別寫這頁
2022 年 12 月,加密自動交易最大品牌 3Commas 發生史上最嚴重的 API key 外洩事件。當時他們託管 超過 100 萬把 交易所 API key,外洩約 10 萬把,鏈上分析師 ZachXBT 驗證 44 名受害者損失 $14.8M、總被盜估計約 $22M。CEO 起初否認,後公開承認,請求 Binance / OKX / KuCoin 撤銷 key — 因為 key 屬於別人的平台,3Commas 無法單方修復。
這事件揭露了一個結構性問題:「託管型 bot 平台」的單一資料庫一旦被打穿,所有用戶資金同時暴露。TVSBot 的設計從第一天起就為了避開這個失靈模式。
我們的架構是什麼
1. Fernet AES-128-CBC 加密儲存
你的 API key + secret 一進資料庫就用 Fernet 對稱加密 包起來。Fernet 是 Python cryptography 函式庫提供的 AEAD scheme(含 AES-128-CBC + HMAC-SHA256),業界廣泛使用。
加密金鑰 FERNET_MASTER_KEY 存在 Fly secrets,**不會進 git,不會進 DB backup,不會存任何 log**。
GitHub 開源 PoC(部分):app/services/crypto.py 可審核。
2. 強制 Order-only 權限
我們每天掃所有 active API key,呼叫交易所 API 確認權限。任何帶有 Withdraw(提幣)旗標的 key 自動停用,並 TG 通知你。
這代表即使 key 被偷,攻擊者也無法提幣轉走你的資金 — 只能下單交易,最壞情況是 wash trade 損失少量手續費。
3. IP 白名單建議
各交易所 API 都支援 IP 白名單。我們文件建議用戶設定為 TVSBot 的 Fly egress IP,進一步限縮 blast radius。設了之後就算 key 完全外洩,沒在白名單也呼叫不了。
4. 訊號不經 secret URL
每個用戶的 webhook URL 帶獨立 token,payload 內另帶 secret 雙重驗證。一個外洩無法繞過另一個。
我們承諾的透明度
- 事件揭露:任何安全事件 72 小時內公開揭露,包含影響範圍、技術原因、修復狀況。
- 加密實作公開:我們不靠 obscurity 安全。加密演算法、key derivation、儲存方式都列在這頁。
- 第三方稽核(規劃中):2026 Q3 安排第一次外部安全稽核。
- Bug bounty(規劃中):見下方獨立區塊。
Bug Bounty 計畫
歡迎 ethical security researchers 回報漏洞。我們提供合理獎勵。
範圍(in scope)
- tvsbot.com 及子網域
- 後端 API(api.tvsbot.com)
- Webhook 端點(防 replay / spoofing)
- API key 加密儲存與解密路徑
- 權限提升 / IDOR / SQLi / XSS
範圍外(out of scope)
- DDoS / 流量類攻擊
- 純社交工程
- 第三方服務(Stripe / Supabase / Fly)— 直接回報給該廠商
- 已知問題 / 既有揭露
獎勵級距(USD,視嚴重度)
| Critical(任意用戶資金損失) | $500 – $2000 |
| High(API key 外洩 / 權限提升) | $200 – $500 |
| Medium(IDOR / 邊界繞過) | $50 – $200 |
| Low(資訊洩漏 / 配置錯誤) | 名譽榜上榜 |
如何回報
兩種方式都會收到。我們承諾 48 小時內初步回覆。
填表單會自動組好結構化的信件,打開你的 email app 等你按送出。
⚠️ 請勿利用漏洞影響其他用戶。第一次回報的 researcher 優先獎勵。獎金以 USDT TRC20 或 PayPal 支付。
跟託管型平台的對比
| 面向 | TVSBot(非託管) | 託管型 bot |
|---|---|---|
| 資金持有 | 你交易所帳戶 | 平台代為持有 |
| DB 被打穿的後果 | 加密 key 攻擊者拿不到明文 + 無提幣權限 | 100 萬把 key 同時暴露(3Commas 2022) |
| 提幣風險 | 0(系統自動停用提幣 key) | 若有 Withdraw 權限,鏈上一筆轉走 |
| 平台跑路風險 | 你重設 API key 就完事 | 資金回不來 |
| 加密透明度 | 演算法 / key derivation 公開 | 多數不公開實作 |