浅谈数据库SQL注入攻击防御与对策

2013-10-13 09:49:12钟志文
长春教育学院学报 2013年9期
关键词:攻击者漏洞应用程序

钟志文

浅谈数据库SQL注入攻击防御与对策

钟志文

以SQL注入漏洞为研究对象,在总结SQL注入攻击的涵义的基础上,提出建立SQL注入防御体系的基本原则和建议,有助于在SQL数据库和相关安全技术方面起到积极的作用。

数据库;SQL;SQL注入

随着WWW快速发展,Web技术日益成熟,在电子商务等众多领域得到了广泛应用,给人们带来了极大的便利,但是随之而来的是Web应用安全问题也日益突出。目前,Web应用程序安全隐患主要为非授权访问、信息泄露以及拒绝服务攻击等。攻击者利用这些Web安全漏洞攻击Web站点,使网站形象受损,给Web应用管理者和用户造成了极大的麻烦以及巨大的经济损失,因此大家更加注重Web应用程序的安全。OWASP(The Open Web Application Security Project)的统计表明,2010年SQL注入攻击位于全球十大Web攻击之首[1]。本文主要以SQL注入漏洞为研究对象,探讨SQL注入攻击防御模型的设计与实现,对Web安全理论、Web安全测试理论和安全Web应用体系有积极的促进作用,也对如何设计安全的Web应用程序以及相关的安全技术的发展具有一定程度的指导作用。

一、SQL注入攻击概述

(一)SQL注入攻击的涵义

SQL语言是一种解释型语言,基于解释型语言的执行方式,攻击者可以提交恶意输入,即构造的输入中包含对解释型语言语法具有特定意义的句法,这样攻击者构造的输入的一部分被解释作为程序指令执行,因而打破了Web应用程序原来的程序执行逻辑,形成了SQL注入攻击漏洞。因此一旦Web应用程序处理SQL语句的方式不正确,就会不经意间形成SQL注入漏洞。一旦Web应用存在的SQL注入攻击漏洞被攻击者发现并且通过构造恶意输入成功利用,攻击者就可以利用其获得的仅有权限,不管是通过横向权限拓展还是纵向权限拓展提升其权限,此时对数据库的危害将是不可估量的。

(二)SQL注入攻击类型

SQL注入攻击类型按照其分类方式不同,分类结果也不一样。按照阶数可分为一阶SQL注入攻击和二阶SQL注入攻击。其中二阶SQL攻击是指攻击者利用具有特殊意义的字符精心构造恶意的输入,这些输入在Web服务器上处理时是不会产生任何问题的,并且对Web应用程序是安全的,此时并不会形成SQL注入攻击漏洞。而当这些信息被存入数据库,并再次对数据库进行请求时,数据库返回之前存入的信息,当返回的特殊构造的语句成功执行后造成的SQL注入攻击就是上面所说的二阶SQL注入攻击;而一阶SQL注入攻击是指通过构造的恶意输入对Web应用程序直接造成的注入攻击漏洞,其与二阶注入攻击最大的不同点就是此时输入的信息不先借助数据库的存储而后再返回形成注入攻击漏洞,而是直接对Web进行攻击。

按照攻击类型[1]可分为数字型SQL注入攻击、字符型SQL注入攻击、搜索型SQL注入攻击。所谓数字型SQL注入攻击是指攻击者攻击的字段类型是数字型的,因此相对应的字符型SQL注入攻击指攻击者攻击的字段类型是字符型的,而搜索型SQL注入攻击是指攻击者攻击的字段类型是通过SQL匹配机制来实现的。

二、SQL注入攻击安全防御体系

(一)基本原则

SQL注入攻击漏洞对Web应用程序危害巨大,因此采取相应措施防御SQL注入攻击对于Web应用程序安全来说非常重要。这里可以采用的方式如下:第一,特殊字符过滤机制,就是在客户端以及服务器端对用户输入的信息进行过滤,将一些对于Web应用程序具有特殊意义的字符过滤掉,防止其破坏Web应用程序的逻辑处理流程结构,以避免对Web应用程序造成较大危害;第二,在查询过程中使用参数化查询方式,即Web应用程序事先为相关查询定义好查询结构,在查询结构中将需要用户输入的部分先用一些变量进行填充,并且Web应用程序运用长度和类型限制对该变量进行了界定,这样就无法破坏SQL语句结构,起到防御SQL注入攻击的作用[2];第三,可以采用存储过程方式,即在数据库中事先建立好Web应用程序需要的SQL语句存储过程,利用安全设计的存储过程来避免SQL注入攻击漏洞,因为设计不规范的存储过程也是存在SQL注入攻击的,安全的存储过程设计将在下面进行介绍。

图1 SQL注入攻击防御体系

SQL注入攻击安全防御体系是基于三层Web应用模型构造的注入攻击防御安全体系,针对传统三层在Web服务器层和数据库层之间加入一层Web服务来提供强大的SQL注入攻击防御能力。同时针对传统三层,在每一层上面提供相对应的防御措施,来构造一个多层次动态的安全防御体系,以保证Web应用程序安全。

(二)防御体系“三个方面”

1.数据安全传输。数据安全传输是保证信息在传输过程中的保密性和完整性。其中保密性是通过加密技术对传输的信息进行加密,这里主要采用对称加密算法,主要是出于效率上的考虑,因为当需要加密的信息比较多的时候,对称加密算法相对于非对称加密算法来说速度更快。通过采用加密技术,就可以保证信息在传输过程中对攻击者是不可见的,像Web代理工具或者窃听工具等都将失去作用,因而可以防止信息泄露,保证信息的安全传输。

完整性主要是采用信息摘要算法对传输的信息进行摘要处理,然后将摘要信息通过加密安全传输,这里可以采用非对称加密算法,因为信息摘要信息量比较少,当另一方收到传输的信息时,通过相同的摘要算法对信息进行同样的操作,然后通过对比两个摘要来判定信息在传输过程中是否遭到篡改,如果通过对比两个摘要完全相同,那么就可以断定收到的信息是完整的。当然这是以牺牲成本和效率为代价的,对于安全性要求比较高的Web应用程序,这些都是处于可接受的范围内,毕竟对于这样的Web应用程序,安全性才是第一位的,然而,对于安全性要求不是特别高的Web应用程序,数据安全传输是可选的。通过数据的安全传输,可以保证用户信息的安全性,防止用户信息被窃取以及被恶意修改等。

2.授权认证。授权认证主要用来保证用户实体的真实性。它包括两个方面,即在数据的安全传输过程中用来认证用户实体的真实性以及在数据库认证过程中保证数据用户的真实性,这里主要采用访问控制方式。访问控制分两步,第一步通过授权,采用最小权限原则,将能够满足需求的最低权限分配给合法的使用者;第二步当用户使用Web应用程序时,通过审核来检查用户是否是合法的使用者,以及使用者是否具有访问该资源的权限,通过授权认证可以防止非法使用者使用以及获取相关信息。比如用户需要访问一个Web管理页面,首先,需要检查用户是否有权限登录Web后台管理系统,即用户是否得到授权访问后台管理系统;其次,如果用户得到了相应的授权,接着就需要检查用户是否得到授权访问该Web管理页面,如果用户没有权限访问该Web页面,即使用户可以登录后台管理系统也不能访问该页面,其实质是一个动态多层次的访问控制措施。

3.资源保护。Web应用程序在运行过程中需要不断访问各种资源,包括文件资源访问和数据库资源访问。其中文件资源主要指Web页面,比如上文提到的后台管理页面不能被未授权使用;数据库资源主要指数据库中保存的信息,比如Web应用程序的用户密码信息或者其他相关机密信息。像这样的信息是否得到合理的保护关系到Web应用程序是否能够正常运行,这些信息对应用程序来说是至关重要的,必须得到合理的保护。

三、结语

随着WWW快速发展,Web技术的日益成熟,Web技术在电子商务等众多领域得到了广泛应用,给人们带来了极大的便利。但是随之而来Web应用安全问题也日益突出,数据库的安全成为人们普遍关注的对象。本文基于SQL注入攻击原理,对Web安全理论、Web安全渗透测试理论和安全Web应用体系具有积极的促进作用和指导意义,也对如何设计实现安全的Web应用程序防御SQL注入攻击,以及Web安全技术的发展具有一定的现实意义和借鉴作用。

[1]幻泉.注入中的数字型、字符型、搜索型的区别.http://www.2cto.com/Article/201012/80898.html

[2]Dafydd Stuttard,Marcus Pinto著,石华耀等译.黑客攻防技术宝典:Web 实战篇.北京:人民邮电出版社,2009,8

[3]Padmanabhuni S.,Singh V.,Senthil kumar K.M.,Chatterjee A.Preventing Service Oriented Denial of Service (PreSODoS):A Proposed Approach.Web Services (ICWS),IEEE International Conference on;Chicago,IL,2006

[4]Hamisi N.Y.,Mvungi N.H,Mfinanga D.A,Mwinyiwiwa B.M.M,Intrussion detection by penetration test in an organization network.Adaptive Science and Technology,2nd International Conference on,2009

责任编辑:郭一鹤

TP309

B

1671-6531(2013)09-0041-02

钟志文/广东省海洋工程职业技术学校计算机讲师,应用电子技术工程师(广东广州 510320)。

猜你喜欢
攻击者漏洞应用程序
漏洞
今日农业(2022年13期)2022-09-15 01:21:08
基于微分博弈的追逃问题最优策略设计
自动化学报(2021年8期)2021-09-28 07:20:18
删除Win10中自带的应用程序
电脑报(2019年12期)2019-09-10 05:08:20
正面迎接批判
爱你(2018年16期)2018-06-21 03:28:44
三明:“两票制”堵住加价漏洞
中国卫生(2016年5期)2016-11-12 13:25:28
漏洞在哪儿
儿童时代(2016年6期)2016-09-14 04:54:43
高铁急救应补齐三漏洞
中国卫生(2015年12期)2015-11-10 05:13:38
有限次重复博弈下的网络攻击行为研究
关闭应用程序更新提醒
电脑迷(2012年15期)2012-04-29 17:09:47
三星电子将开设应用程序下载商店