OpenAIのAIモデル、攻撃者にroot権限を与えるLinuxカーネルの脆弱性948件を発見

OpenAIは、Linuxカーネルのローカル権限昇格(LPE)の脆弱性948件を、発見から検証、悪用、パッチ作成まで自律的に実行するパイプラインを公開しました。

この実行には近日公開予定のサイバーモデルが使われ、APIクレジットで1,213,430ドルがかかりました。エクスプロイト1件あたり約1,279ドルです。各エクスプロイトを使うと、権限のないローカルユーザーが標準的なデスクトップディストリビューション上でrootを取得できます。

パイプラインは、発見、動的検証、悪用可能性の評価、パッチ生成、人間によるレビューの5段階で構成されています。偵察を担うScoutエージェントが選んだ監査対象は5,034件で、約280万行、カーネル全体の約7%にあたります。続いてAnalystエージェントが、重複を除いた候補の指摘事項2,308件を12時間で出力しました。

トリアージを担うエージェントは、概念実証(PoC)コードを作成し、Kernel Address Sanitizer(KASAN)を有効にした仮想マシン上で実行しました。30時間以内に1,724件のメモリ破壊状態を再現しています。これは候補の74.7%です。

却下された指摘のうち、モデルの分析が誤っていたものはわずか3.1%でした。この種のバグはカーネルで繰り返し発生しています。たとえばDRM GEMのuse-after-freeでは、公開されたエクスプロイトチェーンがpipe_bufferの配列をスプレーしてrootを奪取しました。

スクリーニングを担うエージェントは、検証済みの候補を、情報漏えいの候補313件とLPEの候補1,238件に絞り込みました。エクスプロイト開発を担うエージェントは、これらをSupervisor Mode Execution Prevention(SMEP)、Supervisor Mode Access Prevention(SMAP)、Kernel Address Space Layout Randomization(KASLR)、HARDENED_USERCOPYに対して試しました。

その結果、情報漏えいのPoCが291件、動作するLPEエクスプロイトが1,169件生成されました。バリアント分析でこれらを整理すると、948件の個別の根本原因にまとまり、それぞれにパッチが用意されました。

最もコストがかかったのはエクスプロイト段階で、775,929ドルでした。1候補あたりの平均は、情報漏えいが271ドルだったのに対し、LPEは558ドルです。LPEではヒープの配置設計、オブジェクトの選定、緩和策の回避が必要になるためです。

失敗した試行のコストは成功した場合よりはるかに高く、その多くはレース条件によるものでした。同様のプリミティブは、nftablesのuse-after-freeにも見られます。この脆弱性では、偽のnft_expr_ops構造体とcommit_credsを使ってrootに到達しました。

エージェントは、エクスプロイト166件のサンプルの中で、少なくとも10種類の新しい攻撃手法を使っていました。内訳は、カーネルキャッシュのスプレー用の永続的な弾性オブジェクトが2種類、ページグルーミング手法が2種類、データのみで権限昇格を行う手法が5種類、任意の型混同が1種類です。

これ以前のAI支援による取り組みには、kmalloc-256の再利用とcore_patternの上書きを利用したnet/schedのゼロデイがありますが、既知の手法を使っていました。

攻撃対象領域が狭められたGoogleのkernelCTF環境では、このパイプラインは情報漏えいのPoCを25件、LPEエクスプロイトを21件生成しました。費用は約32,936ドルです。

さらに、上流では修正済みだったものの、使用したリリースビルドには反映されていなかったQEMU TCGの欠陥も発見し、悪用しました。過去のPwn2Own(20,000ドル)とTyphoonPWN(70,000ドル)の報奨金を948件のエクスプロイトに当てはめると、仮想的な総額は1,890万〜6,630万ドルです。これは実行コストの約16〜55倍にあたります。

メンテナーの対応は迅速でした。10日後の時点で、61件のLPEが上流でパッチ適用済みとなり、43件にはステージング用のパッチがあり、299件は公開の場で議論されていました。7月にGPT-5.6 Solで実施した実行では、個別のLPEが166件見つかりました。つまり、3か月間の堅牢化が進んだにもかかわらず、新しいモデルは5倍以上の件数を発見したことになります。

品質管理上の問題も明らかになりました。初期の実行では、報告されたrootシェル200件のうち20件が、割り当てられた脆弱性とは別のゼロデイによるものでした。OpenAIは、各エクスプロイトが割り当てられた脆弱性を使っていることを確かめる独立したチェックを追加しました。

OpenAIは、パッチ未適用のシステムで低権限アカウントが使える場合、潤沢なリソースを持つ攻撃者に対してはroot権限を奪われたのと同じ状態とみなすよう勧めています。対策として、FirecrackerやgVisorによるサンドボックス化も推奨しています。

16,000以上のSOCチームがANY.RUNを導入し、脅威調査を効率化して手作業を削減しています。 チームでの導入を検討する

翻訳元: https://cyberpress.org/openais-ai-model-948-linux-kernel-vulnerabilities/

本記事は cyberpress.org の記事を翻訳・要約したものです。