火狐体育官方版

加强技术投入,共享技术成果

火狐体育官方版:众至技术开放区:如何快速低成本实现数据库安全审计


更新日期:2022-07-16 06:44:04 来源:火狐体育官网app下载ios 作者:火狐体育娱乐app下载

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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