三分钟了解OWASP TOP 10 2017 RC2
2017年10月26日,OWASP中国公众号中发布了OWASP TOP 10 2017 RC2。OWASP(开放式Web应用程序安全项目)的工具、文档、论坛和全球各地分会都是开放的,对所有致力于改进应用程序安全的人士开放,其最具权威的就是“10项最严重的Web 应用程序安全风险列表” ,总结了Web应用程序最可能、最常见、最危险的十大漏洞,是开发、测试、服务、咨询人员应知应会的知识。
既然是RC2(Release Candidate 2),那就不是正式版,是报批稿或候选稿。2017年4月,RC1发布以来收到了大量的批评意见,进而引发了本项目负责人更换,组织重新评估“OWASP Top 10”的定义、方法论、收集和分析的数据。
正式版本的OWASP Top 10 2017将于11月下旬发布。在正式版本发布前,有关本版本《OWASP Top 10》文档的任何更正建议或疑问都可以记录在 GitHub:https://github.com/OWASP/Top10/issues 自2003年发布首个版本以来,OWASP Top 10在14年间发布了7个版本(2003-2004-2007-2010-2013-2017RC1-2017RC2)。从2010版本以来放弃以漏洞统计方式,首次用风险管理看待web安全问题的根源以及管理,具体应用了安全风险评估方法得出排名。
Top 10中风险的名称,有的来自于攻击的类型,有的来自于漏洞,而有的来自于所造成的影响。我们选择了最能准确反应出风险名称,并在可能的情况下,同时使用最为常用的专业名词来得到最高的关注度。
本版本的主要变化是添加了两类风险:“不安全的反序列化”、“不足的日志记录和监控”其余的8项风险也是需要去积极、正确处理的重要应用程序安全问题,特别是:“A3:2017-敏感数据泄露”敏感数据保护是网络安全法重点内容之一;“A6:2017-安全配置错误”在云和API 服务方面;以及“A9:2017使用含有已知漏洞的组件”,特别针对于那些现代平台(如:node. js)的挑战。与2013年的版本对比如下表所示:
序号 | OWASP Top 10 2013 | 变化情况 | OWASP Top 10 2017 RC 2 |
---|---|---|---|
1. | 注入 | 不变 | 注入 |
2. | 失效的身份认证和会话管理 | 不变 | 失效的身份认证和会话管理 |
3. | 跨站脚本 | 降至第7 | 敏感信息泄露 |
4. | 不安全的直接对象引用 | 合并7 | XML 外部实体(XXE)(新增) |
5. | 安全配置错误 | 降至第6 | 失效的访问控制(合并原4、7) |
6. | 敏感信息泄露 | 升至第3 | 安全配置错误 |
7. | 功能级访问控制缺失 | 合并4 | 跨站脚本 |
8. | 跨站请求伪造 | 去除 | 不安全的反序列化(新增) |
9. | 使用含有已知漏洞的组件 | 不变 | 使用含有已知漏洞的组件 |
10. | 未验证的重定向和转发 | 去除 | 不足的日志记录和监控(新增) |
攻击者可以通过应用程序中许多不同的路径方法去危害您的业务或者企业组织。如下图所示每种路径方法都代表了一种风险,这些风险可能会,也有可能不会严重到值得您去关注。
有时,这些路径方法很容易被发现并利用,但有的则非常困难。同样,所造成危害的范围也从无损坏到有可能完全损害您的整个业务。为了确定您的企业的风险,可以结合其产生的技术影响和对企业的业务影响,去评估威胁代理、攻击向量和安全漏洞的可能性。总之,这些因素决定了全部的风险。
OWASP TOP 10 各分险分数即为排名依据,对于每一个漏洞包含三种可能性因素(普遍性、可检测性和可利用性),取其平均值和影响因素(技术影响)乘积为最终风险分值。
注:这表风险计算没有考虑任何与您的特定应用程序相关的技术细节,实际计算风险时请结合具体情况调整。
将不受信任的数据作为命令或查询的一部分发送到解析器时,会产生诸如SQL注入、OS注入和LDAP注入的注入缺陷。攻击者的恶意数据可以诱使解析器在没有适当授权的情况下执行非预期命令或访问数据。
通常,通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会话令牌,或者利用其它开发中的缺陷来冒充其他用户的身份(暂时或永久)。
许多Web应用程序和API都无法正确保护敏感数据,例如:财务数据、医疗保健数据和PII。攻击者可以窃取或修改这些未加密的数据,以进行信用卡诈骗、身份盗窃或其他犯罪。因此,我们需要对敏感数据加密,这些数据包括:传输过程中的数据、被存储的数据以及浏览器交互数据。
许多较早的或配置不佳的XML处理器评估了XML文档中的外部实体引用。外部实体可以通过URI文件处理器、在Windows服务器上未修复的SMB文件共享、内部端口扫描、远程代码执行来实施拒绝服务攻击,例如:Billion Laughs攻击。
未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据,例如:访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。
安全配置错误是数据中最常见的缺陷,这部分缺陷包含:手动配置错误、临时配置(或根本不配置)、不安全的默认配置、开启S3 bucket、不当的HTTP 标头配置、包含敏感信息的错误信息、未及时修补或升级(或根本不修补和升级)系统、框架、依赖项和组件。
每当应用程序的新网页中包含不受信任的、未经过恰当验证或转义的数据,或者使用可以创建JavaScript 的浏览器API 更新现有的网页时,就会出现XSS 缺陷。XSS 缺陷让攻击者能够在受害者的浏览器中执行脚本,并劫持用户会话、污损网站或将用户重定向到恶意站点。
当应用程序接收到恶意的序列化对象时,会出现不安全的反序列缺陷。不安全的反序列化会导致远程代码执行。即使反序列化缺陷不会导致远程代码执行,也可以重播、篡改或删除系列化对象以欺骗用户、进行注入攻击和提升权限。
组件(例如:库、框架和其他软件模块)运行和应用程序相同的权限。如果使用含有已知漏洞的组件,这样的攻击可以造成严重的数据丢失或服务器接管。使用含有已知漏洞的组件的应用程序和API,可能会破坏应用程序防御、造成各种攻击并产生严重影响。
不足的日志记录和监控,以及事件响应集成的丢失或无效,使得攻击者能够进一步攻击系统、保持持续性或转向更多系统,以及篡改、提取或销毁数据。大多数缺陷研究显示,缺陷被检测出的时间超过200天,并且通常通过外部检测方检测,而不是通过内部进程或监控检测。
附:OWASP TOP 10 2017 RC2针对每个安全隐患都有描述、示例漏洞、示例攻击、防范指南、OWASP参考源及其他相关资源。下载查阅中文版OWASP TOP 10 2017 RC2,URL:http://www.owasp.org.cn/owasp-project/2017-owasp-top-10