1.1 调查背景
随着网络技术的快速发展,越来越多的web应用件被用于Internet中。对于Web应用软件而言,是一种借助Internet技术加以连接的客户/服务器软件,并且可以传输数据。在市场需求的不断推动下,Web应用软件的种类与数量也不断增加,软件的复杂程度也不断增加,软件的质量与安全问题已成为人们越来越关注的问题。
而最新的网络安全统计数据表明,累计每天都有超过12亿人次的网民受到木马攻击,并且有大量的流行软件、大型网站被“挂马”,并且每年都呈现出明显的大幅度增长趋势。由此可以看出,现阶段的互联网仍然非常脆弱,90%左右的木马病毒都以“挂马”的形式进行传播。而这些问题的额产生,在很大程度上源于web安全领域的问题,如后台服务器的不安全设置、系统漏洞、Web应用程序实现代码缺陷等,给不法分子以可乘之机。而对于这些隐患而言,75%左右的攻击都出现在Web应用程序本身,这也是用入侵检测系统、防火墙以SSL所无法应对与解决的。
Web应用安全现状:
Ø 超过半数的网站Web应用数据遭受泄露、造成重大财务损失
Ø 企业网站安全事件频发、遭黑客勒索与竞争对手恶意攻击
Ø 越来越多的网站开始将业务接入到云计算服务中、充分利用云的计算优势和便利
Ø 网站的管理者都开始关注网站安全,会使用安全产品进行防护
为了更深层次的了解当前WEB应用的安全情况,我们选取了一部分有代表性的WEB应用系统进行针对性的调查和分析。
1.2 评估方法
为了让调查结果更具代表性和一般性,我们从金融、政府、媒体、电信、制造业和电子商务等多个行业选取了107个web应用作为测试对象,在取得相关单位授权后进行了漏洞评估。
漏洞评估是通过手动的黑盒、灰盒和白盒测试(借助自动化工具)或自动源代码分析进行的。黑盒测试意味着从外部攻击者的角度来看待应用程序,而外部攻击者对应用程序没有预先的或内部的知识。灰盒测试类似于黑盒测试,只不过攻击者被定义为在web应用程序中具有某些特权的用户。
漏洞的严重程度是根据通用评分系统(CVSS v.3)计算出来的。基于CVSS的评分,我们将漏洞分为三种危险等级:高、中、低。
1.3 评估对象
评估的应用程序,覆盖了许多行业的多个公司,包括金融、政府、媒体、电信、制造业和电子商务。
今年,PHP和java是最常用的开发语言,ASP.NET应用程序的比例与去年同期相比有所增加,“other”类别(如Ruby、Python)中开发语言的应用程序仅占7%。
1.4 评估内容
本次安全评估主要结合OWASPTOP10漏洞对web系统安全性进行测试。
1. 注入,包括SQL、操作系统和LDAP注入
注入缺陷,如sql、os和ldap注入出现在不受信任的数据作为命令的一部分或查询。攻击者的恶意数据可以解释器执行命令或访问未经授权数据。
2. 有问题的鉴别与会话管理
验证和会话管理相关的应用功能往往不能正确实施,使得攻击者能够妥协密码、密钥或会话令牌,或利用其他实现缺陷承担其他用户的身份。
3. 跨站脚本攻击(XSS)
xss使得攻击者能够在受害者的浏览器中执行脚本,可以劫持用户会话、污损网站,或者将用户重定向到恶意网站。
4. 不安全的直接对象引用
直接对象引用时发生于公开内部实现的对象引用,如文件、目录或数据库的关键引用,攻击者可以操纵这些引用来访问未经授权的数据。
5. 安全配置错误
良好的安全需要有一个安全的配置定义和部署应用、框架、应用服务器、web服务器、数据库服务器和平台。安全的重点是实现和维护,此外,软件应该保持最新。
6. 暴露敏感数据
许多web应用程序不能正确保护敏感数据,如信用卡、税务id和身份验证凭据。攻击者可能会窃取或修改这些弱受保护的数据进行信用卡诈骗、身份盗窃,或其他罪行。如加密敏感数据是关键的预防措施。
7. 函数级访问控制缺失
大多数web应用程序的功能级别的访问权限验证功能中可见的用户界面。然而,应用程序需要在服务器上执行相同的访问控制检查在每个函数。攻击者将能够伪造请求,以访问未经授权功能。
8. 跨站请求伪造(CSRF)
csrf攻击登录受害者的浏览器发送一个http请求,向易受攻击的web应用程序,获取包括受害者在内的会话cookie和任何其他自动包含身份验证信息。攻击者强制受害者的浏览器生成请求,导致应用程序认为是从受害者的合法要求。
9. 使用存在已知漏洞的组件
如数据库、框架,和其他软件模块,几乎都拥有完全权限的运行。如果利用易受攻击的组件,这种攻击可以导致数据丢失或服务器接管。并使可能的攻击范围和影响扩大。
10. 未验证的重定向
经常和转发用户重定向到其他网页的web应用程序和网站,并使用不受信任的数据来确定目标页面。攻击者可以重定向到网络钓鱼或恶意软件网站。
1.5 统计分析
所有的web应用程序,无论是使用手动的还是自动的安全评估工具进行检查,都包含了各种危害级别的安全漏洞。只有2%的应用程序具有完全的低危漏洞。
高危漏洞示例
低危漏洞细节示例
低危漏洞检测示例
通过手工测试和自动化检测,发现高危漏洞的网站比例为58%,几乎所有应用程序都检测到中危漏洞和低危漏洞。
漏洞整体分布情况如下:
手动测试结果显示了在发现的所有漏洞中,大多数(81%)是中危漏洞,十分之一为高危漏洞。
而手工检测和工具检测的主要区别在于业务逻辑型漏洞,如越权漏洞、文件上传漏洞、账户枚举漏洞等,同时还有部分常规漏洞的绕过WAF后的检测,如XSS漏洞、SQL注入漏洞、命令执行漏洞等。
平均而言,手动分析发现每个应用程序有17个中危漏洞、2个高危漏洞和2个低危漏洞。
1.6 检测结论
1、评估的所有web应用程序都存在漏洞
在分析的所有应用程序中都发现了安全漏洞,58%至少有一个高危漏洞。
2、应用程序的用户不受保护
大多数应用程序允许对其用户进行攻击。此外,许多应用程序对用户数据的保护不够。例如,在处理个人数据的应用程序中,20%的应用程序都被我们获取到了访问用户信息的权限,这中间包括银行和政府网站。
3、敏感信息泄漏仍然是一个紧迫的问题
大约有一半的web应用程序存在关键数据泄漏的问题,包括源代码和个人数据。63%的web应用程序公开了正在使用的软件版本。
关注我们
对web安全有兴趣的小伙伴可以关注或加入我们,TideSec安全团队:
来源:freebuf.com 2019-04-03 09:01:48 by: TideSec
请登录后发表评论
注册