从安全攻击实例看数据库安全之三:数据库攻击原理分析

从安全攻击实例看数据库安全之三:数据库攻击原理分析摘要:本文将通过对SQL注入攻击技术和数据库加密技术原理以及防护效果进行深入的分析,来辨析数据库安全技术误区“数据库加密能解决SQL注入”,同时本文也给出了SQL注入的防护方法。一.数据库安全误区针对2015年4月互联网大规模报道的全国30省市社保等行业用户信息泄露事件,安华金和对乌云历史报道的社保行业相关漏洞进行集中分析,得出的结论为:大量的信息泄露主要是由于软件中存在的SQL注入漏洞被黑客利用引起的,我们可以把SQL注入比作黑客攻击数据库“锋利的矛”。有了攻击用的矛,我们再来看防守用的盾:数据库加密技术真正实现了敏感数据的加密存储,采用国内外主流的加密算法,确保加密后的数据通过非正常手段获取后十年内难以非法破解,同时通过独立权控、应用绑定,防止绕过合法应用程序的数据库访问和对内部高权限人员的运维操作管控,号称数据库安全中的王冠,我们可以把数据库加密技术比作数据安全防护措施中“坚固的盾”。《韩非子·难一》所述的故事中提到:“以子之矛,陷子之盾,何如?”虽然这是个众人皆知的故事,但是现实版的“矛与盾”的故事又发生在大学教材《信息系统安全概论》中,下面我们先引用教材中的原文:对于安全管理员来说,是否可以通过数据库加密来防止SQL注入呢?在详细解释两种攻防技术前,我们对一个误区给予纠正:数据库加密技术无法抵御SQL注入。原因是数据库加密解决信用卡信息存储安全等问题,而SQL注入是利用应用的弱点窃取数据,由于合法应用肯定能看到明文的信息卡数据,因此加密防守无效。那SQL注入如何正确防护呢?下面我们先了解下SQL注入攻击的原理。对于安全管理员来说这也是必要的,因为不仅要了解防护的手段,同时也应该深入了解SQL注入的原理,实现有针对性的安全防护。二.SQL注入攻击的原理分析SQL注入数据库攻击指构建特殊的输入作为参数传入Web应用程序,比如通过提交表单的文本框输入,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。常见的SQL注入案例有两种情况,一种是伪装登录应用系统,另一种是在有登录账号的情况下,在应用系统后续的提交表单的文本框中找到SQL注入点,然后利用注入点批量窃取数据。如下两图的输入:SQL注入的典型场景一,通过伪装登录窃取数据,主要是通过or运算符。窃取数据假设后台的拼接语句为select*fromtablewherecolumn1=‘文本框输入值’;Eg1:如输入值为《abc’or‘1’=‘1》,则语句拼接为select*…wherecolumn1=‘abc’or‘1’=‘1’;由于’1’=‘1’是恒真,则该可以看到了整表的全部数据。骗取登录一般系统的登录需要输入用户名、密码;后台拼接的语句为select*fromtwherename=‘用户名’andpwd=md5(‘密码’);Eg1:如输入用户名《abc’or1=1or1=‘def》,密码《abcd》则语句拼接为:登陆注入:在应用系统用户名栏中输入<<'/*>>在密码中输入<<*/or'1'='1>>后台sql为:select…wherename=''/*'andpwd='*/or'1'='1';此方法拼接出的sql为恒真结果,直接成功登陆;查询注入:在人事信息的“电话号码”查询条件栏中输入<<'or'1'='1‘-->>后台sql为:select…wherephone=''or'1'='1'--';此种方法sql语句的where条件恒真,将获得所有人的信息select…wherename=‘abc’or1=1or1=‘def’andpwd=md5(‘abcd’);由于1=1是恒真,则该语句永远为真,可以成功登录了。SQL注入典型场景二,探测(通过and运算)。探测系统变量…anduser>0我们知道,user是SQLServer的一个内置变量,它的值是当前连接的用户名,类型为nvarchar。拿一个nvarchar的值跟int的数0比较,系统会先试图将nvarchar的值转成int型,当然,转的过程中肯定会出错,SQLServer的出错提示是:将nvarchar转换int异常,XXXX不能转换成int。探测系统对象名先猜表名…and(Selectcount(*)from表名)<>0猜列名…and(Selectcount(列名)from表名)<>0三.数据库加密防护效果分析面临风险应对策略数据库文件采用明文存储以列为单位有选择的进行加密,将信用卡信息表中的姓...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?