使用IDS技术防止SQL注入攻击

安全 数据安全
通过实施应用级IDS,企业就可以有效地保护易受攻击的数据,并且将最新的攻击和威胁拒之门外。

目前,针对应用及其后台数据库的应用级入侵已经变得越来越猖獗,如SQL注入、跨站点脚本攻击和未经授权的用户访问等。所有这些入侵都有可能绕过前台安全系统并对数据来源发起攻击。

为了对付这类威胁,新一级别的安全脱颖而出,这就是应用安全。这种安全技术将传统的网络和操作系统级入侵探测系统(IDS)概念应用于数据库(即应用)。与通常的网络或操作系统解决方案不同的是,应用IDS提供主动的、针对SQL的保护和监视,可以保护数以千计的预先包装或自行开发的Web应用。

例如,应用IDS可以监视和防护关键的数据,使那些针对数据库的攻击,如缓冲区溢出和Web应用攻击等无法对数据库造成真正的损害,而且应用IDS还可以对这些事件进行审查。

应用安全与网络和主机安全之间存在很大的区别。应用是千差万别的,但攻击的目标总是相同的,也就是入侵数据库。由于应用使用SQL与数据库进行通信,因此好的应用IDS应当能够解析SQL,并且提供一种能够理解流量的内容,且又能与应用划清界线的客观保护层。

多数应用IDS都有三个组件。第一个是基于网络或主机的传感器。网络传感器连接到交换机上的一个端口上,该端口的配置决定它可以查看到数据库内的所有流量。相比之下,主机传感器直接驻留在应用上。

传感器可以收集SQL交易并对其进行解析,然后决定是否应当针对该流量发出警报。如果有必要发出警告,警告会被传递给下一个组件,即控制台服务器。这台服务器存储事件信息,并且是策略配置和升级等传感器维护活动的中心点。

应用IDS中的第三个组件是Web浏览器,管理员可以利用它来修改IDS设置、实时监视事件并生成报告。

以SQL注入攻击为例,攻击者会试图绕过Web服务器定义的SQL语句,目的就是要注入自己的语句。假设要输入的用户名为Bob,口令为Hardtoguess。

当看到这些输入的内容后,数据库就会找到WebUsers 行中与之匹配的内容,然后该应用会对用户进行验证。为了入侵数据库,SQL注入攻击会欺骗应用,并使之相信自己已经提交了正确的证书。

例如,攻击使用的口令是‘blah’或‘A’=‘A’,因此攻击时创建的SQL语句可能会是:SELECT * FROM WebUsers WHERE Username=‘Bob’ AND Password=‘blah’ OR‘A’=‘A’。

从逻辑上来分析‘A’=‘A’永远都是TRUE,而WHERE子句也可以匹配所有的行,就这样,攻击者在根本没有正确用户名或口令的情况下也能蒙混过关,得到验证。应用服务器会接受输入的信息并且允许攻击者通过。接下来,应用服务器会通过SQL命令从数据库中请求数据。

如果有了应用IDS,传感器会收集SQL命令并对其进行解密,然后查看这些命令到底要访问数据库中的哪些表和列。利用这种方法,传感器就可以判断出到底是正常情况还是一次攻击行为。

如果发现的行为是IDS策略不允许的,传感器会判断攻击的威胁水平并采取适当的措施,通常是向管理员的控制台和/或通过电子邮件发出警告。

这只是应用层攻击的一个简单例子,而且今天的许多公司都在面临这样的威胁。通过实施应用级IDS,企业就可以有效地保护易受攻击的数据,并且将最新的攻击和威胁拒之门外。

【编辑推荐】

  1. SQL注入攻击及其防范检测技术研究
  2. 三大措施将SQL注入攻击的危害最小化
  3. SQL注入攻击的种类和防范手段
责任编辑:安泉 来源: CSDN.NET
相关推荐

2020-08-07 08:13:08

SQL攻击模式

2009-02-04 16:51:48

2013-04-26 11:26:00

2012-10-31 17:21:57

2023-03-10 19:36:47

2020-09-28 09:30:13

mybatis

2009-11-12 14:56:47

2010-10-22 15:18:18

SQL注入漏洞

2009-07-24 16:59:57

iBatis模糊查询

2011-10-19 10:47:56

2011-07-30 13:22:49

2010-09-09 08:41:34

2013-12-13 10:45:26

2011-12-30 11:04:14

2014-05-26 09:32:15

2010-09-14 16:00:16

2014-11-04 13:43:10

2019-02-22 09:00:00

2017-03-01 14:16:20

2013-01-15 10:53:36

点赞
收藏

51CTO技术栈公众号