Skip to main content
QUICK REVIEW

[論文レビュー] IvySyn: Automated Vulnerability Discovery in Deep Learning Frameworks

Neophytos Christou, Di Jin|arXiv (Cornell University)|Sep 29, 2022
Security and Verification in Computing被引用数 4
ひとこと要約

IvySynは、低レベルのC/C++カーネルに対して型に配慮した変異ベースのファジングを実行し、Pythonで記述された高レベルの脆弱性の証明(PoV)コードスニペットを自動生成することで、ディープラーニングフレームワークにおけるメモリセーフティ脆弱性を完全自動で発見するフレームワークです。TensorFlowおよびPyTorchにおいて61件の未知の脆弱性を特定し、その結果39件の固有脆弱性識別子(CVE)が発行されました。

ABSTRACT

We present IvySyn, the first fully-automated framework for discovering memory error vulnerabilities in Deep Learning (DL) frameworks. IvySyn leverages the statically-typed nature of native APIs in order to automatically perform type-aware mutation-based fuzzing on low-level kernel code. Given a set of offending inputs that trigger memory safety (and runtime) errors in low-level, native DL (C/C++) code, IvySyn automatically synthesizes code snippets in high-level languages (e.g., in Python), which propagate error-triggering input via high(er)-level APIs. Such code snippets essentially act as "Proof of Vulnerability", as they demonstrate the existence of bugs in native code that an attacker can target through various high-level APIs. Our evaluation shows that IvySyn significantly outperforms past approaches, both in terms of efficiency and effectiveness, in finding vulnerabilities in popular DL frameworks. Specifically, we used IvySyn to test TensorFlow and PyTorch. Although still an early prototype, IvySyn has already helped the TensorFlow and PyTorch framework developers to identify and fix 61 previously-unknown security vulnerabilities, and assign 39 unique CVEs.

研究の動機と目的

  • 高レベルのAPIから低レベルのメモリに危険なカーネルコードにまで伝播するメモリセーフティ脆弱性を検出する課題に対処すること。
  • 専門家によるアノテーションやカスタムドライバコードを必要とする、従来の部分自動化または手動のアプローチの限界を克服すること。
  • ネイティブカーネルコードでのクラッシュを再現できる高レベルのコードスニペットを生成することで、完全自動で実行可能な脆弱性の開示を可能にすること。
  • TensorFlow や PyTorch といった広く使われているDLフレームワークのセキュリティ体制を強化し、利用可能なメモリエラーの早期検出を可能にすること。

提案手法

  • IvySynは、静的に型付けされたネイティブAPIから得られる型に配慮した変異を用いて、低レベルのC/C++カーネル実装に対して変異ベースのファジングを実行する。
  • ファジング中にランタイムエラーやメモリセーフティエラーを分析することで、ネイティブカーネル内でクラッシュを引き起こす入力を特定する。
  • クラッシュを引き起こす入力とフレームワーク固有のAPIマッピングを用いて、これらの入力を高レベルAPIを介して伝播させる高レベルのPythonコードスニペットを自動合成する。
  • 合成されたコードスニペットは脆弱性の証明(PoV)として機能し、攻撃者が標準的なユーザー向けAPIを通じてネイティブカーネルのバグを引き起こせることを示している。
  • フレームワークのAPIスタックに直接統合され、既存の型情報とバインディング構造を活用することで、生成されたPoVの意味的整合性を保証する。
  • 手動でのアノテーションやドライバコード、ドメインスペシャリストの入力を一切必要としないため、脆弱性発見パイプラインの完全自動化が可能である。

実験結果

リサーチクエスチョン

  • RQ1手動でのアノテーションや開発者提供のドライバコードを一切不要にしながら、ディープラーニングフレームワークにおけるメモリセーフティ脆弱性を自動で発見することは可能か?
  • RQ2低レベルのカーネルコードからのクラッシュを引き起こす入力を、高レベルのAPIに効果的にマッピングして、実行可能な脆弱性の証明(PoV)コードを生成するにはどうすればよいか?
  • RQ3ネイティブカーネルに対して型に配慮した変異ベースのファジングが、従来の高レベルAPIファジング技術に比べて、脆弱性検出においてどの程度優れているか?
  • RQ4完全自動で、ボトムアップなアプローチにより、TensorFlow や PyTorch といった本番環境向けのDLフレームワークで未知の利用可能なメモリエラーを検出できるか?

主な発見

  • IvySynは、TensorFlowおよびPyTorchにおいて61件の未知のセキュリティ脆弱性を発見し、すべてがフレームワーク開発者によって確認され、修正された。
  • このフレームワークにより39件の固有脆弱性識別子(CVE)が発行され、利用可能なメモリセーフティ問題を効果的に同定していることが示された。
  • IvySynは、効率性と有効性の両面で従来のアプローチを上回り、低レベルファジングツールよりも多くのクラッシュ入力を発見し、高レベルAPIファジングツールよりも多くの実行可能なPoVを生成した。
  • フレームワークは、意味的に整合性があり実行可能なPythonコードスニペットを生成し、ネイティブカーネルコードでのクラッシュを再現でき、有効な脆弱性の証明(PoV)として機能した。
  • このアプローチは、手動でのアノテーションやカスタムドライバコードを一切必要としないため、複雑で多層的なDLフレームワークにスケーラブルに適用可能である。
  • IvySynのプロトタイプ実装はGitLabで公開されており、すでに世界中で何百万ものユーザーが利用している広く配布されたDLフレームワークのセキュリティを向上させている。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。