前期交互阶段指南
前期交互阶段指南
在进行渗透测试项目时,前期交互阶段是至关重要的第一步。这个阶段的主要目的是与客户进行充分沟通,明确测试的目的、范围、限制条件以及双方的责任和义务。良好的前期交互能够有效避免后续测试中可能出现的“范围蔓延”、业务中断等问题,是整个项目顺利进行的基石。
1. 明确关键信息与测试要求
在前期交互阶段,必须明确以下关键信息:时间安排、出口IP、具体要求、以及测试报告的标准。
要求中还应详细界定具体的测试范围和规则,包括但不限于:
- 域名、解析记录、IP地址、端口
- 服务版本、子域名、重点子页面
- 客户提供的原始扫描报告
常见的测试要求:
- 保密性:测试前必须签署保密协议(NDA)。
- 业务连续性:测试过程不可对业务造成破坏性影响(如拒绝服务攻击、释放蠕虫等),可通过基本扫描及抓包/改包进行,做到测试结果点到为止。
- 信息提交:客户需提供被测系统的基本信息以便评估工作量。
- 漏洞记录:针对已发现漏洞,单独提交漏洞测试记录。需要详细的测试过程、Payload信息等,保证漏洞可验证、可复现。
- 报告输出:有能力的测试人员应提交完整的渗透测试报告,内容包括漏洞证明、威胁程度及加固建议等(格式暂不限定)。
- 时间窗口:测试时间尽量安排在非业务高峰时段(例如 9:00-19:00 以外)。
- 熔断机制:如接收到业务受到影响或要求停止测试的通知,请第一时间断开测试网络连接,停止所有测试行为。
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 保护你自己
- 准备测试系统:确保使用安全、隔离的测试环境。
- 检查表:严格遵循前期交互检查表和后期交互检查表。
- 数据包监听:对所有的测试流量进行抓包留存,以备审计和纠纷澄清。