セキュリティ
攻撃者はもはや製品を「壊す」だけでなく、その「仕組み」を悪用する準備を整えている、とOracleサポートの専門家は指摘します
人気記事
2026年7月下旬、Oracleは1,449件のパッチを含む大規模なセキュリティパッチ群 を公開し、データベース管理者にとってはおそらく前代未聞の「厄日」となりました。
しかし、セキュリティプラットフォームHuntressが報告したOracleデータベースサーバーでの認証情報窃取事件については、これらのパッチのどれ一つとして防げなかったことが判明しています。
「完全にパッチが適用され、すべてが正常に機能していたとしても、この攻撃は起きていたでしょう」と、OracleのサードパーティサポートベンダーであるSpinnaker Supportのサイバーセキュリティ責任者、Craig Savage氏はこの攻撃について語りました。
2026年7月、Huntressは認証情報窃取活動の発生を検知したと同社のブログ記事で明らかにしています。この攻撃は、名前が明かされていない組織の一般公開Webアプリケーションを狙った「単純な」SQLインジェクションによるものでした。
SQLインジェクションには長い歴史があり、適切な情報セキュリティ対策を行っていれば容易に回避できるはずですが、その後に起きたことはより異例なものでした。
「初期アクセスを獲得した後、攻撃者はOracleデータベース内のJavaソースを介して、khuntと呼ばれる侵害後ツールキットを投下しました。これはこの攻撃における新しい側面です」とHuntressは述べています。
コードオブジェクトをOracleのデータベースエンジンに直接ロードできるため、攻撃者は自分たちのツールキットをデータベースに直接アップロードすることができました。
「これは、oraexecと呼ばれる手法などを通じて、長年にわたり議論・解説されてきた技術です。しかし、この手法が実際の攻撃で使用された事例が記録されることはこれまでほとんどありませんでした」とHuntressは述べています。
Oracleのデータベースには組み込みのJava仮想マシン(JVM)が搭載されており、ユーザーはJavaのソースコードをデータベースオブジェクトとして保存することができます。「今回の事件で攻撃者が行ったのはまさにこれです。彼らはOracleデータベースに対し、[Java実装である]Tomcatから[データベース]接続を通じてCREATE JAVA SOURCEコマンドを送り込みました。そこに含まれていたJavaソースコードは、そのままデータベース内部で保存スキーマオブジェクトとしてコンパイルされたのです」と同社は説明しています。
The Registerの取材に対し、Savage氏は次のように語りました。「Oracleには独自のJDKがあります。データベース内でOracle Javaプログラムをビルド・実行することができるのです。しかし、これはWebサーバーが行えるようにすべきものでは決してありません。実際、本番のOracle環境では、この機能はロックダウンされているべきです。たとえば、開発環境やメンテナンス期間中にのみ、一時的に再有効化すべきものです。今回のケースでは設定が甘く、セキュリティ対策も不十分でしたが、Oracle自体が侵害されたわけではありません」
Savage氏は、データベース内でJavaを実行できる権限はDBAユーザーのみに制限すべきであり、本番サーバーではコードのコンパイル機能を無効化すべきだと主張します。「もしそうしていれば、攻撃者はJavaコードをダウンロードすることはできても、JDKがそれをコンパイルできるよう設定されていなかったはずです」と同氏は述べています。
Savage氏によれば、サイバー犯罪者は単に脆弱性を発見して悪用するだけでなく、こうした正規機能を悪用しようとするケースがますます増えているといいます。
「私たちはこうした事例をますます多く目にするようになっています。サイバー犯罪集団は今や、こうした製品について熟知しています。彼らは製品の壊し方を知っているだけでなく、もし有効化されていれば悪用できる正規の機能についても把握しているのです。それこそが今回私たちが目にしたことです。これは警鐘と言えるでしょう。Oracleは約1,450件ものパッチを公開しました。多くの組織はパッチ適用、パッチ適用と、それだけに意識を集中させがちですが、基本的な対策も怠ってはならないのです」と同氏は締めくくりました。®