APP下载

Web 安全及其防护技术研究

2022-01-07李盛达

软件导刊 2021年12期
关键词:脚本攻击者漏洞

李盛达

(南京审计大学信息工程学院,江苏南京 211815)

0 引言

目前,随着社交类、工具类、游戏类等新型互联网产品的诞生,以Web 平台为基础环境的互联网应用愈加广泛,导致攻击者们将攻击目标转移到Web 平台上。Web 作为互联网应用的主要载体被广泛应用于各个业务系统,但Web 应用程序的安全性却未受到人们重视,攻击者利用网络漏洞令用户个人信息被泄露、篡改或销毁,造成巨大损失。其中,又以连续几年漏洞数量和严重性高居第一的注入漏洞为主,对网络的安全性构成了极大威胁,用户使用Web 平台的频率随之降低[1-2]。

网站安全包括Web 服务器软件安全、Web 应用程序安全和Web 防攻击设备安全3 部分[3]。产生以上安全隐患的原因是服务器本身的漏洞以及应用程序开发时留下的缺口,只有充分了解Web 应用程序系统漏洞和攻击者使用的攻击手段,才能对这些漏洞采取有效的防御措施。通过对Web 服务器与应用程序的研究了解各种漏洞特征,及时调整Web 安全防护策略,确保Web 攻防设备将这些安全威胁维持在可控范围内,对于构建一个安全的网络环境,提高Web 服务器和应用程序的安全性,减少安全事故的发生具有重要意义。

1 相关技术研究综述

Web 安全漏洞是指一个Web 系统(包括服务器、应用程序等组件)在设计与实现过程中存在的易受攻击的安全缺陷。一些非法用户利用这些漏洞可获得更高权限,并在未经授权的情况下对系统进行操作,从而破坏系统的安全性[4-5]。Web 体系结构如图1 所示。

Fig.1 Web architecture图1 Web 体系结构

1.1 Web 服务器漏洞

目前针对Web 服务器上的安全隐患研究主要分为3 个方面:一是用户对Web 进行访问请求时遭拒,接收不到响应消息。李爽等[6]结合DDoS 攻击原理与攻击过程,提出使用免费开源工具DDoS deflate 预防DDoS 攻击。二是公共网关接口是外部应用程序与Web 信息服务之间交换数据的接口,可实现Web 浏览器各用户之间的交互,因此易造成安全隐患。卢志科等[7]采用分布式架构与多线程技术,将主动扫描与被动检测相结合,并通过相应插件对Web 系统进行扫描,从而快速识别出owasp10 常见漏洞。三是当远程用户向服务器发送信息(如账户、密码)时,在传输过程中被攻击者拦截。Traore[8]通过simple Box 和secret Box,应用固态加密算法Salsa20/Chacha20 构建一种安全的Web 服务。但以上方案只介绍了漏洞查询方法与攻击原理,未涉及漏洞测试及修复工作,因此可使用CSRF 等工具进行目标枚举,实施对点防护。实验结果证明,该方法可有效阻止漏洞产生。

1.2 Web 应用系统漏洞

目前,围绕Web 应用安全所探讨的问题主要分为4 类:一是Web 平台软件的安全威胁(包括Web 应用程序使用的操作系统、http 底层服务器软件和第三方应用程序等,涵盖数据库和企业内部网络)。周琳娜等[9]针对网络信息安全威胁提出具体防护措施,抵御以高级持续威胁为主的恶意攻击,并弥补传统网络安全缺陷。二是拒绝服务攻击Dos,由于网关映射等虚拟IP 的存在,不能根据IP 地址判断请求来源,目前尚无可靠办法确定http 请求来源,导致合法用户不能使用服务。Yang 等[10]针对最小化问题设计一种基于梯度下降思想的改进多智能体一致性协议,以期在通信网络遭受恶意DoS 攻击时,保障网络电力系统的抗毁性和经济性。三是SQL 注入,通过SQL 命令插入到Web 表单递交、域名输入、页面请求的查询字符串中,最终达到欺骗服务器执行恶意SQL 命令的目的。在此情况下,Web 应用程序在数据输入程序之前忽略对数据合法性的检验,从而使攻击者操纵SQL 代码以获取用户名、密码等信息,或窃取并销毁后台数据。Fu 等[11]研究SQL 注入攻击机制与原理,以解决SaaS、PaaS 和IaaS 虚拟化技术未能增强抵御此类攻击能力的问题。四是跨站脚本攻击XSS,针对攻击者、客户和网站三方设计,用于Web 应用服务器端的通用网关接口(CGI)程序,窃取客户端Cookie 或其他网站用来识别客户身份的敏感信息,这些可执行代码由攻击者提供,并最终加载到用户浏览器。冯倩[12]提出XSS 攻击防御策略,并实现了一种XSS 漏洞检测工具,能有效检测Web 应用中存在的XSS 漏洞。上述问题虽然已得到详细的分析与处理,但未采取实验验证方法,说服性较弱。因此,本文通过搭建实验平台,针对AWVS 所扫描的漏洞进行统一测试与修复,提出多种测试及修复方案供研究者参考,并从Web 服务器、Web 应用开发者、Web 网站管理员3 个方面提出多项防护策略及建议,可有效弥补这一短板。

2 研究设计

2.1 环境准备

从开源网站下载ASP+ACCESS 源码进行网站搭建,如图2 所示。

Fig.2 Website building图2 网站搭建

2.2 信息收集

2.2.1 域名信息

由于本地测试网站无正式域名,因此先测试一个有域名的正式网站。测试网站为:www.chinaz.com,进行对应IP收集,检测结果如图3 所示。

Fig.3 IP collection图3 IP 收集

使用站长工具(www.chinaz.com)进行whois 查询,根据查询结果,可根据已知域名进行反查,分析出域名的注册人、邮箱、电话、注册地址等。

2.2.2 整站分析

整站分析界面如图4 所示。由图可知,网站主要为ASP.NET 类型,服务器为Microsoft-IIS/6.0,响应头为cookie,连接类型为text/html,字符集为utf-8,缓存规则为private,即内容仅缓存到私有缓存中,且客户端可缓存,代理服务器不能缓存。

2.2.3 敏感目录分析

本文主要的收集方向为:robots.txt、后台目录、安装包、上传目录、安装页面、编辑器、iis 短文件等,使用御剑扫描结果如图5 所示。

Fig.4 Whole station analysis图4 整站分析

Fig.5 Catalog scan图5 目录扫描

从txt 说明里可得出默认管理路径为www,域名为com/admin,用户名和密码均为admin。本地测试是指需要开启IIS 的父路径,设置默认文档中存在index.asp 是指本地测试时网站所在文件需要开启读写权限。网络攻击者可利用这些信息修改拿到后台权限,并进行破坏。

2.2.4 端口扫描

利用Nmap 进行主机端口扫描,完成主机探测、版本检测与系统检测等。通过对设备或防火墙的探测审计其安全性,探测目标主机所开放的端口,通过识别新的服务器审计网络的安全性,并探测网络上的主机[13]。扫描结果如图6 所示。

Fig.6 Port scan图6 端口扫描

从扫描结果中可看到网站开放的8 个端口,以及各端口的所属协议、服务名称、版本信息。网络攻击者可通过这些信息进行深层次的攻击,破坏网络安全。

2.3 漏洞查询

通过Acunetix Web Vulnerability Scanner(AWVS)进行漏洞查询,测试网站安全性并通过网络爬虫检测流行的安全漏洞[14],如图7 所示。共发现24 处安全风险,检测结果如表1 所示。

Fig.7 Vulnerability scanning图7 漏洞扫描

Table 1 AWVS test results表1 AWVS 检测结果

SQL 注入是最常见的手工查询方式。经过测试,在地址栏进行and 1=1 时转码,分析出该网站并没有SQL 注入漏洞。

2.4 漏洞分析

根据AWVS 扫描结果可知有3 种形式的漏洞:高危漏洞、中危漏洞和低危漏洞。

2.4.1 高危漏洞

跨站点脚本(XSS):这是一种html 注入攻击,分为反射型和存储型。反射型XSS 诱导用户点击带有恶意代码的链接或图片;存储型XSS 在服务器端保留一个含有恶意代码的JS 代码,每一个访问者都会被动执行该代码。由于浏览器无法识别脚本来源是否可靠,因此脚本将在用户上下文中执行,攻击者可访问浏览器保留的全部Cookie 和会话令牌。攻击原理如图8 所示[15]。

恶意用户可能会将JavaScript、VBScript、ActiveX、HTML 或Flash 注入易受攻击的应用程序中,欺骗用户从这些应用程序中收集数据。攻击者可窃取会话Cookie 并冒充用户接管账户,还可修改呈现给用户的页面内容[16]。受影响的项目:/nav/。

Fig.8 XSS attack principle图8 XSS 攻击原理

Microsoft IIS 目录枚举:通过在Microsoft IIS 的几个版本中使用一些向量,可检测在Windows 中具有与8.3 文件命名方案等效的文件和目录短名称。特别是对于.net 网站而言,由于攻击者可以找到通常不可见的重要文件和文件夹,因此能很容易地直接访问URL,这种脆弱性可能使敏感信息暴露。

2.4.2 中危漏洞

没有CSRF 保护的HTML 表单:此警告可能为假阳性,需要手动确认。CSRF 是攻击者利用用户身份操作用户账户的一种方式,由于Web 的隐式身份验证机制,通过这种攻击,未经授权的命令从网站信任的用户那里传输。AWVS 发现了一个没有明显实现CSRF 保护的HTML 表单,受影响的项目包括/message.asp 等,这种脆弱性使攻击者能够强制Web 应用程序的用户执行攻击者选择的操作[17]。若管理员用户遭到攻击,将波及到整个Web 站点。

脆弱的JavaScript 库:该版本的JavaScript 库报告了一个或多个漏洞,受影响的项目为/common/ js/ jquery-1.8.3.min.js。若网站包含指向第三方托管JavaScript 文件的script 标签,则该网站所有访问者都将下载并执行该文件。一旦攻击者破坏托管JavaScript 文件的此类服务器并将DDoS 代码添加到文件中,则所有访问者都将成为DDoS 攻击的一部分,从而造成拒绝服务攻击,使服务器瘫痪。

2.4.3 低危漏洞

缺少X-Frame-Options 头:“点击劫持”是一个恶意的欺骗技术,指Web 用户点击不同内容可能会透露机密信息,分为用户界面纠正攻击、UI 纠正攻击、UI 纠正3 类[18]。服务器没有返回X-Frame-Options 头,意味着该网站可能面临点击劫持攻击的风险。受影响的项目:Web 服务器。这种脆弱性的影响:取决于受影响的Web 应用程序。

没有设置HttpOnly 标志的Cookie:此Cookie 没有设置HttpOnly 标志。这种脆弱性的影响:无。

启用OPTIONS 方法:此Web 服务器上启用了HTTP 选项。OPTIONS 方法提供Web 服务器支持的方法列表,表示对于url 标识请求可用的通信选项信息[19]。受影响的项目:Web 服务器。这种脆弱性的影响:OPTIONS 方法可能会暴露敏感信息,从而帮助恶意用户准备更高级的攻击。

可能敏感的目录:找到一个可能的敏感目录,该目录不是直接从网站链接。检查并查找常见的敏感资源,如备份目录、数据库转储、管理页面、临时目录等。每一个目录信息都能使攻击者更全面地了解攻击目标。受影响的项目:/system。这种脆弱性的影响:该目录可能会暴露敏感信息,帮助恶意用户准备更高级的攻击。

3 实验验证

3.1 漏洞测试

XSS 跨站脚本漏洞测试:XSS 跨站脚本漏洞是指由于Web 应用程序对用户输入过滤不严,出现在Web 应用程序中的计算机安全漏洞。攻击者利用网站漏洞把恶意的脚本代码注入网页中,当其他用户浏览这些网页时,就会执行其中的恶意代码,其可能采用Cookie 资料窃取、会话劫持、钓鱼欺骗等攻击手段[20]。在测试过程中使用JavaScript脚本,经过AWVS 扫描可得知漏洞在产品展示页面,故在展示页面菜单栏内写入测试脚本: