当前位置: 首页 > news >正文

开放源码数据库防火墙GreenSQL

介绍一款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

相关文章:

  • java中的初始化块
  • 2010-12月资源
  • SQL Server 2008 R2 性能计数器详细列表(四)
  • 轻松学习Linux之如何创建可执行脚本
  • 轻松学习Linux之本地安装系统
  • 记录一个未知的问题
  • 金额大小写转换(1)
  • LaPlayer(1)------Service浅析
  • bouml简介与使用总结
  • Oracle的隐式转换
  • 在同一个页面父窗口打开子窗口,动态无刷新提交,超炫基于jquery ajax提交,兼容IE7+,火狐.....
  • PHP统计目录下的文件总数及代码行数(去除注释及空行)
  • nyoj 523 双向广搜
  • JS调用后台方法大全
  • 即时通信3
  • Google 是如何开发 Web 框架的
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • input实现文字超出省略号功能
  • JAVA SE 6 GC调优笔记
  • javascript面向对象之创建对象
  • js ES6 求数组的交集,并集,还有差集
  • mysql innodb 索引使用指南
  • node.js
  • Web标准制定过程
  • Yii源码解读-服务定位器(Service Locator)
  • 测试开发系类之接口自动化测试
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 动态魔术使用DBMS_SQL
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 事件委托的小应用
  •  一套莫尔斯电报听写、翻译系统
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 怎么把视频里的音乐提取出来
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 容器镜像
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (二)WCF的Binding模型
  • (十八)SpringBoot之发送QQ邮件
  • (算法)N皇后问题
  • (一)kafka实战——kafka源码编译启动
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .mysql secret在哪_MySQL如何使用索引
  • .Net Core 中间件验签
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET学习全景图
  • .NET中的十进制浮点类型,徐汇区网站设计
  • .net专家(高海东的专栏)
  • .sh 的运行
  • // an array of int
  • @Bean注解详解
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • []FET-430SIM508 研究日志 11.3.31