托管式进攻性安全计划很容易被含糊的销售语言掩盖。方案里可以写“持续测试”“按需启动”“统一门户”和“不限请求数”,但这些词并没有回答一个实际问题:当发布前评估、紧急暴露调查、两项复测和计划内基线测试在同一周争用同一批专家时,谁先做、谁等待、等待多久?

采购方真正需要了解的是运行机制:经授权的测试需求如何进入计划,如何排序,服务商实际预留了多少产能,服务时钟从何时开始,谁负责解除阻塞,合作结束后哪些证据仍归客户掌握。没有这些规则,订阅只是一个优先级不可见的队列。

本文提出一套用于反复开展、但范围和产能均有限的渗透测试运行模型。它是一项编辑建议,并非标准,也不表示所有服务商都提供这种服务。CIS Controls、OWASP SAMM、NIST、CREST 与英国 NCSC 的材料支持若干基础原则:建立明确的测试计划,按风险和变化选择工作,分配责任,衡量工作量、结果与环境,并将发现推进到整改和经验反馈。本文进一步给出的队列、产能、时钟和退出机制,是为了把这些原则变成可采购、可核查的约定。

“托管”应当代表什么

“托管”应当表示每一次独立的授权测试周围有一套受控的运行系统,而不应改变渗透测试所能证明的内容。每项测试仍然需要批准的目标、日期、假设、技术、排除项和限制。发现只适用于当时记录的条件;某个月没有发现,并不能证明环境安全。

CIS Control 18 将渗透测试计划描述为范围、频率、限制、联系人、整改流转和复盘等要素。CREST 将工作划分为准备、测试和后续行动,其中包括行动计划与经验总结。这些是计划层面的属性。门户可以帮助记录它们,但软件本身不会产生治理能力或测试技能。

计划还要划清相邻工作的边界。自动漏洞扫描、配置监控、漏洞奖励项目受理、红队演练和事件响应都可能提供输入,但不能与有明确范围的渗透测试互换。一个信号可以触发需求评审,却不会自动形成必须投入人工测试的承诺。

采购方因此需要一个由明确工作单元组成的服务目录。例如:限定范围的 Web 或 API 测试、针对一次重要变更的评估、对指定修复项的验证,或者短期的资产梳理与范围确定。每个单元都应说明准入条件、预期证据、工作量估计和完成标准。“不限请求数”最多表示可以不限次数地提交申请,不可能表示专家可以无限并行工作。

先建立需求入口,再安排日历

如果“请在周五前测一下新的支付流程”被当作完整申请,长期计划很快就会失控。队列需要一张最低限度完整的需求卡:业务风险负责人、目标和环境、测试原因、相关变更或威胁、需要作出业务决定的日期、授权来源、数据敏感性、已知限制,以及能够提供访问和叫停测试的联系人。

第一个决定是能否准入,而不是优先级。如果资产所有者不明、书面授权不完整、第三方资产尚未获准、环境无法安全承受约定技术,或者请求的结果不在服务目录内,就不能进入主动测试。该记录及其原因仍应保留,不能悄悄删除。这样既能保存真实需求,也能看出申请准备质量是否改善。

通过准入后,请求进入按风险排序的待办队列。实用的评分可以考虑业务影响、外部暴露程度、可触达数据的敏感度、涉及的权限、变更的新颖性、已知利用情报、监管或客户期限,以及该区域距上次相关测试已有多久。具体公式不如决策权稳定重要。客户侧应有一位明确的风险负责人有权接受延期;测试负责人则应有权拒绝不安全或未经授权的工作。

OWASP SAMM 为稀缺的人工评估提供了一个合理原则:优先测试高风险组件、近期有相关变化的区域和即将进行重大发布的区域。这个原则支持事件触发通道,但没有给出通用评分公式。“高风险”仍须由组织结合自身环境定义。

托管测试请求从需求到证据的路径
  1. 受理记录负责人、目标、授权、变更、决策日期、限制和就绪联系人
  2. 评审检查准入条件、估算工作量,并按约定的风险规则排序
  3. 承诺指定服务通道、产能窗口、范围负责人、测试人员和交付时钟启动条件
  4. 测试与报告执行授权工作,及时传递关键证据,并记录限制和阻塞
  5. 复测与反馈验证约定修复,关闭或重新排队,并把经验用于后续需求和范围

这里刻意把“准入”和“承诺在某个窗口交付”分开。这样,大量待办项就不能被包装成正在执行的工作,产品团队也能得到真实的预计开始日期。

让产能和服务通道可见

计划应使用接近瓶颈资源的单位表达产能,通常是合格测试人员的工作日或具名测试窗口。只数工单会掩盖窄范围复测与多角色 API 评估之间的巨大差异。内部可以使用点数,但采购方仍需要一个换算规则,说明一个规划周期内究竟能承诺多少工作。

在需求到来之前,就应按通道预留产能。计划内基线测试可以防止重要但变化较少的系统永远被发布任务挤走;变更触发测试跟随重大变化;复测通道闭合证据链;紧急通道处理符合严格条件、不能等待下一周期的暴露或业务决策。如果任何请求都可以标成紧急,所谓紧急通道只是第二个无人治理的待办列表。

左右滑动查看对照

服务通道常见准入触发条件产能规则完成证据
计划内基线对稳定且重要的目标约定测试日期预留窗口,普通发布需求不能占用写明范围、日期、实际覆盖、发现和限制的报告
变更触发身份认证、信任边界、公共 API、敏感数据流或类似风险发生重大变化在按风险排序的计划池中竞争聚焦变更的报告,明确哪些内容发生变化、哪些内容未复测
复测指定发现已有部署完成且可验证的修复小型预留池,或明确从一般产能中扣除并计价每项发现的结果、条件、证据和剩余限制
紧急评估可信且时间敏感的暴露或业务决策符合书面标准隔离预留;抢占其他工作须经风险负责人批准先提供快速事实更新,再交付约定的正式证据

治理评审中应出现产能算式。假设某个纯示例周期可用 20 个测试工作日,双方将 4 天留给紧急任务和复测,16 天用于计划任务。如果已准入的计划需求合计 28 天,计划只能承诺 16 天,剩余 12 天必须延期或缩小范围。这些数字不是行业基准,也不是建议值。示例的意义是:12 天仍带着负责人和原因留在记录中,而不会消失在“按需”承诺背后。

未使用的紧急预留也要有规则。它可以在截止日期后转给计划任务、保留到周期结束,或者不滚入下一期。借用未来周期产能同样要记录,因为它会造成下一期缺口。服务商不能在不改变范围说明的情况下,通过悄悄降低测试深度来消化超量需求。

组合计划内工作与事件触发工作

计划内测试和事件触发测试控制的是不同的规划风险。日历确保安静但重要的系统得到关注;触发器缩短重大变化与针对性验证之间的时间。两者不应互相替代。

好的触发器必须具体到能够路由。例如:新的登录或账号恢复流程、租户隔离模型变化、新的互联网接口、重要云信任关系变化、高影响依赖替换,或者安全事件产生的明确验证问题。“每次部署都做人工测试”通常过于宽泛。触发器首先创建一项需求;随后评审决定应采用聚焦渗透测试、自动检查、架构评审,还是无需额外评估。

NIST SP 800-137 讨论的是持续监控,而非托管渗透测试。与本模型相关的要点是:评估频率应考虑控制的易变程度和系统影响等因素。OWASP SAMM 同样将可扩展的自动化与深入人工测试结合。这些材料支持混合工作组合,并不支持“每个资产都得到持续人工保证”的说法。

计划应维护覆盖地图,把关键资产和重要信任边界关联到最近一次相关测试、尚未处理的变化、下一次测试决定和已知排除项。这比“今年测过这个应用”更有用。移动客户端测试可能不覆盖其 API;API 测试可能不覆盖云身份路径;一项发现的复测不会刷新其余范围。关于时机选择,可参阅持续渗透测试与时间点审计。

明确负责人、阻塞状态和服务时钟

合同不能把服务商的交付承诺与客户的整改期限混成一个 SLA。服务商可以承诺确认请求、完成评审、提出范围、在就绪后开始、通知严重发现、提交审核后的报告,或者开始约定复测。客户负责产品风险决策,通常也负责整改。NCSC 的指导明确区分了这条边界:测试团队为问题评级并提出方案,组织自身仍负责风险评估和修复决策。

不同事件应有不同的时钟。确认时钟可在请求进入约定渠道时启动;评审时钟可在最低字段齐备后启动。协议还应规定一个期限,在期限内接受、拒绝已准入请求,或因缺少信息将其退回。请求就绪后,服务商必须在另一个明确期限内承诺计划开始日期,不能让就绪请求无限期停留在时钟之外。交付时钟从实际测试开始;复测时钟则在客户指明已部署修复并提供所需环境和证据后启动。

每种暂停都需要两个视图:合同计时与实际经过时间。如果缺少凭据导致测试阻塞四天,合同交付时钟可以按约定暂停,但仪表板仍应显示四天客户侧阻塞。否则指标看起来健康,业务却一直在等待。服务商造成的阻塞应单独记录。任何阻塞项都必须留在队列中,并带有阻塞负责人、下一步行动、复查日期和升级路径。

最低限度的责任划分如下:

  • 客户风险负责人批准优先级、范围扩大、延期和剩余风险决定。
  • 客户技术负责人提供准确资产信息、稳定访问、测试账号和修复就绪确认。
  • 服务商计划负责人管理需求受理、估算、产能、报告和升级。
  • 测试负责人维护方法质量,拒绝不安全工作,记录限制并保证发现可复现。
  • 整改负责人修复或缓解发现并申请复测;这一角色通常属于客户,而非测试服务商。

范围变化需要与初次准入相同的纪律。如果测试发现一个重要的相邻系统,双方要么授权并安排扩展,要么把未覆盖部分记录为限制。渗透测试合同中的范围与验收进一步说明了如何让单次项目的这些决定可审计。

使用诚实的分母衡量运行情况

发现数量不是好的绩效目标。它会奖励噪声,随范围和环境改变,还可能让更安全的产品看起来更差,只因为测试更深入。OWASP SAMM 建议将投入、结果和环境指标结合,并在设定 KPI 前积累足够的基线数据。托管计划尤其需要这一点,因为需求量和资产集合都在变化。

每项指标都应写明总体、排除项、时间窗口、数据负责人以及它支持的决策。可用指标包括:

  • 准入: 已准入请求除以全部提交请求,并列出不准入原因,用于识别申请准备和授权问题。
  • 承诺: 已承诺工作量除以全部已准入需求量;延期量按风险级别和负责人展示,用于暴露产能缺口。
  • 流转时间: 提交到准入、准入到承诺、承诺到开始、开始到审核后报告。仅在样本足够时使用中位数和尾部指标,并单独显示阻塞时间。
  • 覆盖: 在自定周期内有相关评估的关键资产或重要信任边界,除以声明的合格总体;同时公布陈旧资产清单和排除项。
  • 闭环: 已有约定处置的发现,以及通过复测的发现,各自使用正确的初始总体。“接受风险”“已修复”和“无法复现”不能合并。
  • 学习: 重复出现的弱点类别,以及形成有明确负责人的改进行动的已完成测试占比。它是决策辅助,不是已经消除复发的证明。

一个纯示例月报可以这样写:在周期开始时,选定一组固定的 12 项合格需求用于规划,9 项完成,2 项因客户未提供访问而阻塞,1 项因产能不足延期。完成率为 9/12,同时保留阻塞数和延期数。“已开始的 9 项全部完成”在数学上正确,却在运营上造成误导。这些数字只用于说明分母选择,不是 Pentest.red 的实际数据。

先建立基线,再设目标。首个周期可能显示,真正的瓶颈是授权、测试账号准备或修复就绪,而不是测试人员数量。指标必须引向一个决定:修改受理模板、调整预留比例、补上负责人或缩小服务目录。如果一项指标不会触发任何决定,它很可能只是仪表板装饰。

同时设计接入、治理与退出

在反复提交请求之前,接入阶段要建立最低安全运行条件。整理合格资产清单和信任边界图;指定风险和技术负责人;记录谁有权批准每项资产的测试;约定测试技术、禁止操作、停止条件和紧急联系人;定义证据处理和保留周期;通过无害的就绪检查验证访问路径。渗透测试范围规划器提供了目标、环境和限制信息的起点。

治理评审的频率应与需求量和风险相称。评审新需求、各通道产能、长期阻塞项、范围变化、严重发现通知、复测就绪、覆盖缺口、数据保留动作和上次未结决定。会议应产出更新后的交付承诺,而不只是幻灯片。只有证据表明确有必要时,复盘才应修改准入规则、产能假设、测试模式或负责人。

退出机制应在接入时设计。建议的退出包包括资产和授权登记册、请求与决策历史、范围文件、可用格式的最终报告和证据、发现与复测状态、已知限制、指标定义,以及带负责人的未完成行动。它还应说明如何撤销服务商账号、密钥、测试代理、集成和门户访问;如何按协议返还或删除留存证据;如何移交未解决风险。这个退出包是本文的编辑建议,并非 CIS、NIST、OWASP、CREST 或 NCSC 明文要求。

数据可携带性很重要,因为多年计划会成为客户风险记录的一部分。合同结束时,客户不应丢失发现历史,也不应无法解释过去的覆盖情况。渗透测试报告示例可用于评估面向人的交付物;计划协议还应定义结构化导出和状态词汇。

有边界的独立渗透测试适合放在哪里

托管计划不会取消每项技术评估的授权和范围确定。它只是让这些决定可重复,并把竞争需求之间的取舍公开。有些组织可以自行运行该模型,只在需要时购买独立测试;另一些组织会把协调和测试一起外包。合适的分工取决于内部责任人、需求量、系统和监管环境。

如果需要评估一次特定发布、API 或关键业务流程,可以从 Pentest.red 渗透测试开始。双方明确授权范围,交付包含可复现发现的报告,并讨论结果。复测范围和时间另行约定。如果需要连续开展多次评估,应提前讨论协调方式、预留产能、数据导出和交接安排,并在协议中明确这些承诺。

对于单次项目,应在开始前使用范围规划器、合同验收条件和报告示例。发现产生后,安全发现分诊指南可帮助区分验证、业务优先级、整改责任和复测。更大规模的计划也必须让这些交接可见。

因此,采购时的决定性问题不是供应商是否使用“托管”一词。请查看请求状态模型、产能台账、准入和紧急标准、时钟定义、阻塞处理、责任划分、指标分母与退出包。如果这些产物清楚,采购方就能判断资源冲突时会发生什么。如果它们不存在,门户和订阅也无法补上缺失的运行模型。

PENTEST.RED

讨论渗透测试范围与报价

首先明确系统、访问权限、限制条件和预期证据。

准备测试范围

本文以深入研究为基础,经过编辑整理,注重清晰表达和实际应用。

PENTEST.RED / RED JOURNAL