Oracle 12c真正应用程序安全性和标准数据库审核-未记录警告数据库登录

Oracle 12c引入了几个主要的新安全性功能。数据编辑是一项新功能,而Real Application Security(RAS)是另一项功能。 对于Oracle,RAS是下一代虚拟专用数据库(VPD),与Oracle Enterprise Edition一起安装-不需要其他许可证。 RAS是一种新的声明性和细化授权模型,旨在用作端到端应用程序安全性的应用程序安全平台。对于那些正在开发APEX应用程序(也随企业版一起安装)的人,RAS无疑将成为不可或缺的工具。

使用RAS,开发人员可以定义安全策略,而不必创建和维护PL / SQL代码。但是,最值得注意的是,RAS扩展了安全性解决方案,以定义与数据库用户和角色分开的应用程序用户和角色。

RAS允许创建用户(包括用户名和密码)并将其存储在数据库中。 RAS用户未存储在DBA_USERS中。 RAS用户在DBA_XS_USERS中定义,其密码存储在SYS中。 XS $ VERIFIERS。

使用12.1.0.1,RAS用户还可以直接连接到数据库。似乎在12.1.0.2中,可以用允许或禁止直接数据库登录的标志定义RAS用户。由于任何数据库安全监视和日志记录解决方案都应该监视数据库登录活动,因此应该知道RAS用户不会出现在标准Oracle数据库审计中。相反,标准数据库审核由通用用户XS $ NULL承担登录活动。因为它被设计为应用程序的一部分,所以RAS拥有自己的日志记录和审核解决方案。

RAS用户的基本登录活动,但是登录在SYS.UNIFIED_AUDIT_TRAIL中。 即使未在12c中启用统一审核,也将填充SYS.UNIFIED_AUDIT_TRAIL。为什么会这样,这将是另一篇博客文章的主题。 如果您对日志记录和审核数据库登录有合规性要求,则您将需要监视SYS.UNIFIED_AUDIT_TRAIL的RAS用户活动以及RAS用户的创建(如果也没有潜在地配置RAS审核的情况)。下面的示例将帮助您入门。

通过以下内容,您可以自己测试标准数据库审核如何记录RAS用户登录:

  1. 确保启用了对创建会话的审核,如果没有启用:通过访问审核创建会话;
  2. 创建Real应用程序安全性用户

开始

XS_PRINCIPAL.CREATE_USER(NAME =>'INTEGRIGY_RAS_USER');

结束;

  1. 设置Real Application Security用户的密码

开始

XS_PRINCIPAL.SET_PASSWORD('INTEGRIGY_RAS_USER','oracle');

结束;

  1. 复查dba_users和dba_xs_users自己查看定义RAS用户的位置。
  2. 使用以下命令登录数据库:INTEGRIGY_RAS_USER / oracle
  3. 查看您的审核,并查看从XS $ NULL而不是INTEGRIGY_RAS_USER进行的登录

从sys.aud $顺序中选择* 1 desc

  1. 现在查看SYS.UNIFIED_AUDIT_TRAIL。您将看到DBUSERNAME的XS $ NULL,但您将看到 XS_USER_NAME中的“ INTEGRIGY_RAS_USER”。

选择dbusername,xs_user_name,event_timestamp

来自SYS.UNIFIED_AUDIT_TRAIL

其中xs_user_name ='INTEGRIGY_RAS_USER'

按event_timestamp排序

如果您不熟悉XS $ NULL,则在安装数据库组件Oracle XML Database(XDB)时会创建XS $ NULL。 XDB现在是12c的强制性组件,因此,数据库中必须存在XS $ NULL。 对于Oracle,XS $ NULL是一个内部帐户,表示会话中没有用户。 轻量级会话基础结构将其用于APEX,RAS和XDB,并且该用户的名称在这些模块中进行了硬编码。 因为XS $ NULL并不是真正的用户,所以该帐户只能由Oracle数据库实例访问。 XS $ NULL没有特权,没有人可以作为XS $ NULL进行身份验证,也不能将身份验证凭据分配给XS $ NULL。 

如有疑问,请通过以下方式与我们联系 [email protected]

参考文献

 Share this post

订阅RSS

将我们添加到您最喜欢的新闻阅读器中。

在Twitter上关注

获取最新更新。