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

2022-05-10 04:36 428 浏览

本文主要介绍使用日志服务借助开源工具来搭建一套轻量级低成本的数据库审计方案。

目标读者

对于自建数据库或者云数据库有审计需求的开发运维、安全运维人员。

数据库审计需求背景

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

上图参考自安全牛。

数据库安全需求

在数字经济时代,数据资源成为经济发展的关键要素,无论是互联网行业还是传统行业都在践行信息化、数字化、虚拟化。根据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等。报表内容包括数据库访问情况,性能状态,语句分布,风险分布等。

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

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

开源抓包工具

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

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

云上存储查询分析

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

方案架构

部署方式

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

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

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

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

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

方案优势

轻量级部署

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

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

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

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

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

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

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

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

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

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

低成本,无订阅费

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

方案实施

前提条件

已开通阿里云日志服务

操作步骤

步骤一:进入通用数据库审计

在日志服务控制台首页-日志应用中可以找到入口,入口链接。

步骤二:配置通用数据库审计

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

步骤三:日志查询分析

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

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

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

步骤四:查看安全审计报表

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

  • 审计运营中心仪表盘

  • 审计安全中心仪表盘

  • 审计性能中心仪表盘


分享:
相关内容
相关推荐
mysql
热门内容
  • 如何解决[Docker管理器]运行时发生错误!
    解决办法:返回主页,点击右上角修复。或者等待10分钟自主会修复!
  • 宝塔防火墙禁止境外访问,禁止境内访问讲解
    一、禁止境外访问,禁止境内访问简介首先说明一下:禁止海外访问--->禁止除大陆之外的地区访问禁止境内访问---> 禁止国内访问二、防御设置2.1 禁止海外访问 (全局开关+站点开关=开启)这里全局开关需要开启。这个开启只是说开启了全局的。如果需要网站开启需要在网站里面开启才能让网站禁止海外访问两边开启成功之后才是真正的给这个网站开启了禁止海外访问2.1 禁止境内访问 (
  • 如何解决宝塔安装出现"下载宝塔运行环境失败,请尝试...
    用的是阿里云服务器,安全组该放行的端口都放行了您好,您那边使用的是哪个地区的服务器呢?您那边执行下面命令绑定下hosts然后重新安装看下是否正常echo "36.133.1.8 www.bt.cn download.bt.cn api.bt.cn dg1.bt.cn dg2.bt.cn" >> /etc/hosts
  • bt宝塔Nginx反向代理详细图文教程
    概念:反向代理:反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。(
  • 如何解决ubuntu20.04编译安装nginx失败
Tags标签
联系方式