MySql中怎么配置日志审计,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用数据库审计插件开启数据库审计会牺牲部分数据库性能,建议根据实际业务情况选择审计插件或旁路部署审计设备。常见的mysql免费审计插件:mariadb audit plugin, macfee mysql-audit我们以mariadb audit plugin为例来完成配置安装与分析。环境:windows server 2008 R2,phpstudy8.1,mysql 5.5.29,sqli-labs官网下载mariadb-5.5.68 版本,使用命令行执行以下命令,解压到目标目录msiexec /a “d:mariadb-5.5.68-winx64.msi” /qb TARGETDIR=”D:abc”在MariaDB 5.5libplugin目录中提取需要的插件server_audit.dll,打开mysql命令行,查询plugin目录复制server_audit.dll到插件目录,mysql命令行安装插件,查询插件状态查询server_audit插件状态配置,默认为关闭状态,开启日志审计这些参数的具体定义:server_audit_events
指定记录到日志的event类型,可以用逗号分隔的多个值(connect,query,table,query_ddl等),如果开启了查询缓存(query cache),查询直接从查询缓存返回数据,将没有table记录
server_audit_excl_users
该列表的用户行为将不记录,connect将不受该设置影响
server_audit_file_path
审计日志路径,如果server_audit_output_type为FILE,审计日志默认存于数据目录下。即参数datadir对应的数据目录下面。如果修改server_audit_file_path,之前旧的审计日志文件不会被删除。需要手工去清理、删除。另外MySQL会开始新的审计日志轮转。
server_audit_file_rotate_now
强制轮转一次,执行脚本SET GLOBAL server_audit_file_rotate_now = ON;后,审计日志就会强制轮转一次。
server_audit_file_rotate_size
限制单个轮转审计日志大小,超出该限值后自动轮转。默认值为1000000,单位为byte,建议设置稍微大一点,例如,64M大小,67108864。具体根据实际需求和参数server_audit_file_rotations一起设定。
server_audit_file_rotations
轮转日志总数,当设为0表示审计日志不轮转。默认值为9。 一般需要根据实际需求进行修改。
server_audit_incl_users
指定哪些用户的活动将记录到审计日志,connect将不受此变量影响,该变量比server_audit_excl_users 优先级高
server_audit_loc_info
这个是插件内部使用的参数,对用户没有什么意义。在早期版本中,用户将其视为只读变量,在更高版本中,它对用户不可见。
server_audit_logging
审计功能的开关, O免费云主机域名N表示开启审计功能,OFF表示关闭审计功能。
server_audit_mode
标识版本,用于开发测试。对于用户而言,此变量没有任何特殊含义。 它的值主要反映了启动插件所使用的服务器版本,供开发人员用于测试
server_audit_output_type
指定审计日志的类型,有SYSLOG 或FILE两种选择,默认为FILE
server_audit_query_log_limit
记录中查询字符串的长度限制。默认为1024
server_audit_syslog_facility
当审计日志类型为syslog模式时,它定义了将发送到系统日志的记录的“功能”。 以后可以使用此参数过滤日志。
server_audit_syslog_ident
设置ident,作为每个syslog记录的一部分
server_audit_syslog_info
指定的info字符串将添加到syslog记录
server_audit_syslog_priority
定义记录日志的syslogd priority查询err日志的路径。至此日志配置与所需的文件已备齐,以审计日志server_audit.log和data.err为基础进行入侵分析。通过搭建sqli-labs测试环境,根据mysql日志,分析mysql暴力破解,手工注入,sqlmap os-shell三种攻击模式的日志记录,尽可能的还原攻击场景,追溯攻击源信息。1、mysql暴力破解mysql对外开放端口,使用mysql暴力破解时的日志信息data.err 中记录了攻击的ip地址和第一次连接的时间200909 10:15:41 [Warning] IP address ‘192.168.106.180’ could not be resolved: 不知道这样的主机。server_audit.log 从下图可以看出,攻击者多线程破解,破解的账号root,攻击者ip 192.168.106.180,返回代码1045,登陆成功后的执行了4个查询操作。日志格式为:可以根据 账号,ip地址,返回代码进行日志筛选分析,登陆后查询操作特征,可以推测使用的破解工具。2、sql注入攻击使用sqli-labs模拟存在漏洞的应用,github下载sqli-labs代码复制到phpstudy www目录,运行项目,通过手动输入获取webshell。模拟场景:已知服务器被执行phpinfo,疑似被入侵,需要通过日志分析入侵点与获得权限的方法。此次data.err无变化,我们分析nginx的access.log 和审计插件的server_audit.log发现access.log和server_audit.log均记录了攻击是sql注入,并通过mysql outfile写入后门到web目录,执行了phpinfo,触发报警。由于access.log不记录post请求的请求体,故server_audit.log可以看到更详细的攻击细节。3、sqlmap os-shell攻击通过sqlmap获取mysql os-shell,分析os-shell过程,日志有哪些特征模拟场景:假设在场景2中,sql注入攻击时,应用方修复了sql漏洞,并对web目录进行了权限限制,监控又发现了命令执行的报警,尝试分析入侵点。sqlmap -d “mysql://root:root@192.168.x.x:3306/mysql” –os-shell,成功后执行whoami查看server_audit.log日志,可以看到sqlmap os-shell执行的完整过程,包括探测mysql版本,字符集,操作系统类型,如何用实现udf实现命令执行等。日志里包含了很多sqlmap的特征,udf达到命令执行的特征,可结合其他日志初步判断为mysql密码泄露导致的udf命令执行。命令执行时的错误会被错误日志data.err记录,引用一个mysql勒索病毒的日志截图,暴漏了攻击者控制的服务器地址信息。看完上述内容,你们掌握MySql中怎么配置日志审计的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注云编程开发博客行业资讯频道,感谢各位的阅读!
1 断开网络(从物理上断开,可以拔掉网线)2数据备份3 Windows用户建立防火墙的入站规则,阻止445端口连接Win7、Win8、Win10的处理流程1)、打开控制面板-系统与安全-Windows防火墙,点击左侧启动或关闭Windows防火墙。2)、选择启…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。