通过修改mysql源码添加审计功能
实验环境:vmware虚拟centos5.3
虚拟机:192.168.83.137 (自己编译的mysqld 5.1.55)
192.168.83.133 mysql client
一、原理
Mysql审计无非抓包(tcp and 3306),目前mysqlsniffer已经很好的完成了抓包功能,加点自己的功能也简单,这个下次有机会再说,mysqlsniffer的代码量很少,对于用过pcap的人来说,都是a piece of cake!!
今天还是说下从mysql的源码入手,大家都知道mysql有了慢log功能,让我们先看看一条慢log:
这个语句似乎已经满足了审计的功能,谁在那里在什么时间做了什么???
Root于11:00:22在localhost上执行了insert操作
我们大胆的想下,如果mysql每条语句都打log是不是就完成审计了呢?absolutely,不过这个似乎太黄太暴力了,只针对特定用户特定机器执行审计操作是不是就达到审计的要求了呢….嗯哼、嗯哼~~~
那我们再添加两个选项 audit-user、audit-ip不就ok了么,so just do it
Ps:
在这个的基础上,可以将慢log修改成发送到另一台server上统一分析,这样对性能也没有什么影响。我这个只是个非常非常粗糙的版本,请原谅我修改mysql代码后make && make install后,居然启动成功,审计成功的惊喜吧…留待后面完善