
给加密货币交易所定渗透测试范围:钱包、托管与后台怎么写进合同
加密货币交易所的渗透测试该怎么定范围:哪些资产必须单独命名(热钱包与托管、撮合引擎、链上出入金、后台面板、KYC),测试授权规则如何保证不动到真实资金,三档价格怎么选,报告里有什么。
本文据英文原文为亚洲读者改写:English version
简短回答
给加密货币交易所定渗透测试范围,就是在工程师碰生产环境之前定下四件事:哪几层在范围内(外网、内网、应用);哪些交易所特有的资产要单独命名而不是并入“平台”(钱包与托管、撮合引擎、后台面板、KYC);一份测试授权规则(ROE),规定利用测试怎样触碰真实资金与签名基础设施又不危及它们;以及你买的是哪一档深度与时长。少了任何一项,你拿到的报价就是一次贴着交易所 logo 的通用 Web 应用测试。
这篇写给谁
写给在持牌或受监管交易所里掌管工作说明书的人——CISO、安全负责人或平台负责人。你手上有一句“去做一次渗透测试”,来源可能是牌照方(例如 HK SFC 的虚拟资产交易平台制度、MAS 的支付服务牌照等,具体以牌照条款为准)、合作银行或支付机构的尽调,或者内部审计。你要把它变成一个有范围、有价格的项目,而对象是一套漏掉一个发现就等于链上资金真的会动的基础设施,不只是一个合规红旗。
如果你真正在问的是要不要在一次性测试之上加持续监控,那是托管 SOC 的决策,不是这篇。如果你面前的决定是给测试员每个系统多少初始访问权限,那是黑盒、灰盒、白盒的选择,是另一条轴,对交易所的适用方式与其他平台一样。
范围里到底有什么
“给我们交易所做个渗透测试”在实践中默认会变成一次针对交易网页界面的 Web 应用测试——而这恰恰是攻击者最不关心的表面,因为它很少直接托管资金。为交易所写的范围,要逐层命名,并在每一层里点出真正承载金融与牌照风险的资产:
- 外网——边界、公开 API 端点、负载均衡器。任何供应商都会测;交易所特有的风险很少在这里。
- 内网——从一个立足点横向移动到能够发起或批准提款的系统,包括从办公网络可达的任何内部管理工具。
- 应用层——交易网页与移动客户端(移动端在范围内时依据 OWASP MASVS 测试),以及下单、存款、提款背后的服务端逻辑。
在这三层之内,通用的“全平台”范围表述通常因省略而跳过的资产:
| 资产 | 为什么必须按名字写进范围 |
|---|---|
| 钱包与托管基础设施 | 热钱包自动提款、向冷存储的交接、密钥管理或签名流程(自建 HSM 或第三方托管 API)——平台上后果最严重的表面,也是最常被“Web 应用”这种范围措辞漏掉的 |
| 交易 / 撮合引擎 | 订单簿操纵、行情数据完整性、以及可能抢跑客户订单的内部特权访问——交易所的 SOC 也会把它当作单独的一层检测对象 |
| 链上出入金集成 | 地址校验、确认数逻辑、链上状态与内部账本余额的对账——存款确认流程里的一个竞争条件,就可能把一笔链上存款记到两个账户上 |
| 后台 / 运营面板 | 面向内部、很少被认真测过,却决定一个被攻陷的员工或客服账号能否暂停交易、批准一笔手工提款、或覆盖一个 KYC 标记 |
| KYC / AML 流水线 | 多数是从供应商买来接上去的,而不是自建——定范围时要确认哪些部分是你的、可以测,哪些在第三方 API 边界之后 |
逐个命名这些资产,而不是相信报价单里的“全平台覆盖”,才能让范围变成报告落地时可以追究测试员的东西。

托管特有的测试授权规则问题
每一次博彩平台或 SaaS 的渗透测试都会问“我们怎么知道这不会把生产环境搞挂”。交易所问的是更尖锐的版本:我们怎么知道测提款和签名逻辑不会把真钱转走。ROE 必须先回答这个问题:
- 隔离的测试钱包与极小额或测试网地址,为任何触及存款或提款逻辑的利用步骤明确命名——生产托管余额永远不是目标。
- 第三方托管边界事先定义。 如果签名经由托管商(自建 HSM 或外部 API),ROE 要写明该托管商的端点是否在范围内——没有托管商自己的授权就去测它,不是交易所能替它授予的。
- 一位有权立即暂停测试的指定联系人——与任何 ROE 相同的要求,但容忍的延迟更低,因为一个签名逻辑的发现若被放着不管意味着什么,大家都清楚。
- 围绕结算窗口与定时链上批量提款的明确时间边界,让针对提款流程的利用测试不会撞上真实的批处理。
覆盖交易所的牌照制度,通常把独立测试的证据作为维持注册的条件之一——ROE 与报告都要经得起这种审视,而不只是内部签字。年度渗透测试与例行漏洞扫描的频率往往由不同的规则决定,具体以你所在辖区的牌照条款为准。
项目怎么进行
| 步骤 | 发生什么 |
|---|---|
| 1. ROE 与范围定义 | 目标、托管边界、测试钱包安排与停止条件,在任何利用开始前签署 |
| 2. 信息收集与攻击面测绘 | 按命名的范围枚举外网、内网与应用表面——包括上面点名的钱包、后台与 KYC 资产 |
| 3. 人工利用与漏洞串联 | 资深工程师手工测试多步利用链——一个后台权限缺口加一个提款审批绕过——自动化扫描器只会孤立地测每一步,然后漏掉这条链 |
| 4. 后渗透影响分析 | 每一条成功路径都追溯到业务结果:未授权提款、账本与链上不一致、或账号接管——而不只是“端点存在漏洞” |
| 5. 报告撰写 | 管理层摘要,加上附复现步骤、开发可直接执行的技术报告 |
| 6. 复测 | 针对发现问题的同一手法验证修复 |
这是 100% 人工交付——自动化工具用来放大信息收集的效率,但托管与提款逻辑里真正要紧的串联发现,只有当资深工程师读了代码、决定下一步测什么时才会浮现。
什么决定价格
与任何渗透测试项目相同的三档:
| 档位 | 价格 | 时长 | 范围 |
|---|---|---|---|
| Focused | €2,499 / 每个项目 | 最多 5 天 | 单一目标——一个应用,或一个外网/内网 |
| Standard | €5,999 / 每个项目 | 最多 10 天 | 全栈——外网 + 内网 + 一个应用 + 一个移动端,附紫队复盘 |
| Continuous | €12,000 / 每季度 | 持续 | 每季度一轮全栈,加带外的小型专项——适合每周发版的交易所 |
通常让交易所从 Focused 升到 Standard 的不是网络规模,而是钱包/托管、后台面板和撮合引擎是否需要作为命名的、可串联的目标一起测,而不是在更紧的预算下只测一个高优先级资产。
你会带走什么
- 管理层摘要,用业务风险语言写给不会读 CVSS 表格的人。
- 技术报告,附开发人员可跟随的复现步骤。
- 逐条修复建议,落到代码或配置层面。
- 一次复测,确认修复堵住了发现问题的同一手法。
一份没有严重发现的干净报告也是证据——但前提是产生它的范围与 ROE 记录得足够清楚,让牌照方或合作银行愿意相信这个“没有问题”的结论。
局限——它替代不了什么
渗透测试证明的是攻击者在测试当天对命名范围能做什么。它不审计你上线或自建的智能合约——那是独立的专业审查,不是基础设施渗透测试里的一个行项目。它也不是持续覆盖:这个季度的干净报告对上周上线的交易功能什么也说不了,那是托管 SOC 在两次测试之间要抓的。而一次在纸面上写着“全平台覆盖”、却跳过钱包、后台与 KYC 的测试,产出的报告只是勾了一个框,从未碰过真正承载金融风险的系统。
怎么判断自己准备好定范围了
带三样东西来联系表单:哪些资产真正承载托管或金融风险(钱包、签名流程、后台——很少只是交易界面);是否有上线的代币需要单独的合约审查;牌照方或合作银行是否点名了特定的测试类型或时间要求。还有一项最好先想清楚:给测试员每个资产多少初始访问权限。
下一步
把你的平台与范围告诉AnySec,我们会在任何测试开始之前,把它变成一份签字的 ROE、一套测试钱包安排、一个分档建议和一个成本估算。渗透测试服务页有完整范围说明,联系我们获取固定报价。
延伸阅读
- 渗透测试报价单必须写清的几件事——拿到报价后,逐项核对它有没有写清范围、ROE 与复测。
- 博彩平台收银台安全测试:签合同前要核对的测试用例清单——同样的“命名资产”方法用在另一类会动钱的平台上。
- 私有 Anycast 网络供应商:ASN 与 IP 段归谁、退出条款怎么写——交易所另一项基础设施采购里的归属问题。
- English original: Scoping a penetration test for a crypto exchange

