OneProxy :: Oracle SQL审计功能更新,更加实用的基于黑白名单的拦截功能

完成OneProxy for Oracle的TNS & JDBC协议兼容性后,最近着重增加了基于正则表达式的黑白名单拦截功能,穿透模式与旁路流量模式相比,可以对敏感信息的访问进行实时拦截,而非简单的事后审查,将数据库SQL审计工作进行前置,能最大化地保障企业信息安全。

在OneProxy for Oracle中,可以在两个层面对数据访问进行控制,或者进行用户名和口令之外的身份验证。与数据库端的审计功能或触发器机相比,OneProxy无须在数据库机器上安装代理程序,也无须在Oracle数据库上执行安装配置脚本,仅仅需要知道数据库服务器的IP地址、监听端口及实例名。以下几个层面的验证拦截工作,完全由OneProxy来实现:

  • 网络隔离:在布署OneProxy for Oracle后,可以限制其他机器对Oracle监控端口的网络访问。OneProxy支持OCI应用及工具和JDBC应用及工具直接访问,仅需要将TNS连接信息中的主机地址和端口更改为OneProxy所在的主机和工作端口即可。在网络层进行物理隔离,是数据库安全中非常重要的一步,没有物理隔离就没有安全可言。
  • 登录验证:一般情况下,拥有Oracle用户名和密码就可以访问数据库,而用户名和密码又往往出现在应用程序的配置中,可以说是非常不安全的。通过OneProxy可以在登录时,进行用户名和密码之外的身份验证,比如IP地址、机器名、操作系统用户名、程序名、登录时间等,结合Windows域管理系统可以对客户端的身份进行认证,对不符合规定的登录进行拦截,禁止其登录Oracle数据库。
  • 访问验证:通过登录验证后,可以对部份包含敏感信息的关键业务表进行权限配置。比如只允许某个程序访问某个表,或只允许某台机器或某个IP访问某个表,可以根据IP地址、机器名、操作系统用户名、程序名、登录时间等信息对表进行访问控制,结合Windows域管理系统可以对客户端的身份进行认证,对不符合规定的访问进行SQL拦截,禁止其查询表中的数据,杜绝信息泄露。
  • 应用验证:通过OneProxy可以对应用程序进行身份认证,应用在连接到Oracle后,可以依据和OneProxy共同协商的算法来计算一个动态口令(类似于RSA Token机制),发一个特殊的SQL语句来对数据库访问进行解锁,在解锁之前的任何SQL访问都会被拒绝(此功能需要应用进行适当定制)。
  • SQL白名单:OneProxy可以先收集应用程序SQL的特征信息,并记录在特征库中。在进行足够时间的特征收集后,可以开启白名单,此时只有符合特征库的SQL语句才可以访问,其他的SQL访问可以进行实时拦截,以确保数据库的安全。就算使用SQL*Plus、PL/SQL Developer等工具连上去了,也只能发送和特征库相匹配的SQL语句,其他SQL语句无法被执行。

险拦截功能外,OneProxy可以记录所有前端发送的SQL语句,并对绑定变量的值进行还原,以方便审计。比如使用SQL*Plus工具登录Oracle数据库,在OneProxy中会记录以下两条SQL语句:

[A][2017-03-28 21:05:08][192.168.1.136:9344][XE][WORKGROUP\ANYSQL][loufangxin][00000][1][2493420359][1][2] BEGIN DBMS_OUTPUT.DISABLE ; END ;
[A][2017-03-28 21:05:08][192.168.1.136:9344][XE][WORKGROUP\ANYSQL][loufangxin][00000][1][1445192941][1][1] BEGIN DBMS_APPLICATION_INFO.SET_MODULE(‘SQL*Plus’ /*:1*/ , NULL) ; END ;

可以方便地使用Logslash将SQL审计日志收集到ELK中进行分析和实时追踪,OneProxy也支持将访问日志写入到OneSQL数据库中,并利用OneSQL中自带的中文分词插件进行全文搜索。平民软件也为商业用户提供一个简洁的日志查询工具,也可以和用户及合作伙伴共同来提供优秀的日志分析平台。