oneproxy-for-oracle: 办公网络oracle审计专家

来源:互联网 发布:瓷砖设计用什么软件 编辑:程序博客网 时间:2024/05/11 13:27

1:审计功能介绍

由于oracle TNS协议不开源,所以做一个oracle的proxy是非常困难的,下面展示下oneproxy-for-oracle的效果.

首先看一下配置文件:


 

一个xml文件,非常简洁,和onecache和onevalue是一样的(onecache是redis的高性能proxy,onevalue是可持久化高性能kv数据库,在github上都是开源的,童鞋们可以直接下源码).

其中backend就是后端oracle数据库,根据sid的不同,可以分别路由到不同的后端,所以想配置多个后端的时候,这个sid是不可以相同的.为了更加安全,客户端在登录的时候,用户名必须在backend下的users中配置了才行,没有配置的用户名通过proxy登录时,proxy将直接给客户端返回错误信息,并断开连接:


ORA-50002,是我们自定义的一个错误码.

每个user后面都可以配置一个login_time_limit和workingday_only,分别表示允许客户端登录的时间和是否只能工作日登录,如果不在范围内,则proxy将直接给客户端返回错误信息,并断开连接,如下:

 

backend中的safe_tables属性配置的是这个后端的一些安全表,也就是安全等级比较高禁止访问的,如果访问,报错如下:


然后来看一下sql审计功能:

log_allsql配置1表示会将所有sql保存到文件, sqllog_dir是记录的路径,文件大小超过maxlogsize将换一个文件写入;log2db表示将数据保存到db,db地址为root属性中的sourcedb. Rule节点是根据配置的规则记录sql, SQLLength表示sql语句超过配置的长度则记录; SQLRegex就是根据配置的正则表达式来记录sql.

文件内容如下:

委屈


其中[-]开头的是符合rule规则被记录下来的, [A]开头的是记录的所有sql,也就是log_allsql="1"起的作用.

简单分析下其中的一条记录:

[-][2017-02-2819:43:09][192.168.7.234:64844][orcl.localdomain][WORKGROUP\5XUXVWKBLYZTEQL][Administrator][00000][9][1278021928][8]select * from test1

[2017-02-28 19:43:09]: sql执行的时间点

[192.168.7.234:64844]: 客户端ip和port

[orcl.localdomain]: 客户端登录的sid

[WORKGROUP\5XUXVWKBLYZTEQL]: 客户端的主机名

[Administrator]: 客户端主机的用户名

[00000]:sql的错误码(select一个不存在的表,则是00942)

[9]:  执行sql影响的行数

[1278021928] :hash值,根据这个hash值可以在http的页面中找到相应的sql(还有一个http页面,待会介绍)

[8]:  sql执行的时间,单位毫秒

select * from test1: 就是本次执行是sql了

 

2:http页面介绍

在配置文件root节点下的monitor_port属性配置的是监控页面的端口,可以直接在浏览器访问,地址oneproxy-for-oracle所在主机的ip+monitor_port, 如下:

其中statspack记录的是所有数据,realtime(10s) 是最近10秒的一些记录,10s是可以配置的.

          这里的第一列就是hash值,前文sqllog文件中的hash值和这个值是一致的,可以通过Statspack下的FindSQL,输入hash值就可以找到sql了:

下面这个是table state,记录了所有表被执行了哪些sql,SQLs列中的数字都是带链接的,直接点击就可以跳到这个表所对应的sql了 .

 

3:前后端密码分离

          支持jdbc 11gr2的前后端密码分离,可以在proxy配置一个非后端真实密码,客户端连接时只要使用这个密码就行.

          由于oci暂不支持,所以暂不多介绍.

 

4:注意点

1.   目前支持的oracle版本为11g-r2和10g r2

2.   后端主机是HPUX的,暂不支持审计

3.  上面测试结果基于linux下oracle版本11g-r2和10g r2 ,客户端win下11g和10g-r2 64位oci ,11g-r2 jdbc

 

5:联系我们

 QQ群:578757716  http://www.onexsoft.com/

1 0
原创粉丝点击