0818基于360开源数据库流量审计MySQL Sniffer

Posted 秦楚风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了0818基于360开源数据库流量审计MySQL Sniffer相关的知识,希望对你有一定的参考价值。

开源数据库流量审计mysql Sniffer

我最推崇的数据库安全产品就是基于流量的数据库审计,因为它不需要更改网络结构,并且也是最关键的是,不影响数据库服务器性能,不用苦口婆心的劝数据库管理员安装监控软件。它可以比较好的发现通过Web漏洞的拖库行为,以及基于数据库通讯协议的数据库管理过程中的违规行为。本质上基于流量的数据库审计就是一种特殊的流量审计,或者说针对数据库的IDS,如图10-11所示,通过从网络全流量中解析数据库协议,进一步还原成数据库常见的增删查改操作,然后在根据预定义的规则进行审计。

技术分享

图10-11基于流量的数据库审计原理图

这里介绍一款国内安全公司开源的可用于基于流量的数据库审计软件,MySQL Sniffer。MySQLSniffer是一个基于MySQL协议的抓包工具,实时抓取请求,并格式化输出。输出内容包括访问时间、访问用户、来源IP、访问 Database、命令耗时、返回数据行数、执行语句等。

下载与安装

MySQL Sniffer对应的GitHub地址为:

https://github.com/Qihoo360/mysql-sniffer

安装方法如下所示。

yum install glib2-devel libpcap-devel libnet-devel

git clone https://github.com/Qihoo360/mysql-sniffer

cd mysql-sniffer

mkdir proj

cd proj

cmake ../

cd ..

make

审计MySQL流量

MySQL Sniffer支持的常见参数如下所示。

Usage ./mysql-sniffer [-d] -i eth0 -p 3306,3307,3308 -l/var/log/mysql-sniffer/ -e stderr

由于我们Web和MySQL部署在一台机器上,所以eth0上是没有MySQL流量的,我们需要监听lo接口。

./mysql-sniffer -i lo -p 3306

使用pig账户登录MySQL。

./mysql -h127.0.0.1 -upig –p

显示审计信息如下所示。

2017-07-26 17:06:36 pig 127.0.0.1 NULL 0ms 1 select @@version_commentlimit 1

查看插件安装情况。

mysql> show plugins;

显示审计信息如下所示,其中2ms表示查询消耗时间,43表示查询返回的数据行数。

2017-07-26 17:10:28 pig 127.0.0.1 NULL 2ms 43 show plugins

查询MySQL用户详细信息。

mysql> use mysql;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> select * from user;

显示审计信息如下所示。

2017-07-26 17:12:32 pig 127.0.0.1 mysql 0ms 0 use mysql

2017-07-26 17:12:32 pig 127.0.0.1 mysql 0ms 5 show databases

2017-07-26 17:12:32 pig 127.0.0.1 mysql 0ms 28 show tables

2017-07-26 17:12:44 pig 127.0.0.1 mysql 1ms 8 select * from user

MySQL Sniffer也支持保存日志,如图10-12所示可以把日志发送给SOC系统进一步分析。

技术分享

图10-12MySQL Sniffer把审计日志发送给SOC系统

以上是关于0818基于360开源数据库流量审计MySQL Sniffer的主要内容,如果未能解决你的问题,请参考以下文章

360 开源的编程规范指南

原创MySQL Replay线上流量压测工具

工单系统-数据库查询,审计需求

mysql几种中间件对比

MySQL的审计功能实现方案

MySQL的审计功能实现方案