Oracle DBへの新種攻撃手法、Black Hatで発表

米国で開催のセキュリティカンファレンス「Black Hat」では、Oracle製品のセキュリティホールに関する2つのブリーフィングが予定されている。

» 2007年02月28日 07時00分 公開
[Lisa Vaas,eWEEK]
eWEEK

 2月28日から3月1日までワシントンで開催されるBlack HatにOracleが登場する。このセキュリティカンファレンスではOracle製品のセキュリティ(あるいはセキュリティの不備)に関する2つのブリーフィングが予定されている。

 情報セキュリティサービス会社、Argenissの創業者であるシーザー・セルード氏は、「Practical 10-Minute Security Audit: The Oracle Case」(10分でできる実用的セキュリティ監査:Oracleの場合)と題されたプレゼンテーションで、Oracle製品に関して少なくとも1つの脆弱性と攻撃コードを発表する予定だ。

 これに関連するテーマとして(Oracle製品にフォーカスしたものではないが)、セキュリティ/コンプライアンスベンダー、Impervaの共同創業者であるアミチャイ・シュルマンCTO(最高技術責任者)は、「Danger from Below: The Untold Tale of Database Communication Protocol Vulnerabilities」(下からの危険:データベース通信プロトコルの脆弱性の知られざる事実」と題されたブリーフィングを行う。

 しかしOracleにとって最悪の発表は、デビッド・リッチフィールド氏のプレゼンテーション「Advanced Oracle Attack Techniques」(Oracle攻撃の高度なテクニック)になりそうだ。

 データベースセキュリティの専門家であるリッチフィールド氏は、カーソルインジェクションを用いた新たな攻撃テクニックを発見した。これは、どんなOracleユーザーでもデータベース管理者の権限を取得した後、任意のSQLを実行することができるというもの。リッチフィールド氏は電子メールによる取材の中で、「この手法は脆弱性を利用したものではなく、Oracleのすべてのバージョンに対して有効だ」と述べている。

 英サリーに本社を置くNGSS(Next Generation Security Software)の共同創業者でマネージングディレクターを務めるリッチフィールド氏によると、低レベルの権限でのPL/SQLインジェクションを悪用する方法について話す予定だったが、情報開示の倫理的責任という観点からこの方針を断念したという。すなわち、この攻撃手法は2つの未パッチの脆弱性を利用するものであるからだ。

 リッチフィールド氏とOracleはこの数年間、セキュリティをめぐってしばしば衝突してきた。Black Hat 2006では、リッチフィールド氏は、容易に攻撃を実行できることを示す詳細なデモを含む技術的説明を行った。Oracleは激しく反発し、無責任で利己的な理由で自社の顧客を危険にさらしたとして同氏を非難した。

 リッチフィールド氏は2006年11月、データベースコード内に放置されたカーソルを操作すれば、センシティブなデータを暴露することができると警告した調査報告書を公表した。

 この攻撃テクニックは「放置カーソルの取得」と呼ばれ、DBMS_SQLで作成/利用したカーソルを閉じなかった場合に攻撃を仕掛けることができるというもの。DBMS_SQLはOracleのパッケージで、ダイナミックSQLを用いてデータ操作言語やデータ定義言語をパース(構文解析)するためのインタフェースを提供する。

 リッチフィールド氏は先週末、未パッチの脆弱性に頼らずに、この攻撃を実行する方法を発見した。同氏は2月24日、このテクニックに関する新しい報告書「Cursor Injection: A New Method for Exploiting PL/SQL Injection and Potential Defences」(カーソルインジェクション:PL/SQLインジェクションを悪用するための新手法と防御策)をPDF形式で公開した。この新しい攻撃テクニックは、現在知られているOracleデータベース攻撃手法のどれとも異なるものである。Burton Groupの上席セキュリティアナリスト、ピート・リンドストロム氏は、リッチフィールド氏の発見を、毎日のように際限なく報じられるバッファオーバーフローの欠陥に対比している。

 「新しいバッファオーバーフローの脆弱性は、セキュリティコミュニケーションの知識ベースを何ら拡大するものではなく、ユーザーのリスクを増大させるだけである」とリンドストロム氏は指摘する。

 「大量のデータをプロセスに投げ込んで、プロセスが壊れるのを待つという、誰でもできるような手法とはまったく異なる新タイプの攻撃手法が現れた場合に、人々はアプリケーションが攻撃される新たな手法を学ぶことができるのだ」(同氏)

 リッチフィールド氏は電子メールの取材で、「この発見は、Oracleユーザーがこれまで抱いてきたセキュリティに対する信頼を打ち砕くものだ。Oracleは多くのアドバイザリを出しているが、ユーザーは一部の脆弱性にパッチを適用するのを避けている。攻撃者が脆弱性を悪用するには権限を昇格する必要があるので、危険性は低いとユーザーが考えているためだ」と述べている。

 「SQLインジェクションの欠陥を悪用するのに、必ずしも関数を作成する能力(高レベルの権限)が必要でないことを証明することにより、パッチの適用を妨げてきた障害が取り除かれる」(同氏)

 「このため、OracleはSQLインジェクションの脆弱性の危険性を過小評価するわけにはいかない」とリッチフィールド氏は続ける。「Oracleはもはや、SQLインジェクション脆弱性の中でもこれとこれは、攻撃者が関数を作成できなければ悪用されることはない、などと言えなくなった」。

 リッチフィールド氏は報告書の中で、Oracleが危険性を過小評価している例を指摘している。これは、Oracleが2006年10月にCritical Patch Updateで公表した「SDO_DROP_USER_BEFORE」トリガの脆弱性に関するものである。「この警告のリスクマトリックスのセクションでは、攻撃者がこの欠陥を悪用するにはCREATE PROCEDURE権限がなければならないと述べられている。しかし実際にはそうではない」と記している。

 報告書には、コードの視点から攻撃の仕組みが詳細に述べられている。このテクニックがOracleデータベースを攻撃するのに利用されるリスクを軽減する方策として、リッチフィールド氏は報告書の中で(10ページ目)、許可されていない操作を防ぐトリガを利用することにより、DDL(Data Definition Language)を使って誰が何をできるかを制限するよう提案しており、そのためのサンプルトリガのコードも提供している。

 リッチフィールド氏によると、今回のプレゼンテーションでは、新しい攻撃テクニックの仕組みを示す予定だという。さらに、攻撃者が関数を作成できる場合にのみ悪用可能であるとOracleが言ってきた幾つかの脆弱性を検証し、Oracleの主張が間違っていることを示すつもりだとしている。

 リッチフィールド氏の発見に対して、セキュリティ専門家らのブログの間で支持が広がっている。Oracleのセキュリティの専門家として有名なピート・フィニガン氏は最近のブログで、「これは非常に巧みな攻撃テクニックだ」と記している。

 なお、本記事掲載時点までにOracleからコメントは得られなかった。

Editorial items that were originally published in the U.S. Edition of “eWEEK” are the copyrighted property of Ziff Davis Enterprise Inc. Copyright (c) 2011. All Rights Reserved.

注目のテーマ