数据库审计服务提供的审计功能,只能审计访问源的IP信息,无法溯源访问应用的具体访问源信息(例如:用户名)。如果您需要在审计日志中查看具体访问源的信息,您可以使用应用身份识别功能。本文介绍如何使用应用身份识别功能。
前提条件
功能介绍
应用身份识别又称为三层关联。通过在您的数据库服务器或与数据库服务器相连的服务器中安装具备应用身份识别功能的插件,实现将URL、用户名和客户端IP以注释方式插入到对应的SQL语句中,数据库审计可以根据注释信息对用户信息和SQL语句进行关联分析。以下是使用应用身份识别后的SQL语句示例(其中/**/中的内容为该功能在审计到的SQL语句中插入的信息):
/* SIP:127.16.XX.XX; URL:http://127.16.XX.XX:8080/ssm-login/user/login.do; USERNANME:admin; sql: */
select * from ssm_user where userName= 'admin' and password= 'e10adc3949ba59abbe56e057f20f****'
应用身份识别功能根据您应用的模式,可分为以下两种:
名称 | 生效原理 | 应用场景 |
---|---|---|
B/S(Browser/Server,浏览器/服务器模式)应用身份识别 | 管理员添加应用身份识别后,系统会自动生成JAR包,之后下载该JAR包并安装到应用服务器。当有用户对应用的数据库进行操作时,系统会审计到用户、访问应用的URL以及使用的IP。 | B/S结构的应用需要在审计日志中记录数据访问者的真实信息。
您的业务为B/S结构时,用户通过访问您的Web应用,Web应用再发起对数据库的访问,来完成一次数据请求。这种情况下,数据库审计系统审计到的请求均为Web应用发起的请求,无法溯源到真实用户的操作记录。用户的非法操作也无法被审计记录。使用应用身份识别功能,可以在审计日志中插入用户真实的访问信息,便于您溯源。 |
C/S(Client/Server,客户端/服务器模式)应用身份识别 | 管理员通过已审计到的登录语句SQL审计日志,配置C/S应用用户名提取规则,指定配置后的SQL模板来判断用户名是否相同。后续,数据库审计系统审计到相同的SQL模板,会直接关联出用户名并显示在审计日志中。 | C/S结构的应用需要在审计日志中插入访问者的用户名信息。 |
B/S应用身份识别
您需要配置B/S应用身份识别规则,并将生成的JAR包上传到您的应用服务器中,才能使用B/S应用身份识别功能。
使用限制
- Web应用必须是Java语言开发的应用,不支持PHP或者.NET开发的应用。
- 支持的数据连接源:DBCP、C3P0、Driud、Hikari、Tomcat-Jdbc-pool。
- 数据库连接配置中的
driverClassName
和url
信息支持修改(您需按照说明文档中的操作指导修改这两个参数)。 - 应用需具备web.xml文件。
- 支持数据库的类型:Oracle、MySQL、SQLServer、MariaDB、PostgreSQL、DB2、Informix。
配置步骤
操作完成后,您可以在审计日志中查看用户的详细信息。
说明 如果您修改了B/S应用身份识别配置,您需要重新下载并将新生成的JRA包上传到您的应用服务器中(覆盖原有的JAR包)。
C/S应用身份识别
通过在审计日志页面完成C/S应用用户名的配置,使用C/S应用身份识别功能。