给读者们收集一波威胁分析的理论知识和一篇案例详解

给不了解的威胁分析的读者们做个基础普及,和讲解。

1. STRIDE 模型

STRIDE 是由微软开发的一种威胁建模方法,用于识别和分类系统可能面临的安全威胁。STRIDE 是以下六种威胁类别的首字母缩写:

  • S - Spoofing (伪造)

    • 描述: 攻击者冒充合法用户或系统,进行未授权的访问。
    • 例子: 攻击者通过盗用凭证登录为其他用户。
  • T - Tampering (篡改)

    • 描述: 攻击者对数据或系统进行未授权的修改。
    • 例子: 攻击者修改数据包内容或篡改数据库记录。
  • R - Repudiation (抵赖)

    • 描述: 用户或攻击者否认自己执行过的操作,系统无法证明操作的来源。
    • 例子: 用户进行非法操作后声称未执行过该操作,且无日志可追溯。
  • I - Information Disclosure (信息泄露)

    • 描述: 敏感信息被未授权的实体获取。
    • 例子: 通过不安全的API泄露用户的个人数据。
  • D - Denial of Service (拒绝服务)

    • 描述: 攻击者通过耗尽资源或使系统崩溃,使其无法为合法用户提供服务。
    • 例子: DDoS 攻击导致网站不可访问。
  • E - Elevation of Privilege (权限提升)

    • 描述: 攻击者获得比其应有权限更高的系统访问权限。
    • 例子: 普通用户利用漏洞获得管理员权限。

STRIDE 模型用途

STRIDE 模型主要用于系统设计和开发阶段,帮助识别潜在的威胁,并提前规划防御措施。通过STRIDE模型,开发团队可以从多个角度分析系统的安全性,减少潜在风险。

2. ATT&CK 杀伤链

MITRE ATT&CK(Adversarial Tactics, Techniques, and Common Knowledge)框架是一个详细的攻击知识库,描述了攻击者在进行网络攻击时可能采取的战术和技术。ATT&CK 框架帮助安全专业人员理解攻击过程,并改进防御措施。

ATT&CK 杀伤链阶段

  • 初始访问 (Initial Access): 攻击者通过钓鱼邮件、漏洞利用等方式进入目标网络。

    • 例子: 使用恶意附件的钓鱼邮件。
  • 执行 (Execution): 攻击者在目标系统上执行恶意代码。

    • 例子: 通过 PowerShell 执行恶意脚本。
  • 持久化 (Persistence): 攻击者在目标系统中建立持久存在的后门或账户。

    • 例子: 创建系统启动项来自动运行恶意软件。
  • 权限提升 (Privilege Escalation): 攻击者提升其访问权限,以便进行进一步的操作。

    • 例子: 利用提权漏洞获取管理员权限。
  • 防御绕过 (Defense Evasion): 攻击者尝试隐藏其活动以避免被检测。

    • 例子: 禁用安全软件或清除日志。
  • 凭证访问 (Credential Access): 攻击者获取系统中的用户凭证。

    • 例子: 使用键盘记录器窃取登录凭证。
  • 发现 (Discovery): 攻击者收集目标系统和网络环境的信息。

    • 例子: 扫描网络寻找开放端口。
  • 横向移动 (Lateral Movement): 攻击者在网络中移动,以访问更多系统或数据。

    • 例子: 使用远程桌面协议 (RDP) 连接到其他计算机。
  • 收集 (Collection): 攻击者收集目标系统中的重要数据。

    • 例子: 搜集并压缩文件以便后续传输。
  • 命令与控制 (Command and Control): 攻击者通过与受感染系统的通信控制攻击过程。

    • 例子: 通过C2服务器发送命令控制受感染系统。
  • 目标达成 (Exfiltration): 攻击者将数据从目标系统传输到自己的控制区域。

    • 例子: 使用加密通道传输窃取的数据。
  • 影响 (Impact): 攻击者通过删除、加密数据或干扰服务,直接对目标系统造成破坏。

    • 例子: 部署勒索软件加密目标文件。

ATT&CK 杀伤链用途

ATT&CK 杀伤链模型适用于安全事件响应、威胁狩猎、和漏洞分析。它提供了详细的攻击战术和技术知识库,帮助安全团队识别攻击阶段并采取相应的防御措施。

威胁分析框架案例讲解

本文将基于之前提出的威胁分析框架,通过一个Web项目的案例来逐步解释如何应用该框架识别和应对安全威胁。

1. 识别资产

案例背景

假设我们有一个在线购物平台,用户可以浏览商品、添加购物车、结账、查看订单历史等功能。

识别关键资产

  • 用户数据: 包括用户名、密码、地址、支付信息等。
  • 商品数据库: 存储所有商品的详细信息。
  • 订单记录: 用户的历史订单信息。
  • 支付系统: 处理用户支付的模块。

2. 识别潜在威胁

使用STRIDE模型进行威胁识别

  1. Spoofing (伪造):

    • 威胁: 攻击者可能伪造用户身份访问其他用户的账户信息。
    • 案例: 攻击者通过暴力破解或使用已泄露的凭证登录用户账户。
  2. Tampering (篡改):

    • 威胁: 攻击者可能篡改订单信息或支付数据。
    • 案例: 攻击者通过拦截并篡改HTTP请求,修改订单的商品数量或价格。
  3. Repudiation (抵赖):

    • 威胁: 用户可能否认自己进行了某个订单操作。
    • 案例: 用户在没有有效日志记录的情况下,声称从未购买过某个商品。
  4. Information Disclosure (信息泄露):

    • 威胁: 未授权的用户访问到其他用户的敏感信息。
    • 案例: 攻击者通过SQL注入获取到其他用户的个人信息和支付信息。
  5. Denial of Service (拒绝服务):

    • 威胁: 攻击者可能通过大量请求使网站无法响应正常用户请求。
    • 案例: 攻击者通过DDoS攻击导致在线购物平台无法访问。
  6. Elevation of Privilege (权限提升):

    • 威胁: 攻击者可能利用漏洞提升自己的权限,访问管理后台。
    • 案例: 攻击者通过绕过身份验证机制,获取管理员权限,进而访问后台管理系统。

3. 分析威胁的影响和可能性

使用DREAD模型评估威胁

威胁类型 Damage Potential (损害潜力) Reproducibility (重现性) Exploitability (可利用性) Affected Users (影响用户) Discoverability (可发现性) 综合评分
用户身份伪造 4 3 2 4 2 15
订单篡改 5 4 3 3 3 18
SQL注入 5 4 3 4 3 19
DDoS攻击 3 5 4 5 4 21
权限提升 5 3 2 4 2 16

说明: 综合评分越高,威胁优先级越高。

4. 威胁优先级排序

基于DREAD模型的评分,威胁优先级由高到低排序如下:

  1. DDoS攻击
  2. SQL注入
  3. 订单篡改
  4. 权限提升
  5. 用户身份伪造

5. 制定应对策略

  1. DDoS攻击:

    • 策略: 部署DDoS防护服务,如Cloudflare、AWS Shield等,来缓解流量攻击。
  2. SQL注入:

    • 策略: 使用参数化查询,确保所有用户输入经过适当的过滤和验证。
  3. 订单篡改:

    • 策略: 使用TLS/SSL加密通信,确保数据在传输过程中不被篡改;在后端重新计算订单价格,不依赖客户端传递的数据。
  4. 权限提升:

    • 策略: 实施严格的权限控制和验证机制,定期进行安全审计,确保权限配置的正确性。
  5. 用户身份伪造:

    • 策略: 实施多因素认证(MFA),限制登录尝试次数,并监控异常登录活动。

6. 威胁建模

通过威胁建模工具(如Microsoft Threat Modeling Tool),绘制数据流图,标识信任边界和关键资产,分析潜在的威胁路径,并可视化整个系统的威胁模型。

7. 持续监控和改进

  • 监控: 部署入侵检测系统(IDS)和安全信息与事件管理系统(SIEM),实时监控和响应安全事件。
  • 改进: 定期更新威胁分析,识别新的安全风险,并及时调整安全策略。

通过这个案例,我们展示了如何应用威胁分析框架系统地识别、评估和应对Web项目中的安全威胁。每个项目都应根据自身的特点和实际情况,定制化地应用这些分析步骤和应对策略。