Skip to main content
QUICK REVIEW

[論文レビュー] The Multiple Facets of Software Diversity: Recent Developments in Year 2000 and Beyond

Benoît Baudry, Martin Monperrus|arXiv (Cornell University)|Sep 25, 2014
Software Reliability and Analysis Research参考文献 112被引用数 62
ひとこと要約

本稿は2000年以降にわたり、ソフトウェア多様性について包括的かつ包括的なサーベイを提示しており、フォールトトレランス、サイバーセキュリティ、コード内の自然的多様性、ソフトウェア製品ライン工学といった多様な研究分野を統合している。本稿では、管理された、自動化された、自然な形の多様性に分類される統一されたフレームワークを導入し、開発実務とコード再利用から生じる自然的多様性が、システムのレジリエンスとセキュリティにおいて重要な役割を果たしていることを明らかにしている。実証的研究では、実世界のコードベースにおいて高い再帰性と機能的同等性が確認されている。

ABSTRACT

Early experiments with software diversity in the mid 1970's investigated N-version programming and recovery blocks to increase the reliability of embedded systems. Four decades later, the literature about software diversity has expanded in multiple directions: goals (fault-tolerance, security, software engineering); means (managed or automated diversity) and analytical studies (quantification of diversity and its impact). Our paper contributes to the field of software diversity as the first paper that adopts an inclusive vision of the area, with an emphasis on the most recent advances in the field. This survey includes classical work about design and data diversity for fault tolerance, as well as the cybersecurity literature that investigates randomization at different system levels. It broadens this standard scope of diversity, to include the study and exploitation of natural diversity and the management of diverse software products. Our survey includes the most recent works, with an emphasis from 2000 to present. The targeted audience is researchers and practitioners in one of the surveyed fields, who miss the big picture of software diversity. Assembling the multiple facets of this fascinating topic sheds a new light on the field.

研究の動機と目的

  • しばしば断片化している複数の研究コミュニティにおけるソフトウェア多様性の包括的かつ統一的なビジョンを提供すること。
  • フォールトトレランス、サイバーセキュリティ、ソフトウェア工学、プログラミング言語の分野に焦点を当てたコミュニティの間のギャップを、ソフトウェア多様性の枠組みの下で統合することで埋めること。
  • 2000年以降、特に従来のサーベイで不足している自動化および自然的多様性の最近の進展を強調すること。
  • 開発実務とコード再利用から生じる自然的多様性が、レジリエントかつ安全なシステムを構築するための価値ある利用可能なリソースであることを示すこと。
  • 将来的なオープンエンドのソフトウェア多様化研究の基盤を築くために、ソフトウェアシステムにおける多様性の出現を駆動する原則を特定すること。

提案手法

  • 目的(例:フォールトトレランス、セキュリティ)、スケール(例:コード、OS、ネットワーク)、形態(例:設計、実行、自然的)といった複数の次元に沿ってソフトウェア多様性を体系的に分類すること。
  • サーベイを二つの主軸に沿って整理すること:工学的(管理されたおよび自動化された多様性)対観察的(自然的多様性を研究対象として)。
  • Nバージョンプログラミング、ランダム化技術(例:ASLR、コンパイラレベルのランダム化)およびコードと開発者行動における自然的多様性を含む、多様性タイプの分類法を用いること。
  • 統計およびデータマイニング技術を用いて大規模なコードベース(例:Linuxカーネル、4.2億行のコード)を分析し、機能的同等性と使用多様性を検出すること。
  • オープンソースプロジェクトにおける開発者貢献パターン(例:注目度と所有権)の多様性を定量化するためのエントロピーに基づく指標を導入すること。
  • Webサーバー部品における6000件の脆弱性の合成から、自然的多様性がエクスプロイト耐性に与える影響を評価すること。

実験結果

リサーチクエスチョン

  • RQ1異なる目的、スケール、形態に沿ってソフトウェア多様性を体系的に分類することで、断片化している研究コミュニティを統合することは可能か?
  • RQ2関数的同等性や使用法の変動といった、ソースコードにおける自然的多様性が、システムのレジリエンスとセキュリティにどの程度貢献しているか?
  • RQ3大規模ソフトウェアシステムにおける自然的多様性の実証的特性は何か? 人工的に設計された多様性と比べてどう異なるか?
  • RQ4エントロピーに基づく指標は、開発者貢献パターンの多様性をどの程度正確に定量化できるか? また、ソフトウェア品質の予測力はどの程度あるか?
  • RQ5ソフトウェアシステムにおける多様性の出現を支配する原則は何か? それらの原則を工学的に応用することで、オープンエンドで自己持続的な多様化を実現できるか?

主な発見

  • ソフトウェアにおける自然的多様性は広範に存在する:4.2億行のコード解析により、最大40トークンまでのコードシーケンスに顕著な再帰性が確認され、その閾値を超えると一意性が増加した。
  • 機能的同等性は一般的である:Linuxカーネル2.6.24において、ランダムなテスト入力に対して、構文的に異なる多数のコードスニペットが同一の出力を生成しており、隠れた再帰性が示唆された。
  • オブジェクト指向APIにおける使用多様性は極めて高い:JavaのStringクラスだけでも、数10万のクラスにわたる異なるメソッド使用パターンが観察された。
  • 市販部品には自然的多様性が現れる:2007年の6000件の脆弱性において、1つのエクスプロイトではすべての部品を破壊できず、マルチバージョンシステムのレジリエンスが裏付けられた。
  • 開発者貢献の多様性はソフトウェア品質と相関する:注目が集中する開発者は欠陥を少なく導入するが、複数の貢献者が関与するアーティファクトは欠陥が多くなる傾向にあり、複雑なトレードオフが存在する。
  • オープンソースプロジェクトにおける自然的多様性は高く、測定可能である:注目度と所有権に関するエントロピー指標は欠陥率の強力な予測力を持つことが示され、多様性が観察可能かつ分析可能であることを示唆した。

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

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

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

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