AnySec
渗透测试报价单怎么看:比价之前先核对这七行——AnySec 洞察
← 洞察Penetration Testing · 8 分钟阅读

渗透测试报价单怎么看:比价之前先核对这七行

手里有两三份渗透测试报价却看不出差别?先核对七行:计价单位、测试工时、提供的账号与角色、测试授权规则、谁来测、报告里有什么、含不含复测。七行写清了才能比价,否则比的只是数字。

作者:AnySec 工程团队

本文据英文原文为亚洲读者改写:English version

简短回答

一份渗透测试报价能拿来比较,前提是它写清七件事:范围按什么单位算、承诺多少测试工时、测试人员拿到哪些账号与角色、测试授权规则(ROE)、由谁执行、报告包含什么、是否含复测。同一个平台,不同供应商报价差几倍,往往是因为他们测的量根本不同。先把这七项拿到书面确认再比价;一份只写了方法论名字、七项一个没写的报价,按"贴了渗透测试标签的扫描"来对待。

这篇写给谁

写给博彩平台、加密货币交易所或金融科技公司里负责安全、技术或采购的人:手里拿着两三份渗透测试方案,看不出它们为什么不一样。这篇讲的是怎么读报价单。如果你要的是怎么给自己的平台定测试范围,交易所那边见给加密货币交易所做渗透测试:范围怎么定;博彩现金出纳那块见赌场出纳(Cashier)安全测试。

要找的七行

报价单上的行该问什么为什么它改变价格和结果
计价单位单位是一个应用、一个域名、一套环境、一个 API,还是若干端点?同一个平台在不同单位下是完全不同的工作量。
测试工时承诺多少工时?是纯测试时间,还是含报告撰写?时间是深度的主要上限。工时不同的两份报价,是两种不同的测试。
账号与角色测试人员拿到哪些账号、角色、层级?多数严重漏洞在登录之后。没有账号的测试只看见大门。
测试授权规则允许做什么、禁止做什么、什么时段可以测、谁能叫停?生产环境、支付流程、第三方系统都需要明确的限制和许可。
谁来测本公司工程师、分包商,还是自动化平台?报告由谁审核?答案告诉你发现背后有多少人的判断。
报告每条发现包含什么?对"没测到的部分"怎么说明?报告就是产品本身。
复测含不含?多长时间窗口内?覆盖哪些发现?没有复测,修复就没被验证。

第一行:范围到底怎么算

供应商按单位计价,而那个单位很少是你脑子里想的那个。你说的是"出纳系统",报价单写的可能是"一个 Web 应用"。博彩平台的出纳是一个 Web 前端、一到多个 API、一个后台管理面板,再加上支付通道的回调接口;按"一个应用"计价的报价,很可能只覆盖第一项。要问清:哪些被点名在范围内,哪些被点名排除,以及测试人员发现一个没列出来的相邻系统时怎么办——是跳过,还是追加变更单?

第二行:多少测试工时

深度主要取决于时间。报价单应该把承诺给测试本身的工时,与环境准备、报告撰写分开写,并说明在多长的日历窗口内完成。你不需要知道市场行情也能比这一项:只要知道工时不同的两份报价测的不是同样的量就够了。再问一句:时间不够时先砍什么?因为总会有东西被砍。

第三行:账号与角色

很多严重漏洞在身份认证之后:玩家之间、运营人员各角色之间、各租户(白牌站点)之间的越权访问。没拿到账号的测试找不到这些。报价单应列出测试人员拿到哪些角色、高权限和低权限账号是否都提供、测试人员能否自己注册账号。如果范围包含支付或钱包流程,要写明用测试资金还是沙盒环境,确保没有真钱在动。

第四行:测试授权规则

测试授权规则(Rules of Engagement,ROE)规定测试人员可以做什么、对哪些系统、在什么时段、以及怎么叫停。它应写明生产环境的边界、速率或负载上限、哪些第三方系统不碰,以及双方各自的紧急联系人。书面授权很关键:测试一个你不拥有控制权的系统——比如支付通道服务商、共用的托管主机——需要那一方的许可,报价单应写明由谁去取得。这套做法在 NIST SP 800-115(技术性安全测试指南)里有通用描述。

博彩平台后台办公室的桌面上,一份渗透测试授权规则文件翻到签名页,旁边是测试账号清单与一枚印章,台灯是唯一光源
签字之前先核对:范围、工时、账号、ROE、人员、报告、复测——七项缺一,签下去的就不是同一份测试。

第五行:由谁执行

问清楚:定范围的人是不是测试的人;是否有部分分包;是否有部分是自动化跑的。自动化工具是测试合理的一部分,但它不是测试本身。报告应由一个能解释每条发现及其对你业务影响的人审核。为什么全自动测试会漏掉真正要命的东西,见为什么我们坚持纯人工渗透测试(英文)。

第六行:报告

交付物里每条发现都应有标题、受影响资产、证据、影响、一个你能用的分级,以及具体修复方法。它还应说明哪些没测、测试人员做了哪些假设。签约前先要一份脱敏样例。一份不能原样交给牌照方审计人员或你自己工程团队、需要重写才能用的报告,不算完成。

第七行:复测

报告送到不等于发现关闭。报价单应写明是否含复测、交付后多久内可申请、是覆盖全部发现还是只覆盖高等级的。没有这一行,修复在你下一次项目之前一直是未经验证的状态。

报价单里的红旗

  • 交付物被描述为"扫描输出""自动化报告""工具导出"。
  • 没有承诺的测试工时,或者时间只以价格形式出现。
  • 对账号与角色只字不提。
  • 点名了一个方法论(例如 OWASP Web 安全测试指南),却没说它怎么落到你的范围上。
  • 没有一句话说明范围外是什么、哪些没测。
  • 承诺一个合规徽章,却不写明是哪个标准、适用于哪个范围。

亚洲运营商要多看一眼的地方

面向亚洲市场的平台,范围里常常多出几样东西:代理和白牌后台、USDT 等加密货币出入金接口、与东南亚支付通道的回调、以及部署在不同司法辖区机房里的组件。这些要么被报价单当成"相邻系统"跳过,要么被当成变更单追加。另外,牌照方(例如 PAGCOR、MGA、Curaçao)和合作银行、支付机构在尽调时通常会看测试范围、授权文件和报告格式,具体以你的牌照条款与合作协议为准——所以第四行和第六行不只是技术问题,也是过审的问题。

局限

这是一份阅读指南,不是价目表,也不推荐任何供应商。文中不涉及市场价格、工期,也不含 AnySec 的自有数据。受监管的测试计划(例如卡支付或金融行业的测试框架)对范围和测试人员资质有各自的要求,请以适用于你的那份现行文本为准。

下一步

把手里的方案逐行对照上面的表格,把空缺当作问题发回给供应商。如果你想要一份七行一次写全的报价,直接申请渗透测试的固定报价,告诉我们应用类型、用户角色和涉及的第三方系统。渗透测试服务页说明了一个项目从定范围到复测的完整流程。如果你还在扫描和测试之间犹豫,漏洞评估服务页讲的是那个更轻的选项。

延伸阅读