网站首页 > 技术文章 正文
纵观绝大多数的数据库安全事件发生后,都无法进行有效的追溯和审计。而在数据价值持续升温的今天,数据库安全审计是信息安全的基础防御手段。
数据库审计系统主要用于对数据库的各类操作行为的监视并记录,通过对SQL语句和语法的分析,实时地、智能地解析对数据库的各种操作,并记入数据库审计设备中,以便日后进行查询、分析、过滤,实现对目标数据库系统的用户操作的监控和审计。
这次,我们从技术层面分析下,数据库安全审计系统是如何作用于数据库的?以Oracle数据库为例。
Oracle数据库安全审计系统是部署在数据库服务器的所在网络,采用旁路监听方式截取用户访问数据库的报文,该系统是由数据采集、数据处理和安全检测三个模块组成。
1、数据采集模块
Libpcap/Winpcap 是一个系统独立的用户级别网络数据包捕获接口,并充分考虑到应用程序的可移植性。Oracle 数据库默认监听端口是1521,客户端和服务器端使用TNS协议进行网络通信,如会话连接/断开、用户登录/退出、安全认证、操作信息请求/回应等。TNS协议对外不完全公开,每一版本都有差别。
2、数据处理模块
本文通过对Oracle 11g数据库的TNS协议V314版本进行解析,完成从TNS协议包中提取操作信息及用户名的行为。TNS协议V314版本的基本结构如图1所示:
图1 TNS数据包基本结构
Oracle 数据库客户端发起连接,服务端返回四种状态:接受、拒绝、重新发送、重定向连接。针对Oracle客户端建立连接查询的过程进行拆解,一个典型的TNS登录会话过程,如图2所示:
图2 TNS会话
对TNS会话过程抓包分析,除报文采用的 Oracle的机密机制对数据库进行加密之外,其它类型的报文都是采用TCP/IP协议的明文进行传输,包含源IP、目标IP、端口、服务标识SID、数据库账号、操作指令select、update、结束标识等信息。由于TNS会话过程,大多采用明文进行传输,因此从TNS数据包中可以提取用户操作信息的方法,如表1 所示:
表1 TNS提取用户操作信息
系统首先检测新用户登录数据库,解析登录数据包,提取数据包的源IP 、目标 IP 、源端口号、目标端口号和登录用户名。然后创建一个Hash表,把源IP、目标IP、源端口号、目标端口号映射为一个Hash值作为Hash表的键,用户名作为值,键和值存在唯一对应关系。对于后面不断采集的含有SQL语句的数据包,把其源IP、目标IP、源端口号、目标端口号同样映射为一个Hash值,如果其与Hash表中某个键相同,则此键对应的用户即为此SQL语句的操作用户。此方法降低了系统对设备的性能要求,又实现了实时审计的功能。
3、安全监测模块
由于SQL注入等违规行为与 SQL语句的语法结构有很大关系,系统通过检测SQL语句的基本结构、条件语句的值以及相关关键字,实现了对SQL语句的安全检测。还可以通过关联规则发现用户正常行为规则,凡是不符合此规则的用户行为即可判定为异常行为。
美创科技通过多年数据库安全和数据安全实践认知,以安全事件为中心,以精确审计和全面审计为基础,构建数据库安全审计。实时监控针对数据库的操作行为,及时告警,并通过大数据搜索引擎solr技术高效查询审计报告、定位事件原因,遵从等保、分保、GLBA、HIPAA、PCI-DSS、SOX等国家及行业法案要求。
场景部署举例
美创数据库安全审计系统区别于其他的审计,有以下特征:
支持核心审计:通过在数据库器上安装代理,精确审计到直接登入数据库的操作行为。
支持三层关联:通过B/S三层架构识别工具EIDM,能够解析中间件的信息,让审计系统能够审计到三层架构下浏览器终端的信息,而非中间件的信息。
查询使用大数据搜索引擎:美创数据库安全审计系统提供基于Solr的搜索引擎的搜索功能,能够按照客户需求提供简单搜索,扩展搜索和高级搜索,能够根据客户搜索的条件搜索特定的安全事件信息。
安全审计信息翻译:美创数据库安全审计系统提供了安全审计信息翻译引擎,转化成可以理解的业务术语,方便阅读。
猜你喜欢
- 2024-10-21 Docker安装部署Oracle/Sql Server
- 2024-10-21 Ubuntu 系统上使用docker安装Oracle
- 2024-10-21 超详细的各种数据库默认驱动、URL、端口总结
- 2024-10-21 漫画——你还记得原生的JDBC怎么连接数据库吗?
- 2024-10-21 Jsp九大内置对象,三大指令,七大动作的具体功能——你都知道吗
- 2024-10-21 详解Oracle 网络服务 oracle网络服务名配置
- 2024-10-21 「首席看架构」用GoldenGate创建从Oracle到Kafka的CDC事件流
- 2024-10-21 端口操作指南 端口知识
- 2024-10-21 使用docker拉取配置oracle12c,体验不一样的感觉
- 2024-10-21 服务器常用端口及作用详解 常用的服务器端口及名称
你 发表评论:
欢迎- 05-23浅谈3种css技巧——两端对齐
- 05-23JSONP安全攻防技术
- 05-23html5学得好不好,看掌握多少标签
- 05-23Chrome 调试时行号错乱
- 05-23本文帮你在Unix上玩转C语言
- 05-23Go 中的安全编码 - 输入验证
- 05-2331个必备的python字符串方法,建议收藏
- 05-23Dynamics.js – 创建逼真的物理动画的 JS 库
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)