攻撃者、SQLインジェクション侵害後にOracle Database内部にマルウェアを隠蔽

攻撃者はSQLインジェクションとOracleの組み込みJava機能を組み合わせ、カスタム型の侵入後ツールキットをデータベース内部に隠蔽し、基盤となるWindowsサーバー上でSYSTEM権限でのアクセスを獲得しました。

Huntressは、Oracleデータベース自体がマルウェアの隠れ家となった事例を報告しています。

このセキュリティ企業が公表したキャンペーンでは、脅威アクターがSQLインジェクションの脆弱性を悪用し、Khuntと名付けられたカスタム侵入後ツールキットを、Oracleプラットフォームの組み込みJava機能を利用してOracleデータベース内に格納していました。

Huntressは、Oracle Databaseを稼働させているサーバーで発生した認証情報窃取活動を調査する過程で、この侵入に気付きました。研究者らの調査によると、攻撃者は単にSQLインジェクションを通じてコマンドを実行するだけでなく、Oracleの組み込みJava仮想マシン(OJVM)を悪用し、データベース内部から直接悪意あるJavaコードをアップロード、コンパイル、実行していたことが判明しています。

この手法により、攻撃者は正規のデータベース機能に紛れ込みながら、侵害されたサーバーへの永続的な足がかりを維持できたとみられています。

「今回の攻撃で攻撃者が初期アクセスを獲得できたのは、典型的なSQLインジェクションのおかげでした」と、Huntressの研究者らはブログ投稿で述べています。「公開アプリケーションのオートコンプリート検索機能だけで、PL/SQL、さらにはオペレーティングシステムにまで到達できたため、未知の脆弱性を使う必要はありませんでした」

SQLインジェクションを超えた攻撃手法

この攻撃の中心となったのはKhuntです。これはJavaベースのツールキットで、攻撃者はOracleの「CREATE JAVA SOURCE」機能を使ってデータベースオブジェクトとして格納していました。Oracle Databaseには組み込みのJava仮想マシンが搭載されており、組織はこれを使って正規の業務アプリケーション向けにデータベース内部からJavaコードを実行できます。

データベース内でコンパイルされたJavaコードは、SQL文を通じて実行することで、Oracleが構成されている基盤ホスト上でオペレーティングシステムのコマンドを実行できました。データベーススキーマ内に埋め込まれたマルウェアは検知が格段に困難になる、とHuntressは指摘しています。

データベース内部からのコード実行経路を確立した後、攻撃者は認証情報の窃取を含む侵害後の活動を実行できる状態になり、実際にそれを実行しました。

Huntressが調査した事案では、攻撃者は最終的にOracle Databaseをホストするサーバーを侵害し、SQLインジェクションからSYSTEMレベルのコマンド実行へとエスカレーションしました。このレベルのアクセス権限により、攻撃者はWindowsのSAM、SECURITY、SYSTEMのレジストリハイブをダンプでき、ローカルアカウントのパスワードハッシュをオフラインで抽出できる状態になっていました。

このキャンペーンは、目立ったマルウェアの実行ファイルに頼らず、悪意ある処理をすべてOracleのネイティブ機能内に組み込んでいた点が特徴で、研究者らはこれを進化した手口であり、標的を絞った検知が必要になると指摘しています。

OracleはCSOのコメント要請に対し、即座には回答しませんでした。

侵入後ツールキットに焦点を当てた対策 


SQLインジェクションの経路が初期の足がかりを与えたものの、Huntressはより重要な教訓は侵害後に起きたことにあると主張しています。

攻撃者はSQLインジェクションを通じて単純にデータを抽出したり改ざんしたりすることもできたはずですが、代わりに長期的な永続化とリモートコマンド実行を含む形へと悪用を拡大させました。Huntressは、これは危険な進化だと警告しています。

Oracleの組み込みJVMのような機能は、エンタープライズのワークロードにとって価値がある一方、十分なデータベース権限があれば被害範囲を拡大させる恐れもあります。「この種の攻撃を避けるためには、フォームがインジェクション攻撃を受けないようにすることが重要です」と研究者らは述べています。「また、クエリを実行できる権限を持つユーザーに、過剰な権限が付与されていないことを確認することも重要です」

Huntressは、インシデント対応においてSQLインジェクションの痕跡だけにとどまらず調査すべきだと推奨しています。Oracle環境において、想定外のJavaソースオブジェクト、コンパイル済みのJavaクラス、ストアドプロシージャがないか調べることで、組み込みJava仮想マシンの悪用を示す兆候を発見できる可能性がある、としています。同社はまた、ファイルハッシュ、悪意あるJavaの痕跡、SQL文、検索キーワードなどの侵害指標(IOC)も公開し、防御側が影響を受けたシステムを特定する助けとなるようにしています。

翻訳元: https://www.csoonline.com/article/4206096/attackers-hid-malware-inside-oracle-database-after-sql-injection-breach.html

ソース: csoonline.com