第1章 安全测试概述
安全测试的定义 · 重要性 · 与功能测试的区别 · 安全测试生命周期
1.1 安全测试的定义
安全测试是一种旨在发现软件、系统或网络中的漏洞、威胁和风险的评估过程。它通过模拟攻击者的视角,验证资产在机密性、完整性、可用性三方面是否得到有效保护。安全测试不仅包括技术层面的渗透,也涵盖架构评审、配置核查与合规审计。
安全测试核心三要素:漏洞发现 → 威胁建模 → 安全基线
1.2 安全测试的重要性
- 降低数据泄露风险 — 提前发现SQL注入、XSS等漏洞,避免敏感信息外泄。
- 满足合规要求 — 等保2.0、GDPR、PCI-DSS等均要求定期安全评估。
- 保护企业声誉 — 一次安全事件可能导致品牌信任度断崖式下跌。
- 减少修复成本 — 越早发现漏洞,修复成本越低(符合安全左移理念)。
安全测试是风险管理的基石
1.3 与功能测试的区别
| 维度 | 功能测试 | 安全测试 |
|---|---|---|
| 目标 | 验证功能是否符合需求 | 发现漏洞与安全缺陷 |
| 思维模式 | 正向验证(正常流程) | 逆向思维(攻击者视角) |
| 测试用例 | 基于用户故事/用例 | 基于威胁模型/攻击模式 |
| 典型方法 | 等价类、边界值、场景法 | 渗透测试、模糊测试、代码审计 |
| 工具侧重 | Selenium, JUnit, Postman | Burp Suite, SonarQube, Trivy |
思维模式差异:正向验证 vs 攻击者视角
1.4 安全测试生命周期
一个完整的安全测试生命周期通常包含以下阶段,形成闭环持续改进:
- 资产识别与威胁建模 — 确定测试范围、数据流、信任边界。
- 安全需求与策略制定 — 定义安全基线、合规要求、测试深度。
- 测试设计与执行 — 执行SAST/DAST/SCA/渗透测试等。
- 漏洞分析与风险评估 — 分级(CVSS)、去重、误报剔除。
- 修复与复测 — 开发修复后回归验证。
- 持续监控与改进 — 将安全测试嵌入CI/CD流水线。
六阶段闭环:从威胁建模到持续监控
📌 安全测试类型速览
- SAST (静态分析) — 白盒,早期发现
- DAST (动态分析) — 黑盒,运行时检测
- IAST (交互式) — 插桩,融合动静
- SCA (软件组成分析) — 开源组件漏洞
- 渗透测试 — 人工+工具深度对抗