最新CPUにおける投機的実行攻撃を探求する、詳細な研究論文と実践的なProof of Concept(PoC)
このプロジェクトは、投機的実行と分岐予測を実装したCPUに影響を与えるハードウェアレベルのサイドチャネル脆弱性である Spectre Variant 2(CVE-2017-5715)(別名 Branch Target Injection)に関する研究およびラボベースの探求です。
このプロジェクトの目的は次のとおりです:
⚠️ 免責事項: この作業は、学術および教育目的のために、管理された隔離された仮想マシン内でのみ実施されました。本作業は本番システムを標的としておらず、影響も与えません。また、独自のエクスプロイトコードは作成されておらず、デモンストレーションには公開されているSpectrePoCリポジトリを使用しました。
CVE-2017-5715は、攻撃者がCPUの分岐予測子を欺いて、誤った(「投機的な」)経路に沿って命令を実行させることを可能にするマイクロプロセッサの脆弱性です。CPUはこの誤予測の結果を正しく破棄しますが、副作用(最も顕著なのはCPUキャッシュ状態の変化)を完全に消去することはできません。これらの残存するキャッシュ変更はタイミング分析によって測定可能であり、攻撃者が本来アクセスできないはずの秘密データを推測することを可能にします。
従来のソフトウェアバグとは異なり、Spectreは最新CPUのハードウェア設計を悪用するため、完全にパッチを当てることが極めて困難であり、マイクロコード、OS、コンパイラレベルの緩和策の組み合わせが必要となります。
| コンポーネント | 詳細 |
|---|---|
| オペレーティングシステム | Ubuntu 14.04 LTS |
| カーネルバージョン | 4.4.0-148-generic |
| CPU | 12th Gen Intel® Core™ i5-12450H |
| 仮想化 | VMware Workstation |
| PoCリポジトリ | crozone/SpectrePoC |
sudo apt update
sudo apt install git
git clone https://github.com/crozone/SpectrePoC
cd SpectrePoC
make
Linuxはsysfsを通じてCPUの脆弱性・緩和ステータスを直接公開しています:
grep . /sys/devices/system/cpu/vulnerabilities/*
これにより、テストCPUがspectre_v2に対して脆弱であることが確認されました。他の関連脆弱性(Meltdown、L1TF、MDS)は緩和されているか、影響がないかのいずれかでした。
./spectre.out
このツールは、キャッシュタイミングの差異から導出される信頼度「スコア」とともにSuccess結果を繰り返し報告します。各成功した読み取りは、投機的サイドチャネルを通じて完全に再構築された、本来アクセスできないメモリの漏洩バイト1つを表します。
環境セットアップからデータ奪取成功までの完全なPoCの録画済みウォークスルーが、攻撃を視覚的に検証するためにこのリポジトリに含まれています。
▶️ PoCデモビデオを見る
📁 ビデオファイルをリポジトリに追加したら、上記のパスを更新してください(例:
demo/フォルダやmedia/フォルダに配置し、リンクを適宜調整してください)。
Indirect Branch Restricted Speculation(IBRS)、および同様の緩和策により、境界を越えた情報漏洩を軽減します。.
├── README.md
├── Research_Paper_-_CVE-2017-5715_Spectre_by_Shivam_Bhatt.pdf
└── demo/
└── spectre-poc-demo.mp4
Shivam Bhatt サイバーセキュリティ ポストグラデュエイト・ディプロマ(優等)— NAIT 🔗 お気軽にLinkedInでつながってください。サイバーセキュリティ研究に関するコラボレーションも歓迎します。
⭐ この研究が役に立ったと思われた方は、リポジトリへのスターを検討してください!