用途:为法国国家(État)应用开发提供安全规则,由 DINUM 依据 ANSSI 发布的 13 份指南生成。指南清单、版本及与各领域的对应关系见 references/sources.md。来源:https://cyber.gouv.fr/reglementation/cybersecurite-systemes-dinformation/
两种使用模式:
- 咨询模式(开发期间):编写代码、配置服务器、反向代理、数据库或 CI/CD 流水线时,直接应用相关领域规则,不产出报告。查阅 references/checklist.md 中相关领域;涉及具体数值(TLS 版本、密码套件、密钥长度、椭圆曲线、口令派生函数、日志保留时长)时,必须取自 references/valeurs-anssi.md,不得凭记忆编造或近似。当规则约束技术选择时,向用户说明所应用的规则及其 ANSSI 来源。
- 审计模式(合规评估):用户要求审计、合规报告或检查既有项目安全时,执行审计工作流。
14 个基础领域:TLS/HTTPS、密码学、密钥管理、认证/MFA/口令、输入校验与数据库、依赖与第三方组件、日志、浏览器与 API 安全、系统隔离、容器与部署、开发链(CI/CD)、开发工作站、备份与连续性、事件管理。
审计工作流:分析项目(源码、配置、基础设施、CI/CD);选择适用模块(默认不加载任何模块);遍历 checklist 的 14 个领域及所选模块;对每条规则给出状态(OK/KO/NA/部分);对每个 KO 判定可利用性(可实际利用的漏洞 vs 缺失的最佳实践);最终确认前对照真实代码与配置复核每个 KO,排除误报,仅保留有具体证据(文件、行、设置)的结论;按 references/rapport.md 格式生成报告;导出为 Markdown 文件并在对话中显示,可选 JSON 结构化输出(securite-developpement-AAAA-MM-JJ.json,schema 见 references/findings-schema.json)。
条件模块(默认不加载、不审计,仅在检测到触发条件时启用):langage-c.md(存在 *.c 文件或实际编译 C 的构建配置)、langage-rust.md(存在 Cargo.toml/Cargo.lock)、cms.md(检测到 WordPress 的 wp-config.php、Drupal、Joomla 或托管 CMS)。未加载的模块不出现在报告中,也不计入总体结果。
规则溯源:每条规则以方括号标注来源,如 [TLS R3]、[MFA R29]、[CRYPTO R5] 为 ANSSI 指南的编号建议,后缀 - 与 -- 表示降级替代方案;[ESS-DEVSECOPS]、[ESS-BDD]、[ESS-LIBRE]、[ESS-CMS] 为 ANSSI 的“Essentiels”,按指南引用;[DINUM] 为 DINUM 采纳的本地最佳实践,无 ANSSI 指南对应,不得表述为 ANSSI 要求。
范围外:14 个领域之外的安全问题(网络架构、防火墙、DNS、Active Directory、修复、工业系统、生成式 AI 等)应使用 anssi-guides 技能,其覆盖 ANSSI 全部 126 份指南。即使在 14 个领域内,当适用规则标注 [DINUM] 时,也应检查 anssi-guides 是否覆盖该主题(如 OpenID Connect 与委托认证、Docker 容器、备份),应用 [DINUM] 规则并提示存在的指南。
参考文件:references/checklist.md(14 个领域规则及来源)、references/valeurs-anssi.md(需引用的具体数值)、references/sources.md(13 份 ANSSI 指南的版本、URL、查阅日期、对应领域)、references/modules/(C、Rust、CMS 条件模块)、references/rapport.md(报告格式、优先级网格、导出、可选 JSON 输出)、references/findings-schema.json(可选结构化输出的 JSON Schema)。