Oracleデータベース内に隠されたツールキット、エンドポイント検知を回避

ポスト・エクスプロイテーション用のツールキットがコンパイルされ、Oracleデータベース内にスキーマオブジェクトとして格納されていた事例が確認されました。攻撃者はこれにより、従来のエンドポイントツールが監視対象としない場所から、基盤となるWindowsサーバー上でコマンド実行が可能になっていました。

Huntressは7月27日、Oracleデータベースサーバーが稼働するホストで認証情報窃取のアラートが発報したことを受けて侵入を検知し、8月5日に分析結果を公開しました。侵入経路は、Apache Tomcat上で稼働する公開向けJavaアプリケーションのオートコンプリート検索機能に存在したSQLインジェクションでした。

脆弱性は関与していませんでした。このアプリケーションは、Javaオブジェクトを作成する権限を持つアカウントを使い、Java Database Connectivity(JDBC)接続を介して検証されていない入力をデータベースに渡していました。

Oracleを狙う攻撃について詳しくはこちら: 攻撃者がOracle WebLogicの深刻なRCEを迅速に武器化、ハニーポット調査で判明

データベース内でコンパイルされたツールキット

OracleのデータベースにはJava仮想マシン(JVM)が組み込まれており、Javaのソースコードをデータベースオブジェクトとして格納するステートメントが用意されています。攻撃者はこのステートメントをインジェクションポイント経由で送り込み、Oracleがそのコードをコンパイルしてスキーマオブジェクトとして格納しました。

このツールキットは「khunt」と名付けられています。モジュール名やディスクに書き込まれたファイルの命名規則に由来する名称です。

構成要素には、任意のOSコマンドを実行するためのWindowsコマンドシェルを開くモジュールと、Oracleの内部ユーザーテーブルを読み取ってユーザー名とパスワードをファイルに書き出す認証情報ダンパーが含まれていました。

そのほかにも、2つのファイルエクスプローラー、unzipユーティリティ、ツールキットが稼働中かどうかを確認する疎通確認機能、そして基盤となるJavaメソッドを呼び出すための一連のPL/SQLラッパーが用意されていました。

この手法自体は目新しいものではありませんが、Huntressは実際の攻撃で使われた事例が文書化されているケースはこれまで稀だったと指摘し、今回の攻撃における新規性の一つだとしています。

エンドポイントツールが見ていない領域

攻撃者はWindowsコマンドシェルを開くことでデータベースからOSへと侵入範囲を広げ、SYSTEM権限を得ていることを確認しました。その後PowerShellを使ってWindowsのレジストリツールを呼び出し、SECURITYおよびSYSTEMハイブをコピーしたほか、稼働中のサービスを列挙し、Extensible Storage Engineユーティリティを使ってSAMおよびSECURITYハイブもコピーしました。

Huntressは、これらのハイブが認証情報のダンプおよびおそらくは持ち出しのために準備されたものと評価していますが、これは確認された窃取ではなく、あくまで試みだったとしています。Apacheのアクセスログから、研究者らはこれらのリクエストを単一のIPアドレスにたどることができました。

Huntressが強調しているのは検知面の問題です。ツールキットをファイルやメモリ常駐型のペイロードではなくデータベースオブジェクトとして格納することで、大半のセキュリティツールの監視範囲から外れてしまいます。エンドポイント製品はプロセスやバイナリ、ファイルに焦点を当てており、Oracle内部のJavaクラスやPL/SQLラッパーは対象にしていないためです。

同社によれば、これによりデータベースは、攻撃者がデータを問い合わせる対象から、そこを足場に活動できる拠点へと変貌します。

「このような攻撃を避けるためには、フォームがインジェクション可能な状態になっていないことを確認することが重要です」とHuntressは記しています。「あらゆる入力に対して適切な入力サニタイズとクエリのパラメータ化を実践してください。また、クエリを実行できる権限を持つユーザーに過剰な権限が付与されていないことを確認することも重要です」

翻訳元: https://www.infosecurity-magazine.com/news/khunt-toolkit-oracle-database-sql/

ソース: infosecurity-magazine.com