SoC セキュリティを検証するためのファジング。 検証におけるイノベーション

ソースノード: 1853830

ソフトウェア検証におけるファジングは、ハードウェア検証におけるランダム化と同様です。 ファジングアプローチはハードウェアセキュリティテストを改善できるでしょうか? Paul Cunningham (GM、Cadence の Verification)、Raúl Camposano (シリコン カタリスト、起業家、元 Synopsys CTO) と私は、研究アイデアに関するシリーズを続けています。 いつものように、フィードバックは大歓迎です。

SoC セキュリティを検証するためのファジング

イノベーション

今月のおすすめは SoC セキュリティ検証のための HyperFuzzing。 著者らはこの論文を ICCAD 2020 で発表しました。彼らは IIT Kanpur の出身です。

これはファジングに対する興味深いアプローチであり、最新の SoC 設計に特に適応されています。 それは上に構築されます ハイパープロパティ 動的シミュレーションをチェックインします。 これらのハイパープロパティは、以上の行動について推論します。 トレースのセット、セキュリティチェックに適したアプローチです。 著者らは例として、情報フローのチェック (特権データが A から B に漏洩してはいけない) と非干渉チェック (敵対的なアクションが計算フローを妨げてはいけない) を提供しています。 次に、改ざんの有無によるシミュレーション トレースのバンドルを比較することによって、セキュリティがチェックされます。

このアプローチでの改ざんは、信頼できないソースに対するさまざまなタイプの脆弱性をモデル化する可​​能性があります。 ファームウェア命令をランダム化することにより、コンポーネントから NoC に命令を書き込むか、メモリ内のビット フリップを行います。 著者らは、いくつかの新しいカバレッジ指標も提案しています。 これらは、以前の改ざん実行によって最も影響を受けたケースを回避するように反復をガイドするように設計されています。

彼らのテストケースは小さいながらも代表的な SoC です (詳細は、 GitHubの) 暗号化ブロックに対してファームウェア テストを実行し、非干渉やその他の脆弱性をチェックします。 また、データ ブロック チェックによるセキュア ブートも実行します。 彼らは、ブロックに ECC 保護が含まれている場合を除き、暗号ブロックで複数のセキュリティ違反を発見しました。

ポールの見解

セキュリティ検証は非常に重要なテーマであり、学界と産業界の両方で多くの作業が進行中です。 この論文では、ランダム化された突然変異ベースのカバレッジとシミュレーション トレースのセットに対する「ハイパー プロパティ」をうまく組み合わせて、セキュリティ上の欠陥を実証する上でスケーラブルかつ効果的な革新的なソリューションを作成します。

一部のセキュリティ プロパティは、一連のシミュレーション トレースに対してのみ正式に定義できます。 たとえば、「非干渉」とは、攻撃者が設計内の特定の保護された計算に干渉できないことを意味します。 干渉を実証するには、XNUMX つのトレースに攻撃者のアクションが存在することを除き、入力刺激が同一である XNUMX つのトレースを比較する必要があります。 攻撃されたトレース内の保護された計算がゴールデン トレース内の計算と異なる場合、干渉が発生しています。

作成者は、複数のトレースにわたるアサーション用に独自の特別な言語を作成し、それを使用して非干渉性と機密性のためのセキュリティ プロパティを定式化します。 彼らは、シミュレーションをランダムに改ざんし、改ざんされたシミュレーションと改ざんされていないシミュレーションの間でセキュリティ プロパティをチェックするカスタム フローを構築します。 彼らのランダム改ざんアルゴリズムには、より効率的にセキュリティ上の欠陥を発見できるように導く、エレガントなカバレッジベースの学習ヒューリスティックもあります。

複数のシミュレーションにわたるアサーションのアイデアは非常に強力です。 この種のアサーションをサポートするために SystemVerilog をきれいに拡張することは可能だろうかと思います。 これにより、商用シミュレーションや正式なツールに対する魅力的なネイティブ拡張への扉が開かれる可能性があります。 もう XNUMX つの可能性は、新しいポータブル スティミュラス スタンダード (PSS) を拡張して、生成された複数のテストにまたがるアサーションを含めることです。

この論文は読みやすく楽しいものですが、結果についてもう少し詳しく知りたいと思います。 著者らは、自社のソリューションがオープンソース SoC テストケースのセキュリティ ホールを発見すると主張していますが、これらのホールが何であるか、または同じホールの発見に適用できる文献内の他のアプローチと彼らのアプローチがどのように比較されるかについての詳細はありません。

ラウルの見解

まず、テクノロジーの成熟度の観点からこれを見ていきます。 私は一般的にこのアイデアが好きで、設計におけるセキュリティをグレードするための非常に興味深いアプローチです。 とはいえ、各設計では、設計者が新しいアサーション言語でシード テスト、改ざん、セキュリティ仕様を提供する必要があります。 私にとって、これは今のところアプローチを学術領域にしっかりと限定します。 論文や論文には最適ですが、商用利用にはまだ程遠いです。

XNUMX 回目の挑戦では、投資家の帽子をかぶってみます。 セキュリティが重要なテーマであることに疑いの余地はありません。 しかし、航空宇宙、防衛、決済システム、プロセッサ/サーバーなど、私たちがすでに知っているいくつかの分野以外では。 ほとんどの OEM やコンポーネント ビルダーにとって、これは依然として実存的な問題ではありません。 一般的に期待されているのであれば、彼らは喜んでボックスにチェックを入れます。 ただし、コストや市場投入までの時間への影響が小さい場合に限ります。 なぜなら、顧客は通常、セキュリティのためにそれ以上のお金を払わないからです。 そのため、ほとんどの市場のセキュリティは依然としてハードウェアの信頼のルートや使いやすいアプリなどのターンキー IP に依存しています。 これらの方法のいずれかでパッケージ化されたソリューションは投資可能ですが、そうでない場合はあまり投資できません。

私の見解

ポールとラウールは、私が提案したことのほとんどをカバーしてくれました。 私は、少なくともハイパープロパティの実験を奨励するために SVA を拡張するという Paul のアイデアが好きです。 これにより、興味深いテストの新しいクラスが開かれ、最終的には新しいバンドルされた検証メソッドが誕生するはずです。

この投稿を共有する: 出典: https://semiwiki.com/eda/299391-fuzzing-to-validate-soc-security-innovation-in-verification/

タイムスタンプ:

より多くの セミウィキ