1. 程式人生 > >0818基於360開源數據庫流量審計MySQL Sniffer

0818基於360開源數據庫流量審計MySQL Sniffer

抓包 git clone com 時間 sta /var/ eth database 操作

開源數據庫流量審計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