

dba+开源工具:轻量级数据库审计日志平台,违规操作无所遁形(附下载) - 更多 - dbap...
source link: https://dbaplus.cn/news-160-4581-1.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

dba+开源工具:轻量级数据库审计日志平台,违规操作无所遁形(附下载)
工具研发者介绍
贺春旸,凡普金科和爱钱进DBA团队负责人,《MySQL管理之道:性能调优、高可用与监控》第一、二版作者,曾任职于中国移动飞信、安卓机锋网。四次荣获dbaplus年度MVP,致力于MariaDB、MongoDB等开源技术的研究,主要负责数据库性能调优、监控和架构设计。本文摘自作者即将发布的新书《MySQL运维进阶指南》,敬请期待。
工具下载:
https://loganalyzer.adiscon.com/download/
数据库审计日志平台简介
数据库审计日志平台(简称DB Audit),旨在实时记录用户操作数据库的行为,对操作进行细粒度审计的合规性管理,并对数据库遭受的风险行为进行实时告警。平台通过对用户访问数据库行为的记录、分析和汇报,来帮助DBA事后生成合规报告、事故追根溯源,同时通过搜索技术提供高效查询审计报告,定位事件原因,以便日后查询、分析、过滤,实现加强内外部数据库网络行为的监控与审计,提高数据资产安全。
目前有两种技术方案:
第一种:部署在数据库服务器所在的网络,采用旁路监听方式截取用户访问数据库的TCP头报文,该系统是由数据采集、数据处理和安全检测三个模块组成。
第二种:依赖于开启MariaDB Audit Plugin插件的审计方法,存在的弊端是数据库审计功能的开启会影响数据库本身的性能、审计日志以txt文本格式存放在本地磁盘里,对于审计数据的挖掘和迅速定位是个棘手问题。
在MariaDB 10.6版本里,可以通过使用Rsyslog日志系统将审计日志汇总至一台专用的MySQL数据库里,并且可以自定义事件记录,比如我们想追溯某时刻谁误删除了数据,可以禁止记录select查询操作,然后借助Loganalyzer做展示,架构如下图所示:

注:LogAnalyzer是一款syslog日志和其它网络事件数据的Web前端,提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。
审计日志数据从专用存放syslog的数据库中获取,所以LogAnalyzer不需要改变现有的架构。通过对数据库的SQL语义分析,提取出SQL中相关的要素(用户、SQL操作、表、字段、时间)实时监控来自各个层面的所有数据库活动(包括来自应用系统发起的数据库操作请求、来自数据库客户端工具的操作请求,以及通过远程登录服务器后的操作请求等),让管理人员对用户的行为一目了然,真正做到数据库操作行为可监控、违规操作可追溯。
本文以第二种方案进行介绍,借助LogAnalyzer打造轻量级数据库审计日志平台。
部署步骤
环境概述:
-
MySQL/MariaDB主库安装Audit Plugin插件;
-
MySQL/MariaDB主库配置Rsyslog使用ommysql模块;
-
准备一台专用存放syslog审计日志的MySQL数据库服务器;
-
准备LAMP环境,运行web可视化日志分析软件LogAnalyzer,可与专用存放syslog审计日志的MySQL数据库服务器部署在一起。
数据库审计日志平台部署:
1、要启用MySQL/MariaDB主库节点的审计,我们首先需要将 MariaDB审计插件server_audit.so文件复制到每个服务器的插件目录中,然后可以在所有节点上加载插件。
MySQL> INSTALL PLUGIN server_audit SONAME 'server_audit.so';
2、配置审计插件:MariaDB审计插件还支持使用Rsyslog来记录事件。Rsyslog本身为我们提供了很多选项,其中之一是将日志条目转发到远程Rsysog进程。为了能够使用本地syslog,我们需要更改参数变量server_audit_output_type的值。
MySQL> SET GLOBAL server_audit_output_type = syslog;
3、由于我们只想转发由MariaDB审计插件创建的syslog日志,我们将使用变量 server_audit_syslog_facility来为syslog配置过滤器。
MySQL> SET GLOBAL
server_audit_syslog_facility = LOG_LOCAL6;
4、想追溯某时刻谁误删除误更改了数据,我们可以禁止记录select查询操作,需要更改参数变量server_audit_events的值。
MySQL> SET GLOBAL server_audit_events = 'QUERY_DDL ,
QUERY_DML_NO_SELECT';
只会记录增删改、DDL操作。
5、开启审计日志的记录。
MySQL> SET GLOBAL server_audit_logging = 1;
6、安装Rsyslog连接至MySQL的驱动模块:现在为MariaDB审计插件已经配置完毕。我们可以启用审计,但它只会写入本地系统日志/var/log/messages文件里,无法推送远程专用存放syslog审计日志的MySQL数据库服务器里。
Shell> yum install rsyslog-mysql -y
7、在专用存放syslog审计日志的MySQL数据库准备syslog的用户账号。
MySQL> GRANT ALL ON Syslog.* TO 'rsyslog'@'localhost'
IDENTIFIED BY 'rsyslogpass';
MySQL> GRANT ALL ON Syslog.* TO 'rsyslog'@'%'
IDENTIFIED BY 'rsyslogpass';
8、生成存放syslog数据的库和表。
Shell> rpm -ql rsyslog-mysql
/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
Shell> mysql -h127.0.0.1 -ursyslog -prsyslogpass
< /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
9、配置Rsyslog使用ommysql模块,将所期望的日志信息记录于MySQL数据库中。
Shell> vim /etc/rsyslog.conf
#### MODULES ####
......
$ModLoad imudp #加载udp的模块
$UDPServerRun 514 #允许接收udp 514的端口传来的日志
$ModLoad imtcp #加载tcp的模块
$InputTCPServerRun 514 #允许接收tcp 514的端口传来的日志
$ModLoad ommysql #加载mysql的模块
10、配置RULES,将所期望的日志信息记录于专用存放syslog审计日志的MySQL数据库服务器。
Shell> vim /etc/rsyslog.conf
#### RULES ####
$ActionOmmysqlServerPort 3306
local6.* :ommysql:192.168.198.239,Syslog,rsyslog,rsyslogpass
注:192.168.198.239这个IP,是syslog审计日志MySQL服务器地址,3306是MySQL端口号,ryslog是库名,ryslog是用户名,rsyslogpass是密码。
11、重启rsyslog服务。
Shell> systemctl restart rsyslog
至此rsyslog服务已经配置完毕。在MySQL/MariaDB主库上执行增删改、DDL操作,就会把审计日志推送至syslog审计日志MySQL服务器的Syslog库systemevents表里。
12、安装web可视化的日志分析软件loganalyzer。
Shell> yum -y install httpd php php-mysql php-gd
Shell> systemctl start httpd.service
Shell> cd /var/www/html/
Shell> wget
https://download.adiscon.com/loganalyzer/loganalyzer-4.1.12.tar.gz
Shell> tar zxvf loganalyzer-4.1.12.tar.gz
Shell> mv loganalyzer-4.1.12 loganalyzer
Shell> touch loganalyzer-4.1.12/src/config.php
Shell> chmod 755 loganalyzer-4.1.12/src/config.php
打开浏览器,配置loganalyzer软件,输入网址:http://yourip/loganalyzer/src/install.php
-
source type:选MYSQL Native
-
select view:选Syslog Fields
-
Table type:选MonitorWare
-
database host:127.0.0.1
-
database name:Syslog
-
database tablename:SystemEvents
-
database user:syslog
-
database password:写上之前你设定的sysylog用户的数据库密码
最后点Next按钮,完成初始化loganalyer。
Recommend
-
74
背景 你可能对BSM审计有所了解,也可能完全没有听说过。这是Solaris OS遗留下来的产物,它存在于FreeBSD,Linux,当然还包括MacOS上。在我的*OS Internals::Security & Insecurity的第二章...
-
11
声明: 本教程是在自己的电脑上本地测试Gosec的效果,所以不涉及其他运行模式,如果想要了解其他模式可以关注后期文档,如果想要自定义交流自定义代码扫描规则,可以跟我交流沟通。 背景: Gosec是一个通过扫描Go AST...
-
10
轻量级日志分析平台Loki实战 ...
-
10
轻量级开源SAST工具semgrep分析 - 先知社区 轻量级开源SAST工具semgrep分析 0xtuh...
-
5
FOSSlight是韩国 LG 公司开源的安全代码审计工具,主要用于识别和管理自己企业内的开源软件,是受到相应许可证允许的,并寻找开源软件中已知的漏洞,以便开发人员定位和解决问题。F...
-
6
再见笨重的ELK!这套轻量级日志收集方案要火!之前一直使用的日志收集方案是ELK,动辄占用几个G的内存,有些配置不好的服务器有点顶不住!最近发现一套轻量级日志收集方案: L...
-
4
有没有开源的 sql 审计平台,并且需要支持 sqlserver V2EX › 程序员 有没有开源的 sql 审计平台,并且需要支持 sqlserver
-
5
Containous(Traefik 团队)推出了全新设计的轻量级 service mesh(服务网格...
-
10
日志审计系统简介什么是日志审计?综合日志审计平台,通过集中采集信息系统中的系统安全...
-
1
Rancher 中给集群开启日志审计 2022-08-29 1 分钟阅读 k8s
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK