当前位置: 首页 > 科技观察

如何选择合适的数据库本地访问审计技术?

时间:2023-03-19 15:41:57 科技观察

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