什么是数据库本地访问?
简单描述,就是在一台主机上同时运行应用/客户端和数据库系统的操作行为。
如何进行数据库本地访问?
行为1:本地回环访问
行为2:本地IPC访问
需要强调的是:由于本地IPC访问是进程间通讯,不产生流量,因而常规审计技术无法完成此类审计工作。针对这种DBA常用的本地访问行为,为确保数据库及数据的安全,需要一种能够进行完整、高准确度的审计技术支撑!
如何选择本地IPC访问行为审计技术?
针对本地IPC访问行为,目前可以采用的审计技术为:SSH审计(远程登录审计的一种方式)和本地审计。下文从完整性、准确性、IT环境影响、兼容数据库四个方面,对SSH审计技术和本地审计技术进行了对比分析。
一、审计完整性对比
DBA在进行本地访问时,常会用到多种方式登录数据库服务器,执行的命令也呈现多样化。正因如此,完整捕获运维人员的全部操作及相关数据信息,确保审计工作无漏审、不被绕过,已成为当前客户选择审计产品时的一项重要技术指标。
1. SSH审计
通过捕获SSH工具上的数据通讯包进行审计,会出现流量被绕过和漏审的问题。
(1)SSH审计被绕过:因捕获到的流量仅为通过SSH工具的流量,会出现被绕过的问题。
场景示例1:SSH审计被绕过
(2)SSH审计漏审:因捕获到的流量仅为交互时发出的命令及屏幕回显信息,会出现审计信息的缺失。
场景示例2:SSH审计漏审
DBA通过SSH登录到数据库服务器后执行运维SQL脚本,如果此时脚本不向屏幕输出SQL语句,那么使用SSH审计就只能捕获执行结果,却无法捕获所执行的SQL语句,从而出现漏审问题。
2. 本地审计
在客户端程序通讯过程中,采用插件技术获取share memory和IPC的通信内容,有效避免了漏审或被绕过的情况发生,从而实现面向本地访问方式的完整审计。
二、审计准确性对比
在运维场景中,使用客户端工具运维数据库时,客户端返回的结果集数据往往是由符号“+”、“_”、“|”在命令行终端画出的简易表格。在SQL解析时,如果不能对结果集中包含的特定字符与终端制表符号进行准确区分,就会导致解析不准确,最终影响审计的准确度。
1. SSH审计
若在结果集中包含了“|”等特定字符,就可能在协议解析时与终端制表符号混淆,导致解析不准确。
2. 本地审计
获取通讯包流量,并基于精准协议对通讯包流量进行解析,不涉及与终端制表符号混淆的问题。
三、IT环境影响情况对比
数据库审计产品作为第三方数据库安全产品,不应对数据库IT环境产生影响。
1. SSH审计
由于SSH是加密协议,要做SSH审计就需要具备解密SSH通信的技术能力。目前,业界采取的各类方式对数据库IT环境都有较大影响,具体情况如下:
- 中间人劫持:这种方式允许在客户端(SSH工具)和服务端(数据库服务器)之间插入中间人,获取到客户端与服务端之间全部的通信数据,存在网络变更。
- 旁路解析:DBA在抓取SSH流量后对其进行解密和分析,需要获取服务端的公钥和私钥,对网络环境的安全性存在较大影响。需要注意的是,SSH协议常用的加密算法有RSA算法和DH算法。其中,DH算法应用动态交换密钥,生成共享密钥。在目前情况下,SSH审计技术无法保证能够破解此密钥。
- SSH嗅探:该方式通过在数据库服务器上驻留一个特权用户(如root用户)创建监听进程,以监听此服务器上的全部SSH连接,从而获取数据库的操作信息,该方式存在一定的安全漏洞。
- 工具后门:通过在运维工具内植入后门代码,将抓取工具的输入、输出信息并发送至审计设备,多用于客户使用统一运维工具的场景,该方式同样存在安全隐患。
2. 本地审计
不改变客户原有的行为习惯和网络环境,不会对数据库网络环境安全造成影响。
四、兼容数据库情况对比
对于数据库本地行为审计,应考虑其是否适配数据库本身。在这方面,SSH审计和本地审计均可适配当前主流的数据库及操作系统。
1. SSH审计
通过SSH协议进行审计,不需要适配数据库,所以支持的数据库会更加全面;操作系统方面,除不支持Windows系统上的SQL Server数据库审计之外,一般情况下都不需要适配。
2. 本地审计
可根据不同的数据库类型/版本、不同的本地访问方式,以及所使用客户端情况等进行适配。目前,本地审计产品需考虑适配国内外主流数据库及Linux、Unix、Windows等操作系统(特殊类型/版本的数据库及操作系统还需进一步适配)。
【本文是51CTO专栏作者“安全牛”的原创文章,转载请通过安全牛(微信公众号id:gooann-sectv)获取授权】