您如何防止 Oracle 外部表中的恶意 PREPROCESSOR 攻击?

dot*_*dot 7 oracle security

我是一名新的 DBA,最近我发现了 Oracle 中使用 PREPROCESSOR 功能的外部表选项(http://download.oracle.com/otndocs/products/database/enterprise_edition/utilities/pdf/xtables_preproc11g_1009.pdf)不幸的是,此功能在我们的休息室中似乎非常有用,但似乎非常危险,因为可以访问操作系统(或远程......)的人可能会利用它来导致数据库受到损害,甚至最糟糕的是 - 整个操作系统。

我已将此功能的访问权限限制在最低限度,并撤销了可能允许外部访问操作系统(extproc、java 等)的任何其他权限

但是,有时我们必须使用此功能,这就是我问你们两个主要问题的地方:

  1. 你如何使用这个邪恶的功能来防止恶意攻击?
  2. 假设安全机制出现故障,有哪些方法可以检测到有人以邪恶的方式使用了此功能?可以看到什么样的查询(或它们的内容)?

谢谢 (:

Gai*_*ius 5

甲骨文已执行从SQL的外部代码的能力的时间- EXTPROCs数据磁带,等等。你说

可以访问操作系统(或远程......)的人可以利用它来导致数据库受到损害

但这究竟意味着什么?oracle可以作为用户访问操作系统的人可以直接访问您的 DBF(它们只是磁盘上的文件),可以直接附加到 SGA,可以进行备份和复制,可以监听网络流量(如root)。对于恶意开发人员,他们可以在 PL/SQL 中为所欲为并对其进行包装。我不明白您是如何通过使用此功能引入新漏洞的。如果它使您的工作或用户的工作更轻松,那就去做吧。


Lei*_*fel 4

如果用户有权访问操作系统和包含 PREPROCESSOR 程序的文件夹,那么理论上他们可以执行 Oracle 操作系统用户可以执行的任何操作。

  1. 通过阻止对操作系统的这种级别的访问来防止这种情况发生。

  2. 通过监视对操作系统和文件夹的访问来监视这一点。