Skip to main content
QUICK REVIEW

[論文レビュー] Learning to Repair Software Vulnerabilities with Generative Adversarial Networks

Jacob Harer, Onur Özdemir|arXiv (Cornell University)|May 18, 2018
Advanced Malware Detection Techniques参考文献 7被引用数 32
ひとこと要約

本稿では、ペaired学習データを必要とせず、条件付きNMT生成器と新規損失関数を用いて正確なコード修復を強制するGANベースのアプローチを提案する。この手法は、ペアドデータが存在しない状況でも、コード修復ベンチマークで教師ありseq2seqモデルに近い性能を達成し、他のシーケンス補正タスクへの一般化性と応用可能性を示している。

ABSTRACT

Motivated by the problem of automated repair of software vulnerabilities, we propose an adversarial learning approach that maps from one discrete source domain to another target domain without requiring paired labeled examples or source and target domains to be bijections. We demonstrate that the proposed adversarial learning approach is an effective technique for repairing software vulnerabilities, performing close to seq2seq approaches that require labeled pairs. The proposed Generative Adversarial Network approach is application-agnostic in that it can be applied to other problems similar to code repair, such as grammar correction or sentiment translation.

研究の動機と目的

  • ペアド学習データが存在しない状況における自動ソフトウェア脆弱性修復の課題に対処すること。
  • 一対一のラベル付き例を必要とせずに、脆弱なコードから安全なコードへのマッピング手法を開発すること。
  • 敵対的学習を用いて、文法訂正やセンチメント翻訳を含むアプリケーションに依存しないシーケンス補正を可能にすること。
  • コードシーケンスの学習中に離散出力の非微分性を克服すること。
  • 新規損失関数による入力コードへの条件付けによって、生成された修復が意味的にも構文的にも妥当であることを保証すること。

提案手法

  • 敵対的損失を用いて学習される条件付きNMT生成器をGANの生成器として使用し、標準的な負の尤度ではなく敵対的損失を用いる。
  • 識別器は、実際の修復済みコードと生成された修復を区別するように学習され、分布一致の代理損失を提供する。
  • 離散的コード生成の非微分性に対処するために、サンプリングされない予想出力(期待出力)を扱うソフトラベル識別器を導入する。
  • 入力コードへの忠実性を強制し、修復品質を向上させるために、2つの新規生成器損失関数 $\mathcal{L}_{\textit{AUTO}}$ と $\mathcal{L}_{\textit{FREQ}}$ を導入する。
  • 段階的学習(カリキュラム学習)を適用し、徐々に訓練の難易度を上げることで、収束性と性能を向上させる。
  • BLEU-4、シーケンス正解率、正しさの指標を用いて、ペアドデータおよび非ペアドデータの両方を用いたコード修復データセットで評価を行う。

実験結果

リサーチクエスチョン

  • RQ1ペアド例が存在しない状況でも、GANベースのアプローチがソフトウェア脆弱性を効果的に修復できるか?
  • RQ2非微分性がある離散的コードシーケンスに対して、ソフトラベル識別器を用いた敵対的学習は、一般化性能を発揮できるか?
  • RQ3提案された生成器損失関数は、入力コードへの忠実性と修復精度をどの程度向上させるか?
  • RQ4非ペアドデータにおける性能は、教師ありseq2seqベースラインと比較してどの程度か?
  • RQ5この手法は、ソフトウェア修復を越えて、他のシーケンス補正タスク(例:文法誤り訂正)へ一般化可能か?

主な発見

  • カリキュラム学習と $\mathcal{L}_{\text{FREQ}}$ 正則化を組み合わせた提案されたGANモデルは、非ペアドテストセットでBLEU-4スコア90.3を達成し、seq2seqベースラインの91.3に近い性能を示した。
  • Base + Cur + Freqモデルは、98.2%のシーケンス正解率と99.1%の順序正解率を達成し、高い修復忠実性を示した。
  • 訓練データの半分しか使用せず、ペアド例も存在しない非ペアドGANモデルでも、テストセットで81.3%のBLEU-4を達成し、強い一般化性能を示した。
  • 実世界の脆弱性、例えば関数呼び出しにおける引数数の誤りやダブルフリーエラーなども、表2に示すように正常に修復できた。
  • ベースラインGANや教師ありseq2seqモデルに匹敵する性能を達成し、低データ・非ペアド環境下での有効性を実証した。
  • アプリケーションに依存しない設計であるため、文法誤り訂正やセンチメント翻訳など、コード修復を超えた応用にも適用可能である。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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