50
Linuxカーネルへの新たな攻撃が現代の防御をすり抜ける ― SLUBStickは99%の成功率を誇る
ハッカー
(画像クレジット:Shutterstock)

オーストリアのグラーツ工科大学の研究者らは、最新のカーネル防御を回避し、任意の読み取りおよび書き込みアクセスを可能にする新たなクロスキャッシュ攻撃(PDF)を発見しました。この脆弱性は、Linuxカーネルバージョン5.19および6.2に影響します。

研究チームはこの攻撃手法をSLUBStickと名付けました。この攻撃ベクトルは、カーネルアロケータのメモリ再利用を斬新な方法で利用することで、他のほとんどのクロスキャッシュ攻撃よりも高い信頼性を実現しています。多くのクロスキャッシュ攻撃の成功率はわずか40%ですが、研究チームはSLUBStickを用いて、頻繁に使用される汎用キャッシュにおいて99%の成功率を達成しました。

スワイプして水平にスクロールします

SLUBStick攻撃ベクトルを使用してテストされたCVE
CVE能力キャッシュ
CVE-2023-21400ダブルフリーkmalloc-32
CVE-2023-3609使用後無料kmalloc-96
CVE-2022-32250使用後無料kmalloc-64
CVE-2022-29582使用後無料ファイルキャッシュ
CVE-2022-27666アウトオブバウンズkmalloc-4096
CVE-2022-2588ダブルフリーkmalloc-192
CVE-2022-0995アウトオブバウンズkmalloc-96
CVE-2021-4157アウトオブバウンズkmalloc-64
CVE-2021-3492ダブルフリーkmalloc-4096

SLUBStickは、Linuxのメモリ管理におけるヒープ脆弱性を悪用して、権限昇格、仮想マシンのサンドボックス環境からの脱出、そしてホストシステムへのルートアクセスを取得します。さらに悪質なことに、この手法はサイドチャネル攻撃を利用してメモリ使用量を監視し、メモリハッシュの再割り当てを行うべきかどうかの正確なタイミングを判断します。つまり、SLUBStickはメモリの再利用を予測・制御することで、攻撃の成功率を高めることができるのです。

SLUBStickが機能するには、攻撃者は攻撃対象のLinuxシステムへのローカルアクセスが必要です。また、Linuxカーネルにヒープ脆弱性が存在することも攻撃に必要です。この脆弱性は、Linuxカーネル5.19と6.2の両方で発見されています。

研究者らは、2つのLinuxカーネルバージョンに対する攻撃を体系的に分析し、SLUBStickがkmalloc-08からkmalloc-4096までの汎用キャッシュ上で実行できることを発見しました。人工的な脆弱性と9つの実環境のCVEを用いて、権限昇格とルートアクセスの取得を目的とした攻撃手法をテストしました。

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

SLUBStickはx86とaarch64の両方の仮想マシンでテストされ、Intel、AMDベースのプロセッサ、Arm CPUで同等の効果を示しました。研究チームは、SLUBStickによって実現される攻撃手法は「汎用キャッシュからのクロスキャッシュ攻撃の信頼性を大幅に向上させ、攻撃を効果的に実行できるようにする」と指摘しています。つまり、SLUBStickは他の攻撃の成功率と効果を高める可能性があるということです。

ジェフ・バッツは10年以上にわたりテクノロジーニュースを取材しており、彼のIT経験はインターネット誕生以前から培われてきました。そう、彼は9600ボーが「高速」と呼ばれていた時代を今でも覚えています。特にDIYやメーカー関連の話題、そして最先端のテクノロジーに関する記事を好んで取り上げています。