APP下载

Web应用的安全形势与防护策略研究

2019-12-25谭志超

网络安全技术与应用 2019年12期
关键词:漏洞网络安全用户

◆谭志超

Web应用的安全形势与防护策略研究

◆谭志超

(湖南大众传媒职业技术学院图文信息中心 湖南 410100)

近年来,Web应用得到了飞速发展,但绝大部分Web应用存在安全漏洞。攻击者出于经济、政治等目的,利用SQL注入、Webshell、跨站脚本XSS、弱口令等漏洞对Web站点实施篡改、挂马、攻击、数据窃取等恶意行为,得到了国家和全社会的高度重视。在安装专业安全设备的基础上,还应通过参数化查询、过滤用户输入、使用输入验证与输出编码、加强服务器权限管理、过滤可执行函数入口、限制连接数与请求数等方法从源头上加以防护。

Web应用;安全;形势;防护

随着互联网技术的不断发展,基于浏览器访问的Web应用得到迅速推广,覆盖了政府、金融、通讯、能源、教育、医疗、电子商务等各行各业,涉及了工作、学习、生活、工控等方方面面,给人们的生产生活带来了巨大的改变,为经济社会向前发展起到了重大的推进作用。但在互联网应用与互联网经济发展如火如荼的同时,来自互联网的安全威胁也越来越多,利用操作系统漏洞、SQL注入、Webshell、跨站脚本XSS等手段夺得控制权,对Web站点实施篡改、挂马、攻击、数据窃取等行为时有发生,安全事件出现的频次居高不下,带来的破坏性、影响力在不断增大,呈现出波及范围广、传播速度快、破坏力强等特点。互联网应用的良性发展,需要Web应用的安全性、健壮性得到保证。Web应用安全不仅要从提高安全意识、加装防护软件、部署安全设备上入手,还得不断创新技术手段从源头上进行加固和防护。

1 近年来我国网络安全背景

2014年,在我国接入国际互联网20周年之际,我国网民的总人数突破了6亿,各类网站接近400余万家,参与网络购物的人数达到了3亿,我国已然成为互联网大国,但与互联网强国还有较大差距。2月27日,中共中央网络与信息化领导小组正式成立,中共中央总书记、国家主席、中央军委主席习近平亲自担任组长,将网络安全上升为国家战略。在中央网络安全和信息化领导小组第一次会上,习近平强调“网络安全和信息化是一体之两翼、驱动之双轮”,做出了“没有网络安全就没有国家安全,没有信息化就没有现代化”的重要论断。

2015年6月,网络安全企业与国家互联网应急中心、基础电信企业、重要行业部门、安全厂商和民间漏洞平台等单位在北京签订了《中国互联网协会漏洞信息披露和处置自律公约》,进一步规范漏洞接入、处置与发布等工作。2015年7月,网络安全法草案向全社会公开征求意见,新的国家安全法明确了要建设网络与信息安全保障体系并在十二届全国人大常委会第十五次会议上获得通过,中国刑法修正案(九)加入了维护网络信息安全的相关内容并于十二届全国人大常委会第十六次会议审议通过。

2016年3月,中国首个网络安全领域的全国性社会团体——网络空间安全协会在北京成立,4月19日,中共中央网络与信息化领导小组组长习近平主持召开网络安全和信息化工作座谈会,并发表了4.19重要讲话,提出我国网信事业发展要适应按照创新、协调、绿色、开放、共享的发展理念推动我国经济社会发展这个大趋势,推进网络强国建设。8月,中央网信办、国家市场监督管理总局、国家标准委为加强网络安全标准化联合印发了《关于加强国家网络安全标准化工作的若干意见》。11月,保障网络安全,维护网络空间主权和国家安全、社会公共利益的《中华人民共和国网络安全法》发布。12月,为了贯彻落实习近平主席关于推进全球互联网治理体系变革的“四项原则”和构建网络空间命运共同体的“五点主张”,《国家网络空间安全战略》出台并发布,阐明了我国关于网络空间发展和安全的重大立场。

2017年6月1日,期盼已久的《中华人民共和国网络安全法》正式施行,填补了我国网络安全方面的法律空白,网络安全进入有法可依时代,为打击网络犯罪、保障网络与信息安全供了法律依据。

综上表明,网络与信息安全已经上升为国家战略,将其作为了国家安全的重要内容,并进行了立法,实现了有法可依。网络安全由民间自发行为为主转变为国家主导社会民间团体共同参与,群策群力、联防联治、统一共享的工作局面,全社会的重视程度得了前所未有的提升。

2 面临的主要安全威胁

据国家互联网应急中心《2016年中国互联网网络安全报告》显示,2016年,网页仿冒数量、网页篡改数量、DDoS攻击数量、僵尸网络和木马程序感染数与2015年相比均有所下降,但安全漏洞数量、网站后门攻击数量、移动互联网恶意程序数量与2015年相比均有所上升。我国有约1699万台主机被木马和僵尸网络控制服务器控制,其中境外控制了约1499万台,排名前3的分别美国、中国台湾和荷兰,相比2015年控制服务器数量有所下降。移动互联网恶意程序数量达到205万个,相比2015年增长了39.0%,发展趋势持续增长,恶意程序排在首位的是流氓行为类,其次是恶意扣费类和资费消耗类。CNVD(国家信息安全漏洞共享平台)2016年共收录通用软硬件漏洞10822 个,相比2015 年增长了33.9%,其中应用程序漏洞占到了60.0%,Web 应用漏洞占到16.8%。仿冒我国境内网站页面达到17.8万个,其中85.4%位于境外。2016 年,我国境内有约8万个网站被植入后门,其中有84.9%来自境外植入,美国、中国香港、俄罗斯分列前3位。我国境内约1.7万个网站被篡改,被篡改主要方式是植入暗链[1]。

2017年,我国网站最大现实威胁来自挖矿木马,最大安全隐患是弱口令问题,并且普遍存在。国内网站安全典型事件有某社会管理服务机构遭受挖矿木马攻击、某知名软件企业服务器遭到恶意部署、某大型机构门户网站页面被恶意篡改等。国外著名的网站安全事件有美国联邦调查局网站遭到黑客入侵、日本国内有10万余条信用卡信息被泄露、马士基航运公司遭遇勒索软件损失数亿美元、黑客入侵萨克拉门托地区运输局网站30%的文件遭到删除等,这些事件的涉及各个行业各个领域,需要引起高度的重视。360《2017中国网站安全形势分析报告》显示,2017年前10个月,360网站安全检测平台共扫出69.1万余个网站存在安全漏洞,占总扫描网站的66%,其中跨站脚本攻击漏洞的数量排名首位,其后是SQL注入漏洞、SQL注入漏洞(盲注)、PHP错误信息泄露、数据库运行时错误等类型,教育培训类网站、政府机构类网站、事业单位类网站存在的漏洞最多。截止到2017年10月,共有79.8万余个网站遭受了漏洞攻击,平均每月约有8.0万余个网站被攻击,360网站卫士共为187.5万个网站拦截各类漏洞攻击26.4亿次,平均每天拦截漏洞攻击868.9万次,其中SQL注入攻击排名第一,其后分别是Webshell、通用漏洞、nginx攻击、跨站脚本XSS、扫描器、信息泄露、代码注入等。2017年全年,补天平台SRC共收录各类网站安全漏洞报告22706个,共涉及14416个网站。其中,排名首位的是SQL注入漏洞,其次分别是命令执行、信息泄露、弱口令、代码执行等。DDoS 攻击主要由受控的僵尸网络发动,360威胁情报中心的数据显示有626.2万余个IP被攻击了1064.3万余次[2]。

Trustwave(面向企业和公共部门提供信息安全性与遵规性管理解决方案的全球性供应商)发布的《2017全球安全报告》显示,99.7%的应用至少存在一个漏洞,Web应用中的平均漏洞数量为11个[3]。从OWASP(开放式Web应用程序安全项目)发布的2017年Web应用威胁Top 10榜单中可以看出,排名榜首仍然是注入攻击漏洞,其次分别是失效的身份认证、敏感信息泄露、XXE漏洞、失效的访问控制、安全配置错误、跨站脚本XSS、不安全反序列化漏洞、使用含有已知漏洞的组件等,与2013年威胁排名相比,跨站脚本XSS已从第3位下降到第7位威胁程度有所减弱,但失效的访问控制、安全配置错误、敏感信息泄露等威胁有所上升[4]。美国Imperva公司在《Imperva 2017 Web应用安全报告》中表示,2017年新发现Web应用漏洞数量共计14082个,与2016年相比增加了212%,有50%以上的Web应用存在可以利用的攻击,跨站脚本(XSS)错误仍然是最常见、最基本的漏洞[5]。

从以上数据可以看出,Web应用安全漏洞普遍存在,安全威胁覆盖各个地区、行业和领域,Web应用安全漏洞占比呈现上升趋势,且新型安全漏洞不断涌现。从主要攻击来源来看,绝大部分的攻击来自境外,以美国、中国台湾、中国香港、荷兰、俄罗斯等为主。攻击者的主要目的是非法获取经济利益、窃取信息、从事间谍活动,以及达到某种政治目的或主张、实现某种诉求等,不管是勒索软件,还是挖矿木马和恶意程序都是以非法获取经济利益为主要目的,并将成为未来的一种发展趋势。攻击者的主要手段是利用SQL注入漏洞、跨站脚本XSS、Webshell、远程命令执行、僵尸网络、弱口令、木马、网站后门、代码注入等。受攻击后的主要表现形式为网页被篡改、数据被破坏、信息被泄露、遭受DDoS攻击、运行变慢甚至崩溃等。

3 Web应用安全威胁分析与防护

一个完整的Web应用从上到下由操作系统、数据存储、Web服务器(容器)、Web服务器端开发语言、Web开发框架、Web应用程序、Web前端框架、第三方服务、浏览器等构成,通过URL完成定位,内容与信息的传输需HTTP支持,内容与信息的表达由HTML支持。Web数据在各层次间进行传输,每一层都有可能带来一定的安全问题,比如,出现最多SQL注入源于数据存储层的安全问题,最基本的跨站脚本(XSS)漏洞存在于Web前端,远程命令执行的威胁是由于Web开发框架或Web应用程序存在问题,nginx攻击是利用了Web服务器(容器)的漏洞,最底层的操作系统层也存在OS命令执行带来的安全问题。面对复杂的安全问题,除了加装通用防火墙、Web防护设备、漏洞扫描设备、堡垒机等安全设备之外,还可以针对主要安全威胁实施以下防护措施。

3.1 SQL注入

SQL注入包括代码层注入、平台层注入两种,利用用户输入过滤漏洞,将特殊字符作为表单提交参数或URL参数传递给Web应用程序,再利用SQL语句调用上的漏洞,完成对恶意SQL语句的执行,达到篡改数据、规避认证、非法调阅、执行数据库关联程序等目的。数据库安全性配置、数据类型处理、查询集处理、转义字符处理、错误信息处理等方面存在不合理、不恰当的问题是能完成SQL注入的主要原因。SQL注入防护可以从以下几点入手:

(1)参数化查询

在进行SQL注入时经常会在用户输入中加上“or+恒真表达式”来绕过认证,数据库系统将用户输入当作指令进行执行,这样就带来了安全问题。一种有效的解决策略就是采用预编译语句集,数据库系统和Web开发语言都能支持。首先将SQL语句进行编译,再把用户输入作为指令参数传入,避免了将用户输入作为指令来执行,安全性得到了极大的提高。在SQL SERVER中查询值前会加上“@”,在MySQL中查询值前会加上“?”。

(2)使用正则表达式

使用正则表达式将用户输入进行过滤,把用户输入中包括单引号和双"-"的转换字符及SQL保留字等字符过滤掉。在JSP中首先要使用“import java.util.regex.*”引入外部包,然后再使用正则表式进行检测。在.NET中提供了IsMatch()方法用于判断字符串与正则表达式是否匹配,可对字符串进行直接检测。

(3)非法字符过滤

使用函数对用户输入、URL中的非法字符进行过滤,比如检测过滤“*、/、\、and、or、insert、delete”等非法字符或字符串。

(4)其他方法

在PHP中使用函数addslashes()对SQL语句进行转换、将“register_globals” 设置成“off”不允许注册全局变量。错误信息不直接输出到浏览器,代码书写规范。

3.2 跨站脚本攻击(XSS)

在进行Web前端开发时,由于开发者对用户提交信息的缺少必要的限制与过滤操作,导致用户在浏览Web页时执行攻击者在该页中植入的恶意代码,达到劫持会话完成用户页面跳转或破坏站点的目的。XSS通常嵌入在JavaScript中,也有可能嵌入在VBScript、ActiveX等其他脚本中[6]。通过XSS攻击,攻击者可以窃取用户Cookie中的授权信息,冒充授权用户与Web服务端进行会话,将恶意代码存储到Web应用关联的数据库中,实现持久性攻击[7]。跨站脚本攻击(XSS)的主要防护方法有:

(1)严格进行输入验证与输出编码

该方法是OWASP认为最有效的XSS防护方法,对从表单、隐藏表单、数据库中获得的数据及URL中传递的参数等Web应用输入数据,在存储或被显示之前进行类型、长度、语法规则等方面的验证,对输入数据进行攻击检测与过滤。对写入到数据库与输出至用户浏览器端的数据等Web应用输出数据进行entity编码防止植入脚本在浏览器端运行。可以使用HtmlEncode进行编码,使用JavaScriptEncode实现对特殊字符的转义。

(2)使用HttpOnly防止Cookie会话被劫持

设置Cookie中的HttpOnly属性为Ture,防止Cookie被JS脚本访问,保护Cookie信息免受窃取,防止Cookie会话被劫持。

3.3 Webshell

Webshell是由asp、jsp、php等动态脚本语言编写而成,以网页形式存在,攻击者通过非法手段上传至Web服务器,通过远程浏览器访问这些后门网页构造命令执行环境,达到取得服务器操作控制权的目的。由于Webshell与正常网页相似,并采取了一些伪装措施,经常规避了安全防护软件的检测。针对Webshell的主要防护措施为:

(1)加强文件上传管理

尽量不使用asp、jsp、php等脚本语言编写的文件上传程序进行文件上传或文件管理,网站文件管理尽量使用Ftp工具完成。文件上传采取白名单管理策略,不在许可名单之内的IP或用户禁此上传。设置文件类型白名单,对前台文件格式、Content-Type参数类型、服务器文件类型进行检测,严格控制白名单之外的类型上传,禁止上传动态脚本文件。对文件内容进行检测,过滤一句话木马、图片木马。

(2)加强服务器权限管理

使用访问控制列表(ACL)对Web目录的各种权限进行严格控制,所有Web应用都不运行在超级用户之下,同一服务器多个站点之间配置不同的用户权限。在Windows系统中,系统敏感目录和Web目录只有超级用户具有写入权限,其他写入权限分配合System用户;分配给Web匿名账户只有读取文件的权限,限制上传目录只有写入权没有执行权。在Linux系统中,TOMCAT、WEBLOGIC、WEBSPHERE等Web容器不以超级用户直接运行,而是运行在经过特殊安全配置的用户之下。

(3)其他安全防范措施

使用IIS容器的要禁用WebDEV,防止攻击者利用iisput工具上传websheell文件,必须开启WebDEV的必须选用安全的验证方式对访问用户进行身份验证。使用ftp进行网站文件管理的,禁止使用匿名访问,并不将Serv-U安装在默认路径。在Windows平台下,对cmd.exe、net.exe、netstat.exe、ftp.exe、telnet.exe等命令进行严格的使用权限管理或对其进行改名处理。最后还可以使用NeoPI、LOKI、Shell Detector、D盾、360主机卫士等专业工具进行检测查杀。

3.4 远程命令执行

攻击者利用Web开发框架的漏洞或Web应用在开发时对exec()、eval()等特殊可执行函数入口未做过滤操作的漏洞,通过浏览器提交和执行恶意构造代码。对于因开发框架存在漏洞引起的远程命令执行安全威胁(如Struts2远程命令执行漏洞)只能通过安装漏洞补丁的方法来解决。Web应用开发禁止使用用户传入参数调用系统函数,在Web前端和服务端对输入数据和输出数据进行数据内容、类型、长度等进行检测和过滤,最好对用户输入数据进行编码处理,同时对从数据库取出的数据进行必要的安全检测。

3.5 nginx攻击

nginx是一种高性能、轻量级的Web服务器软件,nginx攻击是指当nginx在处理输入输出数据时误将一些数据当作指令来执行,以及一些不安全的配置而引起的DDoS流量攻击和远程溢出等安全问题。使用正则达表式对URL参数、user-agent信息进行匹配将“scan、echo、nmap”等特殊字符或关键字进行过滤。在nginx.conf中限制客户端可用缓冲区的大小防范缓冲区溢出攻击。利用nginx自带http_limit_conn和http_limit_req模块限制单IP连接数和请求数,同时配合黑白名单,对DDoS攻击进行防范。访问网站必须使用域名防范IP扫描。

4 结束语

以上从我国的网络安全背景、国际国内网络安全事件和网络安全攻击形式与方式等方面分析了Web应用所面临的安全形势,介绍了SQL注入、跨站脚本攻击(XSS)、Webshell、远程命令执行、nginx攻击等几种主要的攻击手段和防护措施,需要Web应用开发者、运营者和使用者,从多方面着手加强安全防护,维护好广大用户的权益。

[1]国家计算机网络应急技术处理协调中心.2016年中国互联网网络安全报告[M].北京:人民邮电出版社,2017:15-25.

[2]360威胁情报中心. 2017中国网站安全形势分析报告[EB/OL].http://zt.360.cn/1101061855.php?dtid=1101062368&did=490995546,2018-01-23.

[3]安全优佳.2017全球安全报告:Web应用中平均包含11个漏洞[EB/OL] .http://www.sohu.com/a/151620330_ 765820,2017-06-24.

[4]刘亚琼.2017 Top 10 Web 应用安全威胁,你的企业正在经历哪些?[EB/OL].http://blog.csdn. net/u013424982/article/details/78700928,2017-12-03日.

[5] darkreading. 2018年1月4日 Imperva 2017 Web应用安全报告新出现的Web应用漏洞增长212%[EB/OL].http://toutiao. secjia.com/2017-web-application-vulnerabilities,2018-01-04.

[6]窦浩,武艳文,段升强. Web应用安全风险防护分析与防护研究[J].西安建筑科技大学学报(自然科学版),2012(3):446-451.

[7]龙兴刚. Web 应用的安全现状与防护技术研究[J].通信技术,2013(7):63-66.

猜你喜欢

漏洞网络安全用户
漏洞
基于selenium的SQL注入漏洞检测方法
新量子通信线路保障网络安全
上网时如何注意网络安全?
关注用户
关注用户
漏洞在哪儿
关注用户
关注用户
网络安全监测数据分析——2015年11月