
オーストリアのグラーツ工科大の複数の研究者がLinuxカーネルのメモリ再利用を悪用する「クロスキャッシュ攻撃」を基盤とした新たな攻撃手法「SLUBStick(スラブ・スティック)」を発表しました。
著者
ルーカス・マー (Lukas Maar) – グラーツ工科大学
ステファン・ガスト (Stefan Gast) – グラーツ工科大学
マーティン・ウンターヴグゲンベルガー (Martin Unterguggenberger) – グラーツ工科大学
マティアス・オーバーハーバー (Mathias Oberhuber) – グラーツ工科大学
ステファン・マンガード (Stefan Mangard) – グラーツ工科大学
Linuxカーネルの脆弱性を利用した新たな攻撃手法「SLUBStick」
近年、Linuxカーネルの脆弱性の数は著しく増加していますが、その多くは限られた能力しか持たず、制限されたアロケータキャッシュの中で数バイトを破損させる程度です。
これらの脆弱性の能力を向上させるために、セキュリティ研究者はカーネルアロケータのメモリ再利用を悪用するソフトウェアクロスキャッシュ攻撃を提案してきました。
しかし、これらのクロスキャッシュ攻撃は、成功率が40%に過ぎず、失敗するとシステムクラッシュを引き起こすことが多いため、実際には実用的ではありません。
SLUBStickは既存の脆弱性を悪用して、より深刻な攻撃を引き起こす可能性のある危険な手法で、
限られたヒープ脆弱性を任意のメモリ読み書きプリミティブに昇華させる新しいカーネルの脆弱性悪用技術を「SLUBStick(スラブ・スティック)」としています。
SLUBStickは複数のステージで動作します。
まず、アロケータのタイミングサイドチャネルを悪用して信頼性の高いクロスキャッシュ攻撃を実行します。
具体的には、サイドチャネルリークを悪用することで、一般的なクロスキャッシュ攻撃の成功率を99%以上に引き上げます。
次に、SLUBStickはLinuxカーネルで一般的なコードパターンを悪用して、限られたヒープの脆弱性をページテーブル操作に変換し、任意のメモリ読み書き能力を得ることができます。
実験では、SLUBStickがLinuxカーネルのバージョン5.19と6.2で有効であることを示し、実際の脆弱性9件を用いて、最新のカーネル防御を回避した権限昇格やコンテナ脱出に成功しました。
引用
https://www.stefangast.eu/papers/slubstick.pdf
実証コード
研究者たちは実際に「SLUBStick」の検証コードをGitHubにアップロードしています。