htp_audit - MySQL 审计插件


GPL
跨平台
C/C++

软件简介

htp_audit 是为 MySQL 开源数据库自主研发的审计插,弥补了 MySQL 开源数据库产品缺乏审计功能,为数据库安全透明运行提供技术保障。

审计插件 htp_audit 的应用场景

举例场景描述:企业发现某天数据库中的数据被人为删除了,尽管有数据备份,但因服务终止造成的损失可能高达上千万,还不计算殃及的品牌价值、用户体验等。企业必然要排查是什么原因触发的,这个删除操作是谁操作的,往往拥有数据库操作权限的人员较多,从何排查,证据在哪?

上述有关数据库的安全场景在企业中常出现,数据库作为企业业务系统的数据存储容器,类似人体的心脏和血液循环系统,数据就是企业业务系统的血液,数据库一旦出现问题就像心脏停止跳动,整个企业的生产系统或交易系统都将停止。当数据出现非正常修改的问题时,我们需要快速分析、诊断问题发生的原因,追踪数据不安全的根源,降低数据泄漏风险,进行实时风险预警,这就是通常所说的“数据库审计功能”。但是
MySQL 开源数据库缺失审计功能,这对于广大 MySQL 开源数据库用户而言是埋下了数据安全的隐患。

热璞科技开源的审计插件 htp_audit,能够实时记录数据库活动,帮助用户分析、追查、诊断追踪不安全事件,保障数据安全,实时预警数据库操作风险。对
MySQL 数据据库 DBA 而言,使用审计插件 htp_audit 非常简便,从 GitHub上 直接下载 htp_audit 审计插件源码文件,复制到
MySQL 数据库源码的 plugin 文件夹中,编译生成 htp_audit.so文件,然后在 MySQL 中安装使用:install plugin
htp_audit soname ‘htp_audit.so’;。

审计插件 htp_audit 的功能简述

针对 MySQL 开源数据库的审计功能缺失,行业内也出现了一些解决的办法,例如:甲骨文公司在 MySQL5.5 的企业版中增加了 mysql-audit
plugin,只限于 MySQL 数据库企业版,且功能类似于 general-log 的方式。也有一些第三方审计插件,但都没有达成 MySQL
数据库的审计功能,例如:MySQL 数据库中的事件类型较多,第三方审计工具未能做到对所有事件提供对应的处理函数;MySQL
数据库缺少配置文件,则不能灵活地配置审计事件的类型,往往调整配置则需要重启 mysqld 服务,甚至修改源代码重新编译。

热璞科技的 MySQL 源码团队调研了企业版本审计功能、收集 MySQL 数据库社区、大型企业客户等诉求,设计并研发的审计插件
htp_audit,能彻底做到审计全部事件、可动态在线修改配置等功能目标。审计插件 htp_audit 拥有以下三大特征:

  • 全类型事件审计 :MySQL 开源数据库中的事件分为父类型和子类型,父类型如 table access 含有子类型 READ、INSERT、UPDATE、DELETE;父类型 connection 含有子类型 CONNECT、DISCONNECT 等,htp_audit 可根据配置文件进行所有子类型事件审计,保证审计的完整性和全面性。

  • 动态的审计配置 :htp_audit 在启动时会从配置文件中获取要审计的事件类型,mysqld 实例在运行时也可通过全局变量 htp_audit_add_rule 添加需要审计的事件类型,通过 htp_audit_remove_rule 移除无需审计的事件类型。这就意味着在数据库运行过程中,htp_audit 可以动态增加或删除要审计的事件类型,保证整个审计过程对上层业务访问和业务系统是无感知的。

  • 发生及被审计次数展示 :新增各类型事件的发生次数和配置审计事件被审计的次数,使用命令:SHOW GLOBAL STATUS LIKE “%audit%” 即可查看,方便用户实时了解审计插件的运行情况,例如:事件发生状况、业务负载状况等,轻松获取数据库审计信息。