Skip to content

A05:2021 – 安全设定缺陷

弱点因素(Factors)

可对照 CWEs 数量 最大发生率 平均发生率 最大覆盖范围 平均覆盖范围 平均加权漏洞 平均加权引响 出现次数 所有相关 CVEs
20 19.84% 4.51% 89.58% 44.84% 8.12 6.56 208,387 789

弱点简介(Overview)

从先前版本的第六名排名,向上调升,90%的程式都被测试找出各类的设定缺陷。随着越来越多的可设定式软体数量增加,看到此类别的排名上升,并不是件意外的事。明显相对应的 CWEs 包含了 CWE16 设定 以及 CWE-611 不充足的 XML 外部实体引用限制

弱点描述(Description)

如果程式包含了以下几个因素,则可能有易受攻击的脆弱性。

  • 在程式各堆叠层面,缺少适切的安全强化,或是于云端服务上有着不当的权限设定。

  • 不必要的功能启用或是安装 (例如,不必要的端口,服务,页面,帐号,或是特权)。

  • 预设帐号与密码还可使用,并且未更改。

  • 因错误处理而暴露出的堆叠追踪,或是向使用者,暴露出过多的错误警告资讯

  • 因为系统升级,导致最新的安全功能被关闭,或是造成不安全的设定

  • 在布署程式的伺服器,程式框架(例如 Struts, Spring, ASP net,各种函示库,资料库等。并未设定该有的安全参数。

  • 服务器并未传送安全的 header 或是指令,或未被设定安全参数。

  • 软件已经过时已淘汰,或者带有脆弱性 (请参照 A06:2021-易受攻击和已淘汰的组件 )

当没有一致性,可重复的程式安全设定流程时,系统将会面对高风险。

如何预防(How to Prevent)

安全的安装步骤流程,应该被实际布署,包含以下

  • 一个可重复的安全强化流程,必需可达到快速且简单的布署,而且能在分隔且封锁的环境下执行。开发,品质管理,以及实际营运的环境,都须有一致相同的设定,并且使用不同的认证资讯。这种步骤需要尽可能的自动化,降低需要建立安全环境时,所需要的投入。

  • 一个最精简的平台,上面不会搭配任何不需要的功能,套件,档案,以及范本。移除或不安装任何,不须使用的功能或框架。

  • 在变更管理下,需有特定的任务,依据安全告知,相关更新,来执行安全审视及更动(可参照 A06:2021-易受攻击和已淘汰的组件)。审视云端储存的权限(例如 S3 bucket 的权限)

  • 一个可分割的程式架构,对于各元件,用户,可透过分离,容器化,云端安全群组设定(ACLs),来达到分割的效果。提供有效且安全的分离。

  • 寄送安全指令给用户端,例如 安全标头。

  • 一个自动化的流程,可以确认环境中各类的安全设定。

攻击情境范例(Example Attack Scenarios)

情境 #1: 营运用的程式服务器,带有预设的样本程式,并未移除。这个样本程式带有已知的安全缺陷,可被攻击者利用入侵服务器。例如,预设的程式带有管理者界面,并且有未变更的帐号,攻击者可以透过预设的密码登入,并取得控制权。

情境 #2: 资料目录指令并未在服务器上关闭。攻击者可以找出并且下载,已编译过 Java 档案,并且透过反编译与逆向工程等手法,查看原始码。再因此找出程式中,严重的存取控制缺陷。

情境 #3: 程式服务器的设定,允许输出带有详细内容的错误讯息,例如堆叠追踪,供用户查看。这有可能导致敏感讯息的外泄,或间接透露出,使用中,并带有脆弱性的元件版本。

情境 #4: 一个云端服务器,提供了预设权限分享,给其他在网际网路的 CSP 用户。这将导致云端储存的敏感资料可以被存取。

References

對应的 CWEs 清单(List of Mapped CWEs)

CWE-2 Configuration

CWE-2 设定

CWE-11 ASP.NET Misconfiguration: Creating Debug Binary

CWE-11 ASP.NET 错误设定:创建除错二进制档

CWE-13 ASP.NET Misconfiguration: Password in Configuration File

CWE-13 ASP.NET 错误设定: 设定档中所存的密码

CWE-15 External Control of System or Configuration Setting

CWE-15 系統的外部控制与设定

CWE-16 Configuration

CWE-16 设定

CWE-260 Password in Configuration File

CWE-260 设定档中所存的密码

CWE-315 Cleartext Storage of Sensitive Information in a Cookie

CWE-315 cookies 中的明文存放敏感资料

CWE-520 .NET Misconfiguration: Use of Impersonation

CWE-520 .NET 错误设定: 冒充使用

CWE-526 Exposure of Sensitive Information Through Environmental Variables

CWE-526 环境物件所泄漏的敏感咨询

CWE-537 Java Runtime Error Message Containing Sensitive Information

CWE-537 Java 运行环境下,错误讯息包含敏感资讯

CWE-541 Inclusion of Sensitive Information in an Include File

CWE-541 包容档案中,包含敏感资讯

CWE-547 Use of Hard-coded, Security-relevant Constants

CWE-547 使用写死的安全相关参数

CWE-611 Improper Restriction of XML External Entity Reference

CWE-611 不充足的 XML 外部实体引用限制

CWE-614 Sensitive Cookie in HTTPS Session Without 'Secure' Attribute

CWE-614 HTTPS 下,敏感 Cookies 沒有使用"安全"参数设定

CWE-756 Missing Custom Error Page

CWE-756 遗漏常规的错误页面

CWE-776 Improper Restriction of Recursive Entity References in DTDs ('XML Entity Expansion')

CWE-776 DTDs 中,不充足的遞迴物件引用限制 (XML 物件扩张)

CWE-942 Permissive Cross-domain Policy with Untrusted Domains

CWE-942 跨网域白名单的过度权限

CWE-1004 Sensitive Cookie Without 'HttpOnly' Flag

CWE-1004 敏感 Cookie 没有使用'HttpOnly'参数设定

CWE-1032 OWASP Top Ten 2017 Category A6 - Security Misconfiguration

CWE-1032 OWASP 2017 前十大 A6 群组 - 安全错误设定

CWE-1174 ASP.NET Misconfiguration: Improper Model Validation

CWE-1174 ASP.NET 错误设定: 不充足的模组验证