OWASP TOP 10 2017 | 最新十大WEB安全风险你都GET到了吗?

近几年,云、大数据、物联网、人工智能等技术广泛应用,软件开发过程引入敏捷开发和DevOps实现开发运维工作自动化、版本快速迭代。迅速扩张的攻击面也伴随而来,攻击者总是能找到新的攻击面。在此背景下,时隔4年我们再次迎来OWASP Top 10(十大Web应用安全风险)的正式更新。

什么是OWASP Top 10

OWASP(Open Web Application Security Project开放式Web应用程序安全项目)是一个开源的、非盈利的全球性安全组织,致力于应用软件的安全研究。

OWASP项目最具权威的就是其”十大Web应用安全风险”,其对安全问题从威胁和脆弱性进行可能性分析,并结合技术和商业影响的分析,输出目前一致公认、最严重的十类web应用安全风险排名,并提出解决方案建议,可以帮助IT公司和开发团队规范应用程序开发流程和测试流程,提高Web产品的安全性。

上个月,OWASP刚刚发布了OWASP TOP 10 2017,让我们看一下最新版的十大安全风险列表有哪些新内容值得关注吧!

OWASP TOP 10 2017

在过去的几年中,应用程序的基础技术和结构发生了重大变化:

  • 使用js和Spring Boot构建的微服务正在取代传统的单任务应用,微服务本身具有自己的安全挑战,包括微服务间互信、容器工具、保密管理等等。
  • 使用JavaScript框架(如:Angular和React)编写的单页应用程序,允许创建高度模块化的前端用户体验:原来交付服务器端处理的功能现在变为由客户端处理。但也带来了安全挑战。
  • JavaScript成为网页上最基本的语言。js运行在服务器端,采用现代网页框架的Bootstrap、Electron、Angular和React则运行在客户端。

对比2013板,新版的十大安全风险有如下更新:

新增加三个风险类型:

  • A4:2017XML外部实体(XXE)
  • A8:2017-不安全的反序列化
  • A10:2017-不足的日志记录和监控

名次下滑:

  • A3-跨站脚本(XSS)滑落至A7:2017-跨站脚本XSS
  • A5-安全配置错误滑落至A7:2017-安全配置错误

风险合并:

  • A4-不安全的直接对象引用A7-功能访问控制缺失合并成为A5:2017-实效的访问控制

落榜:

  • A8-跨站请求伪造(CSRF)。由于很多平台融入了CSRF防御,所以只有5%的应用程序受到了威胁
  • A10-未验证的重定向和转发。虽然大约8%的应用程序受此威胁,但是现在大多被XML外部实体(XXE)挤掉了

新增风险解析

A4:2017XML外部实体(XXE)

  • 攻击向量

如果攻击者可以上传XML文档或者在XML文档中添加恶意内容,通过易受攻击的代码、依赖项或集成,他们就能够攻击含有缺陷的XML处理器。

  • 安全弱点

默认情况下,许多旧的XML处理器能够对外部实体、XML进程中被引用和评估的URI进行规范。

  • 影响

XXE缺陷可用于提取数据、执行远程服务器请求、扫描内部系统、执行拒绝服务攻击和其它攻击。

  • 防护措施

开发人员培训是识别和减少XXE缺陷的关键,此外,防止XXE缺陷还需要:

-尽可能使用简单的数据格式(如:JSON),避免对敏感数据进行序列化

-及时修复或更新应用程序或底层操作系统使用的所有SML处理器和库。

-在应用程序的所有XML解析器中禁用XML外部实体和DTD进程。

-在服务器端实施积极的(“白名单”)输入验证、过滤和清理,以防止在XML文档、标题或节点中出现恶意数据。

-验证XML或XSL文件上传功能是否使用XSD验证或其他类似验证方法来验证上传的XML文件。

如果无法实现这些控制,请考虑使用虚拟修复程序、API安全网关或Web应用程序防火墙(WAF)来检测、监控和防止XXE攻击。

A8:2017-不安全的反序列化

  • 攻击向量

如果反序列化进攻者提供的敌意或者篡改过的对象将会使应用程序和API变的脆弱。

  • 安全弱点

有些工具可以被用于发现反序列化缺陷,但经常需要人工帮助来验证发现的问题,希望有关反序列化缺陷的普遍性数据将随着工具的开发二被更多的识别和解决。

  • 影响

反序列化缺陷的影响不能被低估,它们可能导致远程代码执行攻击,这是可能发生的最严重的攻击之一。

  • 防范措施

唯一安全的架构模式是不接受来自不受信源的序列化对象,或使用只允许原始数据类型的序列化媒体。

如果上述不可呢的话,考虑使用下述方法:

-执行完整性检查,如:任何序列化对象的数字签名,以防止恶意对象创建或数据篡改。

-在创建对象之前执行严格的类型约束,因为代码通常被期望成一组可定义的类。

-如果可能,隔离运行那些在低特权环境中反序列化的代码。

-记录反序列化的例外情况和失败信息,如:传入的类型不是预期的类型,或者反序列处理引发的例外情况。

-限制或监视来自于容器或服务器传入和传出的反序列化网络连接。

监控反序列化,当用户持续进行反序列化时,对用户进行警告。

A10:2017-不足的日志记录和监控

  • 攻击向量

对不足的日志记录及监控的利用几乎是每一个重大安全事件的温床。攻击者依靠监控的不足和响应的不及时来达成他们的目标而不被知晓。

  • 安全弱点

判断你是否有足够监控的一个策略是在渗透测试后检查日志。测试者的活动应被充分的记录下来,能够反映出他们造成了什么样的影响。

  • 影响

多数成功的攻击往往从漏洞探测开始。允许这种探测会将攻击成功的可能性提高到近100%。据统计,在2016年确定一起数据泄露事件平均需要花191天时间,这么长时间里损害早已发生。

  • 防范措施

根据应用程序存储或处理的数据的风险:

-确保所有登录、访问控制失败、输入验证失败能够被记录到日志中去,并保留足够的用户上下文信息,以识别可疑或恶意账户,并未后期取证预留足够时间。

-确保日志以一种能被集中日志管理解决方案使用的形式生成

-确保高额交易有完整性控制的审计信息,以防止篡改或删除,例如审计信息保存在只能进行记录增加的数据库表中。

-建立有效的监控和告警机制,使可疑活动在可接受的时间内被发现和应对。

简历或采取一个应急响应机制和恢复计划。

总结

OWASP Top 10是一个高度提炼的输出,现实的意义在于帮助和指导开发者、安全测试人员、web应用安全管理团队,提高风险意识。其对于安全厂商的产品能力提升也有指导意义。对于web安全风险管理以及企业安全建设,建议企业对照列表(需注意,OWASP历年来一直强调“不要停滞于OWASP Top 10”)结合自身环境、梳理影响自身应用安全的主要风险因素,并采取有重点的保护防范措施,在人员、流程以及技术层面进行提升。

参考

http://www.owasp.org.cn/owasp-project/2017-owasp-top-10

 

Spread the word. Share this post!

Meet The Author

Leave Comment