Bleeping Computerは12月6日(米国時間)、「New SLAM attack steals sensitive data from AMD, future Intel CPUs」において、AMD、Intel、Armの次世代CPUのセキュリティを向上させるために設計されたハードウェア機能を悪用し、カーネルメモリからルートパスワードハッシュ(シャドウパスワードのハッシュ値)を取得する「SLAM」と呼ばれるサイドチャネル攻撃がVUSecにより開発されたと報じた。VUSecは「SLAM: Spectre based on Linear Address Masking - vusec」にて詳細を発表している。

  • New SLAM attack steals sensitive data from AMD、future Intel CPUs

    New SLAM attack steals sensitive data from AMD, future Intel CPUs

攻撃の対象となったハードウェア機能はCPUベンダーごとに名称が異なっており、IntelはLinear Address Masking(LAM)、AMDはUpper Address Ignore(UAI)、ArmはTop Byte Ignore(TBI)としている。これらはメモリアドレスの上位ビットが実際には使用されていないことを利用し、メモリアドレスのチェックからこれら上位ビットを無視することで他の用途に使用できるようにする機能とされる。用途としては、メモリエラーやメモリの解放状態の検知などが考えられている。

これまでにも「Spectre」と呼ばれるハードウェアの脆弱性が多くのCPUに存在していることが判明しており、任意のメモリ空間を読み取ることが可能とされている。この脆弱性はハードウェアで完全に軽減されていないため、ソフトウェアに「意図しない悪用可能なコード(ガジェットと呼ぶ)」が存在した場合、この脆弱性の影響を受けるとされる。

SLAM攻撃では、Spectreと同様に機密データをポインタとして使用する「マスクされていないガジェット」を標的とする。VUSecによるとマスクされていないガジェットは一般的なソフトウェアの多くに存在しており、Linuxカーネルには少なくとも数百個の悪用可能なガジェットが存在するとしている。SLAM攻撃のより詳しい解説は「(PDF) Leaky Address Masking: Exploiting Unmasked Spectre Gadgets with Noncanonical Address Translation」から閲覧できる。

VUSecはSLAM攻撃によりユーザーランドプロセス(一般ユーザーの権限で動作するプログラム)から、カーネルメモリ(特別な権限がないとアクセスできないメモリ空間)のデータを漏洩させることに成功している。VUSecは実証実験の動画を次のとおり公開している。

Bleeping Computerによると、AMDはVUSecによるSLAMのリスク軽減策の指摘を受けてもガイダンスやアップデートを提供しないという。対するIntelは将来のプロセッサをリリースする前に、ユーザー/カーネルモード間での投機的なアドレスアクセスを防止するための「Linear Address Space Separation(LASS)」拡張機能を導入するなどのソフトウェアガイダンスを提供する計画を発表したとのこと。

また、ArmはSLAMの発表を受けて「TLB-Based Side Channel Attack: Security Update」を発表している。これによると、ArmのシステムはすでにSpectre v2およびSpectre-BHBを軽減しているため、SLAMに対する追加の対応は必要ないとしている。