mysql数据库怎么审计 sql 审计

如何实现数据库存储过程操作审计

--禁用C2 审核跟踪和只限成功的登录

成都创新互联10多年成都定制网站服务;为您提供网站建设,网站制作,网页设计及高端网站定制服务,成都定制网站及推广,对成都水处理设备等多个方面拥有多年的网站设计经验的网站建设公司。

EXEC sys.sp_configure N'c2 audit mode', N'0'

GO

RECONFIGURE WITH OVERRIDE

GO

USE [master]

GO

EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'AuditLevel', REG_DWORD, 1

GO

SQLSERVER2008新增的审核功能

在sqlserver2008新增了审核功能,可以对服务器级别和数据库级别的操作进行审核/审计,事实上,事件通知、更改跟踪、变更数据捕获(CDC)

都不是用来做审计的,只是某些人乱用这些功能,也正因为乱用这些功能导致踩坑

事件通知:性能跟踪

更改跟踪:用Sync Services来构建偶尔连接的系统

变更数据捕获(CDC):数据仓库的ETL 中的数据抽取(背后使用logreader)

而审核是SQLSERVER专门针对数据库安全的进行的审核,记住,他是专门的!

什么是数据库审计?

数据库审计是一款针对数据库层面进行流量监控审计的工具,针对数据库进行全面、高效、自动化的数据库监控告警和审计追溯。在行为分析基础上,数据库审计可以实现风险行为描述,实现对数据库风险和攻击行为的有效描述;对违反安全策略的文房行为进行及时告警,保证数据库操作满足合规要求;通过系统自带数据库风险特征库,迅速实现数据库风险检查和告警。推荐你了解一下安华金和数据库安全审计系统,这方面在业内做的很专业,安华的数据库审计是基于数据库通讯协议分析和SQL语法词法的精确协议解析技术,这种技术审计的精确度高。

MySQL审计工具Audit插件使用

一、介绍MySQL AUDIT

MySQL AUDIT Plugin是一个 MySQL安全审计插件,由McAfee提供,设计强调安全性和审计能力。该插件可用作独立审计解决方案,或配置为数据传送给外部监测工具。支持版本为MySQL (5.1, 5.5, 5.6, 5.7),MariaDB (5.5, 10.0, 10.1) ,Platform (32 or 64 bit)。从Mariadb 10.0版本开始audit插件直接内嵌了,名称为server_audit.so,可以直接加载使用。

二进制文件地址:

macfee的mysql audit插件虽然日志信息比较大,对性能影响大,但是如果想要开启审计,请斟酌。

二、安装使用MySQL AUDIT

# unzip audit-plugin-mysql-5.6-1.1.5-774-linux-x86_64.zip

MySQL的插件目录为:

mysql show global variables like 'plugin_dir';

+---------------+------------------------+

| Variable_name | Value                  |

+---------------+------------------------+

| plugin_dir    | /app/mysql/lib/plugin/ |

+---------------+------------------------+

1 row in set (0.00 sec)

复制库文件到MySQL库目录下

# cp audit-plugin-mysql-5.6-1.1.2-694/lib/libaudit_plugin.so /app/mysql/lib/plugin/

# chmod a+x /app/mysql/lib/plugin/libaudit_plugin.so

加载Audit插件

mysql INSTALL PLUGIN AUDIT SONAME 'libaudit_plugin.so';

查看版本

mysql show global status like '%audit%';

+------------------------+-----------+

| Variable_name          | Value    |

+------------------------+-----------+

| Audit_protocol_version | 1.0      |

| Audit_version          | 1.1.2-694 |

+------------------------+-----------+

2 rows in set (0.00 sec)

开启Audit功能

mysql SET GLOBAL audit_json_file=ON;

Query OK, 0 rows affected (0.00 sec)

执行任何语句(默认会记录任何语句),然后去mysql数据目录查看mysql-audit.json文件(默认为该文件)。

当然,我们还可以通过命令查看audit相关的命令。

mysql SHOW GLOBAL VARIABLES LIKE '%audit%';

其中我们需要关注的参数有:

1、audit_json_file

是否开启audit功能。

2、audit_json_log_file

记录文件的路径和名称信息。

3、audit_record_cmds

audit记录的命令,默认为记录所有命令。可以设置为任意dml、dcl、ddl的组合。如:audit_record_cmds=select,insert,delete,update。还可以在线设置set global audit_record_cmds=NULL。(表示记录所有命令)

4、 audit_record_objs

audit记录操作的对象,默认为记录所有对象,可以用SET GLOBAL audit_record_objs=NULL设置为默认。也可以指定为下面的格式:audit_record_objs=,test.*,mysql.*,information_schema.*。

5、audit_whitelist_users

用户白名单。

三、查看审计数据

插入一些数据,查看一下mysql-audit.json文件信息(json格式),如下:

$ cat /app/mysql/data/mysql-audit.json

{"msg-type":"activity","date":"1517989674556","thread-id":"3","query-id":"39","user":"root","priv_user":"root","ip":"","host":"localhost","connect_attrs":{"_os":"Linux","_client_name":"libmysql","_pid":"1331209","_client_version":"5.6.27","_platform":"x86_64","program_name":"mysql"},"pid":"3472328296227680304","os_user":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","appname":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","rows":"10","cmd":"select","objects":[{"db":"sbtest","name":"sbtest1","obj_type":"TABLE"}],"query":"select * from sbtest1 limit 10"}

审计记录文件一般存放在mysql的数据目录下。

什么是数据库审计?

随着信息泄露事件的频发,数据库安全产品逐渐进入大众视野。在数据库安全产品中,数据库审计大概是用户方最为熟悉的一款产品了。在不影响业务系统正常运转的情况下,数据库审计产品能够对数据库的操作访问行为进行追踪审计,这也是大多数用户将其作为数据库安全标配采购的重要原因。本文时代新威为您科普什么是数据库审计,数据库审计的作用和原理有哪些,一起来看看吧!

什么是数据库审计?

数据库审计是指对审计日志和事务日志进行审查,从而跟踪数据和数据库结构的变化。数据库可以这样进行设置:捕捉数据和元数据的改变,以及存储这些资料的数据库所做的修改。典型的审计报告应该包括以下内容:完成的数据库操作、改变的数据值、执行该项操作的人,以及其他几项属性。这些审计功能被植入到所有的关系数据库平台中,并确保生成的记录文件具有较高的准确性和完整性,就好像在数据库中存储的数据一样。此外,审计跟踪还能把一系列的语句转化为合理的事务,并提供业务流程取证(forensic)分析所需的业务环境。

不过,审计功能也存在限制,例如不能对数据访问语句(通常称之为SELECT语句)进行审计。另外,本地数据库审计很难捕捉到用户认可的原始查询(query)和变量(variables),只能从综合的角度对事件做出记录,而日志则可以捕捉到改变前后的数据值。这也使得审计跟踪在检测已改变的内容时,比检测已访问的内容更为有效。

对数据库活动和状态进行取证检查时,审计可以准确的把握事件的本质。对SELECT语句(用户查看数据时会使用)进行检查时,因为本地平台缺乏对这些语句的收集能力,即便利用高级选项实现了这项操作,也会导致性能受到极大损失。既然有简单的方法可以高效地对SELECT语句进行登记(cataloging)(例如,登入失败、尝试查看信用证信息),为什么企业还要选择在本地数据库审计功能上增加其他的数据收集资源。不管怎样,内置的数据库审计功能可以生成事务认证和法规控制的核心信息。

数据库审计作用:

数据库审计通过旁路部署,能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行告警。它通过对用户访问数据库行为的记录、分析和汇报,用来帮助用户事后生成合规搜索报告、事后追根溯源,同时加强内外部数据库网络行为记录,提高数据资产安全。

数据库审计原理:

数据库审计系统对来自应用系统客户端和dba对数据库的访问行为进行全面审计,不仅审计sql语句,还对ftp、telnet等远程访问进行审计。系统详细记录查询、删除、增加、修改等行为及操作结果,对危险操作还可实时预警,及时阻止,从而达到保护数据库的良好效果。

黑格尔曾说,“存在即合理”,用在数据安全领域,对数据库审计的运用同样适用。时代新威认为数据库审计是当下最经济、最贴身、最有效的数据保镖,同时我国信息化建设想要长远持续发展,数据库审计是必然选择。


文章名称:mysql数据库怎么审计 sql 审计
文章URL:http://ybzwz.com/article/hjecpo.html