网络安全等级保护二级合规要求
# 网络安全等级保护二级合规要求
版本 v1.3,2026-10-23。返回总览。
本文将 GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》 第二级的技术与管理期望,映射为 Fago 平台在 应用、数据、部署与运维交付物 上必须满足或必须配套的要求。等保测评由具备资质的测评机构在 已定级、已备案 的系统上实施;本文是 产品与工程验收口径,不表示项目已通过测评或已取得备案。
# 1. 目标、边界与责任分工
# 1.1 目标
在典型部署形态(同域反向代理 + Go API/worker + 业务数据库 + Redis + 对象存储)下,使 Fago 具备满足二级等保测评的技术与控制证据,并与现有 身份权限与租户、总体架构 设计一致,避免为“过测评”另起一套安全模型。
# 1.2 系统定级假设(需用户确认)
| 假设项 | 默认 | 说明 |
|---|---|---|
| 定级对象 | Fago 管理后台 + 平台运营端 + 其承载的业务管理数据 | 不含用户自建机房物理安全细则的“替代实现” |
| 保护等级 | 第二级 | 损害客体为公民、法人和其他组织的合法权益 |
| 业务特征 | 多租户 SaaS 管理类信息系统 | 租户业务数据与平台元数据分责,测评范围需在备案材料中写清 |
| 网络区域 | 业务系统处于 安全计算环境 内,边界由防火墙/反向代理承担 | 应用不替代边界设备,但须提供接口与日志供核查 |
若实际定级为三级、或系统与工控/互联网公众服务强耦合,应另做差距分析;本文 不覆盖三级扩展控制项(鉴别强度、运维双因素、入侵检测与恶意代码防范等通常更严),仅在差距表中标注“三级提前项”供决策。
云计算安全扩展(GB/T 22239-2019 附录):Fago 以多租户 SaaS 形态交付时,测评范围常包含 云服务商与租户的安全责任划分。平台方文档须说明:镜像/宿主机由云厂商负责,租户业务数据隔离与访问控制由应用负责,备份与审计留存按合同拆分;租户侧制度与人员管理由使用单位负责。备案材料中应引用 deploy/mlps-policy-templates.md 第 11 项及商务合同条款。
# 1.3 责任分工
- Fago 工程:实现可验证的控制逻辑、默认安全参数、审计数据模型、运维可观测性与部署清单。
- 部署方/云厂商:网络分区、边界防护、主机与中间件基线、物理与环境安全、备份介质与异地策略。
- 使用单位:定级、备案、制度、人员、测评整改闭环;敏感行业附加条款由用户法务与测评机构解释。
# 2. 依据与引用
| 文档 | 用途 |
|---|---|
| GB/T 22239-2019 | 二级 基本要求 条款来源 |
| GB/T 28448-2019 | 测评实施时的检查方法(工程验收可对齐其“应核查”项) |
| GB/T 25070-2019 | 安全设计技术要求(扩展设计时参考) |
| 项目内 身份权限与租户 | 会话、RBAC、隔离、审计登录 |
| 项目内 分期与验收 | 里程碑与退出条件 |
| 项目内 核心数据模型 | 审计表、登录日志、会话 |
应用内容加密可按环境切换到 SM2/SM4,缺省套件仍是 rsa-aes。APP_API_ENCRYPTION_SUITE 覆盖 YAML。sm2-sm4 使用 SM2 PKCS#8 PEM,切换套件必须更换 PEM。SM4 密钥为 16 字节,SM2 与 SM4 的安全强度按 128 位计。TLCP、口令 SM3 和商用密码产品认证仍未实现。该能力不表示二级等保或商密认证已通过;若监管要求传输层国密或产品认证,仍单列为 R-CRYPTO 专项,不与“满足二级通用要求”混为一谈。
# 3. 控制要求映射(应用相关摘录)
下表聚焦 安全计算环境 中与 Fago 直接相关的条款;物理环境、通信网络、区域边界、安全管理中心的多为基础设施与制度项,在 §5 以交付清单形式列出,不在表中重复展开。
| 等保层面 | 二级要求摘要 | Fago 实现要求 | 规划阶段 | 验收证据(示例) |
|---|---|---|---|---|
| 身份鉴别 | 唯一标识、鉴别、失败处理、口令复杂度、登录连接超时、远程管理安全 | 用户/平台账号唯一;bcrypt 存储;失败统一提示;可配置口令策略与账户锁定;会话空闲/绝对超时;生产禁止 HTTP 刷新 cookie profile | M1 基线;策略可配置 M2 | 集成测试:锁定/解锁、超时、改密撤销会话;配置审查记录 |
| 访问控制 | 授权、最小权限、默认拒绝、访问控制粒度 | RBAC + 数据范围 + 租户权限上限;API 声明权限码;平台/租户 audience 隔离 | M1–M3 | 身份权限 案例表全部通过 |
| 安全审计 | 审计覆盖、保护、留存、时间戳 | 登录日志、操作审计、管理变更;审计查询受权;日志不含口令/令牌明文;requestId 关联 | M1 登录审计;M2 操作审计 | 抽样:授权用户不能删改他人审计;保留策略文档 |
| 入侵防范 | 最小安装、漏洞修补、入侵防范 | 应用依赖 CVE 跟踪;关闭调试接口与默认账号;限流与 Origin 校验;敏感错误脱敏 | M0–M4 | CI 依赖扫描报告;生产配置检查表 |
| 恶意代码防范 | 防范恶意代码 | 主要由 主机与邮件网关 承担;应用上传文件类型/大小限制、病毒扫描挂钩(R2 文件模块) | R2.2 文件 | 上传策略与可选 ClamAV 集成说明 |
| 数据完整性 | 传输与存储完整性 | HTTPS 强制;写操作 version 乐观锁;迁移 checksum | M0–M4 | TLS 配置;并发更新冲突测试 |
| 数据保密性 | 传输保密、存储保密(敏感字段) | TLS;令牌仅存摘要;配置与 Secret 不入库明文;日志脱敏 | M1 起 | 渗透/配置扫描:无明文密钥在仓库 |
| 数据备份恢复 | 备份与恢复 | 提供 备份恢复演练 文档与脚本;支持库级备份与版本升级回滚流程 | M4 | 演练记录:RPO/RTO 目标由部署方填写 |
| 剩余信息保护 | 内存/介质残留 | 登出与改密撤销会话;响应体不返回完整令牌;临时文件清理(导出/上传) | M1;R2 文件 | 改密后会话失效测试 |
| 个人信息保护 | 最小必要、访问控制 | 范围限定为本系统账号与运维数据(用户名、昵称、手机等管理字段、登录日志、操作审计);会员/CRM 等扩展业务的个人信息处理另立专项,不默认适用本表 | M2 | 越权 404/403;导出受权;不引用未实现的 GB/T 35273 全量条款 |
下表映射 GB/T 22239-2019 安全计算环境 基本要求(第二级)常用核查点,便于与测评记录对勾;精确条款以正式标准文本为准。
| 标准章节(二级) | 本文对应 |
|---|---|
| 8.1.4.1 身份鉴别 | §4.1、§3 身份鉴别行 |
| 8.1.4.2 访问控制 | §4.2、§3 访问控制行 |
| 8.1.4.3 安全审计 | §4.3 |
| 8.1.4.4 入侵防范 | §3 入侵防范行、§4.5 |
| 8.1.4.5 恶意代码防范 | §3 恶意代码行、R2 文件 |
| 8.1.4.6 数据完整性 | §3、§4.4 |
| 8.1.4.7 数据保密性 | §3、§4.4 |
| 8.1.4.8 数据备份恢复 | §3、§4.4、deploy/mlps-hardening-checklist.md §5 |
| 8.1.4.9 剩余信息保护 | §3、§4.4 |
三员/权限分离(二级测评常见加强项):R1 通过 角色 + 权限码 支持职责分离;schema v6 已创建四个保留角色,bootstrap 账号仅关联 tenant_admin(本租户已开通功能),测评前 使用单位应拆分为三个账号或三个角色,且不得一人兼三员。
| 租户侧保留角色(已发布 code) | 允许(示例权限码) | 禁止 |
|---|---|---|
tenant_sys_admin 系统管理员 | 用户 read/create/update/delete、部门/岗位 CRUD、角色 read | 重置他人口令、角色写入/授权、安全策略写、审计读取 |
tenant_security_admin 安全管理员 | system:security-policy:read/update、system:user:unlock | 单独授予时不含 system:role:grant、system:user:create |
tenant_audit_admin 审计管理员 | system:audit-log:read、system:login-log:read | 任意业务写权限、角色授权 |
平台侧对称使用 platform:security-policy:*、platform:audit-log:read 等 platform audience 权限码(平台侧种子尚未发布)。platform_admin 与 tenant_admin 不得为同一自然人长期共用;代管须单独功能与审计(规划项)。
# 4. 应用层详细要求
# 4.1 身份鉴别与会话
在 身份权限与租户 既有设计基础上,等保基线 增加或强化如下可配置策略(默认值面向二级常见测评口径,实施前可由安全管理员调整并留痕):
| 策略项 | 等保基线默认值 | 实现要点 |
|---|---|---|
| 口令最小长度 | 8 字符(bootstrap 初始化口令仍 ≥14,见 M0) | 登录与改密接口统一校验;拒绝 bcrypt 72 字节以上静默截断 |
| 口令复杂度 | 至少三类:大写、小写、数字、特殊字符中的三类 | 可配置开关;初始/重置口令仍强制改密 |
| 口令有效期 | 普通用户 90 天(可关闭) | 到期后 mustChangePassword 或禁止登录,须审计 |
| 登录失败锁定 | 连续 5 次失败锁定账户 15 分钟(可配置) | 账户级:递增 failed_login_count,达阈值写 locked_until 并拒绝登录;IP/租户+账号限流:防撞库与分布式尝试,不替代账户锁定;两类事件分别审计(见 身份设计 §2.1) |
| 会话空闲超时 | 30 分钟无业务活动需重新认证(可配置) | 每次受保护 API 与成功 refresh 更新 last_seen_at 并重算 idle_expires_at;idle 到期后 refresh 拒绝(403/401),即使 refresh cookie 仍在 7 天窗口内 |
| 并发会话 | 可限制单用户最大会话数(可选) | 超出时拒绝新登录或撤销最旧会话,须配置与审计 |
| 远程管理 | 仅 HTTPS 管理入口 | 生产未 HTTPS 时 API 启动 WARN(仍推荐 HTTPS 与 https profile) |
| 特权操作再鉴别 | 重置他人密码、变更角色授权、平台停用租户 | R1:要求输入 当前操作者口令 或短期 step-up token;R2 可升级为 MFA |
刷新令牌轮换、重放撤销、强制改密受限会话、Origin/X-App-Request 校验 维持原设计,计入等保“失败处理”与“会话鉴别”证据。
# 4.2 访问控制
- 所有受保护 API 默认拒绝;权限码与租户套餐交集已在 RBAC 模型中定义,等保验收时 不得 存在“仅隐藏菜单未校验 API”的端点。
- 数据范围 ALL/DEPT/SELF 必须覆盖列表、详情、修改、删除、导出与统计(已有要求,等保回归必测)。
- 平台账号 默认无租户业务数据读取权;任何代管能力须单独功能与审计(规划项,未实现前不得上线)。
# 4.3 安全审计
| 事件类型 | 最低字段 | 保留建议 |
|---|---|---|
| 登录成功/失败 | 时间、租户、账号指纹、结果、IP、userAgent、requestId | ≥6 个月(单位可加长) |
| 会话撤销/刷新异常 | sessionId 摘要、原因、操作者 | 同上 |
| 权限与角色变更 | 前后差异(脱敏)、目标主体、操作者 | 同上 |
| 用户/部门/岗位变更 | 业务字段差异 | 同上 |
| 租户生命周期 | 创建、初始化、停用、套餐变更 | 同上 |
| 审计日志查询 | 谁、何时、查询条件摘要 | 同上 |
要求:
- 审计记录 追加写入;R1 不允许业务管理员物理删除或篡改审计行;仅平台级保留策略任务可归档(须单独权限与审计)。
- 应用服务器与数据库 时间同步(NTP)由部署清单强制;审计时间以 UTC 存储、当前界面明确使用浏览器时区展示/筛选;租户时区配置尚未实现。
- 支持按 requestId 从操作日志关联到 HTTP 访问日志(见架构请求日志)。
# 4.4 数据保护与备份
- 传输:对外仅 TLS 1.2+;禁用弱 cipher;HSTS 由反向代理配置。
- 存储:密码 bcrypt;refresh/access 仅存摘要;SSO client secret 加密存储(R2,见数据模型规划)。
- 备份:M4 必须完成 全库逻辑备份 + 恢复演练 文档;对象存储桶版本与生命周期由部署方配置。
- 导出:批量导出须权限码 + 数据范围;导出文件敏感列脱敏策略与下载链接短期有效(R2 文件与导出功能一并验收)。
# 4.5 安全配置基线
生产环境配置须满足(启动时校验或文档强制):
- 关闭详细堆栈与内部错误链对客户端暴露;HTTP 仅返回公开中文提示与业务码;禁止在日志、HTTP 响应与 Oops 自定义属性中写入口令、refresh/access token、Cookie、完整 DSN 或完整请求体(与仓库
AGENTS.md错误处理约定一致)。 - 禁用未授权 CORS;禁止把 DSN、密钥写入日志与 HTTP 响应。
- 管理接口与 metrics 不对外网裸奔;
/health与/ready区分存活与依赖就绪。 - 默认不存在可猜测的初始化口令;bootstrap 一次性且审计。
交付物:仓库 deploy/mlps-hardening-checklist.md、deploy/mlps-policy-templates.md(文档站提供静态副本;M4 须结合本环境勾选并归档证据)。
# 5. 部署、网络与管理制度配套(非代码但必须交付)
测评时通常一并核查,Fago 文档与脚本须 明确责任方与最低配置,避免测评时“只有应用、没有边界”:
| 类别 | 二级常见核查点 | Fago 交付 |
|---|---|---|
| 安全通信网络 | 网络架构、边界访问控制、入侵防范(网络层) | 参考架构图:仅 443 入站;管理 SSH 跳板;内网 DB/Redis 不暴露公网 |
| 安全区域边界 | 访问控制、入侵防范、恶意代码(网关) | WAF/限流可在代理层;与应用限流分工说明 |
| 安全计算环境(主机) | 补丁、防病毒、身份鉴别(OS)、资源控制 | 主机基线 checklist(CentOS/麒麟等由用户选型) |
| 安全管理中心 | 集中审计、安全管理 | 日志外送 Syslog/ELK/Loki 的 字段规范 与示例配置(R1 文档;R2 可选 Filebeat 模板) |
| 安全管理制度 | 策略、机构、人员、建设、运维 | deploy/mlps-policy-templates.md 目录模板,内容由使用单位填空 |
# 6. 与里程碑的对应
| 里程碑 | 等保相关工作 | 退出条件(增量) |
|---|---|---|
| M1 | 登录审计、账户锁定、会话 idle、口令策略 服务端校验(长度/复杂度)、HTTPS profile | §4.1 默认策略可测;锁定与 idle 拒绝 refresh 的自动化测试通过 |
| M2 | 操作审计查询、口令策略 管理端、90 天有效期、三员种子角色、特权再鉴别 | 审计管理员只读;安全管理员可改策略不可授业务超权 |
| M3 | 租户停用/套餐变更审计、跨租户案例回归 | 等保隔离案例与既有 M3 案例合并执行 |
| M4 | 备份恢复演练、加固检查表、渗透/配置扫描一轮 | M4 安全行扩展为“等保基线回归” |
| M5(R2) | 文件上传限制与可选病毒扫描挂钩;OIDC 与 MFA 扩展 | 远程运维与第三方登录的审计与撤销 |
| 专项 R-CRYPTO | 国密 TLS/存储 | 仅在有明确监管要求时启动 |
范围说明:二级等保 不强制 全员 MFA,但 建议 平台管理员与 tenant_admin 在 R2 启用 MFA(TOTP/WebAuthn);若测评机构或行业规范要求登录双因素,将 MFA 从 R2 提前到 M4,并调整 分期与验收 工期。
# 7. 差距与当前状态(诚实标注)
| 能力 | 设计状态 | 实现状态 |
|---|---|---|
| 会话、基础权限导航、租户隔离、登录失败限流 | M1 核心已实现并通过自动化 | M1 证据;M1 人工验收已获用户 2026-10-23 确认;用户多角色/数据范围已通过 M2 双库自动验证,M2 已于 2026-10-23 获用户独立人工验收确认并结项 |
| 账户锁定(连续失败) | 已写入身份与 migration 0003 | MySQL/PostgreSQL race 集成通过,含特权再鉴别失败锁定持久化 |
| 口令复杂度(改密校验) | 已写入身份与 migration 0003 | 改密按平台策略(默认 8 位和三类字符);bootstrap/管理新建与重置至少 14 位,统一校验最多 72 字节。登录不会用当前复杂度策略拒绝合法旧散列 |
| 口令有效期 90 天、策略管理 UI | 租户 inherit/custom 完整模式 | 已实现租户端管理与解锁、统一身份/管理策略解析及到期受限分支;双库验证见 M2 记录,平台默认写管理仍待平台阶段 |
| 会话空闲 30 分钟强制退出 | migration 0003 与会话更新 | 双库集成已验证 idle 到期拒绝 refresh,cookie 上限仍是 7 天 |
| 操作审计与登录日志查询 | schema v9 API/页面与持续保留 | 双库范围/脱敏/留痕验证通过;完整验收继续 |
| 三员角色与权限码种子 | 本文 §3 矩阵 | schema v6 租户侧四个保留角色已发布、双库验证;安全策略/解锁管理已实施,审计查询已实施,职责分离部署继续 |
| 加固检查表与制度模板 | deploy/mlps-*.md 草案 v0.1 | M4 须勾选归档 |
| 特权操作再鉴别 | 当前操作者口令 | M2 用户角色分配、角色授权、重置他人口令、安全策略和解锁已实现,双库验证;平台停用租户待 M3 |
| 备份恢复演练 | M4 已有 | 待 M4 执行 |
| 日志集中采集 | 部署配套 | 待 M4 文档/示例 |
| 国密 | 应用内容加密可按环境切换到 SM2/SM4;TLCP、口令摘要和商用密码产品认证仍未实现 | 内容加密套件已实现。缺省 rsa-aes。不据此宣称二级等保或商密认证已通过 |
未在本表列出的基础设施与制度项,由使用单位在测评前自行补齐;Fago 不在文档中宣称“已二级达标”。
# 8. 测评前自检清单(工程侧)
- [ ] 生产配置通过加固检查表,且无
development-httpprofile。 - [ ] 所有受保护 API 有权限测试;隐藏菜单直链 API 返回 403。
- [x] M1 登录失败锁定、口令策略、会话 idle/绝对超时用双库自动化测试覆盖,见 M1 实施记录。
- [ ] 审计日志:无密码/令牌/完整 DSN;授权用户不可篡改历史。
- [ ] 备份恢复演练记录与 RPO/RTO 说明(数值由部署方填写)。
- [ ] TLS 与证书、NTP、Redis/DB 认证、最小权限 DB 用户已文档化。
- [x] M0/M1 两个租户隔离与平台/租户 audience 负向测试通过;不据此宣称后续业务数据范围已验收。
- [ ] 已知未实现项(MFA、TLCP、口令 SM3、商用密码产品认证、病毒扫描)在备案材料中如实说明适用范围与补偿措施。应用内容加密的 SM2/SM4 不能代替这些项,也不表示等保或商密认证已通过。
# 9. 变更记录
| 版本 | 日期 | 说明 |
|---|---|---|
| v1.0 | 2026-10-22 | 首版:二级映射、应用基线、里程碑对齐与差距表 |
| v1.1 | 2026-10-22 | 审阅修复:§4.5 措辞、M1/M2 分工、标准章节对照、三员矩阵、云扩展、deploy 模板、idle/锁定语义 |
| v1.2 | 2026-10-22 | 差距表记录锁定、改密策略和 30 分钟 idle 已编码;验证只走专用 MySQL/PostgreSQL,本轮未执行 |
| v1.3 | 2026-10-23 | 国密行改为应用内容加密可切换 SM2/SM4;TLCP、口令 SM3 和商用密码产品认证仍未实现,不宣称等保或商密认证通过 |