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的更多相关文章
- MySQL全世界最流行的开源数据库软件
誉天全国首推全球市场占有率第二的数据库——MySQL培训课程,阿里巴巴.新浪等知名企业正在使用MySQL数据库系统,而这方面的人才需求也是供不应求,誉天作为国内2014年首批ORACLE官方授权MyS ...
- 【转】 MySQL与PostgreSQL:该选择哪个开源数据库?哪一个更好?
转载地址:http://www.infoq.com/cn/news/2013/12/mysql-vs-postgresql 如果打算为项目选择一款免费.开源的数据库,那么你可能会在MySQL与Post ...
- MySQL VS PostgreSQL:该选择哪个开源数据库?
Naresh Kumar 是一位软件工程师与热情的博主,对编程与新事物充满了激情和兴趣.近日,Naresh撰写了一篇博文,对开源世界最常见的两种数据库 MySQL 与 PostgreSQL 的特点进行 ...
- MySQL、PostgreSQL、Ingres r3、MaxDB等开源数据库的详细比较
1.MySQL 5 作为当今最流行的开放源码数据库之一,MySQL数据库为用户提供了一个相对简单的 解决方案,适用于广泛的应用程序部署,能够降低用户的TCO.MySQL是一个多线程.结构化查询语言(S ...
- Pivotal开源基于PostgreSQL的数据库Greenplum
http://www.infoq.com/cn/news/2015/11/PostgreSQL-Pivotal 近日,Pivotal宣布开源大规模并行处理(MPP)数据库Greenplum,其架构是针 ...
- 开源数据库 H2, HSQLDB, DERBY, PostgreSQL, MySQL区别/对比图表( 附加翻译) h2数据库
开源数据库 H2, HSQLDB, DERBY, PostgreSQL, MySQL区别/对比图表 浪天涯博主翻译: referential integrity 参考完整性transactions 事 ...
- 维基逃离MySQL 力挺开源数据库 MariaDB
近日全球著名百科类网站维基百科宣布,将不会再用MySQL数据库,据国外媒体报道,很多年,MySQL一直是热门的开源数据库,不过在被甲骨文收购后,面临闭源的风险.因此维基百科将切换到另外一款开源数据库M ...
- 数据库DDL审计
一.为什么需要数据库DDL审计? DDL在生产系统中扮演非常重要的作用. 1)首先从业务角度来说,DDL可能意味着表结构变更,意味着新的版本即将发布,是个重要的时刻. 2)其次从运维角度来说,DDL尤 ...
- ntopng-一款流量审计框架的安装以及应用
核心交换机镜像流量审计对于企业应急响应和防患于未然至关重要,本文想通过介绍ntopng抛砖引玉讲一讲流量审计的功能和应用. 安装 安装依赖环境: sudo yum install subversion ...
随机推荐
- 使用powershell来设置时间
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/set-date?view=powers ...
- JNDI 笔记(一) 概述
很多地方都会用到JNDI,一大堆的缩写加上一大堆不清不楚的概念描述,使得在看到的时候都不认识,更不要说使用了. JNDI,Java Naming Directory Interface,J2EE的 ...
- hdoj--5104--Primes Problem(素数打表)
Primes Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- Tool-Java:Spring Tool Suite
ylbtech-Tool-Java:Spring Tool Suite Spring Tool Suite 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 0. ...
- linux的shell函数参数
在Shell中,调用函数时可以向其传递参数.在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数... 带参数的函数示例: #!/bin/bash funWit ...
- thinkphp的session用法
Session方法用于Session 设置.获取.删除和管理操作. Session 用于Session 设置.获取.删除和管理操作 用法 session($name, $value='') 参数 na ...
- selenium3 + python3 - alert定位
一.alert\confirm\prompt弹出框操作主要方法有: text:获取文本值 accept() :点击"确认" dismiss() :点击"取消"或 ...
- HDU1043 Eight
题目: 简单介绍一下八数码问题: 在一个3×3的九宫格上,填有1~8八个数字,空余一个位置,例如下图: 1 2 3 4 5 6 7 8 在上图中,由于右下角位置是空的 ...
- mvc.global.asax事件
1.global.asax文件概述 global.asax这个文件包含全局应用程序事件的事件处理程序.它响应应用程序级别和会话级别事件的代码. 运行时, Global.asax 将被编译成一个动态生成 ...
- HttpServletResponse对象,自己学习的心得
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象,和代表响应response对象. request和response对象既然代表请求和响应,那我们要 ...