数据库安全审计RDS关系型数据库(安装Agent)
方案概述
本文档介绍了如何对关系型数据库(应用部署于ECS)进行安全审计。对于部分关系型数据库,DBSS服务支持免安装Agent模式,无需安装Agent,即可开启数据库安全审计。
如果您需要安全审计的数据库类型如表1所示,请参见审计RDS关系型数据库(免安装Agent)。
表1 支持免Agent安装的关系型数据库
数据库类型
|
支持的数据库版本
|
---|---|
GaussDB for MySQL |
默认都支持 |
RDS for MySQL |
5.6(5.6.51.1及以上版本) 5.7(5.7.29.2及以上版本) 8.0(8.0.20.3及以上版本) |
数据库安全审计方案架构
数据库安全审计采用旁路部署模式,通过在访问数据库的应用系统服务器上部署数据库安全审计Agent,获取访问数据库流量,Agent将获取的流量数据上传到审计系统、接收审计系统配置命令和上报数据库状态监控数据,实现对数据库的安全审计。
图1 审计RDS关系型数据库(安装Agent)架构图
本文以POSTGRESQL 7.4版本的关系型数据库为例,详细信息如表1所示,您需要对该数据库内部违规和不正当操作进行定位追责,满足等保测评数据库审计需求。本节详细介绍该场景下开启数据库安全审计功能和验证审计结果的具体操作。
数据库类型
|
POSTGRESQL
|
---|---|
数据库版本 |
7.4 |
数据库IP地址 |
192.168.1.31 |
应用端IP地址 (安装节点IP地址) |
192.168.1.132 |
端口 |
8000 |
操作系统 |
LINUX64 |
约束与限制
- 使用数据库安全审计需要关闭数据库的SSL。
- 待审计数据库与数据库安全审计需要在同一区域。
- 购买数据库安全审计配置“VPC”参数时,需与Agent安装节点所在VPC相同。
- 数据库安全审计的Agent安装节点,请参见:如何选择数据库安全审计的Agent安装节点?。
步骤一:购买数据库安全审计
您需要根据您的业务需求购买数据库安全审计规格并配置数据库安全审计参数,详细操作请参见购买数据库安全审计。
说明:为保证审计功能的正常使用,购买数据库安全审计配置“VPC”参数时,请与Agent安装节点所在VPC相同。
数据库安全审计的Agent安装节点,请参见:如何选择数据库安全审计的Agent安装节点?。
步骤二:添加数据库并开启审计
购买成功后,您需要先将目标数据库添加至数据库安全审计实例并开启该数据库的审计功能。
1、登录管理控制台。
2、在页面上方选择“区域”后,单击页面左上方的,选择“安全与合规 > 数据库安全服务”,进入数据库安全审计“总览”界面。在左侧导航树中,选择“数据库列表”,进入数据库列表界面。
3、在“选择实例”下拉列表框中,选择需要添加数据库的实例,并单击“添加数据库”。
4、在弹出的对话框中,按表2所示信息填写数据库参数,如图2所示。
5、数据库安全审计支持“UTF-8”和“GBK”两种数据库字符集的编码格式,请根据业务情况选择编码格式。
图2 “添加数据库”对话框
6、单击“确定”,该数据库添加到数据库列表中,且“审计状态”为“已关闭”。
7、在该数据库所在行的“操作”列,单击“开启”,开启审计功能。
步骤三:添加数据库安全Agent
1、在数据库所在行的“Agent”列,单击“添加Agent”,如图3所示。
图3 添加Agent
2、在弹出的对话框中,选择添加方式。
方式一:选择“创建Agent”
如果数据库安全审计实例的数据库未添加Agent,您需要创建新的Agent。
“安装节点类型”选择“应用端”,“安装节点IP”输入表2所示的应用端IP地址,如图4所示。
图4 在应用端添加Agent
方式二:“选择已有Agent”如图5所示。
在什么场景下需要选择“选择已有Agent”添加方式的详细介绍,请参见在什么场景下需要选择“选择已有Agent”添加方式?。
说明:选择“选择已有Agent”添加方式,如果您已在应用端安装了Agent,该数据库添加Agent后,数据库安全审计即可对该数据库进行审计。
图5 选择已有Agent
3、单击“确定”,Agent添加成功。
步骤一:购买数据库安全审计
步骤四:添加安全组规则
Agent添加完成后,您需要为数据库安全审计实例所在的安全组添加入方向规则TCP协议(8000端口)和UDP协议(7000-7100端口),使Agent与审计实例之间的网络连通,数据库安全审计才能对添加的数据库进行审计。
如果该安全组已配置安装节点的入方向规则,请执行步骤五:安装Agent。
如果该安全组未配置安装节点的入方向规则,请按照本节内容进行配置。
说明:安全组规则也可以在成功安装Agent后进行添加。
1、获取安装节点IP地址。
2、在数据库列表的上方,单击“添加安全组规则”。
3、在弹出的弹框中,记录数据库安全审计实例的“安全组名称”(例如default),如图6所示。
图6 添加安全组规则
4、单击“前往处理”,进入“安全组”界面。
5、在列表右上方的搜索框中输入安全组“default”后,单击或按“Enter”,列表显示“default”安全组信息。
6、单击“default”,进入“基本信息”页面。
7、选择“入方向规则”页签,单击“添加规则”,如图7所示。
图7 添加规则
8、在弹出的“添加入方向规则”对话框中,为表2中的安装节点IP添加TCP协议(端口为8000)和UDP协议(端口为7000-7100)规则,如图8所示。图8 “添加入方向规则”对话框
9、单击“确定”,完成添加入方向规则。
步骤六:验证Agent与数据库安全审计实例之间的网络通信正常
待审计的数据库与数据库安全审计实例连接成功后,您需要验证Agent与数据库安全审计实例之间的网络通信是否正常。
1、在安装Agent的节点执行一条SQL语句或对数据库进行操作(例如,“Select 1;”)。
2、在左侧导航树中,选择“总览”,进入“总览”界面。
3、在“选择实例”下拉列表框中,选择需要查看数据库慢SQL语句信息的实例。
4、选择“语句”页签。
5、SQL语句列表将显示登录数据库操作的记录,如图10所示。
6、如果不能查询到SQL语句,请您参照如何处理Agent与数据库安全审计实例之间通信异常?进行排查。
步骤一:购买数据库安全审计
验证成功后,您可参照本节内容在总览界面查看审计结果信息,同时也可根据需求在报表界面进行设置生成报表、下载或预览报表。
1、查看总览信息。
进入总览入口,如图11所示,查看总览信息。
在总览界面,展示了该实例的审计时长、SQL语句总量、风险总量以及今日语句、今日风险、今日会话量您可以选择“语句”或“会话”页签,分别查看SQL语句信息和会话分布图。
图11 进入总览入口
2、生成报表、下载或预览报表。
a、参照图12进入报表管理界面。
图12 进入报表管理入口
b、在左侧导航树中,选择“报表”。
c、在“选择实例”下拉列表框中,选择需要生成审计报表的实例。选择“报表管理”页签。
d、在需要生成报表的模板所在行的“操作”列,单击“立即生成报表”。
e、在弹出的对话框中,单击,设置报表的开始时间和结束时间,选择生成报表的数据库。
f、单击“确定”。系统跳转到“报表结果”页面,您可以查看报表的生成进度。报表生成后,您可以“预览”或“下载”报表,如图13所示。
须知:
如果您需要在线预览报表,请使用Google Chrome或Mozilla FireFox浏览器。
图13 预览或下载报表
数据库安全审计最佳实践
-
审计RDS关系型数据库
数据库安全审计采用旁路部署,获取访问数据库流量、将流量数据上传到审计系统、接收审计系统配置命令和上报数据库状态数据,实现对RDS关系型数据库的安全审计
-
审计ECS自建数据库
在数据库端部署数据库安全审计Agent,获取访问数据库流量、将流量数据上传到审计系统、接收审计系统配置命令和上报数据库状态数据,实现对自建数据库的安全审计
-
数据库慢SQL检测
数据库安全审计检测响应时间大于1秒的SQL语句。通过数据库慢SQL检测,可获知执行耗时长、影响行数、执行该SQL语句的数据库信息并根据实际需求对慢SQL进行优化
-
数据库脏表检测
数据库安全审计规则增加一条“数据库脏表检测”的高风险操作。用户预设无用的库、表或列作为“脏表”,无风险程序不会访问用户自建的“脏表”,用于检测访问“脏表”的可能的恶意程序