2017 OWASP Top10正式发布
日前,非营利性组织开放式Web应用安全项目(OWASP)正式发布了十大最关键的Web应用安全风险。这是该组织自2013年以来对十大安全风险排名的首次更新。
关于OWASP Top10
OWASP项目最具权威的就是其“十大安全漏洞列表”(OWASPTop 10),OWASP Top 10不是官方文档或标准,而只是一个被广泛采用的意识文档,被用来分类网络安全漏洞的严重程度,目前被许多漏洞奖励平台和企业安全团队评估错误报告。这个列表总结了Web应用程序最可能、最常见、最危险的十大漏洞,可以帮助IT公司和开发团队规范应用程序开发流程和测试流程,提高Web产品的安全性。
OWASP Top 10提供:
10大最关键Web应用安全隐患列表
针对每个安全隐患,OWASP Top 10将提供:
描述
示例漏洞
示例攻击
防范指南
OWASP参考源及其他相关资源
OWASP多年来经历了几次迭代。 OWASP Top 10的版本分别在2004年,2007年,2010年,2013年和2017年发布。
从2013到2017年发生了哪些变化?
OWASP在发布2017年10大安全风险后表示,
“在过去的四年里,技术与应用正在加速变化,OWASP Top 10的排名也需要随之改变。因此,我们完全重构了OWASP Top 10的修改方法,利用一种新的数据调用流程,并与技术社区合作,对十大安全风险重新进行排列,并添加现在经常引用的框架和语言。”
不知大家是否还记得,在今年4月份OWASP公布的2017 OWASP Top10第一波候选名单中,与2013年的列表相比,最大的不同点在于新出现的两种漏洞分类:
不充足的攻击检测与预防;
未受保护的API;
而在正式发布的2017 OWAST Top10榜单中,则出现了三种新威胁,它们分别为:
A4:XML外部实体漏洞(XXE);
A8:不安全的反序列化漏洞;
A10:不足的记录和监控漏洞。
根据OWASP的统计,在技术社区调查中收到500多份调查反馈,其中很多都提到“不安全的反序列化漏洞”和“日志记录和监视不足”。OWASP指出:
“这两个事项显然是很多人在今年的首要考虑因素,因为在这个大规模数据泄露的时代,这两种情况并没有缓和的迹象。‘不安全的反序列化漏洞’会导致远程执行代码问题,而‘日志记录和监视不足’则会导致黑客能够攻击系统并保持持久性。‘XML外部实体漏洞(XXE)’是一个由数据支持的新范畴。许多旧的或配置较差的XML处理器在XML文档中对外部实体引用进行评估。外部实体可以通过文件URI处理程序,内部文件共享,内部端口扫描,远程代码执行和拒绝服务攻击披露内部文件。”
此外,在最新版的2017 Top10榜单中的A5 :中断访问控制(Broken Access Control)是由2013版的A4:不安全的直接对象引用( Insecure Direct Object References)和A7 :功能级别访问控制漏洞(MissingFunction Level Access Control)合并而来的。
OWASP在一篇博客文章中写道,
“为什么‘跨站请求伪造’和‘未经验证的重定向和转发’被删除?这是由于随着时间的推移,这些排名已经有了一些变化,特别是当我们只有8个数据支持点时,我们采用了新方法进行评定,因此这两项并没有在社区进行调查排名。这实际上是一个成功的标志。删除‘跨站请求伪造’这个事实是OWASP Top 10成功完成其使命的一个信号。”
2017 OWASP Top10威胁解读(*同前几年一样,排名是根据用户意见和公开讨论编写的)
A1:2017-Injection(注入漏洞)
当不可信的数据作为命令或查询语句的一部分被发送给解释器的时候,会发生注入漏洞,包括SQL、NoSQL、OS以及LDAP注入等。攻击者发送的恶意数据可能会诱使解释器执行计划外的命令,或在没有适当授权的情况下访问数据。
A2:2017-BrokenAuthentication(中断身份认证)
与认证和会话管理相关的应用函数经常被错误地实现,从而允许攻击者破坏密码、密钥或是会话令牌,或者利用其他的应用漏洞来暂时或永久地获取用户身份信息。
A3:2017-Sensitive DataExposure(敏感数据泄露)
许多web应用程序和API不能正确的保护敏感数据,如金融、医疗保健和PII(个人身份信息)等。攻击者可能会窃取或篡改这些弱保护的数据,从而进行信用卡欺诈、身份盗窃或其他犯罪行为。在缺少额外保护(例如,在存放和传输过程中加密,且在与浏览器进行交换时需要特别谨慎)的情况下,敏感数据可能会受到损害。
A4:2017-XML ExternalEntities(XXE)XML外部处理器漏洞
许多过时的或配置不当的XML处理器在XML文档内进行外部实体引用。外部实体可用于泄露内部文件,通过使用文件URI处理器、内部文件共享、内部端口扫描、远程代码执行以及拒绝服务攻击等手段。
A5:2017-Broken AccessControl(中断访问控制)
限制“认证的用户可以实现哪些操作”的命令没有得到正确的执行。攻击者可以利用这些漏洞访问未经授权的功能和数据,例如访问其他用户的账户,查看敏感文件,篡改其他用户的数据,更改访问权限等。
A6:2017-SecurityMisconfiguration(安全配置错误)
安全配置错误是最常见的问题。这通常是由不安全的默认配置,不完整或ad hoc配置,开放云存储,错误配置的HTTP标头,以及包含敏感信息的详细错误信息造成的。所有的操作系统、框架、库、应用程序都需要进行安全配置外,还必须要及时进行系统更新和升级。
A7:2017-Cross-SiteScripting(XSS)跨站脚本攻击
如果应用程序在未经适当验证或转义的情况下,能够在新网页中包含不受信任的数据,或是使用可以创建HTML或者JavaScript的浏览器API更新包含用户提供的数据的现有网页,就会出现XSS漏洞。XSS允许攻击者在受害者的浏览器中执行脚本,这些脚本可以劫持用户会话、破坏网站或将用户重定向到恶意网站中。
A8:2017-InsecureDeserialization(不安全的反序列化)
不安全的反序列化漏洞通常会导致远程代码执行问题。即使反序列化错误不会导致远程代码执行,也可以被用来执行攻击,包括重放攻击、注入攻击以及权限提升攻击等。
A9:2017-UsingComponents with Known Vulnerabilities(使用含有已知漏洞的组件)
组件(如库、框架和其他软件模块)是以与应用程序相同的权限运行的。如果存在漏洞的组件被利用,这种攻击可能会导致严重的数据丢失或服务器接管危机。使用已知漏洞组件的应用程序和API可能会破坏应用程序的防御系统,从而启动各种形式的攻击,造成更为严重的影响。
A10:2017-InsufficientLogging & Monitoring(不足的记录和监控漏洞)
不足的记录和监控漏洞,再加上事件响应能力欠缺以及缺少有效的整合,使得攻击者可以进一步攻击系统,维持其持久性,转而攻击更多的系统,并篡改、提取或销毁数据。大部分的数据泄露研究显示,检测出发生数据泄漏的时间通常需要超过200天,而且通常是外部机构率先发现数据泄漏的事实,而不是通过内部的审计流程或监控发现的。
点击查看更多有关示例漏洞、示例攻击以及防范指南的详细信息