← 返回首页

实验 01:安全基线(综合实践项目 M1)

实验 01:安全基线(综合实践项目 M1)

本实验即综合实践项目 M1。在 M0 威胁建模基础上,把「安全基线」落到你派生的应用上——认证/会话/RBAC + 网络基线,并显式对照种子工程(seed)的弱实现证明「加固了什么」。它是 M3 攻防与 M6 智能体护栏的地基。 本里程碑关闭 M0 风险登记表的 R1(弱口令)与 R4(会话密钥)——把 M0 识别的风险落到代码,反计亮点。

1. 实验目标

完成本实验后,在 docs/m1/report.md 对照能力框架自评:点亮 簇①·L3

2. 环境准备

3. 任务清单

任务 A:口令哈希 + 登录失败计数 / 锁定

种子工程的 USERS = {"admin": "admin123", ...} 是明文弱口令。改用 werkzeug.security.generate_password_hash / check_password_hash(或 bcrypt / pbkdf2)加盐哈希存储;为 /login 加失败计数 + 阈值锁定(如 5 次失败锁 5 分钟)。

任务 B:会话管理

安全 cookie:SESSION_COOKIE_SECURE/HTTPONLY/SAMESITEsession.permanent + 合理过期;登录成功 / 权限变更时 session.regenerate() 防固定;secret_keysecrets.token_hex 随机化(落实 M0 R4,不再硬编码)。

任务 C:RBAC 授权

区分 admin / alice 角色,加 @rbac_required(role) 装饰器;/orders 等端点做行级授权(服务端强校验 user 参数,禁止越权读他人订单);最小权限:默认 deny,allow 显式。

任务 D:网络 / 传输基线

暴露面收敛(关多余端口 / 服务);HTTPS 思路(反向代理 + 自签证书,或说明生产做法);可用 iptables / nftables 写几条收敛规则。

任务 E(AI 赋能 · 可选)

国产大模型deepseek-v4-flash / Qwen / GLM / Kimi)辅助审查你的加固配置、生成「加固对照表」草稿,并在 report.md 注明 AI 辅助范围 + 人工复核了什么。

AI 助教适配注意事项

本里程碑由 AI 助教(ns4ai-review)按 §4 量规做确定性证据采集 + LLM 档位裁定。提交时注意:

4. 交付与量规

在仓库 docs/m1/ 下提交以下文件——在 milestone/m1 分支上完成、push、开 MR @ 助教(目标 = milestone/m0):

docs/m1/
└── report.md   # RBAC 设计 + 「种子工程弱实现 vs 新实现」加固对照表 + 网络基线配置 + 能力自评

另附代码改动(app.py 的认证 / 会话 / 口令;iptables 规则等)。

评分量规(绑定簇①·L3,满分 100;详细维度释义见 评价指南

维度 权重 优秀 [90,100] 合格 [60,90) 不合格 [0,60)
完成度 0.30 RBAC + 会话管理 + 网络基线三项齐备 + 分支 milestone/m1 + MR 主要项完成(如 RBAC+会话) 关键项缺失(无认证改造)
深度 0.25 加固对照表逐条对比种子工程弱实现 vs 新实现,有测试佐证 能跑通加固后应用 仅贴配置无对照
AI 双向 0.05 加固对照考虑了对智能体端点 / 未来 AI 能力的访问控制 仅常规 Web 认证
安全严谨 0.30 最小权限、口令哈希、会话失效、失败计数 + 锁定(落实 M0 R1/R4) 基本防护(哈希+会话) 高危裸奔(仍明文弱口令)
自评 0.10 自评(簇①·L3)与作品一致 有自评 无自评

5. 能力自评

完成本实验后,在 docs/m1/report.md 末尾填写能力自评(对照 capability-framework.md):

簇 × 级 能力描述 是否点亮 证据
①·L3 设计并实现认证/会话/RBAC + 网络基线(安全工程化) M1 的口令哈希 + RBAC + 会话加固 + 加固对照表

自评须与作品一致;M7 综合收口时会回看。下一单元 U2(M2 自侦察)将对你这版「已加固的应用」做暴露面测绘。