Web安全问题与防范策略分析
2017-03-09◆李鑫
◆李 鑫
(广东省石油化工职业技术学校 广东 528225)
Web安全问题与防范策略分析
◆李 鑫
(广东省石油化工职业技术学校 广东 528225)
在互联网时代背景下,人们越来越重视Web安全问题。本文从Web应用的结构体系着手,对web攻击的目的、本质和对象展开分析,主要从浏览器、传输通道、服务器三个Web的核心内容说明了web攻击的来源和形式,并从攻击前的安全清单扫描,攻击中如何阻断攻击,攻击后如何保护数据等三方面说明了典型的web安全问题防范策略,较为全面地分析了web攻击的原理和危害程度,给出了相对有效的防范措施建议,可以把攻击的损失降到最低。
web安全;web攻击;网络安全
0 引言
Web平台上的互联网应用越来越广泛,吸引了黑客们的强烈关注,Web安全威胁也日益凸显。随着用户对Web应用安全的关注度也逐渐升温。黑客可以利用 SQL 注入等 Web 安全漏洞获取 Web 服务器的权限,窃取服务器数据,篡改网页信息。因此,解决 Web安全问题迫在眉睫。OWASP(Open Web Application Security Project开放式Web应用程序安全项目)组织于2017年发布的Web应用的十大关键风险,从中看出,Web应用受到的攻击手段众多,因此有必要对其进行分析和梳理,以便全面、有效地防范Web应用面临的风险。
排名 漏洞
1 注入式风险
2 跨站点脚本 (简称XSS)
3 无效的认证及会话管理功能
4 对不安全对象的直接引用
5 伪造的跨站点请求(简称CSRF)
6 安全配置错误
7 加密存储方面的不安全因素
8 不限制访问者的URL
9 传输层面的保护力度不足
10 未经验证的重新指向及转发
1 Web安全基本分析
1.1 Web安全的结构体系
Web 应用通常有三层架构,任何一层出现安全问题都会导致整个 Web应用受到威胁。无论是底层的操作系统,中间层的Web 服务程序、数据库服务等通用组件,还是上层的内容和业务相关的网页程序,都是黑客可能的攻击目标。
1.2 攻击的目的
(1)窃取用户信息
获取用户登录状态、获取账号密码、获取用户私密信息等,得逞后将进一步实施盗取账号资产、售卖用户隐私等恶劣行为。
(2)破坏产品,致其无法正常使用
频繁调用服务器接口以搞垮服务器,破坏底层数据使得Web应用无法启用等。
1.3 攻击的本质
Web攻击,本质上是攻击者通过一系列攻击方式,利用数据流对攻击对象(浏览器、传输通道、服务器)进行攻击,只要其中一个攻击对象被成功攻破,便能达成攻击目的。攻击行为必然对应于具体的攻击对象,Web攻击的攻击对象就是Web体系及其中的组成要素。
2 攻击对象及其分析
从 Web体系的核心内容来看,攻击对象可以分为三块:浏览器、传输通道、服务器。Web安全实质上是针对每种攻击手段进行防御,所以判断其攻击对象,并对攻击对象实施保护是安全工作的基本思路。
2.1 攻击前端页面
主要攻击类型有三种:前端安全漏洞XSS、前端新型攻击机制CSRF 点击劫持、前端新特性滥用
(1)前端安全漏洞
(2)前端新型攻击机制
界面操作劫持攻击也是典型的 Web前端攻击方式,很多知名 Web 应用都受到过这种攻击。界面操作劫持可划分为点击劫持和拖放劫持,主要是通过误导用户使用点击或者拖放操作,到达窃取用户信息的目的。
(3)前端新特性滥用
HTML5是制定的新一代语言的标准,在PC端、手机、平板电脑的浏览器上都得到了广泛的支持,给用户到来了更加方便和友好的访问体验的同时,也带来了新的安全挑战。
比如,HTML5 支持 Web Socket 和 XML Http Request level 2。这些功能为攻击者提供了构造各种恶意代码的可能性,滥用Web Socket 和 XHR level 2 是 HTML5 面临的最大威胁之一。
2.2 攻击传输通道
Web中的传输通道主要是指连接浏览器和服务器的网络通道,数据从浏览器端发出,通过网络通道,到达服务器,服务器再把数据结果通过网络通道返回到浏览器。扩大来说,也包括Web 应用的传播。
2.3 攻击服务器
该类攻击是数据对服务器进行的攻击。攻击方式与攻击浏览器的方式是类似的,也可分为两种:利用服务器特性攻击、利用服务器逻辑漏洞攻击。
(1)利用服务器特性攻击
事情在2010年前后开始起变化,智慧城市和智慧医疗的概念开始落地,很多城市都有一些不错的初体验,包括杭州市。这一时期,医院信息化系统中的业务模块越来越多,涉及医疗、科研、决策等不同业务领域。医院内部以及跨医院的信息交换越来越复杂,平台集成则成为信息化建设的焦点。
以SQL攻击后台数据库为例,把SQL命令插入到Web表单递交从而达到欺骗服务器执行恶意SQL命令。如果后台没有实施防御措施,数据就会被当做SQL指令来执行而非普通字符串。
(2)利用后台逻辑漏洞攻击
后台逻辑当中信任逻辑漏洞较为常见,这里以 CSRF(跨站请求伪造,Cross Site Request Forgery)攻击为例。由于引入了跨域共享机制( COR) ,HTML5 中出现了新的跨域请求伪造方式。CSRF 攻击中攻击者通过各种手段窃取受害者身份( cookie、token等),发现伪造请求或诱导实现的请求,如果目标站点不经验证就相信应该伪请求,就实现了 CSRF 攻击。
3 Web安全防范措施
根据对 Web的攻击,相应的防范措施也可分为三个阶段,具体如下。
3.1 攻击之前:开发阶段,预防为主
防范策略首先要通过清单扫描减少可能存在的漏洞数量,加强开发人员、设计人员和管理人员等人的 Web 信息系统安全意识。可将关键的安全问题列为清单,在 Web应用开发期间即予以考虑,以充分保障Web应用的安全体系。
3.1.1数据库
(1)对用户身份认证的数据和敏感数据(如 token、email或支付信息)加密。
(2)数据库访问的账户请使用最小权限,而不要用数据库root账户。
(3)用专门设计的Key store来存储和分发机密数据和内容,不要硬编码写到应用里。
(4)只使用SQL预处理语句(prepared statements)严防SQL注入。
3.1.2开发
(1)对每个待发布的版本,要确保所有组件都经过了漏洞扫描,这包括O/S、库和包。这个步骤应该在持续集成/持续交付流程中自动完成。
(2)保证开发系统的安全,这和产品系统安全同样重要。应该用安全、独立的开发系统来开发软件。
3.1.3认证
(1)确保所有的密码都使用了正确的加密方式(如bcrypt)。永远不要自己实现crypto,而且要用随机数据对crypto做正确的初始化。
(2)在实现登录、忘记密码、重置密码等功能时,采用前人验证过的最佳实现或组件,不要重复造轮子。
(3)遵循简单且适宜的密码规则,鼓励用户使用较长的随机密码。
(4)你们的所有服务,登录时要使用多重验证。3.1.4 API
(1)确保你的公共API中没有可枚举资源。(2)确保用户在使用API时已经经过了完全认证和授权。(3)在API中使用随机检查来检测可能具有潜在攻击的异常请求。
3.1.5校验与编码
(1)为了实现快速用户响应,输入校验可以在客户端完成,始终要对用户的输入进行校验和编码。
(2)在服务器上用白名单校验所有用户输入。不要直接将用户内容添加到响应中。千万不要在SQL语句中使用用户输入的内容数据。
3.2 攻击之时:阻断攻击,确保信息安全
在攻击发生时,必须阻止攻击发生,确保 Web 应用能够持续稳定地运行,确保 Web 应用和用户信息安全。一方面要避免Web 服务器受到 DDoS 攻击,通过部署抗拒绝服务设备进行分布式拒绝服务(DDoS)攻击的防护。另一方面要避免网页的篡改、网页被挂马、网页中存在钓鱼链接等现象。通过部署专业Web 防护产品,确保过滤攻击因素(如 SQL 注入攻击、跨站脚本攻击等),同时也能保证网页能够健康运行。
3.3 攻击之后:保证内部数据安全,阻止数据泄露
在攻击发生之后,要确信攻击者攻入到 Web服务器也无法操作或盗取服务器中重要数据和敏感信息,可以通过限制非法下载,加强Web shell的防护和敏感数据的过滤等,最大程度保证用户和Web服务器数据不泄露出去。
4 结束语
Web应用的技术不断发展,带给人们效率的提高和美好的体验的同时,也带来了黑客的攻击,造成巨大的损失。我们如果能够从攻击的目标、本质、对象上去做全面的防范,就有可能最大程度降低黑客带来的破坏和损失。
[1]谭彬,杨明,梁业裕,宁建创. Web安全漏洞研究和防范[J].软件导刊,2017.
[2]孙松柏,Ali Abbasi,诸葛建伟,段海新,王珩. HTML5安全研究[J].计算机应用与软件,2013.
[3]刘海,徐旁,郭帆.防范攻击的研究综述[J].计算机与现代化,2011.