第1章 安全测试概述

安全测试的定义 · 重要性 · 与功能测试的区别 · 安全测试生命周期

1.1 安全测试的定义

安全测试是一种旨在发现软件、系统或网络中的漏洞、威胁和风险的评估过程。它通过模拟攻击者的视角,验证资产在机密性、完整性、可用性三方面是否得到有效保护。安全测试不仅包括技术层面的渗透,也涵盖架构评审、配置核查与合规审计。

漏洞发现 威胁建模 风险验证 安全基线 合规审计
安全测试核心三要素:漏洞发现 → 威胁建模 → 安全基线

1.2 安全测试的重要性

  • 降低数据泄露风险 — 提前发现SQL注入、XSS等漏洞,避免敏感信息外泄。
  • 满足合规要求 — 等保2.0、GDPR、PCI-DSS等均要求定期安全评估。
  • 保护企业声誉 — 一次安全事件可能导致品牌信任度断崖式下跌。
  • 减少修复成本 — 越早发现漏洞,修复成本越低(符合安全左移理念)。
安全测试 合规 · 声誉 · 成本
安全测试是风险管理的基石

1.3 与功能测试的区别

维度功能测试安全测试
目标验证功能是否符合需求发现漏洞与安全缺陷
思维模式正向验证(正常流程)逆向思维(攻击者视角)
测试用例基于用户故事/用例基于威胁模型/攻击模式
典型方法等价类、边界值、场景法渗透测试、模糊测试、代码审计
工具侧重Selenium, JUnit, PostmanBurp Suite, SonarQube, Trivy
功能测试 ✅ 正向 安全测试 ⚡ 逆向
思维模式差异:正向验证 vs 攻击者视角

1.4 安全测试生命周期

一个完整的安全测试生命周期通常包含以下阶段,形成闭环持续改进:

  1. 资产识别与威胁建模 — 确定测试范围、数据流、信任边界。
  2. 安全需求与策略制定 — 定义安全基线、合规要求、测试深度。
  3. 测试设计与执行 — 执行SAST/DAST/SCA/渗透测试等。
  4. 漏洞分析与风险评估 — 分级(CVSS)、去重、误报剔除。
  5. 修复与复测 — 开发修复后回归验证。
  6. 持续监控与改进 — 将安全测试嵌入CI/CD流水线。
安全测试 生命周期 ① 威胁建模 ② 策略制定 ③ 测试执行 ④ 风险评估 ⑤ 修复复测 ⑥ 持续监控
六阶段闭环:从威胁建模到持续监控

📌 安全测试类型速览

  • SAST (静态分析) — 白盒,早期发现
  • DAST (动态分析) — 黑盒,运行时检测
  • IAST (交互式) — 插桩,融合动静
  • SCA (软件组成分析) — 开源组件漏洞
  • 渗透测试 — 人工+工具深度对抗