百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

Oracle数据库安全审计系统是如何旁路监听的?

sinye56 2024-10-08 16:47 2 浏览 0 评论

纵观绝大多数的数据库安全事件发生后,都无法进行有效的追溯和审计。而在数据价值持续升温的今天,数据库安全审计是信息安全的基础防御手段。

数据库审计系统主要用于对数据库的各类操作行为的监视并记录,通过对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的搜索引擎的搜索功能,能够按照客户需求提供简单搜索,扩展搜索和高级搜索,能够根据客户搜索的条件搜索特定的安全事件信息。

安全审计信息翻译:美创数据库安全审计系统提供了安全审计信息翻译引擎,转化成可以理解的业务术语,方便阅读。

相关推荐

Linux基础知识之修改root用户密码

现象:Linux修改密码出现:Authenticationtokenmanipulationerror。故障解决办法:进入单用户,执行pwconv,再执行passwdroot。...

Linux如何修改远程访问端口

对于Linux服务器而言,其默认的远程访问端口为22。但是,出于安全方面的考虑,一般都会修改该端口。下面我来简答介绍一下如何修改Linux服务器默认的远程访问端口。对于默认端口而言,其相关的配置位于/...

如何批量更改文件的权限

如果你发觉一个目录结构下的大量文件权限(读、写、可执行)很乱时,可以执行以下两个命令批量修正:批量修改文件夹的权限chmod755-Rdir_name批量修改文件的权限finddir_nam...

CentOS「linux」学习笔记10:修改文件和目录权限

?linux基础操作:主要介绍了修改文件和目录的权限及chown和chgrp高级用法6.chmod修改权限1:字母方式[修改文件或目录的权限]u代表所属者,g代表所属组,o代表其他组的用户,a代表所有...

Linux下更改串口的权限

问题描述我在Ubuntu中使用ArduinoIDE,并且遇到串口问题。它过去一直有效,但由于可能不必要的原因,我觉得有必要将一些文件的所有权从root所有权更改为我的用户所有权。...

Linux chown命令:修改文件和目录的所有者和所属组

chown命令,可以认为是"changeowner"的缩写,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组。当只需要修改所有者时,可使用...

chmod修改文件夹及子目录权限的方法

chmod修改文件夹及子目录权限的方法打开终端进入你需要修改的目录然后执行下面这条命令chmod777*-R全部子目录及文件权限改为777查看linux文件的权限:ls-l文件名称查看li...

Android 修改隐藏设置项权限

在Android系统中,修改某些隐藏设置项或权限通常涉及到系统级别的操作,尤其是针对非标准的、未在常规用户界面显示的高级选项。这些隐藏设置往往与隐私保护、安全相关的特殊功能有关,或者涉及开发者选项、权...

完蛋了!我不小心把Linux所有的文件权限修改了!在线等修复!

最近一个客户在群里说他一不小心把某台业务服务器的根目录权限给改了,本来想修改当前目录,结果执行成了根目录。...

linux改变安全性设置-改变所属关系

CentOS7.3学习笔记总结(五十八)-改变安全性设置-改变所属关系在以前的文章里,我介绍过linux文件权限,感兴趣的朋友可以关注我,阅读一下这篇文章。这里我们不在做过的介绍,注重介绍改变文件或者...

Python基础到实战一飞冲天(一)--linux基础(七)修改权限chmod

#07_Python基础到实战一飞冲天(一)--linux基础(七)--修改权限chmod-root-groupadd-groupdel-chgrp-username-passwd...

linux更改用户权限为root权限方法大全

背景在使用linux系统时,经常会遇到需要修改用户权限为root权限。通过修改用户所属群组groupid为root,此操作只能使普通用户实现享有部分root权限,普通用户仍不能像root用户一样享有超...

怎么用ip命令在linux中添加路由表项?

在Linux中添加路由表项,可以使用ip命令的route子命令。添加路由表项的基本语法如下:sudoiprouteadd<network>via<gateway>这...

Linux配置网络

1、网卡名配置相关文件回到顶部网卡名命名规则文件:/etc/udev/rules.d/70-persistent-net.rules#PCIdevice0x8086:0x100f(e1000)...

Linux系列---网络配置文件

1.网卡配置文件在/etc/sysconfig/network-scripts/下:[root@oldboynetwork-scripts]#ls/etc/sysconfig/network-s...

取消回复欢迎 发表评论: