2. 资产识别与系统建模

2.1 业务安全需求

业务安全需求是安全工作的起点,它回答一个核心问题:“业务在运行过程中,哪些资产需要保护?面临哪些风险?” 我们需要从业务目标、业务流程、数据流转三个维度进行梳理。

📋 业务安全需求清单(示例)

业务场景 安全需求 优先级
用户注册/登录防暴力破解、多因素认证P0
支付交易交易签名、防重放、金额校验P0
个人数据导出数据脱敏、操作审计、权限管控P1
后台管理IP白名单、会话超时、日志记录P1

🎯 业务安全需求分析三步法

  1. 资产识别 — 列出业务中的核心数据、系统、接口
  2. 威胁识别 — 谁可能攻击?攻击路径是什么?
  3. 需求转化 — 将威胁转化为可落地的安全控制措施
业务目标分析 识别核心业务流程 数据流分析 数据产生/存储/传输 安全需求输出 控制措施清单 图:业务安全需求分析流程

2.2 合规性需求

合规性需求是安全工作的底线。不同行业、不同地区有对应的法律法规和监管要求。常见的合规框架包括:

📜 国内法规

  • 《网络安全法》
  • 《数据安全法》
  • 《个人信息保护法》
  • 《等级保护2.0》

🌍 国际标准

  • ISO 27001
  • GDPR(欧盟)
  • PCI-DSS(支付行业)
  • HIPAA(医疗行业)

🔍 合规映射示例

  • 数据加密 → 等保三级要求
  • 日志留存6个月 → 网安法
  • 用户删除权 → 个保法
法律法规要求 网络安全法 数据安全法 等保2.0 合规映射分析 条款 → 控制项 差距分析 整改计划 合规需求清单 加密要求 审计要求 备份要求 图:合规性需求映射流程

2.3 威胁建模入门

威胁建模是一种系统化的方法,用于识别、评估和缓解系统面临的安全威胁。最经典的模型是 STRIDE(微软提出)和 PASTA。这里我们重点介绍 STRIDE。

🔐 STRIDE 威胁分类

缩写威胁类型示例
SSpoofing(假冒)伪造用户身份
TTampering(篡改)修改传输数据
RRepudiation(抵赖)否认操作行为
IInfo Disclosure(信息泄露)数据库泄露
DDenial of Service(拒绝服务)DDoS攻击
EElevation of Privilege(权限提升)越权操作

📝 威胁建模四步法

  1. 绘制数据流图 — 展示系统组件与数据流向
  2. 识别威胁 — 对每个数据流应用STRIDE
  3. 评估风险 — 使用DREAD或CVSS打分
  4. 制定缓解措施 — 针对高优先级威胁
用户浏览器 Web服务器 数据库 日志存储 HTTP请求 SQL查询 审计日志 ⚠️ 威胁:SQL注入 (T) ⚠️ 威胁:越权查询 (E) ⚠️ 威胁:日志泄露 (I) 图:威胁建模数据流图(含STRIDE威胁标注)

2.4 安全需求文档编写

安全需求文档是沟通的桥梁,它将安全分析结果转化为开发、测试、运维团队都能理解的语言。一份优秀的安全需求文档应包含以下要素:

📄 安全需求文档模板结构

  • 1. 需求编号 — SEC-REQ-001
  • 2. 需求描述 — 清晰、无歧义的一句话
  • 3. 来源 — 业务需求 / 合规要求 / 威胁建模
  • 4. 优先级 — P0/P1/P2
  • 5. 验收标准 — 如何验证需求已满足
  • 6. 关联风险 — 对应的威胁或漏洞

✍️ 编写示例


<strong>SEC-REQ-012:登录接口防暴力破解</strong>
描述:登录接口在连续5次失败后,需锁定账号15分钟。
来源:业务安全需求(防撞库攻击)
优先级:P0
验收标准:使用自动化工具测试,连续5次错误密码后
          返回429状态码,且账号无法登录。
关联威胁:Spoofing(假冒身份攻击)
需求收集 业务/合规/威胁 需求分析 优先级排序 文档编写 模板化输出 评审发布 多方确认 图:安全需求文档编写流程

📌 本章核心要点

  • 业务安全需求 — 从业务目标出发,识别资产与威胁,输出控制措施。
  • 合规性需求 — 以法律法规为底线,进行映射分析与差距整改。
  • 威胁建模入门 — 使用STRIDE分类,通过数据流图系统化识别威胁。
  • 安全需求文档 — 结构化、可验证、可追溯,是安全落地的关键载体。