专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

「安全审计」基于Tshark流量抓包的mysql审计

ins518 2024-10-31 14:23:19 技术文章 16 ℃ 0 评论

关于数据库安全,有数据库安全设置、及时更新漏洞,代码做安全渗透防止sql注入外,还有一个很重要的方面数据安全审计。我们有些小伙伴可能用过Oracle,Sql server等数据库,他们都提供了数据审计功能,可以方便使用。但是我们的Mysql却没有这个功能,使得mysql的安全性大打折扣。

Mysql Init-access表的方法

通常地Mysql可以用创建Init-access表的形式,记录用户来源ip、时间、用户名和线程号的方式,结合mysqlbin日志来变相实现安全审计方法。这种方法比较繁琐,审计时候很不是便捷,对数据库性能还有一定的影响,这种方法网上很多也就不再赘述。

网络抓包

小编在这里给你介绍另外一种很通用便捷的方法,虽然结果也有些小缺憾,比如同时登陆操作的,没法区分两个用户谁是谁。这种方法的原理基于网络抓包的,解析数据包中数据操作语句来实现的。这也是很多安全厂商都用的方法,那些高大上、动辄几百万的数据库审计产品,也是基于这样一个原理,不过人家的过滤器更强大,分析能力更好,细节更多而已。

Tshark 介绍

说到网络抓包,大家可能马上想到的是Tcpdump,还有Windows下的Wireshark。对了今天咱们用的工具也跟Wireshark有点关系。Tshark,它是Wireshark的命令行版本,然会它只是在终端命令行下使用,但是它便捷,更犀利,马上就能出结果,看到数据结果,也能通过管道配合shell其他神器一起使用。是我们值得深研的好武器。

Tshark使用简介

Tshark使用的部分截图如上,其使用参数包括捕获接口、捕获停止选项、捕获输出选项、-r文件输入选项、处理选项、输出选项、其他选项等。限于篇幅,不在多介绍,有需要可以看命令介绍。

安装

Tshark 安装十分简单直接用包管理器安装即可。

redhat系:用 yum install wireshark

debian系: 用apt-get install tshark

其他发行版,请查看官方文档。

使用实例

1、实时打印当前80端口http请求,仅仅GET请求

详细介绍涉及,Tshark应用参数,比较繁琐,就只提供语句。吃瓜群众,直接复制使用就行了。需要深究就去看官方文档(下同)。

2、实时打印当前http请求,包括域名,请求的链接

tshark -s 1024 -n -f 'tcp dst port 80' -R 'http.host and http.request.uri' -T fields -e http.host -e http.request.uri -l

3、抓mysql的sql语句,

如下图,用来做程序分析。可以获得实时的sql执行语句。注意由于数据库只限本机访问,所以抓包时候要-i指定网络接口为lo既本地回环地址,否则可能没有数据。

利用Tsark做数据审计

上一部分,3抓取sql语句中我们已经演示了用tsark捕捉,网络包中msyql执行sql语句的例子。但是那个还不能做数据审计,因为数据审计中要关注、时间、来源和用户的信息,其实这些信息网络数据包中都含有的,我对那个语句改造下增加了时间和来源ip信息入下:

tshark -s 1024 -i lo -i eth0 -n -f 'tcp dst port 3306' -R 'mysql.query' -T fields -e "frame.time" -e "ip.dst" -e mysql.query

然后起个screen (对了,这也是个神器,以后有机会推介下)

tshark -s 1024 -i lo -i eth0 -n -f 'tcp dst port 3306' -R 'mysql.query' -T fields -e "frame.time" -e "ip.dst" -e mysql.query > mysqladit.txt

这样执行的所有sql语句都到这个mysqladit.txt文件了,以后对这个文件处理,就可以实现对mysql的数据审计了。

好了,今天就到这,如果对我的文章感兴趣,请点赞,关注我,有任何建议和意见请留言。

快过年了,祝大家新年快乐,2018发大财,交大运!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表