INFO5995-A2-Task5-修复建议与缓解措施模板

INFO5995 Task 5 — 修复建议与缓解措施模板

修复建议评分标准

根据 Rubric,修复建议占 Part A 2 分,但 Task 5 的 presentation 中也需要展示 mitigation:

分数 标准
2 分 具体、技术上合理,解决根本原因,解释风险降低原因
1.5 分 大部分正确,有小缺陷
0.5-1 分 模糊或部分修复
0 分 无效或缺失

常见漏洞类型修复模板

1. 认证与会话

弱密码策略 / 暴力破解

修复: - 实施强密码策略(最小长度 12,复杂度要求) - 实施速率限制(5 次失败后锁定 15 分钟) - 实施 CAPTCHA 于重复失败尝试后 - 启用 MFA(TOTP / WebAuthn)

论证: > 速率限制将在线暴力破解从 O(n) 降低到 O(1),CAPTCHA 阻止自动化工具,MFA 即使密码泄露也保护账户。

JWT 弱点

修复: - 拒绝 "alg": "none" 的 JWT - 使用 RS256 而非 HS256(非对称签名) - 实施严格的过期策略(access token ≤ 15 分钟) - 密钥轮换机制

论证: > 强算法和短过期窗口将密钥泄露的影响时间从永久降低到分钟级。

2. 输入验证与注入

XSS(跨站脚本)

修复: - 输出编码(HTML entity encoding) - 实施 CSP(Content Security Policy) - 使用现代框架的自动转义(React/Vue/Angular 默认) - 输入验证(白名单而非黑名单)

论证: > CSP 即使存在注入也能阻止脚本执行,输出编码消除 DOM 中的可执行上下文。

SQL Injection

修复: - 参数化查询 / Prepared Statements(唯一推荐) - ORM 框架(默认参数化) - 最小权限数据库账户 - WAF 作为辅助层(非主要防御)

论证: > 参数化查询将代码与数据分离,从架构层面消除注入可能,是最根本的修复。

3. 访问控制

IDOR(不安全的直接对象引用)

修复: - 实施基于策略的访问控制(PBAC) - 使用间接引用映射(UUID 替代自增 ID) - 每个敏感操作验证资源所有权 - 服务端验证,不信任客户端输入

论证: > 服务端所有权验证确保即使攻击者猜到/构造 URL,无权限时请求会被拒绝。

4. 安全配置

敏感信息泄露(.git、.env)

修复: - Web 服务器配置拒绝访问隐藏文件/目录 - 部署前清理敏感文件 - 使用 secrets 管理服务(AWS Secrets Manager / HashiCorp Vault) - 实施安全扫描于 CI/CD 管道

论证: > 深度防御:配置层阻止访问 + 部署层消除文件 + 管理层替换硬编码凭证。

不安全的 CORS

修复: - 白名单具体的 Origin,不使用 "*" - 禁止 credentials 时配合通配符 - 实施 Origin 验证逻辑 - Vary: Origin 响应头

论证: > 精确的 Origin 白名单将跨域访问从"任意网站"限制到"信任域名"。

缓解措施优先级框架

优先级 1: 消除根本原因(Architecture/Design)
└─ 示例:参数化查询替代字符串拼接

优先级 2: 添加验证层(Implementation)
└─ 示例:输入验证、输出编码

优先级 3: 检测与响应(Operational)
└─ 示例:WAF、SIEM 告警、入侵检测

优先级 4: 补偿控制(Compensating)
└─ 示例:最小权限、监控、保险

论证有效性模板

## 修复建议有效性论证

### 根本原因
[漏洞产生的根本设计/实现问题]

### 修复方案
[具体技术措施]

### 为什么消除/降低风险
[修复后攻击路径如何被阻断]

### 残余风险评估
[修复后仍存在的边缘情况,及进一步建议]

示例:完整修复论证

漏洞: Reflected XSS in search parameter

修复: 1. 搜索参数输出前进行 HTML entity 编码(& → &, < → <) 2. 实施 CSP: default-src 'self'; script-src 'none' 3. 框架层启用自动转义

论证: > 编码确保用户输入在浏览器中始终以纯文本渲染,永远不会进入 JavaScript 执行上下文。CSP 作为纵深防御层,即使编码被绕过也能阻止脚本执行。双层防御将 XSS 风险从"可利用"降低到"理论上可能但极难利用"。