Article / 文章中心

自建数据库没有审计方案?试试这套轻量级低成本方案

发布时间:2022-02-28 点击数:231
简介: 数据库安全,是指以保护数据库系统、数据库服务器和数据库中的数据、应用、存储,以及相关网络连接为目的,是防止数据库系统及其数据遭到泄露、篡改或破坏的安全技术。数据库审计隶属于数据库安全,相关领域也包含数据库防火墙,数据库加密等。本文主要介绍数据库审计方案。

数据库审计

数据库安全,是指以保护数据库系统、数据库服务器和数据库中的数据、应用、存储,以及相关网络连接为目的,是防止数据库系统及其数据遭到泄露、篡改或破坏的安全技术。数据库审计隶属于数据库安全,相关领域也包含数据库防火墙,数据库加密等。本文主要介绍数据库审计方案。

编辑搜图

上图参考自安全牛。

数据库安全需求

在数字经济时代,数据资源成为经济发展的关键要素,无论是互联网行业还是传统行业都在践行信息化、数字化、虚拟化。根据FileEye M-Trends 2018报告,企业组织的攻击从发生到发现所需时长可以看出企业安全防护管理能力薄弱,亚太地区尤甚。

每个企业的业务系统的核心都是数据,大部分系统的核心数据都存储在数据库中,数据库的安全关乎核心系统的安全,甚至关乎企业的命脉。数据库安全问题主要体现:

  • 外部非授权人员(如黑客)对数据库进行恶意入侵,获取或者删除数据库数据。

  • 内部人员操作安全隐患,非法修改和删除数据库数据,调整数据库配置,误操作给业务系统带来难以恢复的损失。

  • 针对数据库的安全事件发生后,无法进行有效的追溯和审计。

法律法规需求

国内制定了网络安全等级保护制度标准和网络安全法等,从法律法规的层面要求企业应当履行安全保护义务。

编辑搜图

数据库审计系统是一种降低数据库存安全风险和满足审计需求的系统。国内安全厂商基本都有完善数据库审计方案,接下来将对数据库审计方案的功能点进行梳理,最后提出一种轻量级、低成本的自建数据库审计方案。

业界数据库审计方案

数据库审计系统功能模块

数据库审计作为一个完整的系统,主要功能模块包括采集、审计、存储查询、审计告警和可视化报表展示等功能。

编辑搜图

支持数据库类型

数据库一般支持国内外主流数据库,包括MySQL、PostgreSQL、SQL Server、Oracle、DB2等关系数据库,还包括HBase、MongoDB、Redis等数据库,国产数据库包括大梦,人大金仓、南大通用等。总体而言,主流数据库一般都包含在内。

审计数据采集范围

数据库审计系统一般会将采集Agent和审计分析等模块,整个系统部署在交换机的镜像端口,在采集端可以设置一定的审计策略,例如支持全面审计,将数据库所有的操作记录下来,考虑到审计系统的吞吐能力,也支持进行白名单或黑名单审计,只审计重要的语句和请求来源,部分审计有一定的缺陷,因为往往不能确定哪些语句或者来源是可以忽略的,所以好的审计系统应该是全面审计,审计范围下表供参考。

模块

分类

举例

(How)查询语句

DDL

Create、Drop、Alter等

DML

Select、Insert、Delete、Update等


DCL

Grant、Revoke等


TCL

Begin Transaction、Commit、Rollback等


(Who)访问来源

数据库访问者信息

客户端IP、端口、访问用户等

(What)操作对象

数据库操作对象

数据库实例、名称、表等

(When)操作时间

数据库操作时间

执行操作的时间

(Where)操作位置

数据库所处的位置

数据库服务端IP、数据库端Port等

(Why)操作动机

分析SQL的行为

及时查出风险违规SQL等

存储查询分析

审计系统中都会有存储系统,来将审计流量解析后的操作记录下来,以供后续报表使用和告警分析,在存储方面一般会有容量限制,不支持无限存储。支持一定程度的检索和根据查询条件来进行灵活的查询,支持根据源IP,执行时间等各类定制条件的检索,总体来看查询分析偏定制化,与真正的日志查询分析能力相比,灵活性会有些欠缺。

告警

审计系统会对数据库访问行为进行实时监控,如果触发了规则设置,告警系统会对数据库的危险操作行为进行告警,显示告警信息并且将告警信息存储,便于后续查询检索发生的告警,在告警通知渠道方面一般支持Syslog、邮件、SNMP、短信等传统通知渠道,对于新的通知渠道比如微信、钉钉、甚至云厂商的EventBridge,FunctionCompute等支持较弱。通知渠道较为传统,并且不具有通知编排分派能力。

报表

数据库审计报表支持各种报表模板,报表中符合SOX法案、等保等法规标准的审计需求,一般包括在线报表和周期性报表,并且支持导出为PDF或者Excel等。报表内容包括数据库访问情况,性能状态,语句分布,风险分布等。

双向审计

双向审计,指的是对数据库的请求和返回结果进行双向审计,一般的数据库审计系统都提供了双向审计功能,对于返回结果,大部分审计系统存储的是返回结果行数和消耗时间,少量审计系统支持对原始返回结果的存储。

三层关联审计

三层关联是一个比较早期的概念,表示客户浏览器、web服务器、数据库服务器三层,在数据库层发生问题时,可以追溯到web服务器和客户浏览器,从而找到引起问题的用户信息。大部分审计系统通过在web服务器上部署审计插件,可以达到三层关联审计的需求。

在云原生时代,终端用户访问的路径可能不仅仅是这三层,中间可能经过很多不可见的层,一般可以通过Trace的方式,关联整个访问路径,来查看整个访问路径的延迟、吞吐和错误。

数据库审计系统部署架构

部署方式基本都支持旁路部署的方式,通过交换机端口镜像,将数据库的流量镜像到审计系统中,在不支持交换机端口镜像的环境下,也有部分尝试支持将审计系统串联在数据库服务器和应用服务器之间获取数据库流量,一般不推荐串联的做法,对数据库或者应用服务会产生潜在的性能和稳定性有潜在威胁。

  • 旁路镜像流量方式

编辑搜图

  • 串联方式

编辑搜图

两者对比

部署方式

旁路镜像

串联

侵入现有业务架构

对数据库性能影响

有一定影响

业务系统感知

无感知

需要感知代理的存在

安全性

较安全

可能暴露用户名密码

升级过程

只需升级插件,不影响业务系统

升级代理过程可能影响业务系统

轻量级、低成本数据库审计方案

在安全厂商提供的方案中,有软硬一体的交付方案和软件两种部署方案,价格也根据不同的审计规格定价不同,总体而言对于小企业来讲也是一笔不小的开销,有没有一种轻量级、低成本的方案呢?答案是肯定的。本文将提供一种基于开源抓包工具+云上存储查询分析的审计方案。

开源抓包工具+云上存储查询分析

在数据库审计方案中,对数据库流量的抓取、解析、存储、查询、告警、报表是刚性需求。在开源产品中,抓包工具可以选择Packebeat,一种开源的网络抓包工具。

Packebeat支持较多的网络协议,包括ICMP、DHCP、DNS、HTTP、AMQP、Cassandra、MySQL、PostgreSQL、Redis、Thrift-RPC、MongoDB、Memcache、NFS、TLS、SIP/SDP等协议,包含的常见的数据库和内存数据库等。

Packetbeat是通过libcap抓取网络流量,支持多种网络协议的解析,通过将网络包的分析,拆分出消耗时间和状态字段等,并将协议结果组装成统一的JSON结构。Packebeat属于ElasticSearch的Beats系列,支持将采集到的数据输出到非常多的插件中,包括elasticsearch、kafka、http、lumberjack等。

在数据存储查询分析方面,可供选择的比较多,同时满足高性能存储、查询分析、可视化、告警等需求的免运维一站式方案可以选择阿里云日志服务。

  • 审计数据的存储可以根据自身需求和等保要求选择存储时间,并且日志服务支持冷存已节省存储费用。

  • 日志服务查询分析具有大规模、免运维、低成本等特点,性能方便可以支持十亿数据秒级返回。支持完整的SQL92语法支持,对于审计场景的查询分析,事后问题追溯具有重要的意义。

  • 日志服务支持完善的可视化报表,可以进行交互式实时可视化,同时支持第三方如Grafana、Tableau、DataV等可视化系统。

  • 日志服务监控告警支持大规模日志的实时监控,具有灵活智能的告警降噪功能,在通知方面支持动态分派,用户组、值班组、排班表等功能,支持多样化的通知渠道除了传统的邮件、短信、语音等渠道外,还支持现代化的通知渠道如微信、钉钉、飞书、自定义Webhook,云上支持EventBridge、FunctionCompute等,可以多个场景使用。

部署方式

使用该方案,可以在用户端部署轻量级的采集Agent,将较重的查询分析能力、审计告警能力后移到日志服务,可以大大节省用户的服务器资源,同时可以享受在云上的免运维、高性能、低成本的服务。部署架构的总体思想是将Packetbeat和Logtail部署在可以采集到数据库流量的路径上。


采集Agent包括Packetbeat和日志服务Logtail,将抓到的审计数据上传到日志服务的Project中,根据审计场景的不同,主要分为以下部署方式:

  • RDS数据库审计场景:主要包括云上数据库的审计,是通过将Logtail和抓包工具部署在应用服务器上来进行抓包实现审计功能。

编辑搜图

  • 自建数据库审计场景:自建数据库一般是部署在企业自己的数据库服务器上,通过将Logtail和抓包工具安装在数据库服务器上实现审计功能。

  • 除了以上部署方式,也可以通过交换机端口镜像的方式,将Logtail和Packetbeat部署在可以接收端口镜像流量的服务器上,同样可以实现数据库审计。


日志查询分析

在日志服务控制台的查询页面可以进行灵活的日志查询分析,对于审计中出现的异常行为可以查看其详细操作内容,同时可以对过去任意长时间的数据(在日志库的TTL内,TTL可以由用户设置)进行高性能查询分析。

以下为采集的的数据库操作的示例,包含完整的客户端信息、服务端信息、查询语句、查询语句参数、返回结果行数等信息。

编辑搜图

分析场景,支持灵活的SQL92语法查询,比如下图可以查询过去一段时间内每种查询语句的执行数量趋势,在查询后支持多种仪表盘展示,以下为流图展示。

编辑搜图

安全审计报表,可深度自定义

在改方案中,日志服务提供了内置的仪表盘,用户也可以根据自身需求定制自己的仪表盘。

  • 审计运营中心仪表盘

  • 审计安全中心仪表盘

  • 审计性能中心仪表盘

方案优势

编辑搜图

轻量级部署

仅需根据审计场景在相应的服务器上部署Logtail+Packetbeat即可完成审计的部署,同时在日志服务通用数据库审计的控制台,可以快速安装。

灵活查询语法,支持查询+SQL92

日志服务支持灵活的查询语法,分析语法完整支持SQL 92标准,同时日志服务还提供了丰富的内建函数,比如支持包括平滑函数、多周期估计函数、变点检测函数、预测与异常检测函数等机器学习的语法和函数,可以一键式使用日子服务的机器学习能力。

大数据实时查询分析查询高性能

日志服务的具有极致的查询分析速度,可以做到十亿级数据秒级返回。同时对于大数据量的SQL分析时,支持更为强劲的独享SQL能力,支持千亿级数据的高性能分析,可以快速支撑长周期比如月维度,年维度的数据分析场景、支持每天TB级别的数据分析。在审计场景下,进行全量审计往往数据量比较大,查询性能是审计系统的重要体验因素。

同时日志服务的分析语法支持SQL的JOIN,通过JOIN语法可以方便的与其他日志库进行联合查询,可以方便的实现三层关联审计。

海量数据低成本存储,冷存满足各类长期存储

对于海量的审计数据,日志服务的存储价格为0.0115元/GB/天,同时支持秒级高性能返回;对于有长期存储,查询频次较低的场景,支持冷存储,价格低至0.005元/GB/天。日志服务的智能冷热分层存储,尤其适合审计合规的数据的存放。

完善的智能告警系统,现代化云原生的告警管理系统

日志服务告警是一站式告警监控、降噪、事务管理、通知分派的智能运维平台。包含日志/时序存储、告警监控、告警管理、通知管理等模块;具有高可用和高可靠性,同时告警服务功能免费,仅收取短信、语音两个渠道的通知费用。Saas形态的告警产品具有更全面智能的告警监控能力和告警事务降噪能力,可以有效降低告警系统的运维成本和运维人员的时间成本。

低成本,无订阅费

该方案具有低成本的优势,不收取订阅费,在审计数据采集后,仅按量收取审计数据的读写费用和存储费用,如果使用告警系统,仅产生少量的短信和语音渠道费(不使用短信和语音通知渠道不收费),相比其他包年包月的收费方式,具有较多优势。

开始使用

目前该方案在日志服务已经开始公测,在日志服务控制台首页-日志应用中可以找到入口,入口链接

编辑搜图

进入通用数据库审计后,通过简单的接入配置,即可完成数据库的审计功能。具体操作步骤可以参考官网链接

编辑搜图

编辑搜图

编辑搜图

在使用的过程中有任何问题可以加入SLS客户支持群进行提问。