Linux kernel impacted by new SLUBStick cross-cache attack
2024/08/04 BleepingComputer — SLUBStick と名付けられた Linux Kernel クロス・キャッシュ攻撃により、影響が限定されるヒープ関連の脆弱性が、任意のメモリ Read/Write 機能に変換されるという。研究者たちによると、それは 99% のレベルで成功しており、特権昇格やコンテナ・エスケープにいたることが実証されているようだ。この発見は、グラーツ工科大学の研究者チームによるものであり、32-Bit と 64-Bit システムで9件の既存の CVE を使用し、Linux Kernel バージョン 5.9/6.2 で攻撃を実証し、高い汎用性を示した。

さらに、この攻撃は、SMEP (Supervisor Mode Execution Prevention)/SMAP (Supervisor Mode Access Prevention)/KASLR (Kernel Address Space Layout Randomization) といった、最新のカーネル防御が有効な状態でも動作した。
SLUBStick の詳細は、今月末に開催される Usenix Security Symposium カンファレンスで発表される予定だ。研究者たちは、最先端の防御機能を有効にした、最新の Linux における特権昇格とコンテナ・エスケープを紹介する予定だという。
その一方で、すでに発表されているテクニカル・ペーパーには、この攻撃の詳細と潜在的な悪用シナリオが、すべて取り込まれている。
SLUBStick の詳細
Linux Kernel が、安全かつ効率的にメモリを管理する方法の1つは、異なるタイプのデータ構造に対して “slabs” と呼ばれるメモリチャンクを割り当て、それを解除するというものだ。
このメモリ管理プロセスに欠陥が生じると、クロス・キャッシュと呼ばれる攻撃が成立し、データ構造の破損や操作が許される可能性が生じる。しかし、このような攻撃が有効なのは約 40% であり、どこかのタイミングでシステム・クラッシュにつながるのが一般的だ。
SLUBStick は、二重解放/解放後使用/境界外書き込みなどのヒープ脆弱性を悪用して、メモリ割り当てプロセスを操作するものだ。
具体的に言うと、タイミング・サイドチャネルを使用して、メモリ・チャンクの割当/解放の正確な瞬間を特定し、メモリの再利用を予測/制御できるようにする。
このタイミング情報を使用することで、クロス・チェンジのエクスプロイトの成功率を 99% にまで引き上げる SLUBStick は、きわめて実用的なものになる。
ヒープ関連の脆弱性を、任意のメモリ Read/Write の脆弱性に変換するプロセスは、以下の3つのステップで達成される。
- 特定のメモリチャンクを解放し、カーネルが再利用するのを待つ。
- これらのチャンクを、制御された方法で再割り当てし、ページ・テーブルのような重要なデータ構造に再利用できるようにする。
- いったん再割り当てされると、攻撃者はページ・テーブルのエントリーを上書きし、任意のメモリ位置を Read/Write できるようにする。

Source: stefangast.eu
現実世界へのインパクト
大半のサイド・チャネル系の攻撃と同様に SLUBStick は、ターゲット・マシンへのローカル・アクセスとコード実行機能を必要とする。さらに、この攻撃の前提としては、Linux Kernel にヒープ系の脆弱性が存在することが必要であり、この脆弱性を利用して、メモリに対する Read/Write を行う。
そのため、この攻撃は非現実的に見えるかもしれないが、攻撃者にとって大きなメリットを生じる。
つまり、コード実行能力を持つ攻撃者にとっても SLUBStick は有用であり、特権への昇格/カーネル防御の迂回/コンテナ・エスケープの実行などの機会を提供し、また、複雑な攻撃チェーンの一部にもなり得る。
特権への昇格により、root 権限による無制限の操作が可能になり、また、コンテナ・エスケープにより、サンドボックス環境からの脱出と、ホスト・システムへのアクセスなどが可能になる。
さらに、SLUBStick によるエクスプロイト後のステップでは、カーネル構造やフックの変更が容易になるため、マルウェアの永続性の維持能力が高まり、防御側によるマルウェア検出が困難になる。

Source: stefangast.eu
SLUBStick について深く知りたければ、また、グラーツ大学の研究者が使用したエクスプロイトを試してみたければ、研究者の GitHubリポジトリで、それらを見つけることが可能だ。
SLUBStick と名付けられたのは、ヒープ関連の脆弱性を、任意のメモリ Read/Write 機能に変換する、Linux Kernel クロス・キャッシュ攻撃とのことです。つまり、多発するメモリ管理に関連する脆弱性から、メモリ Read/Write へといたる道筋が示され、懸念すべき事柄が増えてしまったことになります。よろしければ、2024/08/04 の「DARPA の TRACTOR プログラム:C → Rust 変換によりメモリ・セーフ言語へ加速」をご参照ください。


You must be logged in to post a comment.