开放源码数据库防火墙GreenSQL

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

介绍一款MySQL和PostgreSQL的数据库防火墙--GreenSQL

GreenSQL是一个开放源码数据库防火墙,用于保护数据库阻止SQL注入攻击。 GreenSQL项目作为代理的SQL命令,并为MySQL和PostgreSQL的中内置支持。这种逻辑是基于使用的SQL命令的风险评价得分矩阵以及阻止已知数据库(删除,创建等)的管理命令。 GreenSQL是在GPL许可协议下发布的。
GreenSQL结构
GreenSQL项目作为MySQL连接的反向代理。这就是说,不是直接连接到MySQL服务器,应用程序将连接到GreenSQL服务器。 GreenSQL会分析客户端的SQL查询,然后,如果他们是安全的,再将它们转发到后端的MySQL服务器中。

下图描述了整个过程。

正如你所看到的,GreenSQL调用真正的数据库服务器来执行SQL命令和Web应用程序连接到GreenSQL服务器,就好像它是一个真正的数据库服务器。对应用透明

GreenSQL可以与数据库一起安装在同一台计算机服务器,也可以使用不同的服务器。默认情况下GreenSQL监听127.0.0.1:3306端口(默认的MySQL设置)本地端口127.0.0.1:3305重定向SQL请求。这些设置可以使用GreenSQL控制台改变
该GreenSQL数据库防火墙可以用在许多方面:
    *模拟模式(数据库ID)
    *阻止可疑的命令(数据库的IPS)
    *学习模式
    *主动防护(数据库防火墙)未知查询
在模拟模式基本上没有被封锁。在这种情况下,GreenSQL(IDS的入侵检测系统的缩写)作为数据库入侵检测系统。在这种模式下,我们的风险识别可疑的打分矩阵引擎的查询和使用GreenSQL管理控制台通知数据库管理员。
当系统被配置为阻止可疑的命令,GreenSQL使用其启发式引擎来查找“非法的”自动查询和阻止他们。在这种模式下,GreenSQL基本上是一个数据库IPS系统(IPS是入侵防御系统)。如果查询被认为是非法的,如果发现它在白名单中,它会被重定向到真正的MySQL服务器。如果它被发现是“非法”,GreenSQL将返回一个空结果集的应用程序。在这种模式下,有时会产生GreenSQL假阳性和假阴性的错误。因此,一些法律问题可能会被封锁或GreenSQL系统可以通过一个“非法的”查询未被发现。这些都是IPS系统的优点和缺点。 GreenSQL不断提高其启发式引擎,但它仍然是不完美的。

为了解决我们建议启用的学习模式,然后在学习期间,上述方法的缺点是结束了,切换到查询不明的主动保护。在学习模式下,所有的查询会自动添加到白名单中。当学习模式结束后,GreenSQL自动启用积极的保护。当Active从保护模式启用未知的查询,所有未知的命令被封锁。这是数据库防火墙模式。当检测到未知的SQL命令,它会自动阻止。此外,计算其风险GreenSQL使用它的启发式方法和结果显示使用GreenSQL管理控制台。这是最快的模式,因为GreenSQL只计算为新的查询不经常发生的风险。

GreenSQL如何找到“非法的”查询?
GreenSQL发现使用可疑的一些方法查询:
    *通过确定敏感的SQL命令
    *通过计算查询的风险

确定敏感的SQL命令
GreenSQL使用模式匹配引擎,搜寻被认为是“非法”的命令。从本质上讲,这是一个基于签名的子系统。例如,下面的命令被视为“非法”:数据库管理命令;命令,试图改变一个DB结构和命令,用来访问系统文件。管理员可以批准加入到白名单或改变配有“非法”模式的列表配置文件是“非法”查询。
计算查询的风险
GreenSQL计算每个查询的风险。从本质上讲,这是一个异常检测子系统。经过计算的风险,GreenSQL可以阻止查询或只是制造了一个警告消息(这在应用模式而定)。有许多启发数GreenSQL计算风险时使用。例如,查询的风险增加了:
    *访问敏感表(用户,帐户,信用卡信息)
    在SQL *评论命令
    *一个空密码字符串
    *一个'或'查询标记内
    * SQL表达式,它总是返回true(同义反复的SQL)
为了找到异常,GreenSQL使用自己的SQL语言词法分析器找到SQL令牌。
如何命令封锁?
当GreenSQL确定某个查询应该被阻止,就会产生一个空结果集并将其发送回应用程序,因此它可以继续正常。
白名单是如何工作的?
每次GreenSQL认为一个SQL查询是一个安全风险,它被封锁。您可以通过改变明确将它添加到白名单这个特定的查询行为。
新:在所有新的学习模式查询会自动添加到白名单。

原文地址:http://www.greensql.net/about





     本文转自andylhz 51CTO博客,原文链接:http://blog.51cto.com/andylhz2009/456635,如需转载请自行联系原作者


相关文章
|
2月前
|
开发框架 Oracle 关系型数据库
ASP.NET实验室LIS系统源码 Oracle数据库
LIS是HIS的一个组成部分,通过与HIS的无缝连接可以共享HIS中的信息资源,使检验科能与门诊部、住院部、财务科和临床科室等全院各部门之间协同工作。 
37 4
|
3月前
|
Java 数据库 数据安全/隐私保护
基于JavaWeb实验室预约管理系统(源码+数据库+文档)
基于JavaWeb实验室预约管理系统(源码+数据库+文档)
基于JavaWeb实验室预约管理系统(源码+数据库+文档)
|
3月前
|
Java 数据库 数据安全/隐私保护
基于JavaSE+JDBC使用控制台操作的简易购物系统【源码+数据库】
基于JavaSE+JDBC使用控制台操作的简易购物系统【源码+数据库】
|
3月前
|
JavaScript 关系型数据库 MySQL
基于JavaWeb和mysql实现校园订餐前后台管理系统(源码+数据库)
基于JavaWeb和mysql实现校园订餐前后台管理系统(源码+数据库)
|
3月前
|
NoSQL 关系型数据库 MySQL
基于Python和mysql开发的智慧校园答题考试系统(源码+数据库+程序配置说明书+程序使用说明书)
基于Python和mysql开发的智慧校园答题考试系统(源码+数据库+程序配置说明书+程序使用说明书)
|
3月前
|
NoSQL 关系型数据库 MySQL
基于Python和mysql开发的BBS问答社区管理系统(源码+数据库+程序配置说明书+程序使用说明书)
基于Python和mysql开发的BBS问答社区管理系统(源码+数据库+程序配置说明书+程序使用说明书)
|
3月前
|
JavaScript 前端开发 小程序
基于springBoot + Vue电影售票系统分前后台【完整源码+数据库】
基于springBoot + Vue电影售票系统分前后台【完整源码+数据库】
|
3月前
|
前端开发 IDE Java
基于Springboot+MYSQL+Maven实现的宠物医院管理系统(源码+数据库+运行指导文档+项目运行指导视频)
基于Springboot+MYSQL+Maven实现的宠物医院管理系统(源码+数据库+运行指导文档+项目运行指导视频)
164 0
|
1月前
|
存储 PHP Apache
使用CFimagehost源码搭建无需数据库支持的PHP免费图片托管私人图床
使用CFimagehost源码搭建无需数据库支持的PHP免费图片托管私人图床
|
3月前
|
前端开发 Java 数据库
基于SpringBoot+Vue学生成绩管理系统前后端分离(源码+数据库)
基于SpringBoot+Vue学生成绩管理系统前后端分离(源码+数据库)