- 应用安全
【免费下载链接】Top10
Official OWASP Top 10 Document Repository
导读
安全配置错误(Security Misconfiguration)是 OWASP Top 10:2025 中从上一版第 5 位跃升至第 2 位的核心风险类别:在本次数据周期中,100% 的受测应用被发现存在某种形式的配置错误,本类别共映射 16 个 CWE,累计出现次数超过 71.9 万次。本文以仓库内官方文档 A02:2025 安全配置错误(西班牙语版) 与 英文原版 为主体,结合 2025 版官方引言、风险评分方法论 及 2021 版、2017 版 历史条目,完整讲解该类别的评分数据、易受攻击迹象、四个典型攻击场景、九项预防措施与 16 个映射 CWE。读完本文,你将掌握一套可落地、可重复的应用安全配置加固(hardening)流程,并能对照清单自查 Web 服务器、应用框架、云服务与容器化环境中的常见配置缺陷。
一、排名背景:为什么从第 5 位升至第 2 位
在 2025 版官方引言 中,A02:2025 被明确描述为:从 2021 版的第 5 位上升到 2025 版的第 2 位,安全配置错误在本轮数据中更为普遍——3.00% 的受测应用至少命中本类别 16 个 CWE 之一。这并不令人意外,因为软件工程正持续把越来越多的应用行为交由配置驱动。
官方文档给出了三个关键背景数据:
- 100% 的受测应用被发现存在某种形式的配置错误(覆盖率最大值达到 100.00%);
- 本风险类别的CWE 出现总次数超过 719,084 次;
- 平均发生率为3.00%,最大发生率为27.70%。
值得关注的两个代表性 CWE 为:
- CWE-16:Configuration(配置)——本类别的"根因型"弱点代表;
- CWE-611:Improper Restriction of XML External Entity Reference(XML 外部实体引用限制不当,XXE)——典型的配置不当导致的安全弱点。
从历史演进看,本类别在 2017 版 中是 A6:2017,在 2021 版 中为 A05:2021(当时平均发生率 4.51%、CWE 出现 208,387 次),到 2025 版升至第 2 位且映射 CWE 从 20 个收敛为 16 个。官方团队在 2025 版中刻意强调"尽可能聚焦根因而非症状",配置错误正属于典型的根因型弱点,因此被集中归类。
二、评分表:A02:2025 数据全景
下表为官方文档中的完整评分表(数据来源于各贡献方在 2021—2024 年间对超过 280 万个应用的测试数据,详见 2025 版官方引言):
| 指标 | 数值 |
|---|---|
| 映射的 CWE 数量(CWEs Mapped) | 16 |
| 最大发生率(Max Incidence Rate) | 27.70% |
| 平均发生率(Avg Incidence Rate) | 3.00% |
| 最大覆盖率(Max Coverage) | 100.00% |
| 平均覆盖率(Avg Coverage) | 52.35% |
| 平均加权可利用性(Avg Weighted Exploit) | 7.96 |
| 平均加权影响(Avg Weighted Impact) | 3.97 |
| 发生总数(Total Occurrences) | 719,084 |
| CVE 总数(Total CVEs) | 1,375 |
对照 风险评分方法论 可理解各字段含义:
- 发生率(Incidence Rate):某组织在某年度测试的应用群体中,命中该 CWE 的应用百分比。官方刻意不使用"频率"(单个应用内出现多少次),因为手工测试通常一次只记录一个漏洞,而自动化工具会把每次出现都记为独立实例,只有"发生率"才能真实反映弱点在应用群体中的普遍性。
- 覆盖率(Coverage):所有组织为给定 CWE 测试过的应用比例。覆盖率越高,发生率越可信。本类别最大覆盖率 100.00% 意味着几乎所有参与贡献的测试都覆盖了配置类检查。
- 加权可利用性 / 加权影响(Weighted Exploit / Impact):来自 NVD 中映射到本类别 CWE 的 CVE 的 CVSSv2/v3 子分数,归一化到 10 分制。
- 风险评分公式:
(Max Incidence Rate % × 1000) + (Max Coverage % × 100) + (Avg Exploit × 10) + (Avg Impact × 20) + (Sum Occurrences / 10000) = Risk Score。
本类别"可利用性 7.96"显著高于"影响 3.97",说明配置错误极容易被发现和利用,但其直接技术影响通常低于供应链失效(A03 的平均加权影响为 5.23)等类别——然而一旦叠加默认凭据、暴露的管理接口等场景,也可能导致完全的系统沦陷。
三、什么是安全配置错误
官方定义非常直接:安全配置错误是指系统、应用或云服务从安全角度被错误设置,从而产生漏洞。
具体而言,如果应用出现以下任一情况,就可能存在风险:
- 缺少安全加固:应用栈的任一部分缺少适当的安全加固(hardening),或云服务的权限配置不当;
- 启用了不必要的功能:例如不必要的端口、服务、页面、账户、测试框架或权限被启用或安装;
- 默认账户未处理:默认账户及其密码仍处于启用状态且未被修改;
- 错误信息泄露:缺少集中配置来拦截过多的错误消息,错误处理向用户暴露堆栈跟踪(stack traces)或其他信息过于详细的错误信息;
- 最新安全功能被禁用:对已升级的系统,最新安全功能被关闭或未以安全方式配置;
- 过度追求向后兼容:过度优先考虑向后兼容性,从而导致不安全配置;
- 中间件安全参数未设安全值:应用服务器、应用框架(例如 Struts、Spring、ASP.NET)、库、数据库等中的安全设置未设置为安全值;
- 缺少安全头:服务器没有发送安全头或安全指令(Security Headers),或未设置为安全值。
官方文档的结论是:如果没有一个协调一致、可重复的应用安全配置加固流程,系统将面临更高的风险。
值得一提的是,在 2021 版中该列表还包含"软件过时或存在漏洞(参见 A06:2021 易受攻击和过时的组件)"这一条,而 2025 版将其剥离出去、归入独立的 A03:2025 软件供应链失效 类别——这也体现了 2025 版"按根因归类、减少类别重叠"的分类思路。
四、四个典型攻击场景
官方文档给出了四个极具代表性的攻击场景,覆盖了自建服务器、传统中间件与云服务三类环境:
场景 #1:示例应用与默认账户
应用服务器随附的示例应用没有被从生产服务器移除。这些示例应用带有已知安全缺陷,攻击者可利用它们攻陷服务器。假设其中某个示例应用是管理控制台,且默认账户未被修改,攻击者只需用默认密码登录即可接管整个系统。
实战要点:这是"最小化平台"原则最典型的反面教材。安装 Nginx、Apache、Tomcat、JBoss 等中间件后,应检查其默认示例目录(如 Tomcat 的webapps/examples、webapps/manager)并删除;所有内置账户(admin/admin、tomcat/tomcat等)必须在首次部署时强制修改或禁用。
场景 #2:目录列表未禁用
服务器未禁用目录列表(Directory Listing)。攻击者发现可以直接列出目录,找到并下载编译后的 Java 类文件,再通过反编译与逆向工程还原代码,进而发现应用中的严重访问控制缺陷。
实战要点:Web 服务器默认配置往往开启目录浏览。Nginx 需确认未在location块中开启autoindex on;Apache 需关闭Options Indexes;同时应确保静态资源目录不存放编译产物、源码包、备份文件(.bak、~结尾的编辑器备份)等敏感内容。
场景 #3:详细错误消息泄露
应用服务器配置允许向用户返回详细错误消息(例如堆栈跟踪)。这可能暴露敏感信息或底层缺陷,例如已知易受攻击的组件版本号。
实战要点:生产环境必须关闭调试模式与堆栈跟踪输出(Java 中避免向客户端返回printStackTrace()结果;ASP.NET 需将customErrors mode="On";Spring 需配置通用错误页),错误信息应统一收敛为通用提示,详细日志仅写入服务端日志系统。
场景 #4:云存储默认开放共享
云服务提供商(CSP)默认将共享权限开放到互联网。这使得云存储(如 S3 bucket)中的敏感数据可以被任意访问。
实战要点:创建云存储桶后应立即审计默认 ACL 与 bucket 策略,确认public-read、Everyone等宽泛授权未被启用;生产数据桶建议使用私有权限 + 预签名 URL 或基于角色的访问(IAM Role)替代静态访问密钥。
五、如何预防:九项加固实践清单
官方文档要求实施安全的安装流程,具体包含九项措施,以下逐条展开并补充落地细节:
1. 建立可重复的加固流程
可重复的加固流程应能快速、轻松地部署另一个经过适当锁定的环境。开发、QA 与生产环境应以相同方式配置,但各环境使用不同的凭据。该流程应尽可能自动化,以最小化搭建新安全环境的工作量。
落地建议:将加固步骤固化为基础设施即代码(IaC)与配置管理脚本(如 Ansible、Terraform、Chef),环境差异仅通过外部化的环境变量与密钥管理服务(Vault、云 KMS)注入,避免人工逐台配置导致的漂移(drift)。
2. 采用最小化平台
使用不包含任何不必要功能、组件、文档或示例的最小化平台。移除或不要安装未使用的功能和框架。
落地建议:精简中间件模块、移除示例站点与示例代码、关闭未使用的端口与服务、卸载未使用的开发框架与测试框架;容器镜像优先使用精简基础镜像,并清理构建缓存与多余依赖。
3. 将配置审查纳入补丁管理流程
将"按所有安全公告、更新与补丁要求审查和更新配置"作为补丁管理流程的固定任务,并审查云存储权限(例如 S3 bucket 权限)。
关联阅读:官方文档在此处明确链接到 A03:2025 软件供应链失效——过时组件与配置错误高度联动,供应链失效类别进一步要求维护 SBOM(软件物料清单)、持续盘点组件版本并订阅 CVE/NVD/OSV 漏洞公告。
4. 采用分段应用架构
通过分段(segmentation)、容器化(containerization)或云安全组(ACL)在组件或租户之间实现有效且安全的隔离。
落地建议:网络层面使用安全组/防火墙规则做最小放行;应用层面拆分微服务并实施租户隔离;容器层面使用独立的命名空间、网络策略与只读文件系统,防止横向移动。
5. 向客户端发送安全指令
例如安全头(Security Headers),常见的有:
Content-Security-Policy(CSP):限制内容来源,缓解 XSS;Strict-Transport-Security(HSTS):强制 HTTPS;X-Frame-Options/frame-ancestors:防止点击劫持;X-Content-Type-Options: nosniff:禁止 MIME 类型嗅探;Referrer-Policy:限制 Referer 信息泄露;Permissions-Policy:限制浏览器功能权限。
若这些头部缺失或值不安全,即命中本类别第 8 条易受攻击迹象。
6. 建立自动化配置验证流程
建立自动化流程,验证所有环境中的配置和设置是否有效。
落地建议:引入配置扫描与合规检查工具(如 OpenSCAP、kube-bench、云厂商的 Security Hub / Defender for Cloud),并在 CI/CD 中设置配置基线检查门禁;定期对生产环境做配置漂移检测。
7. 主动增加集中错误消息拦截
主动增加集中配置,作为拦截过多错误消息的备用措施(即场景 #3 的防御)。
落地建议:在网关或应用入口统一捕获异常,生产环境只返回通用错误页;详细堆栈仅写入集中式日志平台(并配合 A09:2025 安全日志记录与告警失效 的要求做好日志与告警)。
8. 未自动化则至少每年手动验证
如果上述验证没有自动化,至少应每年手动验证一次。定期人工审计可作为自动化工具覆盖不足之处的补充。
9. 用平台安全机制替代硬编码密钥
使用底层平台提供的身份联合(identity federation)、短期凭据(short-lived credentials)或基于角色的访问机制(role-based access),而不是在代码、配置文件或流水线中嵌入静态密钥或 secret。
落地建议:云环境优先使用 IAM Role + 实例元数据服务获取临时凭据;本地环境使用 OIDC 联邦登录(如 GitHub Actions OIDC 与云厂商的 Workload Identity Federation);密钥一律存放于密钥管理服务,禁止提交到 Git 仓库。这条措施与映射 CWE 中的CWE-260(配置文件中包含密码)、CWE-547(使用硬编码的安全相关常量)直接对应。
六、16 个映射 CWE 详解
官方文档为本类别映射了 16 个 CWE,按关注点可分为四组,便于按语言/框架针对性培训:
平台与框架配置错误(根因型)
- CWE-5:J2EE 配置错误——数据传输未加密(J2EE Misconfiguration: Data Transmission Without Encryption)
- CWE-11:ASP.NET 配置错误——创建调试二进制文件(Creating Debug Binary)
- CWE-13:ASP.NET 配置错误——配置文件中包含密码(Password in Configuration File)
- CWE-1174:ASP.NET 配置错误——模型验证不当(Improper Model Validation)
通用配置与秘密管理
- CWE-15:系统或配置设置受外部控制(External Control of System or Configuration Setting)
- CWE-16:配置(Configuration)——本类别代表性根因 CWE
- CWE-260:配置文件中包含密码(Password in Configuration File)
- CWE-526:通过环境变量暴露敏感信息(Exposure of Sensitive Information Through Environmental Variables)
- CWE-547:使用硬编码的安全相关常量(Use of Hard-coded, Security-relevant Constants)
XML 与跨域配置
- CWE-611:XML 外部实体引用限制不当(XXE)——本类别代表性 CWE
- CWE-776:DTD 中递归实体引用限制不当(XML 实体扩展)
- CWE-942:对不可信域使用过宽松的跨域策略(Permissive Cross-domain Policy with Untrusted Domains)
Cookie 与调试信息
- CWE-315:在 Cookie 中明文存储敏感信息(Cleartext Storage of Sensitive Information in a Cookie)
- CWE-489:激活的调试代码(Active Debug Code)
- CWE-614:HTTPS 会话中的敏感 Cookie 缺少
Secure属性 - CWE-1004:敏感 Cookie 缺少
HttpOnly标志
落地对照:CWE-489、CWE-11 对应"生产环境残留调试代码/调试二进制";CWE-614、CWE-1004、CWE-315 对应 Cookie 的安全属性配置(Secure、HttpOnly、SameSite);CWE-611、CWE-776 对应 XML 解析器需禁用外部实体与 DTD 扩展。对比 2021 版映射列表(20 个 CWE)可以发现,2025 版移除了 CWE-2、CWE-520、CWE-537、CWE-541、CWE-756、CWE-1032 等条目,归类更加聚焦。
七、参考资料与延伸阅读
官方文档引用的外部标准包括:OWASP 测试指南中的"配置管理测试"与"错误代码测试"、OWASP 应用安全验证标准(ASVS)V13 配置章节、NIST 通用服务器加固指南(SP 800-123)、CIS 安全配置基线(CIS Benchmarks)以及 Amazon S3 存储桶发现与枚举技术。这些标准可作为加固与验证的权威依据。
在本仓库中,你可以继续阅读以下相关资料:
- A02:2025 安全配置错误(英文原版) 与 西班牙语版,以及其他语种版本(见 2025/docs 目录);
- A03:2025 软件供应链失效——过时组件与配置错误的联动类别,含补丁管理、SBOM、CI/CD 加固要求;
- 2021 版 A05 安全配置错误——上一版条目,可对比分类变化;
- 2017 版 A6 安全配置错误——历史条目,含威胁主体/攻击向量/影响分析表;
- 风险评分方法论——评分表中各字段的完整定义与计算公式;
- 2025 数据收集与分析计划——了解贡献数据来源、验证级别与数据结构。
八、结语
安全配置错误之所以能攀升至 OWASP Top 10:2025 第 2 位,根本原因在于:随着软件高度可配置化,配置面急剧扩大,而大多数团队仍缺乏"可重复、自动化、跨环境一致"的加固流程。好消息是,与代码漏洞相比,配置错误最容易被系统化治理——本文梳理的九项预防措施(可重复加固流程、最小化平台、补丁管理联动、分段架构、安全头、自动化验证、集中错误处理、年度人工审计、替代硬编码密钥)均可通过 IaC、配置扫描与 CI/CD 门禁落地为持续化能力。建议以本类别 16 个映射 CWE 为基线建立自查清单,结合仓库内 2021 与 2017 版文档理解其演进脉络,逐步将配置安全从"一次性修复"升级为"持续合规"。
- 应用安全
【免费下载链接】Top10
Official OWASP Top 10 Document Repository
相关推荐
OWASP Top 10:2025 安全配置错误(A02 Security Misconfiguration)深度解读与加固实践
OWASP Top 10:2025 安全配置错误(A02 Security Misconfiguration)深度解读与加固实践 安全配置错误(Security
应用安全OWASP Top 10:2025 A02 安全配置错误(Security Misconfiguration)深度解读与实践加固指南
OWASP Top 10:2025 A02 安全配置错误(Security Misconfiguration)深度解读与实践加固指南 安全配置错误(Securi
应用安全OWASP Top 10:2025 深度解读:A02 安全配置错误(Security Misconfiguration)的成因、评分与加固实战
OWASP Top 10:2025 深度解读:A02 安全配置错误(Security Misconfiguration)的成因、评分与加固实战 安全配置错误(S
应用安全
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考