众至技术开放区:如何快速低成本实现数据库安全审计

  • 2022-06-25
  • John Dowson

乐居财经讯 吴文婷1月25日,招商积余(001914.SZ)发布公告称,公司董事会收到石正林的 辞职报告。石正林因个人原因,申请辞去公司董事、总经理以及董事会战略委员会委员职务。辞职后,石正林将不再担软妹娇喘声mp3,sjz7,600749,

众至技术开放区:如何快速低成本实现数据库安全审计软妹娇喘声mp3,sjz7,600749,

一、数据库审计的重要性

数据库审计服务是一款实时监控数据库安全的产品,可以对用户访问数据库的行为进行记录、分析、报告和溯源,加强数据资产的安全性。《信息安全技术 网络安全等级保护基本要求》(GB/T 22239-2019)明确要求二级及以上的信息系统“应在网络边界、重要网络节点进行安全审计,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计。

作为一种审计工具,其检测策略在数据库审计中扮演着重要角色。检测规则又是策略中的最小单位,所有审计都是通过配置对应的规则来完成触发,灵活运用规则可以大大提高审计的效率和准确性。本文主要分享下添加数据库审计规则的一些经验。

二、数据库安全审计的规则开发思路

这里以mysql为例,从六个方面来说明下审计规则的配置,给大家作参考:

l 高危操作

高危操作主要是针对DDL(data definition language)数据定义语言,DDL 语句更多的是被数据库管理员(DBA)所使用,配置此类监控规则,对SQL操作进行细粒度的审计告警,能够快速定位发现SQL执行过程中的风险行为,如DBA在没有充分准备,不清楚命令厉害关系的情况下,直接到线上执行一些DDL操作,数据库审计能够及时的告警提示,对于避免运维生产事故尤为重要。

规则内容重点监测以下几种操作:DROP DATABASE、DROP TABLE、DROP INDEX、DROP USER MAPPING、TRUNCATE、ALTER DATABASE、ALTER TABLE、CREATE DATABASE、RENAME TABLE等。

l 数据泄露或篡改

此类策略可以从两个方向进行配置审计规则:一是对全表的的Update、Delete等操作;以及大量的数据请求,如查询的行数大于或等于100万行、返回或更新的行数大于或等于5万。具体的数值控制,可以根据业务情况进行调整,以达到风险监测及告警效果准确性。二是监控获取系统用户登录密码的行为,以及用户表(删除、插入、更新)的操作;此外,也可以通过SIEM结合关键词对多次登录失败的事件进行监控或关联分析,来完善数据泄露的监控规则。

l 不规范语句

不规范语句主要针对DML(data manipulation language) 数据操纵语言,包括不带WHERE或LIMIT条件的DELETE 语句、UPDATE语句和查询语句;使用不含字段列表的INSERT语句;select count(*)语句。配置此类审计规则并告警,可以及时发现问题并处置,降低执行不规范语句带来的信息泄露和性能问题。

l 权限变更

角色的权限控制用户可以访问哪些资源以及用户可以对这些资源执行哪些操作。权限变更意味着原本安全环境的变化,无论是外部入侵行为,还是内部的风险操作。 权限更改都是需要关注的最重要事件之一;任何角色权限的变更都应该被审计。

权限变更主要针对DCL(Data Control Language)数据控制语言,主要的语句关键字包括 GRANT、REVOKE等。另外,涉及到用户角色的DDL操作也可以划分到该类策略中进行审计,像CREATE USER、CREATE USER MAPPING、CREATE USERGROUP、CREATE ROLE、DROP USER、DROP USER MAPPING、DROP USERGROUP、ALTER USER、ALTER USER MAPPING、ALTER USERGROUP等。

l 低性能语句

对执行耗时大于5000毫秒的语句进行审计告警,可以查找出执行效率低的语句,进行优化。通常也能发现一些基于时间盲注的SQL注入攻击行为。

l SQL注入

目前,大多数据库审计工具仍然是基于正则表达式识别SQL注入特征。正则表达式是一种“傻瓜式”的通用字符串匹配的方法,通常用于简单的场景匹配指定字符。像传统WAF一样,通常面临误报和漏报的问题。

此外,对于数据库审计来说,是如何从SQL语句中识别出SQL注入攻击性质的语句,而WAF关注的是如何从提交的http业务请求中识别出SQL语句(SQL注入)特征。清楚这一点,就会明白无法直接套用WAF那套检测SQL注入的正则表达式,同时,在写数据库审计的正则表达式时,也要注意过于通用或者模糊的字符串匹配产生的大量误报问题。

为减少误报,我在配置SQL注入审计规则中,主要把握以下四点:

1. 配置“精确匹配”的规则

如在基于时间的盲注中,可以对sleep()、benchmark()函数关键词进行精确匹配,攻击者通常以此猜测被攻击数据库的表结构、数据类型、数据的值等,以作为进一步攻击的基础;如对SQL 中包含获取数据库用户名的函数:USER 或 CURRENT_USER进行精确匹配。攻击者可以通过这些函数获取当前数据库用户信息,为口令猜测、注入提权等提供数据依据;再如对文件操作函数LOAD_FILE关键词和INTO OUTFILE文件导出关键词的识别的规则。通常这些函数或关键词不会在业务系统中被使用,这类函数还有很多,可以全面的梳理出来,作为准确率较高的一类规则。

2. 配置“细粒度”的规则

“细粒度”包含两方面,一是根据SQL注入类型、SQL注入阶段尽量细化检测正则表达式,二是善用数据库审计规则配置功能。比如,初始阶段,攻击者通常会用单引号、and、or或者其它逻辑运算探测SQL注入,如果仅用一条检测单引号或者运算符特征的正则表达式进行匹配,在实际业务中会出现不少意想不到的误报。此类误报率较高的正则,如果结合执行SQL语句的操作类型、执行结果和响应内容,误报率便会大大较低。

3. 多条规则组合判断

根据SQL注入特征,细化出各种SQL注入检测正则,像识别联合注入、字符串函数:CHAR、LENGTH、CONCAT、SUBSTR、SUBSTRING,注释符号、运算符等,可以通过分析注入特征,用两条或两条以上的规则组合检测,会减少大量误报。如正常SQL语句:

“SELECT CONCAT(`name`,age,score_sum) FROM `student` where age >29;”,若用单条字符串函关键词规则匹配,就会产生误报。细粒度的检测正则即方便后期的优化,也方便组合使用。

4. 统计分析

联动日志分析平台,对审计日志进行统计分析,比如短时间内,同一IP大量的失败查询、出现where、order by、limit多种拼接特征等,都可以作为发现攻击的方式。

SQL注入方式及其绕过检测的姿势多种多样,规则的覆盖越全面,漏报也会越少。从注入位置的嗅探、注入类型的判断、字段数量占位信息的查询,再到爆数据库名、表名、字段名、上传webshell、执行命令等。只有对各个阶段的攻击特征进行汇总分析,形成有效的审计规则,不断丰富积累,才会较少漏报的数量。

三、快速低成本的数据库安全审计方案

这里给大家推荐一种可以快速低成本部署数据库审计平台的方案:

该方案主要有za-mysql-sniffer、logstash 、Elkeid HUB三部分组成,大致流程就是“za-mysql-sniffer”采集数据库的流量,通过TCP发送到Logstash进行处理过滤,再输出到Elkeid HUB规则引擎对数据库请求日志进行审计。 za-mysql-sniffer是众至科技近期开源的一款基于 MySQL 协议的抓包工具(项目地址:https://github.com/zz-security/za-mysql-sniffer),能够实时抓取并解析 MySQL Server 端或 Client 端请求,可将结果以json格式输出到tcp网络,输出的结果中包含目的ip、源端口、目的端口、源mac、目的mac、sql执行状态等丰富的字段信息。za-mysql-sniffer 支持多种部署方案,可部署在数据库服务器或者应用系统服务器,也可以在单独的服务器中部署,通过交换机流量镜像的方式抓取网络中的MYSQL协议内容。

Elkeid HUB 是字节跳动开源的一套规则/事件处理引擎(项目地址:https://github.com/bytedance/Elkeid-HUB ),该引擎能够对流式数据进行实施处理,且通过标准化的抽象语法/规则来解决复杂的数据/事件处理与外部系统联动需求。 基于上述架构,企业可以快速构建自己的数据库安全审计能力,一套架构可覆盖私有机房、云端多种模式。众至科技将继续扩展 za-mysql-sniffer 的能力,让其支持更多的数据库协议,希望这样的工具能够帮助到更多的开发者和企业。

软妹娇喘声mp3,sjz7,600749, 买车买房娶新娘,人生开始了辉煌。在物质生活较为丰富的今天,人们对于生活品质也有了较为苛刻的追求。此时能彰显豪华的交通工具便是较为抢手的汽车,近年来年轻车友为汽车制造

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186

评论留言

发表评论