[論文レビュー] Fuzzing Hardware Like Software
論文は RTL ハードウェアをソフトウェアモデルへ翻訳し、それらのモデルをオープンソースのソフトウェアファザーでファズし、OpenTitan IPブロック上で FSM カバレッジを2桁オーダーの高速化を達成し、HDL 行カバレージも高い。
Hardware flaws are permanent and potent: hardware cannot be patched once fabricated, and any flaws may undermine any software executing on top. Consequently, verification time dominates implementation time. The gold standard in hardware Design Verification (DV) is concentrated at two extremes: random dynamic verification and formal verification. Both struggle to root out the subtle flaws in complex hardware that often manifest as security vulnerabilities. The root problem with random verification is its undirected nature, making it inefficient, while formal verification is constrained by the state-space explosion problem, making it infeasible against complex designs. What is needed is a solution that is directed, yet under-constrained. Instead of making incremental improvements to existing DV approaches, we leverage the observation that existing software fuzzers already provide such a solution, and adapt them for hardware DV. Specifically, we translate RTL hardware to a software model and fuzz that model. The central challenge we address is how best to mitigate the differences between the hardware execution model and software execution model. This includes: 1) how to represent test cases, 2) what is the hardware equivalent of a crash, 3) what is an appropriate coverage metric, and 4) how to create a general-purpose fuzzing harness for hardware. To evaluate our approach, we fuzz four IP blocks from Google's OpenTitan SoC. Our experiments reveal a two orders-of-magnitude reduction in run time to achieve Finite State Machine (FSM) coverage over traditional dynamic verification schemes. Moreover, with our design-agnostic harness, we achieve over 88% HDL line coverage in three out of four of our designs -- even without any initial seeds.
研究の動機と目的
- 従来の動的および形式的ハードウェア検証が複雑な設計とセキュリティ上の欠陥にどのように苦戦しているかを動機づける。
- Hardware Fuzzing を設計に依存しない、ソフトウェアファザーベースの CDG の代替として導入する。
- オープンソースツールを用いて RTL ハードウェアを大規模にファズするためのスケーラブルな HWFP を開発する。
- ソフトウェアモデルのカバレッジを最大化することは、Verilator の翻訳特性によりハードウェアカバレッジを最大化することに結びつく。
提案手法
- Verilator を用いて RTL ハードウェアをソフトウェアモデルへ翻訳し、Hardware Simulation Binaries (HSBs) を作成する。
- カバレージ指向のグレイボックスソフトウェアファザを用いて HSBs を駆動し、ソフトウェアのインストメンテーションを通じてハードウェアカバレッジを最大化する。
- ファザー出力をハードウェアのシーケンス用の2次元の時空入力へマッピングする汎用ファジングハーネスを設計する。
- TileLink TL-UL プロトコルに基づくバス中心のファジング文法を導入し、ファジングバイトから有効なバストランザクションを生成する。
- オープンソースツールを使って Google Cloud Platform 上で動作する Hardware Fuzzing Pipeline (HWFP) を構築し、オープンソースツールでスケールする。
- CRV と比較するために OpenTitan RoT IP コアと構成可能なデジタルロック FSM を対象に評価する。
実験結果
リサーチクエスチョン
- RQ1ソフトウェアファザをハードウェアのシミュレーションバイナリを効果的に駆動するように適応させるにはどうすればよいか。
- RQ2ハードウェアをソフトウェアのようにファズすることは、従来の制約付きランダム検証(CRV)よりもカバレッジの収束を速めるか。
- RQ3一般的なバス中心のファジング文法は RTL コアの設計に依存しないファジングを実現できるか。
- RQ4ハードウェアファジングは HDL コードカバレッジと FSM 状態空間の探索にどのような影響を与えるか。
主な発見
- ハードウェアをソフトウェアのようにファズすることで、従来の CRV と比較して FSM カバレッジ到達時間を2桁以上のオーダー短縮を達成。
- バス中心の文法を用いることで、本アプローチは 4 つの OpenTitan RoT IP コアでファズを実施し、 seeds なしで 1 時間以内に 3 コアで HDL 行カバレージが 88% 以上を達成。
- Hardware Fuzzing Pipeline (HWFP) は完全にオープンソースツールで実行可能で、Google Cloud Platform 上でスケールする。
- ソフトウェアモデルのカバレッジを最大化することは、Verilator の翻訳特性のためハードウェアカバレージを最大化することに繋がる。
- 設計に依存しないハーネスと文法により、同じバスプロトコルを話す複数の RTL 設計に対して再利用可能なファジングを実現できる。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。