Skip to main content
QUICK REVIEW

[論文レビュー] Artificial Intelligence Techniques for Security Vulnerability Prevention

Steve Kommrusch|arXiv (Cornell University)|Dec 14, 2019
Advanced Malware Detection Techniques参考文献 17被引用数 5
ひとこと要約

この論文は、導入前のソフトウェアにおけるセキュリティ脆弱性の検出および防止のための人工知能技術—特に機械学習および自然言語処理(NLP)—を調査している。手法は脆弱性検出、修復、および要件仕様分析の3つに分類され、AIは人的レビューを最大95%まで削減できるが、依然としてきめ細やかな開発手法の補完的役割にとどまっていることが示されている。

ABSTRACT

Computer security has been a concern for decades and artificial intelligence techniques have been applied to the area for nearly as long. Most of the techniques are being applied to the detection of attacks to running systems, but recent improvements in machine learning (for example, in natural language processing) have enabled the opportunity to process software and specifications to detect vulnerabilities in a system before it is deployed. This paper presents a survey of artificial intelligence techniques (including machine learning) to detect or repair security vulnerabilities before product introduction. In the surveyed papers, techniques are presented for using NLP to analyze requirements documents for security standard completeness, performing neural fuzz testing of software, generating exploits to detect risk, and more. We categorize current techniques into 3 groups: vulnerability detection, vulnerability repair, and specification analysis. Generally, while AI techniques have become quite useful in this area, we show that AI techniques still tend to be limited in scope, providing a collection of tools which can augment but not replace careful system development to reduce vulnerability risks.

研究の動機と目的

  • 導入前にソフトウェアにおけるセキュリティ脆弱性を防止するためのAI駆動型アプローチを特定および分類すること。
  • ソースコード、バイナリコード、およびシステム仕様における脆弱性検出におけるAI技術の有効性を評価すること。
  • 要件および設計文書を含む初期段階のセキュリティ解析の自動化と向上の可能性を評価すること。
  • 現在のAI手法が、安全なソフトウェア開発における人的専門知識を置き換えることにおける限界を特定すること。

提案手法

  • 2008年から2018年までの査読済みおよび査読外の文献を対象としたサーベイベースのアプローチを用い、脆弱性防止におけるAIの応用を分析する。
  • 技術を3つの分野に分類する:脆弱性検出(例:コードプロパティグラフ、ニューラルファズテスト)、修復(例:コード変換の学習)、および仕様解析(例:要件文書におけるNLP)。
  • モバイルアプリのアプリケーション記述および権限を分析するため、POSタギング、固有表現認識、意味グラフ構築などのNLP技術を適用する。
  • SVM、意思決定木、ニューラルネットワークなどの機械学習モデルを、コードプロパティグラフおよびセキュリティ基準の概念グラフ上で学習させる。
  • 不教師あり学習およびクラスタリングを用いてコードにおける異常検出を実施し、ある研究では人的レビューの必要性を95%まで削減した。
  • 概念グラフおよびニューラルネットワークを用いて、ソフトウェア要件文書をISO、OWASP、PCIセキュリティ基準と照合し、欠落したセキュリティ制御を特定する。

実験結果

リサーチクエスチョン

  • RQ1AI技術をどのように活用して、導入前にソースコードにおけるセキュリティ脆弱性を検出できるか?
  • RQ2AIが同定されたセキュリティ欠陥を自動的に修復できる範囲はどの程度か?
  • RQ3NLPは、セキュリティ基準に整合し、完全性を有する要件文書を効果的に分析できるか?
  • RQ4現在のAIベースのアプローチが、安全なソフトウェア開発における人的専門知識を置き換えることにおいて、どのような限界を有するか?

主な発見

  • 不教師あり学習およびクラスタリングにより、ある研究では人的レビューが必要なコードセグメントの数を95%まで削減した。これは、脆弱性検出における高い効率性を示している。
  • 要件文書に対するNLPベースの分析は、ISOおよびOWASP基準と照合した際、欠落したセキュリティ制御を89%の正確性で検出できた。
  • ベクトル空間に埋め込まれたコードプロパティグラフを用いることで、機械学習を用いた脆弱なコードパターンの効果的検出が可能になった。
  • 深層学習を用いたニューラルファズテストおよびエクスプロイト生成は、ソフトウェアに未知の脆弱性を同定する上で有望な結果を示した。
  • AI技術は人的作業を顕著に削減できるが、その範囲は限定的であり、まだきめ細やかなシステム設計および人的レビューを置き換えることはできない。
  • 概念グラフおよびNLPを用いた仕様解析により、ユーザーの期待とアプリの権限の間のギャップが埋まり、モバイルアプリのデプロイリスクが低減された。

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

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

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

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