あなたのSDカードは大丈夫?DaMAgeCard攻撃 - SD Expressカードで攻撃者がシステムメモリに直接アクセス可能に
要約
セキュリティ研究者らは、SD Express カード規格の重大な脆弱性「DaMAgeCard Attack」を発見しました。この脆弱性により、攻撃者がDMAを使ってシステムメモリに直接アクセスできる可能性があります。
詳細分析
主なポイント
- SD Expressカードはより高速なデータ転送を実現するためにPCI Expressを採用していますが、これにより深刻なセキュリティリスクが生じています。
- 研究者らは改造したSD Expressアダプタを使って、ゲームノートPCやハンドヘルドコンソールなどの複数のデバイスでメモリアクセスを実証しました。
- 一部のデバイスはIOMMUによる保護を備えていましたが、AYANEO Airなどの一部デバイスには全く保護がなく、完全に脆弱でした。
社会的影響
- SD Expressの広範な採用に伴い、DaMAgeCardアタックは深刻な攻撃ベクターとなる可能性があります。
- 過去のDMAアタック脆弱性と同様に、SD Expressの実装にも深刻な問題があり、多くのデバイスが完全に脆弱な状態にあります。
- SD Expressは高速データ転送を実現するために採用されていますが、セキュリティが大幅に犠牲にされています。
編集長の意見
SD Expressの採用が進む中、メーカーは適切なセキュリティ対策を講じる必要があります。IOMMUの適切な実装や、モード切替時の認証など、根本的な対策が求められます。過去の教訓を活かし、セキュリティを最優先に検討する必要があります。
解説
SD ExpressカードとPCI Express技術の採用による脆弱性の詳細
SD Expressカードは、従来のSDカード規格(UHS-I/II/III)に比べて大幅なデータ転送速度向上を目指して設計されました。
この進化の鍵となったのがPCI Express(PCIe)
技術の採用です。
PCIeは、PCやサーバーで広く使われている高速インターフェース規格であり、これをSDカード規格に統合することで、最大985 MB/秒(PCIe 3.0 x1)という高速な転送速度を実現します。
また、NVMe(Non-Volatile Memory Express)
プロトコルをサポートすることで、ストレージデバイスとしての性能も向上しました。
しかし、この設計上の進化にはいくつかのセキュリティ上の課題が存在します。これらの課題が、今回のDaMAgeCard攻撃
に悪用されています。
PCIe技術採用のメリットとセキュリティ課題
メリット
- データ転送速度の大幅な向上
従来のSDカードの最高速度(UHS-IIIの624 MB/秒)を超える高速化により、大容量データの転送が短時間で可能になりました。
これは、高解像度動画の記録やプロフェッショナル向けカメラなど、高速転送が求められる用途で特に有用です。 - NVMeプロトコルの統合
PCIe技術と組み合わせることで、SD Expressカードは低レイテンシと高効率を実現し、ストレージデバイスとしての利便性が向上しました。
セキュリティ課題
-
PCIeの設計上の特性
PCIeは、周辺機器がホストシステムのメモリに直接アクセスするダイレクトメモリアクセス(DMA)
を可能にします。 この特性により、従来のSDカードにはない新たな攻撃の可能性が生じています。
特に、DMAは正規のデータ転送プロセスをバイパスし、直接メモリアクセスを行うため、攻撃者にとって非常に有用な手法となります。 -
ホストシステムとの相互運用性の欠陥
SD Expressカードは、従来のSDカード(SDIOモード)と新しいPCIe/NVMeモードを切り替える機能を備えています。
しかし、このモード切り替えにおける認証やセキュリティチェックが不十分である場合、攻撃者が不正にモードを切り替え、PCIeモードを悪用する可能性があります。 -
PCIeのセキュリティプロトコルの限界
一部のデバイスやオペレーティングシステムでは、PCIe周辺機器に対するセキュリティ対策(例: IOMMUやDMA保護)が適切に設定されていない場合があります。この場合、攻撃者はPCIeを介してシステムメモリへの直接アクセスを行うことが可能になります。
PCIe/NVMeモード切り替えにおける具体的な脆弱性
-
モード切り替え時の認証不足
SD Expressカードは、通常のSDカードリーダーや互換性のあるデバイスに挿入されると、初期状態では従来のSDIOモードで動作します。しかし、高速転送が必要な場合、カードがPCIeモードに切り替わります。この切り替えは、一般にソフトウェアやファームウェアによって制御されますが、一部のデバイスでは、このプロセスに暗号化や認証が適用されていません。この欠陥を利用することで、攻撃者が不正にPCIeモードを有効化し、システムの制御を奪う可能性があります。 -
NVMeプロトコルのセキュリティ管理の不備
NVMeは高性能ストレージプロトコルとして広く採用されていますが、設計上は主に信頼されたデバイスでの利用を想定しています。そのため、SD Expressカードのように持ち運び可能で容易に交換可能なデバイスに使用される場合、ホストデバイスが正当性を検証するメカニズムが十分に整備されていない場合があります。
SD ExpressカードにおけるPCIe技術のセキュリティ改善が必要な理由
PCIeを採用したSD Expressカードは、高速性と汎用性を提供する一方で、攻撃者に新たな侵入経路を与える可能性を秘めています。
具体的には、以下のようなセキュリティ上の欠陥が問題視されています。
-
信頼境界の拡大
従来のSDカードは、ホストデバイスがアクセスを完全に管理していましたが、PCIeを採用したことで、システム全体の信頼境界が拡大しました。これにより、セキュリティの弱点が広がる結果となっています。 -
物理アクセスのリスク増加
SDカードスロットは広く普及しているため、攻撃者が物理的にデバイスにアクセスする機会が増えています。このため、悪意のある改造SDカードを使用した攻撃の可能性が高まっています。 -
IOMMU保護の依存
PCIeを安全に利用するにはIOMMU(入出力メモリ管理ユニット)が不可欠ですが、多くのコンシューマーデバイスでは、IOMMUが無効化されていたり、適切に設定されていなかったりします。
DMAにアクセスできることで、攻撃者はどのような攻撃ができるようになるのか?
DMA(ダイレクトメモリアクセス)とは?
DMAというものの仕組み
DMA(Direct Memory Access)は、周辺機器がCPUを介さずに直接システムメモリ(RAM)にアクセスできる仕組みです。 通常、周辺機器とメモリ間のデータ転送はCPUが仲介しますが、DMAを利用すると、CPUの介在が不要となり、高速かつ効率的なデータ転送が可能になります。
DMAの主な構成要素
-
DMAコントローラー(DMAC)
ハードウェア内でDMA転送を制御する専用チップ。周辺機器とメモリ間のデータ転送を管理します。 -
メモリアドレスの指定
周辺機器は、転送するデータの開始アドレスやサイズをDMAコントローラーに指定します。 -
CPUとの連携
DMA処理中、CPUは他のタスクを実行可能です。DMA完了後に割り込みで通知を受け取る仕組みが一般的です。
想定される攻撃手法
1. 不正なメモリアクセス
DMAを利用すると、攻撃者がホストシステムのメモリに直接アクセスできます。これにより、
機密データの窃取
:
メモリ内に保存された暗号鍵、パスワード、トークン、または認証情報を抜き取ることができるようになります。アプリケーションの脆弱性の悪用
:
実行中のプログラムがメモリに保持するデータを書き換えることで、動作を乗っ取られることがありえます。
2. メモリ改ざん攻撃
DMAを使用してメモリ上のデータを変更すると、
コードインジェクション
:
実行中のプログラムの命令セットを改ざんし、攻撃者のコードを挿入する。システム権限の奪取
:
オペレーティングシステムの権限管理を無効化し、管理者権限を取得する。
3. カーネルへの攻撃
DMA経由でOSカーネルのメモリ領域にアクセスし、
ルートキットのインストール
:
カーネルに悪意のあるコードを埋め込み、攻撃者が長期的に制御できる状態を作る。セキュリティバイパス
:
カーネルが保持するセキュリティ設定やポリシーを書き換え、攻撃を隠蔽する。
4. DMAによるDoS攻撃
DMAの機能を悪用して、大量のデータをメモリに転送し続けることで、リソースを消耗させ、
- システムのクラッシュ。
- 他のプロセスの動作遅延や停止。
5. IOMMUを迂回する攻撃
IOMMU(入出力メモリ管理ユニット)は、DMAによる不正アクセスを防ぐために、周辺機器のメモリアクセスを制御します。
しかし、IOMMUが無効化されている場合や誤設定の場合、
- 攻撃者はシステムの任意のメモリアドレスにアクセス可能。
- IOMMUの保護範囲外のメモリ領域に対する攻撃が可能。
過去に実際に行われた「DMA攻撃」の事例
-
Thunderclap攻撃
2019年に公開された攻撃手法で、Thunderboltポートを利用してホストシステムのメモリに不正アクセスしました。これにより、攻撃者はユーザーデータの窃取や、システム制御の乗っ取りが可能となりました。 -
BadUSB DMA攻撃
特殊なUSBデバイスを使用してDMA攻撃を実行。ホストPCがUSBデバイスを認識すると、攻撃者は直接メモリへのアクセスを得て、セキュリティ設定を無効化しました。 -
PCILeech
PCIeインターフェースを利用したDMA攻撃ツール。攻撃者が改造したPCIeデバイスを挿入すると、システムメモリ全体をスキャン・改ざんすることが可能。(https://github.com/ufrisk/pcileech)
対策と防御策
-
IOMMUの有効化
IOMMUを適切に設定することで、周辺機器がアクセス可能なメモリ領域を制限します。 -
ファームウェア更新
周辺機器やシステムのファームウェアを最新の状態に保つことで、既知の脆弱性を修正します。 -
物理アクセスの制限
攻撃者が物理的にデバイスにアクセスできる状況を防ぐために、信頼できる環境でのみ周辺機器を使用します。 -
認証機能の追加
周辺機器がホストシステムと通信する前に、デバイス認証を行い、不正デバイスの接続を防ぎます。
DMAの高効率性は利便性を提供する一方で、適切な対策を講じなければ、深刻なセキュリティリスクをもたらす可能性があります。
持続的なセキュリティ課題と今後の展望
DaMAgeCardは、テクノロジーの進化における根本的なセキュリティジレンマを浮き彫りにしています。高性能と利便性を追求するあまり、セキュリティが犠牲になる危険性は、IT業界が繰り返し直面してきた課題です。SD Express技術は、データ転送速度の劇的な向上を約束する一方で、同時に深刻なセキュリティリスクをもたらしています。
今回の実験で分かったこと
DaMAgeCardテストにおけるIOMMU保護分析
デバイス | メーカー | IOMMU保護状況 | 脆弱性レベル | 備考 |
---|---|---|---|---|
外付けカードリーダー | JMicron | 部分的に有効 | 中程度のリスク | JMicronnコントローラーで一部IOMMU保護あり |
ThinkPadノートブック | Lenovo | 有効 | 低リスク | RTS5261コントローラーで積極的なIOMM保護 |
MSIゲーミングノートPC | MSI | 有効 | 低リスク | IOMMU保護メカニズムを実装 |
AYANEO Air Plus | AYANEO | IOMMU保護なし | 高リスク | ダイレクトメモリアクセス攻撃に完全に脆弱 |
主な調査結果
- テストされた4つのデバイスのうち、1つのデバイス(AYANEO Air Plus)のみがIOMMU保護を持っていなかった
- ほとんどのデバイスは何らかのレベルのIOMM保護を持っていた
- IOMMU実装のばらつきは、メーカー間のセキュリティアプローチの不整合を示唆している
脆弱性の影響
デバイス間でIOMMU保護が一貫していないことは、SD Express技術における重大なセキュリティ上の懸念を浮き彫りにしています。一部のデバイスは堅牢な保護を実装している一方で、他のデバイスは潜在的なDaMAgeCard攻撃に対して完全に無防備です。
・メーカーはIOMMU実装を最優先すべき
・SD Express対応デバイスに対する徹底的なセキュリティ監査の実施
・周辺機器のためのIOMMU保護ガイドラインの標準化
などを進めていくのが良いかと思います。
背景情報
- SD Expressは高速データ転送を実現するためにPCI Expressを採用していますが、これにより深刻なセキュリティリスクが生じています。
- SD Expressカードはデバイスとの間でSDIOモードとPCIe/NVMeモードを切り替えることができますが、モード切替時の暗号化や認証チェックがありません。
- 多くのデバイス、特にゲームハンドヘルドでは、IOMMUによる保護が実装されていないか、適切に設定されていません。