前期交互阶段指南

前期交互阶段指南

在进行渗透测试项目时,前期交互阶段是至关重要的第一步。这个阶段的主要目的是与客户进行充分沟通,明确测试的目的、范围、限制条件以及双方的责任和义务。良好的前期交互能够有效避免后续测试中可能出现的“范围蔓延”、业务中断等问题,是整个项目顺利进行的基石。

1. 明确关键信息与测试要求

在前期交互阶段,必须明确以下关键信息:时间安排、出口IP、具体要求、以及测试报告的标准

要求中还应详细界定具体的测试范围和规则,包括但不限于:

  • 域名、解析记录、IP地址、端口
  • 服务版本、子域名、重点子页面
  • 客户提供的原始扫描报告

常见的测试要求:

  1. 保密性:测试前必须签署保密协议(NDA)。
  2. 业务连续性:测试过程不可对业务造成破坏性影响(如拒绝服务攻击、释放蠕虫等),可通过基本扫描及抓包/改包进行,做到测试结果点到为止。
  3. 信息提交:客户需提供被测系统的基本信息以便评估工作量。
  4. 漏洞记录:针对已发现漏洞,单独提交漏洞测试记录。需要详细的测试过程、Payload信息等,保证漏洞可验证、可复现。
  5. 报告输出:有能力的测试人员应提交完整的渗透测试报告,内容包括漏洞证明、威胁程度及加固建议等(格式暂不限定)。
  6. 时间窗口:测试时间尽量安排在非业务高峰时段(例如 9:00-19:00 以外)。
  7. 熔断机制:如接收到业务受到影响或要求停止测试的通知,请第一时间断开测试网络连接,停止所有测试行为。

2. 核心工作内容拆解

2.1 确定范围 (Scoping)

  • 时间估计:预估整体项目的时间周期,确定以小时计的额外技术支持。
  • 问答交谈:对业务管理部门、系统管理员、IT支持人员以及普通雇员进行问答交流,深入了解业务。
  • 范围勘定:确定项目起止时间、获取项目授权信件,随后进入目标规划环节。
  • 确定IP和域名范围:严格验证测试范围。
  • 处理第三方资源:确认云服务、ISP、网站宿主、MSSP以及服务器所在国家的相关法律法规。
  • 定义攻击方式:明确可接受的社会工程学方法,明确是否允许进行拒绝服务测试。
  • 商务细节:确定支付细节等。

2.2 目标规划

  • 确定目标:划分首要目标和额外目标。
  • 业务分析:定义目标企业的安全成熟度,并进行深入的需求分析。
  • 红队行动设定
    • 最终目标是什么?是仅仅进行应用检测、在服务器上获取特定标识、从数据库中提取数据,还是为了评估安全团队的检测时效指标?
    • 是否有特定的公开攻击活动需要模拟复现?
    • 将采用什么技术技巧?(可参考 MITRE ATT&CK 矩阵中的具体技术分类,或者参考 Red Canary 提供的技术细节)。
    • 客户期望使用的工具类型(商业工具如 Metasploit、Cobalt Strike、DNS Cat,还是自研的定制化工具)?

2.3 建立通讯渠道

  • 确认紧急联络方式和应急响应流程。
  • 制定进展报告周期(如每日、每周)。
  • 确定唯一的接口联络人。
  • 确立安全通信方式(如 PGP 加密邮件或其他加密方式)。
  • 取得与外部第三方(如托管服务商)的联络方式。

2.4 交互确定规则 (Rules of Engagement)

  • 时间与地点:明确测试的具体时间线和物理/网络地点。
  • 控制基线:设定渗透攻击的控制基线。
  • 敏感信息披露:约定敏感信息的披露方式和限制。
  • 证据处理:规范测试过程中获取的证据(如截图、数据)的安全处理流程。
  • 例行报告会:制定定期报告计划,讨论当前进展和遇到的问题。
  • 每天可进行测试的时间:明确允许执行渗透攻击的时间段。
  • 避开范围与攻击授权:再次重申避开的范围,并最终确认攻击授权书。

2.5 存在的防御能力和技术

  • 提前了解客户现有的应急响应机制和安全监控能力(SOC/SIEM),以便评估测试的隐蔽性要求。

2.6 测试术语和定义

  • 双方统一使用标准化的渗透测试术语词汇表,避免沟通上的歧义。

2.7 保护你自己

  • 准备测试系统:确保使用安全、隔离的测试环境。
  • 检查表:严格遵循前期交互检查表和后期交互检查表。
  • 数据包监听:对所有的测试流量进行抓包留存,以备审计和纠纷澄清。