返回顶部
首页 > 资讯 > 数据库 >MYSQL8安全之审计管理
  • 825
分享到

MYSQL8安全之审计管理

安全mysql数据库 2023-09-07 05:09:46 825人浏览 独家记忆
摘要

Mysql8安全之审计管理 审计概念一、MYSQL8开源审计mysql-auditmysql-audit安装配置0、下载解压插件1、查看mysql的插件位置2、上传库文件到插件目录3. 修改m

Mysql8安全之审计管理

审计概念

审计:记录用户的操作,方便以后查证,但生产环境数据库本身不建议开启,会影响性能,可以使用第三方实现审计。


一、mysql8开源审计mysql-audit

mysql5.7企业版自带审计功能,需要付费
社区版可以使用McAfee提供的开源软件mysql Audit Pluging
项目地址:https://github.com/trellix-enterprise/mysql-audit


mysql-audit安装配置


0、下载解压插件

# 下载插件压缩包wget -c https://GitHub.com/trellix-enterprise/mysql-audit/releases/download/v1.1.13/audit-plugin-mysql-8.0-1.1.13-1008-linux-x86_64.zip# 解压unzip audit-plugin-mysql-8.0-1.1.13-1008-linux-x86_64.zip# 进入lib目录cd audit-plugin-mysql-8.0-1.1.13-1008/lib# 赋予可执行权限chmod +x libaudit_plugin.so # 修改属主和属组为msyql:mysqlchown mysql:mysql libaudit_plugin.so 

1、查看mysql的插件位置

-- 查看插件的位置SHOW global variables LIKE '%plugin_dir%';

image.png


2、上传库文件到插件目录

# 复制到插件目录cp audit-plugin-mysql-8.0-1.1.13-1008/lib/libaudit_plugin.so /usr/lib64/mysql/plugin/

3. 修改my.cnf

# 停止mysqld服务systemctl stop mysqld

修改my.cnf配置文件

[mysqld]# 加载名为 libaudit_plugin.so 的AUDIT审计插件plugin-load=AUDIT=libaudit_plugin.so# 启用审计日志JSON格式记录audit_json_file=on# 指定事件审计文件路径audit_json_log_file=/var/log/mysql-audit.json# 指定审计事件类型## 如果不指定audit_record_cmds,所有DDL,DML全记录audit_record_cmds='insert,delete,update,create,drop,alter,grant,truncate'

image.png
启动mysqld服务

-- 启动mysqld服务systemctl start mysqld

4、安装插件

-- root登录mysqlmysql -uroot-- 安装audit插件install plugin audit soname 'libaudit_plugin.so'-- 查看audit插件版本SHOW global status LIKE 'audit_version';

image.png


5、查看mysql-audit日志

json查看工具https://blog.csdn.net/omaidb/article/details/125581170

# 查安装json查看工具jqdnf install jq -y# 查看最后100条日志tail -100 /var/log/mysql-audit.json# 用jq查看json格式日志tail -100 /var/log/mysql-audit.json |jq

安装插件报错

安装libaudit_plugin.so插件报错。
image.png


解决办法:

计算mysqld偏移量,重新指定mysqld偏移量。


1、计算偏移量

# 安装gdb包dnf install -y gdb# 找到offset-extract.sh脚本

image.png

# 使用offset-extract.sh脚本计算偏移量offset-extract.sh /usr/sbin/mysqld

2、将偏移量添加到my.cnf中

image.png

[mysqld]audit_offsets=计算出的偏移量

image.png


3、添加偏移量依然报错

image.png


二、MYSQL自带的init-connect+binlog实现mysql审计


1、创建一份存放连接信息的表

-- 创建一份存放连接信息的表CREATE database auditdb DEFAULT CHARSET utf8mb4;-- 进入auditdb库use auditdb;-- 创建auditdb.accesslog(访问日志)表CREATE TABLE auditdb.accesslog(    ID INT PRIMARY KEY auto_increment,    ConnectionID INT,    ConnUserName VARCHAR(30),    PrivMatchName VARCHAR(30),    LoginTime timestamp);

2、配置权限

-- 配置权限-- 向mysql.db表中插入一条记录,授权所有用户在任意主机上访问auditdb数据库,并具有select和insert的操作权限。-- host、db、user、select_priv和insert_priv是该表中的字段名;-- %代表通配符,表示任何IP地址都可以使用此记录匹配;-- 'auditdb'表示要授权的数据库名称,这里为auditdb;-- ''表示要授权的用户名称,这里为空字符串,表示所有用户都能匹配上此记录;-- YY表示该用户对auditdb数据库有select和insert操作的权限。INSERT into mysql.db(host, db, user, select_priv, insert_priv)values('%', 'auditdb', '', 'Y', 'Y');-- 提交事务cmomit;-- 应用权限配置FLUSH PRIVILEGES;

3、配置init-connect

image.png

# 此项配置可以用于记录所有数据库连接的基本信息,以方便审计和监控# init-connect:在每个新客户端连接成功后,将执行SQL语句# 往名为"auditdb.accesslog"的表中插入一条记录,该记录包含连接ID(ConnectionID)、连接用户名(ConnUserName)、权限匹配名(PrivMatchName)和登录时间(LoginTime)等信息。## connection_id()函数用于获取当前连接的ID,## user()函数用于获取当前连接的用户名,## current_use()函数用于获取当前连接所使用的权限匹配名## now()函数则用于获取当前的系统时间。init-connect='INSERT into auditdb.accesslog(ConnectionID,ConnUserName,PrivMatchName,LoginTime) values(connection_id(),user(),current_use(),now());'# 指定binlog的存储路径和文件名前缀## binlog记录所有对数据库的修改操作,包括插入、更新和删除log_bin=/var/lib/mysql/binlog# 指定binlog索引文件的存储路径和文件名log_bin_index=/var/lib/mysql/binlog.index

重启mysqld服务

# 重启msyql服务systemctl restart mysqld

4、记录和跟踪测试

如果是root登录,不会记录信息。

# 使用 mysqlbinlog 工具读取名为 binlog.000001 的二进制日志文件## --start-datetime 和 --stop-datetime 参数分别指定了要搜索的时间范围,即从 2018 年 4 月 12 日 16:53:00 开始,到 2018 年 4 月 12 日 16:55:00 结束## -i 参数表示忽略大小写## grep -B 20 显示匹配的前20行mysqlbinlog --start-datetime='2018-04-12 16:53:00' --stop-datetime='2018-04-12 16:55:00' binlog.000001 |grep -i '关键字' -B 20

image.png
image.png
image.png

-- 查看访问日志表slect * from auditdb.accesslog;

image.png

来源地址:https://blog.csdn.net/omaidb/article/details/130387489

您可能感兴趣的文档:

--结束END--

本文标题: MYSQL8安全之审计管理

本文链接: https://lsjlt.com/news/397747.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MYSQL8安全之审计管理
    MYSQL8安全之审计管理 审计概念一、MYSQL8开源审计mysql-auditmysql-audit安装配置0、下载解压插件1、查看mysql的插件位置2、上传库文件到插件目录3. 修改m...
    99+
    2023-09-07
    安全 mysql 数据库
  • 【安全】Oracle 安全管理与审计(二)
    《Oracle 安全管理与审计(二)》 ...
    99+
    2024-04-02
  • 【网络安全】3.1 网络安全审计
    文章目录 1. 网络安全审计的重要性2. 网络安全审计的步骤2.1. 规划2.2. 收集数据2.3. 分析数据2.4. 报告结果 3. 网络安全审计的工具4. 网络安全审计的挑战5. 总...
    99+
    2023-10-10
    网络安全 安全
  • Linux服务器日志管理:关注安全审计和威胁检测
    在Linux服务器日志管理中,安全审计和威胁检测是非常重要的方面。以下是关于如何关注安全审计和威胁检测的一些建议:1. 配置日志记录...
    99+
    2023-10-10
    Linux
  • python 安全编码&代码审计
    现在一般的web开发框架安全已经做的挺好的了,比如大家常用的django,但是一些不规范的开发方式还是会导致一些常用的安全问题,下面就针对这些常用问题做一些总结。代码审计准备部分见《php代码审计》,这篇文档主要讲述各种常用错误场景,基本上...
    99+
    2023-01-31
    代码 python
  • 谈一谈Oracle11gR2的审计管理
    谈一谈Oracle11gR2的审计管理作者:赵全文 网名:guestart  在Oracle数据库的安全特性当中,审计被作为特别重要的一个方面。数据库的审计功能主要是用来审计各种类型的DDL和DM...
    99+
    2024-04-02
  • CentOS上搭建web服务器的安全审计与事件日志管理
    在CentOS上搭建Web服务器的安全审计与事件日志管理可以通过以下步骤实现:1. 安装审计工具:使用命令`sudo yum ins...
    99+
    2023-10-09
    CentOS
  • 计算机网络安全审计是什么
    网络安全审计是指按照安全策略,利用记录、系统活动和用户活动等信息,检查、审查和检验操作事件的动向,从而发现系统漏洞、入侵行为或改善系统性能的过程,也是审查评估系统安全风险并采取相应措施的一个过程,是提高系统安全性的重要举措。...
    99+
    2024-04-02
  • 什么是数据库安全审计
      数据库安全审计主要用于监视并记录对数据库服务器的各类操作行为,通过对网络数据的分析,实时地、智能地解析对数据库服务器的各种操作,并记入审计数据库中以便日后进行查询、分析、过滤,实现对目标数据库系统的...
    99+
    2024-04-02
  • 服务器安全审计怎么做
    服务器安全审计是一项重要的任务,需要遵循以下步骤:1. 收集信息:收集服务器的基本信息,包括操作系统、应用程序、服务、网络拓扑图等。...
    99+
    2023-06-07
    服务器安全审计 服务器
  • 金融行业服务器安全审计
    服务器安全审计行业要求:服务器主机的审计内容是否包括:用户的添加和删除、审计功能的启动和关闭、审计策略的调整、权限变更、系统资源的异常使用、重要的系统操作(如用户登录、退出)等。服务器开启情况:默认未开启,...
    99+
    2024-04-02
  • 金融行业数据库安全审计
    数据库安全审计行业要求:审计内容是否至少包括:用户的添加和删除、审计功能的启动和关闭、审计策略的调整、权限变更、系统资源的异常使用、重要的系统操作(如用户登录、退出)等。数据库开启情况:需开启相关内容的数据...
    99+
    2024-04-02
  • 使用Seay进行代码安全审计
    Seay介绍 Seay介绍 Seay其实是一款用 C语言所开发的一款对 PHP相关代码的安全审计系统,它是运 行在 Windows操作系统上的。这种软件能够发现 SQL 注入漏洞、代码执行漏洞、命令执...
    99+
    2023-10-08
    web安全 php
  • SQL级别数据库安全性审计
    数据库安全性审计是指对数据库系统中的安全性控制和安全策略进行审计和评估的过程。SQL级别的数据库安全性审计主要包括以下几个方面: 访问控制:审计数据库中的用户权限和角色,并确保用户只能访问其授权范围内的数据和功能。可以通过审计SQL语句...
    99+
    2024-08-03
    sql
  • PHP 框架安全指南:如何执行安全性审计?
    php框架安全性审计指南:准备:收集工具、确定范围、制定计划。web应用程序扫描:扫描常见漏洞、检查安全头。代码审计:审查敏感代码、查找安全反模式、查看框架文档。实战案例:以xss漏洞为...
    99+
    2024-05-23
    php 安全审计
  • 操作系统安全审计:从新手到专家,一步步掌握安全审计技巧,提升安全防范水平
    操作系统安全审计是一项重要的安全防御措施,旨在及时发现和修复操作系统的安全漏洞,防止恶意软件和攻击者的入侵。作为一名专业的网络安全人员,掌握系统安全审计的技巧和方法至关重要。 第一步:系统安全审计准备 在进行系统安全审计之前,需要做好准...
    99+
    2024-02-28
    操作系统安全审计 安全审计技巧 安全防范
  • 安全审计跟踪的意义是什么
    安全审计跟踪的意义:用系统的保护机制和策略,及时发现并解决系统问题。可用于可能产生的商业纠纷、公司财务审计、贷款和税务监查等方面。审计信息可以确定事件和攻击源,对黑客具有强大的威慑作用。通过对安全事件的收集,有选择性地对目标进行跟踪,以提供...
    99+
    2024-04-02
  • 网络安全审计的类型有哪些
    网络安全审计的类型有3种类型,如下:系统级审计主要系统的登入情况、所使用的设备、用户识别号等事件信息进行审查,但这类审计却无法跟踪和记录应用事件,也无法提供足够的细节信息。应用级审计主要针对的是应用程序的活动信息。用户级审计主要是审计用户的...
    99+
    2024-04-02
  • 服务器安全审计内容有哪些
    服务器安全审计内容包括:1. 操作系统安全审计:审计操作系统的安全配置、漏洞、补丁、安全策略等。2. 应用程序安全审计:审计服务器上...
    99+
    2023-06-06
    服务器安全审计 服务器
  • PHP代码审计:全面检查,保障程序安全
    代码审计的重要性 PHP代码审计是确保PHP应用程序安全的重要组成部分。通过代码审计,可以发现应用程序中的安全漏洞,包括但不限于: 跨站脚本攻击(XSS) 缓冲区溢出 SQL注入 文件包含漏洞 未授权访问 拒绝服务攻击(DoS) ...
    99+
    2024-02-09
    PHP代码审计 安全漏洞 应用程序安全 代码审查
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作