CN104615934B - Sql注入攻击安全防护方法和系统 - Google Patents
Sql注入攻击安全防护方法和系统 Download PDFInfo
- Publication number
- CN104615934B CN104615934B CN201510059862.6A CN201510059862A CN104615934B CN 104615934 B CN104615934 B CN 104615934B CN 201510059862 A CN201510059862 A CN 201510059862A CN 104615934 B CN104615934 B CN 104615934B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- database
- waf
- data
- log
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种SQL注入攻击安全防护方法,所述方法包括:通过WAF虚拟机对接收到的SQL语句查询请求进行安全检测;将通过安全检测的SQL语句查询请求传输到数据库虚拟机,并根据所述SQL语句查询请求对所述数据库虚拟机上运行的数据库进行操作;其中,所述WAF虚拟机上运行WAF,和所述数据库虚拟机是同一计算节点上的不同虚拟机。采用该方法,既能保证安全性又能提高WAF和数据库之间的通信效率。此外,还提供了一种SQL注入攻击安全防护系统。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种SQL注入攻击安全防护方法和系统。
背景技术
SQL注入攻击会严重影响Web的安全和正常运行,SQL注入攻击是一种数据库攻击手段,攻击者通过SQL注入攻击,可以达到诸如网站挂马、网页篡改、信息盗取和渗透内网等非法目的。
针对SQL注入攻击,存在专用的SQL注入攻击防火墙(Web Application Firewall,简称WAF),可以在SQL语句查询请求到达真正的数据库系统之前对其进行分析、检测和过滤,以达到保护数据库中的用户数据不被窃取的目的。相比在前端应用中加入对用户的输入字符进行静态检测的方法,专用的SQL注入攻击防火墙不仅减轻了前端应用开发人员的工作负担,也可以提供过滤规则统一管理和升级,形成一套专业及可维护的SQL注入攻击安全防范策略,例如:自动SQL语句学习等。
传统的SQL注入攻击安全防护方法中,通常是将数据库系统和WAF独立安装在两个计算节点上,这样具有较好的安全性,但是由于网络传输速率的限制,该方案不能给前端应用提供足够的数据库性能支持,而且对硬件的开销很大。另一方面,若把数据库系统和WAF安装在同一个计算节点中,理论上WAF和数据库之间的交换性能可以达到进程通信级别,但是该方案不能保障数据库的安全性,一旦WAF被攻破,数据库则被完全暴露给黑客。
发明内容
基于此,有必要针对上述技术问题,提供一种既能保证安全性又能提高WAF和数据库之间的通信效率的SQL注入攻击安全防护方法和系统。
一种SQL注入攻击安全防护方法,所述方法包括:
通过WAF虚拟机对接收到的SQL语句查询请求进行安全检测;
将通过安全检测的SQL语句查询请求传输到数据库虚拟机,并根据所述SQL语句查询请求对所述数据库虚拟机上运行的数据库进行操作;
其中,所述WAF虚拟机上运行WAF,和所述数据库虚拟机是同一计算节点上的不同虚拟机。
一种SQL注入攻击安全防护系统,所述系统包括:
WAF虚拟机,用于通过WAF对接收到的SQL语句查询请求进行安全检测;
数据库虚拟机,用于运行数据库;
所述WAF虚拟机还用于将通过安全检测的SQL语句查询请求传输到所述数据库虚拟机,并根据所述SQL语句查询请求对所述数据库虚拟机上运行的数据库进行操作;
其中,所述WAF虚拟机和所述数据库虚拟机是同一计算节点上的不同虚拟机。
上述SQL注入攻击安全防护方法和系统,通过WAF对接收到的SQL语句查询请求进行安全检测,将通过安全检测的SQL语句查询请求传输到数据库,并根据该查询请求对数据库进行操作,虽然WAF和数据库位于同一个计算机节点上,但由于WAF和数据库运行在不同虚拟机中,虚拟机之间的隔离性能保证较好的安全性,而虚拟机之间的通信相对于两个计算机节点之间的通信也快很多。因此,该方法和系统既能保证安全性又能提高WAF和数据库之间的通信效率。
附图说明
图1为一个实施例中SQL注入攻击安全防护方法的流程图;
图2为一个实施例中WAF虚拟机与数据库虚拟机进行通信的流程图;
图3为一个实施例中WAF虚拟机和数据库虚拟机进行通信的架构图;
图4为一个实施例中为数据库虚拟机分配磁盘空间的流程图;
图5为一个实施例中针对数据库虚拟机进行磁盘优化的架构图;
图6为一个实施例中SQL注入攻击安全防护系统的结构框图;
图7为另一个实施例中SQL注入攻击安装防护系统的结构框图;
图8为一个实施例中针对数据库虚拟机进行磁盘优化的架构图;
图9为一个实施例中计算节点的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,在一个实施例中,提供了一种SQL注入攻击安全防护方法,该方法包括:
步骤102,通过WAF虚拟机对接收到的SQL语句查询请求进行安全检测。
WAF虚拟机是指运行WAF的虚拟机,预先在计算节点上部署多个虚拟机,其中一个虚拟机用来运行WAF。所谓虚拟机,是指通过软件模拟的具有完整硬件系统功能,运行在一个完全隔离环境中的完整计算机系统。
本实施例中,WAF虚拟机可采用传统的过滤算法对SQL语句查询请求进行过滤,通过安全检测的SQL语句查询请求认为是安全的,可用来对数据库进行操作。
步骤104,将通过安全检测的SQL语句查询请求传输到数据库虚拟机,并根据该SQL语句查询请求对数据库虚拟机上运行的数据库进行操作。
数据库虚拟机是运行数据库的虚拟机,在一个计算节点上可部署多个数据库虚拟机。WAF虚拟机可通过虚拟机之间的通信和数据传输方法将SQL语句查询请求传输到数据库虚拟机。比如,可采用传统的虚拟机网络的方式。在一个优选的实施例中,还可采用基于QEMU虚拟设备的域间数据传输系统来实现WAF虚拟机和数据库虚拟机之间的通信,该系统采用域间共享内存的方法进行,支持域间双向数据传输。进一步的,根据SQL语句查询请求对数据库虚拟机上运行的数据库进行的操作,包括读操作和写操作等。
本实施例中,WAF虚拟机和数据库虚拟机是同一计算节点上的不同虚拟机。本实施例中,在同一个计算节点上配置至少两个虚拟机,其中一个虚拟机运行WAF,另至少一个虚拟机运行数据库。运行WAF的虚拟机称之为WAF虚拟机,运行数据库的虚拟机称之为数据库虚拟机,计算节点接收到SQL语句查询请求时,通过WAF虚拟机上运行的WAF对接收到的SQL语句查询请求进行安全检测,过滤掉不安全的请求,将通过安全检测的SQL语句查询请求传输到数据库虚拟机,根据SQL语句查询请求对数据库虚拟机上运行的数据库进行操作,例如读取数据库中的数据或者向数据库写入数据等。由于WAF和数据库分别运行在同一个计算节点中的不同虚拟机上,虚拟机之间的隔离性保证了较好的安全性,而虚拟机之间的通信相对于不同计算节点之间的通信更快,因此该方法既能保证安全性又能提高WAF和数据库之间的通信效率。
在一个实施例中,WAF虚拟机与数据库虚拟机之间通过QEMU虚拟设备提供的通信通道进行数据通信。
本实施例中,基于QEMU(一套以GPL许可证分发源码的模拟处理器)虚拟设备可建立一个域间数据传输系统,采用域间共享内存的方式,支持域间双向数据传输。QEMU虚拟设备可挂载在虚拟PCI(Peripheral Component Interconnect,外设部件互联标准)总线上,为WAF虚拟机和数据库虚拟机提供一套设备抽象接口用于数据通信,这些设备抽象接口提供WAF虚拟机和数据库虚拟机之间的通信通道,包括控制通道和数据通道,其中控制通道用来进行控制信号的传输,数据通道用来进行数据的传输。
具体的,在一个实施例中,WAF虚拟机与数据库虚拟机之间通过QEMU虚拟机提供的通信通道进行数据通信的步骤包括:WAF虚拟机或数据库虚拟机作为发送端虚拟机通过通信通道向主机传递数据请求,其中数据请求中携带接收数据请求的接收端虚拟机的标识;主机通过通信通道,根据接收端虚拟机的标识将数据请求传递到接收端虚拟机。其中,接收端虚拟机是WAF虚拟机或数据库虚拟机中作为接收端的虚拟机。
主机相对于虚拟机而言,可以是host(主机或宿主,在多机系统中起主要作用和控制作用的计算机系统)或VMM(Virtual Machine Monitor,虚拟机管理器)。在主机中设置虚拟机管理程序,实现WAF虚拟机和数据库虚拟机之间的数据交互。本实施例中,WAF虚拟机和数据库虚拟机之间的数据通信需通过主机,因此,QEMU虚拟设备提供的通信通道包括WAF虚拟机与主机之间的通信通道以及主机与数据库虚拟机之间的通信通道。WAF虚拟机可以向数据库虚拟机发送数据请求,则WAF虚拟机作为发送端虚拟机,而数据库虚拟机作为接收端虚拟机。数据库虚拟机也可向WAF虚拟机发送数据请求,则数据库虚拟机作为发送端虚拟机,而WAF虚拟机作为接收端虚拟机。其中,数据请求包括写数据请求和读数据请求。
图2示出了一个实施例中WAF虚拟机与数据库虚拟机之间进行通信的流程,该流程以发送端虚拟机向接收端虚拟机发送待发送数据为例进行说明,其中发送端虚拟机可为WAF虚拟机和数据库虚拟机中的任一虚拟机,而接收端虚拟机为两者中的另一种虚拟机。具体流程如下:
步骤202,发送端虚拟机将待发送数据通过数据通道提交给主机,由主机将待发送数据写入到共享内存中。
本实施例中,发送端虚拟机中的应用程序将待发送数据提交给驱动层,由驱动层将待发送数据通过发送端虚拟机与主机之间的数据通道传输到主机,主机中预先设有共享内存,主机通过虚拟机管理程序接收待发送数据,并将待发送数据写入到共享内存中。
步骤204,发送端虚拟机通过控制通道将控制信号发送到主机,控制信号包含接收端虚拟机的标识。
本实施例中,发送端虚拟机中的应用程序根据数据请求生成控制信号,控制信号中包含接收端虚拟机的标识,将控制信号提交给驱动层,由驱动层将控制信号通过发送端虚拟机与主机之间的控制通道发送给主机。
步骤206,主机接收控制信号,根据接收端虚拟机的标识将控制信号通过控制通道发送到接收端虚拟机。
本实施例中,主机中的虚拟机管理程序通过主机与接收端虚拟机之间的控制通道,根据接收端虚拟机的标识将控制信号传输到对应的接收端虚拟机。
步骤208,接收端虚拟机接收控制信号,通过数据通道从共享内存中取出待发送数据,将待发送数据提交到相应的应用程序。
本实施例中,接收端虚拟机接收到控制信号,由驱动层通过主机与接收端虚拟机之间的数据通道,从主机中的共享内存中取出待发送数据,再将待发送数据提交到相应的应用程序,由应用程序对待发送数据进行处理。
本实施例中,通过QEMU虚拟设备提供的域间传输系统实现WAF虚拟机和数据库虚拟机之间的数据通信,采用域间共享内存的方式,可以支持虚拟机之间的双向数据传输以及一对多的域间双向通信。此外,这种数据通信方式绕过了虚拟机特有的冗余网络协议栈,相对于虚拟网络传输方式,提高了数据传输效率。由于网络传输方式本身容易受到攻击,因此这种虚拟机之间的数据通信方式还进一步提高了安全性。
可以理解的是,WAF虚拟机既可以向数据库虚拟机传输数据,实现对数据库的写操作,数据库虚拟机也可以向WAF虚拟机传递数据,实现数据库的读操作。对数据库的写操作具体可参见图2所示流程。对数据库的读操作的实现,可先由WAF虚拟机向数据库虚拟机发送数据请求,在数据库虚拟机接收到数据请求后再将待发送数据通过数据通道传递到主机并写入到共享内存,生成控制信号通过控制通道传输到主机,WAF虚拟机在接收到控制信号后从共享内存中取出,具体流程也参见图2所示流程,在此则不在赘述。
为进一步说明域间传输系统的原理,如图3所示,域间传输系统包含三个层次:应用层、驱动层和虚拟设备层。其中,应用层上是使用域间传输系统进行虚拟机域间通信的应用程序;驱动层为控制通道和数据通道提供驱动程序,并向上为应用层提供数据通信接口;虚拟设备层位于系统底层,负责管理虚拟机通信接口,为虚拟机提供数据通道和控制通道,并提供让虚拟机进行临时数据存放的共享内存。
具体的,如图3所示,发送端虚拟机和接收端虚拟机在应用层都运行有应用程序,负责获取数据请求、待发送数据以及对接收到的数据进行处理等。发送端虚拟机和接收端虚拟机在驱动层设有驱动程序,包含控制请求程序和数据发送/接收程序。主机在虚拟设备层设有虚拟机管理程序,包含预设的共享内存,控制请求程序通过控制通道与虚拟机管理程序进行通信,数据发送/接收程序通过数据通道写入数据到共享内存或从共享内存取出数据。
结合图3,发送端虚拟机和接收端虚拟机之间的数据传输过程具体为:发送端虚拟机的应用程序将待发送数据和接收端虚拟机的标识提交给驱动程序;驱动程序中的数据发送程序将待发送数据通过数据通道提交给主机上的虚拟机管理程序,由虚拟机管理程序将待发送数据写入到共享内存中;驱动程序中的控制请求程序向虚拟机管理程序发送一个控制信号,该控制信号中包含接收端虚拟机的标识;虚拟机管理程序接收到控制信号,根据接收端虚拟机的标识将控制信号通过控制通道转发给相应的接收端虚拟机;接收端虚拟机的驱动程序中的控制请求程序接收到控制信号,唤醒数据接收程序,由数据接收程序通过数据通道到共享内存中将待发送数据取出;接收端虚拟机的驱动程序将接收到的待发送数据交给应用程序进行处理。至此,一次数据传输过程结束。虚拟机在没有接收到主机发送来的停止传输的控制命令之前,数据的传输过程将一直进行下去。若在某一时刻,虚拟机收到主机发送来的停止传输的控制命令,则将终止数据传输并拆除虚拟机与主机之间的连接。
由于一台计算节点上可能存在多个数据库虚拟机,而每一个虚拟机都有自身独立的镜像文件,对这些镜像文件同时进行写操作时,容易产生随机I/O,从而造成存储性能下降。本发明实施例提供的SQL注入攻击安全防护方法,能够实现磁盘性能优化。
如图4所示,在一个实施例中,上述SQL注入攻击安全防护方法还包括:
步骤402,在新建数据库虚拟机时,将数据库虚拟机的日志磁盘请求信息写入到预设的共享内存区域中。
本实施例中,日志磁盘请求信息是指需要为新建的数据库虚拟机的镜像文件申请的磁盘空间信息,比如磁盘空间大小。虚拟机管理程序中设有虚拟机日志管理程序,虚拟机日志管理程序中设有预设的共享内存区域,用来存放数据库虚拟机的日志磁盘请求信息,数据库虚拟机创建后发出一个日志添加请求给虚拟机日志管理程序,该日志添加请求的数据结构中包含日志磁盘请求信息。虚拟机日志管理程序在共享内存区域中写入日志添加请求的数据结构。
步骤404,从共享内存区域中获取数据库虚拟机的日志磁盘请求信息。
本实施例中,虚拟机日志管理程序从共享内存区域中取出日志添加请求的数据结构,进行解析后得到日志磁盘请求信息。
步骤406,查询数据库虚拟机对应是否已分配磁盘空间,若是,则进入步骤408,否则进入步骤410。
步骤408,直接返回已分配的日志磁盘信息。
本实施例中,如果数据库虚拟机之前已分配了磁盘空间,则预先存储了该数据库虚拟机的标识和对应的日志磁盘信息,虚拟机日志管理程序则可以根据数据库虚拟机的标识查询到对应的日志磁盘信息,获取已分配的磁盘空间的日志磁盘信息。日志磁盘信息为数据库虚拟机的日志存放的磁盘空间信息,比如磁盘空间大小、磁盘空间起始位置等。
步骤410,根据日志磁盘请求信息为数据库虚拟机的日志分配磁盘空间,并获取分配的日志磁盘信息。
本实施例中,如果虚拟机日志管理程序查询不到与数据库虚拟机的标识对应的日志磁盘信息,则表明该数据库虚拟机还未对其日志分配相应的磁盘空间,需为该数据库虚拟机分配磁盘空间。其中,为数据库虚拟机分配的磁盘空间与上一次为数据库虚拟机分配的磁盘空间是连续的磁盘空间。
也就是说,在一个物理机器上存在多个数据库虚拟机的情况下,为数据库虚拟机分配的磁盘空间是连续分配的,即各个数据库虚拟机的日志在磁盘上呈连续分配。相对于传统的数据库虚拟机的日志在物理磁盘上成离散分布的方式,该方法将原来分散的数据库日志区域集中起来,在对这些日志进行读写操作时,减少了磁盘磁头的寻道时间,从而提高了磁盘的I/O效率,实现了磁盘性能优化。
步骤412,将日志磁盘信息传入数据库虚拟机,利用日志磁盘信息将分配的磁盘空间连接至数据库虚拟机。
本实施例中,虚拟机日志管理程序将日志磁盘信息传入数据库虚拟机,这里的日志磁盘信息是已为数据库虚拟机分配的日志磁盘信息,也就是数据库虚拟机的日志存放的磁盘空间信息,比如磁盘空间大小、磁盘空间起始位置等。数据库虚拟机建立起数据库虚拟机的标识与日志磁盘信息的对应关系,从而将分配的磁盘空间连接至数据库虚拟机。
进一步的,在一个实施例中,该方法还包括:获取数据库虚拟机发送的日志读写请求,获取与数据库虚拟机对应的日志磁盘信息,根据日志磁盘信息在对应的磁盘空间中执行日志读写请求。
本实施例中,虚拟机日志管理程序获取日志读写请求,该日志读写请求中包含对应的数据库虚拟机的标识,根据数据库虚拟机的标识查找到对应的日志磁盘信息,从而得到数据库虚拟机的日志的存放位置,在该对应的磁盘空间中执行日志读写请求,实现对相应日志的读写。由于数据库虚拟机的日志在磁盘上都是呈连续分布的,因此能够提高日志读写效率。
为进一步说明磁盘优化原理,如图5所示,是针对数据库虚拟机进行磁盘优化的架构图。虚拟机管理程序中设有虚拟机日志管理程序,虚拟机日志管理程序为每一台数据库虚拟机添加预设的虚拟日志块设备驱动,该驱动使得虚拟机日志管理程序能接收数据库日志读写请求,对相应的磁盘空间执行日志读写请求。
具体的,数据库虚拟机中的日志添加模块在新建数据库虚拟机时,发起数据库日志添加请求,对虚拟机日志管理程序中的共享内存区域进行写操作,写入日志添加请求的数据结构,该数据结构中包含数据库虚拟机的日志磁盘请求信息。虚拟机日志管理程序中的日志添加请求通信模块从共享内存区域中取出日志添加请求的数据结构,进行解析,得到数据库虚拟机的日志磁盘请求信息。日志管理模块判断是否能够查询到与数据库虚拟机的标识对应的日志磁盘信息,如果查询到,则通过信息反馈通信模块向数据库虚拟机返回查询到的日志磁盘信息。如果没有查询到,则日志磁盘创建模块根据日志磁盘请求信息为数据库虚拟机分配磁盘空间,获得分配的日志磁盘信息,再通过信息反馈通信模块向数据库虚拟机返回分配的日志磁盘信息。数据库虚拟机的日志插入模块将日志磁盘信息与数据库虚拟机的标识对应起来,从而将日志磁盘信息连接到对应的数据库虚拟机。
如图6所示,在一个实施例中,还提供了一种SQL注入攻击安全防护系统,该系统包括:
WAF虚拟机602,用于通过WAF对接收到的SQL语句查询请求进行安全检测。
数据库虚拟机604,用于运行数据库。
所述WAF虚拟机602还用于将通过安全检测的SQL语句查询请求传输到数据库虚拟机604,并根据SQL语句查询请求对数据库虚拟机604上运行的数据库进行操作。其中,WAF虚拟机602和数据库虚拟机604是同一计算节点上的不同虚拟机。
本实施例中,WAF虚拟机602可采用传统的过滤算法对SQL语句查询请求进行过滤,通过安全检测的SQL语句查询请求认为是安全的,可用来对数据库进行操作。另外,数据库虚拟机604有至少一台。WAF虚拟机602可通过虚拟机之间的通信和数据传输方法将SQL语句查询请求传输到数据库虚拟机604。比如,可采用传统的虚拟机网络的方式。
在一个优选的实施例中,WAF虚拟机602和数据库虚拟机604之间通过QEMU虚拟设备提供的通信通道进行数据通信。
本实施例中,基于QEMU虚拟设备可建立一个域间数据传输系统,采用域间共享内存的方式,支持域间双向数据传输。QEMU虚拟设备可挂载在虚拟PCI总线上,为WAF虚拟机和数据库虚拟机提供一套设备抽象接口用于数据通信,这些设备抽象接口提供WAF虚拟机和数据库虚拟机之间的通信通道,包括控制通道和数据通道,其中控制通道用来进行控制信号的传输,数据通道用来进行数据的传输。
在一个实施例中,WAF虚拟机或数据库虚拟机作为发送端虚拟机702还用于通过通信通道虚拟机管理模块703传递数据请求,所述数据请求携带接收数据请求的接收端虚拟机的标识。其中,接收端虚拟机704是WAF虚拟机或数据库虚拟机中作为接收端的虚拟机。
如图7所示,该系统还包括:第一虚拟机管理模块703,用于通过通信通道,根据接收端虚拟机的标识将所述数据请求发送到接收端虚拟机704。
第一虚拟机管理模块703位于主机中,主机相对于虚拟机而言,可以是host或VMM。可以理解的是,WAF虚拟机可以向数据库虚拟机发送数据请求,则WAF虚拟机作为发送端虚拟机,而数据库虚拟机作为接收端虚拟机。数据库虚拟机也可向WAF虚拟机发送数据请求,则数据库虚拟机作为发送端虚拟机,而WAF虚拟机作为接收端虚拟机。其中,数据请求包括写数据请求和读数据请求。
在一个实施例中,WAF虚拟机或数据库虚拟机作为发送端虚拟机702用于将待发送数据通过数据通道提交给第一虚拟机管理模块703,由第一虚拟机管理模块703将待发送数据写入到共享内存中;还用于通过控制通道将控制信号发送到第一虚拟机管理模块703,控制信号包括接收端虚拟机的标识。
进一步的,第一虚拟机管理模块703还用于接收控制信号,根据接收端虚拟机的标识将控制信号通过控制通道发送到接收端虚拟机704。
WAF虚拟机或数据库虚拟机作为接收端虚拟机704还用于接收所述控制信号,通过数据通道从共享内存中取出待发送数据,将待发送数据提交到相应的应用程序。
应当说明的是,发送端虚拟机702可为WAF虚拟机和数据库虚拟机中的任一虚拟机,而接收端虚拟机704为两者中的另一种虚拟机。
在一个实施例中,数据库虚拟机604还用于在新建数据库虚拟机时,将所述数据库虚拟机的日志磁盘请求信息写入到预设的共享内存区域中。。
如图8所示,该系统还包括:第二虚拟机管理模块605,用于从共享内存区域中获取数据库虚拟机的日志磁盘请求信息,查询所述数据库虚拟机604对应是否已分配磁盘空间,若是,则直接返回已分配的日志磁盘信息,若没有,则根据日志磁盘请求信息为所述数据库虚拟机604分配磁盘空间,并获取分配的日志磁盘信息;将所述日志磁盘信息传入数据库虚拟机604,利用日志磁盘信息将分配的磁盘空间连接至数据库虚拟机604。其中,第二虚拟机管理模块605为数据库虚拟机分配的磁盘空间与上一次为数据库虚拟机分配的磁盘空间是连续的磁盘空间。
本实施例中,如果数据库虚拟机之前已分配了磁盘空间,则预先存储了该数据库虚拟机的标识和对应的日志磁盘信息,第二虚拟机管理模块605则可以根据数据库虚拟机的标识查询到对应的日志磁盘信息,获取已分配的磁盘空间的日志磁盘信息。日志磁盘信息为数据库虚拟机的日志存放的磁盘空间信息,比如磁盘空间大小、磁盘空间起始位置等。如果第二虚拟机管理模块605查询不到与数据库虚拟机的标识对应的日志磁盘信息,则表明该数据库虚拟机604还未对其日志分配相应的磁盘空间,需为该数据库虚拟机分配磁盘空间。其中,为数据库虚拟机分配的磁盘空间与上一次为数据库虚拟机分配的磁盘空间是连续的磁盘空间。也就是说,在一个物理机器上存在多个数据库虚拟机的情况下,为数据库虚拟机分配的磁盘空间是连续分配的,即各个数据库虚拟机的日志在磁盘上呈连续分配。相对于传统的数据库虚拟机的日志在物理磁盘上成离散分布的方式,该方法将原来分散的数据库日志区域集中起来,在对这些日志进行读写操作时,减少了磁盘磁头的寻道时间,从而提高了磁盘的I/O效率,实现了磁盘性能优化。
结合图5所示,数据库虚拟机604还可包括数据库日志读写请求模块、日志添加模块和日志动态插入模块,第二虚拟机管理模块605可包括虚拟机日志块设备驱动、日志添加请求通信模块、日志管理模块、日志磁盘创建模块和信息反馈通信模块,具体功能如上所述,在此不再赘述。
在一个实施例中,第二虚拟机管理模块605还用于获取数据库虚拟机发送的日志读写请求,获取与数据库虚拟机604对应的日志磁盘信息,根据日志磁盘信息在对应的磁盘空间中执行所述日志读写请求。
在一个实施例中,还提供了一种计算节点,该计算节点包括通过系统总线连接的处理器、存储介质、内存和网络接口。其中,计算节点的存储介质存储有一种SQL注入攻击安全防护系统,该SQL注入攻击安全防护系统用于实现一种SQL注入攻击安全防护方法。计算节点的处理器用于为SQL注入攻击安全防护系统提供支持,内存用于为SQL注入攻击安全防护系统的运行提供环境,包括暂存待发送数据、日志磁盘请求信息等;计算节点的网络接口用于接收终端发送的SQL语句查询请求,并与其它计算节点建立网络连接与其通信。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (16)
1.一种SQL注入攻击安全防护方法,所述方法包括:
计算节点接收到SQL语句查询请求时,通过WAF虚拟机对接收到的SQL语句查询请求进行安全检测,以过滤存在安全隐患的SQL语句查询请求;所述WAF虚拟机为运行WAF的虚拟机;
将通过安全检测的SQL语句查询请求从所述WAF虚拟机经由QEMU虚拟设备提供的通信通道传输到数据库虚拟机,并根据所述SQL语句查询请求对所述数据库虚拟机上运行的数据库进行操作;
其中,所述WAF虚拟机上运行WAF,和所述数据库虚拟机是同一计算节点上的不同虚拟机;预先在计算节点上部署多个虚拟机,其中一个虚拟机用来运行WAF;所述数据库虚拟机是运行数据库的虚拟机,在一个计算节点上能够部署多个数据库虚拟机。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述WAF虚拟机与数据库虚拟机之间通过QEMU虚拟设备提供的通信通道进行数据通信。
3.根据权利要求2所述的方法,其特征在于,所述WAF虚拟机与所述数据库虚拟机之间通过QEMU虚拟机提供的通信通道进行数据通信的步骤包括:
所述WAF虚拟机或数据库虚拟机作为发送端虚拟机通过所述通信通道向主机传递数据请求,所述数据请求携带接收所述数据请求的接收端虚拟机的标识;
所述主机通过所述通信通道,根据所述接收端虚拟机的标识将所述数据请求传递到所述接收端虚拟机;
其中,所述接收端虚拟机是所述WAF虚拟机或数据库虚拟机中作为接收端的虚拟机。
4.根据权利要求3所述的方法,其特征在于,所述发送端虚拟机通过所述通信通道向主机传递数据请求的步骤包括:
所述发送端虚拟机将待发送数据通过数据通道提交给主机,由主机将所述待发送数据写入到共享内存中;
所述发送端虚拟机通过控制通道将控制信号发送到主机,所述控制信号包含所述接收端虚拟机的标识。
5.根据权利要求4所述的方法,其特征在于,所述主机通过所述通信通道,根据所述接收端虚拟机的标识将所述数据请求传递到所述接收端虚拟机的步骤包括:
所述主机接收所述控制信号,根据所述接收端虚拟机的标识将所述控制信号通过控制通道发送到所述接收端虚拟机;
所述接收端虚拟机接收所述控制信号,通过数据通道从所述共享内存中取出所述待发送数据,将所述待发送数据提交到相应的应用程序。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在新建数据库虚拟机时,将所述数据库虚拟机的日志磁盘请求信息写入到预设的共享内存区域中;
从所述共享内存区域中获取所述数据库虚拟机的日志磁盘请求信息;
查询所述数据库虚拟机对应是否已分配磁盘空间,若是,则直接返回已分配的日志磁盘信息,若没有,则根据所述日志磁盘请求信息为所述数据库虚拟机分配磁盘空间,并获取分配的日志磁盘信息;
将所述日志磁盘信息传入所述数据库虚拟机,利用所述日志磁盘信息将分配的磁盘空间连接至所述数据库虚拟机;
其中,为所述数据库虚拟机分配的磁盘空间与上一次为数据库虚拟机分配的磁盘空间是连续的磁盘空间。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取数据库虚拟机发送的日志读写请求,获取与所述数据库虚拟机对应的日志磁盘信息,根据所述日志磁盘信息在对应的磁盘空间中执行所述日志读写请求。
8.一种SQL注入攻击安全防护系统,其特征在于,所述系统包括:
WAF虚拟机,用于在计算节点接收到SQL语句查询请求时,通过WAF对接收到的SQL语句查询请求进行安全检测,以过滤存在安全隐患的SQL语句查询请求;所述WAF虚拟机为运行WAF的虚拟机;
数据库虚拟机,用于运行数据库;
所述WAF虚拟机还用于将通过安全检测的SQL语句查询请求从所述WAF虚拟机经由QEMU虚拟设备提供的通信通道传输到数据库虚拟机,并根据所述SQL语句查询请求对所述数据库虚拟机上运行的数据库进行操作;
其中,所述WAF虚拟机和所述数据库虚拟机是同一计算节点上的不同虚拟机;预先在计算节点上部署多个虚拟机,其中一个虚拟机用来运行WAF;在一个计算节点上能够部署多个数据库虚拟机。
9.根据权利要求8所述的系统,其特征在于,所述WAF虚拟机和所述数据库虚拟机之间通过QEMU虚拟设备提供的通信通道进行数据通信。
10.根据权利要求9所述的系统,其特征在于,所述WAF虚拟机或数据库虚拟机作为发送端虚拟机还用于通过所述通信通道传递数据请求,所述数据请求携带接收所述数据请求的接收端虚拟机的标识;
所述系统还包括:
第一虚拟机管理模块,用于通过所述通信通道,根据所述接收端虚拟机的标识将所述数据请求发送到接收端虚拟机;
其中,所述接收端虚拟机是所述WAF虚拟机或数据库虚拟机中作为接收端的虚拟机。
11.根据权利要求10所述的系统,其特征在于,所述WAF虚拟机或数据库虚拟机作为发送端虚拟机用于将待发送数据通过数据通道提交给所述第一虚拟机管理模块,由所述第一虚拟机管理模块将所述待发送数据写入到共享内存中;还用于通过控制通道将控制信号发送到所述第一虚拟机管理模块,所述控制信号包括所述接收端虚拟机的标识。
12.根据权利要求11所述的系统,其特征在于,所述第一虚拟机管理模块还用于接收所述控制信号,根据接收端虚拟机的标识将所述控制信号通过控制通道发送到接收端虚拟机;
所述WAF虚拟机或数据库虚拟机作为接收端虚拟机还用于接收所述控制信号,通过数据通道从所述共享内存中取出所述待发送数据,将所述待发送数据提交到相应的应用程序。
13.根据权利要求8所述的系统,其特征在于,所述数据库虚拟机还用于在新建数据库虚拟机时,将所述数据库虚拟机的日志磁盘请求信息写入到预设的共享内存区域中;
所述系统还包括:
第二虚拟机管理模块,用于从所述共享内存区域中获取所述数据库虚拟机的日志磁盘请求信息,查询所述数据库虚拟机对应是否已分配磁盘空间,若是,则直接返回已分配的日志磁盘信息,若没有,则根据日志磁盘请求信息为所述数据库虚拟机分配磁盘空间,并获取分配的日志磁盘信息;将所述日志磁盘信息传入所述数据库虚拟机,利用所述日志磁盘信息将分配的磁盘空间连接至所述数据库虚拟机;
其中,为所述数据库虚拟机分配的磁盘空间与上一次为数据库虚拟机分配的磁盘空间是连续的磁盘空间。
14.根据权利要求13所述的系统,其特征在于,所述第二虚拟机管理模块还用于获取数据库虚拟机发送的日志读写请求,获取与所述数据库虚拟机对应的日志磁盘信息,根据所述日志磁盘信息在对应的磁盘空间中执行所述日志读写请求。
15.一种存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时可实现如权利要求1至7中任一项所述的SQL注入攻击安全防护方法。
16.一种计算节点,包括存储介质,处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至7中任一项所述的SQL注入攻击安全防护方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510059862.6A CN104615934B (zh) | 2015-02-03 | 2015-02-03 | Sql注入攻击安全防护方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510059862.6A CN104615934B (zh) | 2015-02-03 | 2015-02-03 | Sql注入攻击安全防护方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104615934A CN104615934A (zh) | 2015-05-13 |
CN104615934B true CN104615934B (zh) | 2020-06-16 |
Family
ID=53150373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510059862.6A Active CN104615934B (zh) | 2015-02-03 | 2015-02-03 | Sql注入攻击安全防护方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104615934B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107205007A (zh) * | 2016-03-18 | 2017-09-26 | 上海有云信息技术有限公司 | 一种云环境下Web防火墙透明模式数据流传输方法 |
CN107294969A (zh) * | 2017-06-22 | 2017-10-24 | 电子科技大学 | 一种基于sdn的sql注入攻击检测方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014132009A1 (fr) * | 2013-03-01 | 2014-09-04 | Orange | Procede de detection d'attaques de machines virtuelles |
CN104298918A (zh) * | 2014-09-12 | 2015-01-21 | 北京云巢动脉科技有限公司 | 一种在虚拟机中基于数据块的病毒扫描方法和系统 |
US9165140B2 (en) * | 2008-04-05 | 2015-10-20 | Trend Micro Incorporated | System and method for intelligent coordination of host and guest intrusion prevention in virtualized environment |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800730B (zh) * | 2009-02-09 | 2013-02-27 | 国际商业机器公司 | 安全增强的虚拟机通信方法和虚拟机系统 |
CN101630270B (zh) * | 2009-07-22 | 2013-06-26 | 成都市华为赛门铁克科技有限公司 | 数据处理系统和方法 |
FR2977050A1 (fr) * | 2011-06-24 | 2012-12-28 | France Telecom | Procede de detection d'attaques et de protection |
CN102521114B (zh) * | 2011-11-30 | 2014-08-27 | 华中科技大学 | 一种虚拟化环境下的文件系统日志存储系统 |
TWI474213B (zh) * | 2013-01-09 | 2015-02-21 | Hope Bay Technologies Inc | 具攻擊防護機制的雲端系統及其防護方法 |
CN103559075B (zh) * | 2013-10-30 | 2016-10-05 | 华为技术有限公司 | 一种数据传输方法、装置和系统及内存装置 |
CN103810429A (zh) * | 2014-02-28 | 2014-05-21 | 成都长天信息技术有限公司 | 基于桌面云虚拟化技术的电脑病毒查杀方法 |
-
2015
- 2015-02-03 CN CN201510059862.6A patent/CN104615934B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9165140B2 (en) * | 2008-04-05 | 2015-10-20 | Trend Micro Incorporated | System and method for intelligent coordination of host and guest intrusion prevention in virtualized environment |
WO2014132009A1 (fr) * | 2013-03-01 | 2014-09-04 | Orange | Procede de detection d'attaques de machines virtuelles |
CN104298918A (zh) * | 2014-09-12 | 2015-01-21 | 北京云巢动脉科技有限公司 | 一种在虚拟机中基于数据块的病毒扫描方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104615934A (zh) | 2015-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11321452B2 (en) | Execution environment virtualization method and apparatus and virtual execution environment access method and apparatus | |
US9906538B2 (en) | Automatic network attack detection and remediation using information collected by honeypots | |
KR101289581B1 (ko) | 데이터 저장 장치에 대한 원격 서버로부터의 안전한 스캔을 위한 방법 및 장치 | |
KR101535502B1 (ko) | 보안 내재형 가상 네트워크 제어 시스템 및 방법 | |
US8650567B2 (en) | Virtual machine monitoring method, system and computer readable storage medium | |
CN104471537A (zh) | 中介虚拟机任务管理 | |
CN106063218A (zh) | 虚拟化系统中加解密的方法、装置和系统 | |
CN109379347B (zh) | 一种安全防护方法及设备 | |
EP3070633B1 (en) | Network interface devices with remote storage control | |
KR20080106908A (ko) | 하드웨어 장치와 같은 자원을 소유하는 가상 컴퓨터를 이동시키기 위해 이용될 수 있는 컴퓨팅 시스템 및 방법 | |
CN105069383A (zh) | 一种云桌面usb存储外设管控的方法及系统 | |
EP3252647B1 (en) | System and method of detecting malicious files on a virtual machine in a distributed network | |
CN101561855B (zh) | 一种计算机对usb设备进行访问的控制方法和系统 | |
US8713640B2 (en) | System and method for logical separation of a server by using client virtualization | |
US20150220467A1 (en) | Universal serial bus (usb) device access | |
EP3035227B1 (en) | Method and device for monitoring data integrity in shared memory environment | |
CN104615934B (zh) | Sql注入攻击安全防护方法和系统 | |
CN109324873A (zh) | 虚拟化安全管理方法、运行内核驱动的设备及存储介质 | |
US20180083984A1 (en) | Remote computing system providing malicious file detection and mitigation features for virtual machines | |
CN102122330A (zh) | 基于虚拟机的“In-VM”恶意代码检测系统 | |
CN106844004B (zh) | 基于虚拟化环境下的安全防护方法及系统 | |
EP1964019A2 (en) | Method, apparatus and system for performing access control and intrusion detection on encrypted data | |
US8904487B2 (en) | Preventing information theft | |
KR102229438B1 (ko) | 클라우드 컴퓨팅 및 블록체인 기반의 스마트 홈 시스템 | |
CN111600755A (zh) | 上网行为管理系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |