OWASP 发布 2017 Top 10 Web 应用安全威胁,Web 安全防护正当时

近日,开放式 Web 应用程序安全项目(OWASP)发布了最终版 2017 Top 10 榜单。在 2017 威胁榜单中,注入攻击漏洞仍然位居 Top 10 威胁之首,而 XSS 的威胁程度从 A3 降到了 A7。敏感信息泄露、安全配置错误、失效的访问控制等威胁均有提升,值得企业重视。

与此同时,榜单中还出现了一些新的安全威胁,包括 XXE 漏洞(A4:2017, XML External Entity attack)、针对 Java 平台的不安全反序列化漏洞(A8:2017, Insecure Deserialization)以及记录和监控不足风险(A10:2017, Insufficient Logging & Monitoring)等。

OWASP 发布 2017 Top 10 Web 应用安全威胁,Web 安全防护正当时

A1 注入攻击漏洞    

A2 失效的身份认证  

A3 敏感信息泄露   

A4  XXE 漏洞   

A5 失效的访问控制    

A6 安全配置错误

A7 跨站脚本 XSS

A8 不安全反序列化漏洞

A9 使用含有已知漏洞的组件

A10 不足的记录和监控

随着网贷、购物和社交等一系列新型互联网产品的诞生,企业信息化的过程中越来越多的应用都架设在 Web 平台上,接踵而至的就是 Web 安全威胁的凸显。大量黑客利用网站操作系统的漏洞和 Web 服务程序的 SQL 注入漏洞等得到 Web 服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。

什么是 Web 应用安全风险?

如下图所示,攻击者可以通过应用程序中许多不同的路径和方法来危害您的业务或者企业组织。每种路径方法都代表了一种风险,有些路径方法很容易被发现并利用,有些则很难被发现。

OWASP 发布 2017 Top 10 Web 应用安全威胁,Web 安全防护正当时
文章重点分析排名前三的 Web 安全威胁以及应对方法:

注入攻击漏洞

注入攻击漏洞,例如 SQL、OS 以及 LDAP 注入。这些攻击发生在当不可信的数据作为命令或者查询语句的一部分,被发送给解释器的时候,攻击者发送的恶意数据可以欺骗编辑器,以执行计划外的命令或者在未被恰当授权时访问数据。

检查是否存在「注入漏洞」的方法

最好的办法就是确认所有解释器的使用都明确地将不可信数据从命令语句或查询语句中区分出来。对于 SQL 调用,在所有准备语句和存储过程中使用绑定变量,并避免使用动态查询语句。

检查应用程序是否安全使用解释器的最快最有效的办法是代码审查,代码分析工具能帮助安全分析者找到使用解释器的代码并追踪应用的数据流。

可以执行应用程序的动态扫描器能够提供信息,帮助确认一些可利用的注入漏洞是否存在。

典型案例

NextGEN Gallery 插件是众所周知的 WordPress 相册插件,这款插件功能强大,可以在博客中任意插入动态图片效果,提供了很完美的照片管理方法,在 WordPress 平台上拥有过百万的安装量。

今年 3 月 NextGEN Gallery 插件被曝存在严重的 SQL 注入漏洞,影响上百万用户,攻击者利用 SQL 注入漏洞获取了数据库中包括用户信息在内的敏感数据。

失效的身份认证

与身份认证和会话管理相关的应用程序功能常常被错误地实现,攻击者使用认证管理功能中的漏洞,采用破坏密码、密钥、会话令牌去冒充其他用户的身份。

检查是否存在「失效的身份认证」的方法

用户身份验证凭证是否使用哈希或加密保护;是否可以通过薄弱的账户管理功能(例如账户创建、密码修改、密码修复、弱会话 ID)重写。

会话 ID 暴露在 URL 里;会话 ID 没有超时限制,用户会话或身份验证令牌(特别是单点登录令牌)在用户注销时没有失效;密码、会话 ID 和其他认证凭据使用未加密链接传输等。

典型案例

机票预订应用程序支持 URL 重写,把当前用户的会话 ID 放在 URL 中:http://example.com/sale/saleitems;jsessionid=2P0OC2JDPXM0OQSNDLPSKHCJUN2JV?dest=Hawaii 

该网站一个经过认证的用户希望让他朋友知道这个机票打折信息。他将上面链接通过邮件发送给朋友们,并不知道已经泄露了自己会话 ID. 当他的朋友们使用上面的链接时,可以轻而易举地使用他的会话和信用卡。

敏感信息泄露

许多 Web 应用程序没有正确保护敏感数据,如信用卡、身份证 ID 和身份验证凭据等。攻击者可能会窃取或篡改这些弱保护的数据以进行信用卡诈骗、身份窃取或其他犯罪。

敏感数据需额外的保护,比如在存放或在传输过程中进行加密,以及在与浏览器交换时进行特殊的预防措施。

检查是否存在「敏感信息泄露」的方法

首选需要确认哪些数据时敏感数据而需要被加密。当这些数据被长期存储的时候,无论存储在哪里,是否被加密和备份?

无论内部数据还是外部数据,传输时是否是明文传输?是否还在使用旧的或者脆弱的加密算法?

加密密钥的生成是否缺少恰当的密钥管理或缺少密钥回转?当浏览器接收或发送敏感数据时,是否有浏览器安全指令?

典型案例

一个网站上所有需要身份验证的网页都没有使用 SSL 加密。攻击者只需要监控网络数据流(比如一个开放的无线网络或其社区的有限网络),并窃取一个已验证的受害者的会话 Cookie. 攻击者利用这个 Cookie 执行重放攻击并接管用户的会话,从而访问用户的隐私数据。

如何有效地防范 Web 应用安全风险?

安全防护要贯穿整个 Web 应用生命周期

在 Web 开发阶段需要对代码进行核查,在测试阶段需要对上线前的 Web 应用做完整的安全检查,在运营阶段,建议在事前、事中和事后进行分阶段、多层面的完整防护。

构建以漏洞、事件生命周期闭环管理体系

通过监测系统平台进行漏洞生命周期的管理,包含漏洞扫描、人工验证、漏洞状态的追踪工作以及漏洞修复后的复验工作等,使漏洞管理流程化。

提升安全管理人员工作能力

安全管理岗位人员需要建立起信息安全管理的概念,清楚 Web 威胁的危害,掌握识别安全漏洞及风险的专用技术,以及对安全问题进行加固处置的技能。

文章来源青云QingCloud(微信公众号:QingCloud-IaaS)下载完整版报告

雷锋网(公众号:雷锋网)雷锋网雷锋网

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/111255.html

(0)
上一篇 2021年8月26日 17:52
下一篇 2021年8月26日

相关推荐

发表回复

登录后才能评论