与光标鼻息相关的风险

已经识别了Oracle数据库的新攻击向量与利用未正确关闭的DBMS_SQL游标相关。 这种攻击的名称是"摇晃游标咆哮。" 可以找到David Litchfield关于该主题的论文 这里 .

利用这种类型的漏洞是有限的,需要满足以下所有条件 -

  1. 使用适当的身份验证直接SQL * NET连接到数据库
  2. 在具有定义权的程序包或过程中执行的光标
  3. 通过DBMS_SQL使用动态SQL
  4. 无法更改解析的SQL语句,只能更改绑定变量值
  5. 光标在逻辑分支或事件中未正确关闭。

DBMS_SQL包通常仅用于动态SQL语句,即在运行时生成(例如,复杂搜索)或动态设置表/查看名称或列名。 DBMS_SQL的这些典型用途不会为攻击者或重大安全漏洞提供大部分机会。

  • 大约90-120 标准Oracle数据库包 在Oracle 9.2和10.2中使用DBMS_SQL和一些这些包可能很容易受到这种类型的攻击。 大多数地方的Oracle代码实际上很好,即使在由于性能问题导致的异常发生时,确保光标也会关闭。 如果没有广泛的代码审查,难以确定哪个软件包可能是易受攻击的,因为所以权利是"inherited"来自呼叫包。 安全研究人员可能有一个疯狂的争夺,以查找任何此类漏洞,并且大多数人现在应该向Oracle报告。 我的假设是,几个包装或职能具有低风险类型问题,但没有任何重要的问题。
  • Oracle应用程序11i. 具有非常少量的软件包,具有定义权限,否则没有包含DBMS_SQL的软件包。 因此,没有与Oracle应用程序11i相关的风险。

基于漏洞的条件,并且可以利用的SQL语句的类型,这种攻击矢量实际上是一个非问题。 是的,在某些应用中会有一些实例,但实际上,并不太多。 您应该更关注SQL注入问题,而且使用DBMS_SQL包的使用而不是andling光标粪便。

媒体和博主似乎似乎跳上了潮流,并广泛报道了这种新攻击载体的存在。 似乎微软不再是"坏安全海报男孩"并且甲骨文在过去几年中占据了大多数批评,即使这种特殊的攻击矢量与差的编程比数据库中的固有缺陷更相关。

 Share this post