数据库防火墙如何防范SQL注入行为信息技术

SQL注入是当前针对数据库安全进行外部攻击的一种常见手段。现有主流应用大多基于B/S架构开发,SQL注入的攻击方式正是利用web层和通讯层的缺陷对数据库进行外部恶意攻击。将SQL命令巧妙的插入通讯的交互过程中,如:Web表单的递交、域名输入、页面请求等。通过硬性植入的查询语句攻击数据库,以期利用服务器自身缺陷执行恶意的SQL命令,从而入侵数据库。因此通过SQL注入攻击方式产生的安全事件也在增多,对系统的危害性极大。

通过SQL注入可以远程获取并利用应用里的数据,并且获取未经hashed加密的用户秘钥以及信用卡信息,甚至有以管理员身份登陆进这些应用的可能。下面通过一组常见的SQL注入攻击方式,进行说明:

首先,我们假设数据库中有JOB表,模拟进行攻击,查询表中数据量。

然后,应用中调用恶意的攻击性url向JOB表植入SQL语句:

那么,攻击时等效的SQL语句如下:

如果SQL注入的假设错误,web页面如图一:

图一

如果SQL注入的假设成功,web界面如图二:

图二

攻击说明:如果SQL注入的假设成功,即证明了数据库中该表的表名是jobs,从而我们也就可以对该表进行增删改操作,从而对数据库安全造成极其严重的危害。

SQL注入的8种攻击行为

安全界有句名言“未知攻,焉知防”,想要预防SQL注入,需要进一步剖析SQL注入都有哪些常见攻击方式。

1.猜测数据库名,备份数据库

2.猜解字段名称

3.遍历系统的目录结构,分析结构并发现WEB虚拟目录,植入木马

4.查询当前用户的数据库权限

5.设置新的数据库帐户提权得到数据库管理员账户权限

6.利用存储过程获取操作系统管理员账户

7.客户端脚本攻击:通过正常的输入提交方式将恶意脚本提交到数据库中,当其他用户浏览此内容时就会受到恶意脚本的攻击。

8.客户端脚本攻击:通过SQL注入方式将恶意脚本提交到数据库中,直接使用SQL语法UPDATE数据库,并将注入SQL经过“HEX编码”,然后通过exec执行“动态”SQL的特性运行脚本。

综上可知,SQL注入对数据库的攻击方式日趋繁多,危害也日益严重,因此如何做好SQL注入的防护工作也就变成考量数据库安全产品的一道标杆。

SQL注入的5种防护方式

常规的SQL注入防护方式,包括以下几个方面

1.通过正则表达校验用户输入

2.通过参数化存储过程进行数据查询存取

3.参数化SQL语句

4.为数据库添加新架构

5.利用LINQtoSQL查询

针对以上SQL5种注入防护方式,可以在一定程度上避免SQL注入对数据库所带来的入侵危害,但这些操作同步会使数据库操作复杂化,在一定程度上提高了企业运维成本,同时降低数据库操作性能。因此,一种专门针对数据库防护类产品——数据库防火墙诞生,可以针对SQL注入攻击行为进行主动有效的防护。

二、数据库防火墙如何防御SQL注入

数据库防火墙作为专业的数据库安全防护工具,而针对SQL注入等数据库攻击行为的防护能力如何,是衡量一款数据库防火墙产品优略的关键要素。

目前国内数据库安全的专业厂商安华金和,自主研发推出数据库防火墙(DBFirewall)产品基于对数据库协议的精准解析,对SQL注入行为的分析更加精确,极大程度上避免了对SQL注入攻击行为的漏防与误防。

SQL注入的概念来自于Web系统,数据库防火墙在防止SQL注入时,针对已经形成且即将到达数据库的完整SQL,监测是否有非法的操作,并有效阻止针对于数据库的非法入侵行为。

图三:DBFirewallSQL注入攻击防护引擎

DBFirewall对于SQL注入行为的识别,可以分为以下三种:

1.通过发送意外数据来触发异常,利用获取数据的GET操作,变更信息的POST操作,结合数据库异常信息,从而判断注入是否发生。

例如:

’es如果以上两句的执行结果相同,则可能存在SQL注入。

2.利用应用程序试探。

如果应用程序没有对数据库服务器返回的错误信息进行处理,那么数据库的错误信息将直接反馈到前台,通过这些错误信息,不但可以识别出SQL注入的漏洞所在,甚至可能逐步探测出数据库表信息。

通过上述几种方式可以初步判断SQL注入行为的产生,但是为了提高准确性,安华金和数据库防火墙具有独特的设计流程,通过构建一条有效的SQL语句,帮助用户确认SQL注入行为:

1)SQL语句中区分数值类型和字符串类型

2)验证注入SQL代码时,是否是通过注释剩下的查询来成功结束该语句。

可以检测服务器响应来确定注入

安华金和数据库防火墙基于对SQL注入的各种攻击行为,进行有针对性的数据库防护,从而形成更加完备的防护体系。下面列举几种常见的SQL注入攻击行为做分析说明,并具体描述一下DBFirewall是如何进行防护的。

1)SQL注入识别数据库

攻击方法一:通过获取数据库异常信息,数据库版本信息的方式进行SQL注入攻击

防御方法:利用DBFW的配置错误替换规则,对常见的错误信息进行替换

攻击方法二:获取版本信息

SELECTbannerFROMv$version或

SELECTbannerFROMv$versionWHERErownum=1

防控方法:采用风险评估中的系统表控制规则,或者通过访问控制权限中,对不同的用户控制对系统表的访问权限。

2)利用UNION语句提取数据

如果应用返回第一个(原始)查询得到的数据,那么通过在第一个查询后面注入一个UNION运算符,并添加另外艺哥任意查询,便可以读取到数据库用户访问过的任何一张表。

攻击方法:多次使用各种数据类型替换null,直到系统不再报错为止,例如

如果测试成功,可以替换为:

获得系统信息

防控方法:开启DBFW的风险评估union评测,以及系统表的评测

3)利用条件语句

对于oracle来说,可以使用sleep,或者UTL_HTTP、HTTPURITYPE向一个死的IP地址发送一个HTTP请求来实现相同的效果。如果指定一个不存在监听者的IP地址,那么下列查询将一直等待连接知道超时:

防控方法:开启风险评估里的暴力破解函数。

攻击方法二:基于字符串转换

对于传入参数是字符串的,可以用char函数转化其中一个字符,根基返回的结果可以实现SQL注入。

防控方法:将char作为暴力破解函数。

4)提权行为

在Oracle中,通过Web应用的SQL注入来提升权限非常困难。大多数权限提升方法均需要PL/SQL注入,而这种注入很少见。如果找到一种PL/SQL注入漏洞,可以通过注入PL/SQL代码来提升权限或在数据库服务器上启动操作。

不需要PL/SQL注入的例子是:使用在Oracle的mod_plSQL组件中发现的一个漏洞。

防控方法:使用访问控制或者风险评估,加入用户权限控制或高危操作

除了上述几种常见的SQL注入行为之外,DBFW内置可防护的SQL注入攻击行为还包括:窃取hash口令、利用操作系统攻击等。并且可以根据:风险级别、告警通知、SQL命令、命令特征、风险函数、表达式、类型、操作人、操作等几项元素自定义SQL注入防护规则。

THE END
1.一文2000字入门性能测试!它涉及模拟真实世界中的用户行为、请求和负载,以便测量系统在不同条件下的响应时间、吞吐量、并发用户数和资源利用率等性能指标。 性能测试相关概念 并发:并发是指虚拟并发用户数,从业务角度,也可以理解为同时在线的用户数。 响应时间(Response Time,RT):响应时间是系统处理用户请求的时间。 https://blog.csdn.net/m0_60166861/article/details/144374821
2.1毫秒屏幕响应时间有什么用?华硕商城 在得物App发布了一条热门动态!快来围观,就等你啦!https://m.dewu.com/note/trend/details?id=253438965
3.如何评估中间件的性能和质量?评估中间件的标准有哪些?股票频道评估中间件的性能,首先要考虑其响应时间。响应时间是指从发送请求到收到响应所经过的时间。较短的响应时间意味着中间件能够快速处理请求,提供更流畅的服务。可以通过模拟大量并发请求来测试中间件在不同负载下的响应时间。 吞吐量也是一个关键指标。它表示单位时间内中间件能够处理的请求数量。高吞吐量意味着中间件能够https://stock.hexun.com/2024-12-06/216014901.html
4.Java通过响应时间和吞吐量mob64ca12f8a724的技术博客在processRequest方法中,我们使用System.currentTimeMillis()来记录请求处理的开始和结束时间。这将帮助我们计算每个请求的响应时间。 步骤4: 计算响应时间 我们在每次请求处理完成后,计算响应时间并将其累加到totalTime中。在所有请求处理完毕后,我们计算平均响应时间。 https://blog.51cto.com/u_16213466/12776265
5.计算机性能入门:新手必读教程响应时间:指计算机对用户操作的响应速度。例如,打开一个应用程序需要的时间,或鼠标点击后到光标移动所需的时间。 吞吐量:指计算机在单位时间内能处理的任务数量。比如每分钟可以处理多少个网页请求。 可靠性:指计算机系统在运行过程中不出错的能力。如果系统频繁崩溃或数据丢失,则可靠性较低。 资源利用率:指计算机系统https://www.imooc.com/article/372069
6.存储性能基准测试方法与工具天翼云开发者社区IOMeter:一款老牌的免费开源测试磁盘性能的工具,可以测试I/O的传输率和平均I/O响应时间。支持Unix、Linux、Windows平台。 IOZone:一个文件系统的benchmark工具,可以测试不同操作系统中文件系统的读写性能。包括Read、write、re-read、re-write、read backwards、read strided、fread、fwrite、random read、pread、mmap、https://www.ctyun.cn/developer/article/619805361881157
7.服务器最主要的三个性能参数,rpa,机器人,自动化文章还举例说明了如何根据不同的指标评估 一:Qps二:Tps三:Rt(响应时长)四:Load(系统负载)原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间。 公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS) 。 机器:峰值时间每秒QPS / 单台机器的QPS 在blog.csdn.net上https://wdlinux.cn/html/yingjian/20241205/22079.html
8.秒懂Requests响应时间获取技巧!虽然说也能很方便的获取到响应时间,但是还是要写额外的代码,其实 Requests 本身自带了计时器,每个请求都会记录请求的响应时间,话不多说,直接上代码,响应对象中,有一个elapsed属性,可以直接输出它来获取响应时间。 import requests r = requests.get("http://www.python.org") https://zhuanlan.zhihu.com/p/10999125155
9.不同类型负载对无触点稳压器响应时间的具体影响有多大不同类型负载对无触点稳压器响应时间的影响如下:阻性负载 影响较小:阻性负载的电流与电压相位基本一致,电压变化时,负载电流的变化相对较为平稳,不会产生额外的电动势或电流冲击来干扰稳压器的工作。例如,电阻炉、白炽灯等阻性负载接入无触点稳压器时,稳压器能够相对快速地对输入电压变化做出响应,调整输出电压,https://baijiahao.baidu.com/s?id=1818010065402326866&wfr=spider&for=pc
10.检测仪表知识3.分析仪表的基本的和主要的性能指标是(精度),(灵敏度)和(响应时间) 二.红外线分析器 1.所谓红外线是一种比可见光波长较长而又比微波波长较短的(电磁波),其波长约为(0.76μm)到(420μm)范围内,波长小于(2.5μm)称近红外线,波长为(2.5--25μm)为中红外线,波长大于(25μm)的称远红外线.红外线气体https://www.eepw.com.cn/article/201701/336033.htm
11.软件测试工作总结15篇总结是对某一阶段的工作、学习或思想中的经验或情况进行分析研究的书面材料,它可以帮助我们总结以往思想,发扬成绩,让我们抽出时间写写总结吧。那么你真的懂得怎么写总结吗?以下是小编为大家整理的软件测试工作总结,仅供参考,希望能够帮助到大家。 软件测试工作总结1 https://mip.wenshubang.com/gongzuozongjie/2966962.html
12.字节上岸成功,整理一波测试开发岗的基础知识,含答案功能:1.引入日志;2.函数执行时间统计;3.执行函数前预备处理;4.执行函数后清理功能;5.权限校验;6.缓存 python 装饰器@staticmethod和@classmethod区别和使用 @classmethod:类方法,类方法是给类用的,类在使用时会将类本身当做参数传给类方法的第一个参数,python为我们内置了函数classmethod来把类中的函数定义成类方法https://maimai.cn/article/detail?fid=1679089730&efid=YLyF0ejo0qEtjVB1UUE-yw
13.软件测试试题库(通用7套)5、高频集成:高频集成测试是指同步于软件开发过程,每隔一段时间对开发团队的现有代码进行一次集成测试。 6、分层集成、分布式集成、基于路径、功能、进度、风险、事件、使用等的集成等13种。 4. 恢复性测试属于软件测试的哪个阶段?并试阐述恢复性测试的概念和进行恢复性测试分析时主要应考虑的问题。 https://www.unjs.com/zuixinxiaoxi/ziliao/20170720000008_1398848.html
14.煤矿培训考试用题143、安全监控系统具有中心站手动遥控断电/复电功能,且断电/复电响应时间不大于30s。 144、瓦斯矿井必须装备煤矿安全监控系统。煤矿安全监控系统必须24h连续运行。 145、安全监控系统具有甲烷浓度超限报警和断电/复电控制功能以及数据实时存储功能。 146、采煤工作面采用串联通风时,必须在工作面进风巷道口以里10-15m处https://www.mkaq.org/html/2010/12/16/69111.shtml
15.消防知识题库防火题库(多选225题)D、响应时间指数(RTI) E、备用品数量 17、湿式系统开启末端试水装置的试水阀,(ABC)应动作。 A、报警阀 B、水流指示器 C、压力开关 D、消火栓泵 E、消防广播 18、报警阀动作后(ABCDE)。 A、水力警铃应鸣响 B、距水力警铃 3m 远处的声压级不应低于70dB https://www.safehoo.com/Item/5660537_3.aspx
16.拿offer必须掌握的SpringCloud面试题(含答案)5、什么是服务熔断和服务降级? 熔断机制是应对雪崩效应的一种微服务链路保护机制。当某个微服务不可用或者响应时间太长时,会进行服务降级,进而熔断该节点微服务的调用,快速返回“错误”的响应信息。当检测到该节点微服务调用响应正常后恢复调用链路。在SpringCloud框架里熔断机制通过Hystrix实现,Hystrix会监控微服务间调用的https://www.jianshu.com/p/eb8396ca1a44
17.热电偶与热电阻有哪些?区别是什么?如何才能正确选择和使用?4.注意环境因素:热电传感器容易受到外界环境的影响,如氧化、腐蚀、振动等,因此需要注意测量环境的温度、湿度和材料的性能稳定性等因素。 四、结论 热电偶和热电阻都是常用的温度传感器,它们的适用范围、性能稳定性、响应时间等方面有一定的区别。在选择和使用时,需要根据实际需求进行综合考虑。正确的安装和维护对于保证https://m.elecfans.com/article/2279951.html
18.浅谈N卡设置游戏延迟灰阶响应时间,影响更大的是观感,追求低拖影与低伪影的平衡。 另外就是黑白响应时间,也就是像素点在全亮与全暗之间的切换,VA的黑白响应时间普遍偏高。三星的两款VA显示器最低和平均响应时间甚至已经超过了很多TN面板,但是最长响应时间还是有点拖后腿了,体验就是黑色物体拖影会略多一些。 http://www.360doc.com/content/21/1006/00/60764982_998420756.shtml
19.测试开发:你所需要掌握了解的性能测试知识腾讯云开发者社区未达到系统瓶颈:随着并发用户数的增加,系统吞吐量会逐渐增加,此时响应时间会较快。 达到系统瓶颈:随着并发用户数的增加,系统吞吐量不再会增加,此时响应时间会开始变长。 超过系统瓶颈:随着并发用户数的增加,系统吞吐量出现下降,此时响应时间会逐渐拉长,甚至无响应。 https://cloud.tencent.com/developer/article/1850088
20.OLED屏幕的平板,到底有哪些好处?平板电脑4、屏幕响应时间快 这个很好理解,OLED屏幕的响应时间要优于绝大多数LCD屏幕。 5、动态画面显示具有优势 OLED屏幕玩游戏的时候,基本不会出现像LCD屏幕一样的残影和模糊的现象,在动态画面显示中天然比LCD更具优势。 6、屏幕厚度更薄 LCD屏幕的手机,基本都很厚,这是因为LCD本身屏幕厚,层数多。OLED不一样,屏幕可以做https://post.smzdm.com/p/agqz4857/
21.什么是一次调频二次调频?工控课堂火电机组转速不等率应为4%~5%,该技术指标不计算调频死区影响部分。该指标一般作为逻辑组态参考应用,机组 实际不等率需根据一次调频实际动作进行动态计算。 2) 调频死区: 机组参与一次调频死区应不大于|±0.033| Hz 或|±2| r/min。 3)快速性: 机组参与一次调频的响应时间应小于 3s。燃煤机组达到 75%目标负荷的https://www.shangyexinzhi.com/article/4362816.html
22.Java中GC的原理是什么大多数情况下对 Java 程序进行GC调优, 主要关注两个目标:响应速度、吞吐量 响应速度(Responsiveness)响应速度指程序或系统对一个请求的响应有多迅速。比如,用户订单查询响应时间,对响应速度要求很高的系统,较大的停顿时间是不可接受的。调优的重点是在短的时间内快速响应 https://www.chenxunyun.com/help/help_info_446.html