編集部からのお知らせ
解説:広がるエッジAIの動向
Check! ディープラーニングを振り返る

正常なソフトからコードを転送してバグを修復するシステム、MITが開発

Charlie Osborne (Special to ZDNet.com) 翻訳校正: 川村インターナショナル

2015-07-02 17:05

 マサチューセッツ工科大学(MIT)のチームは、「ドナー(「臓器提供者」の意)」プログラムを使ってオープンソースプログラムの機能性を向上させ、システムエラーと脆弱性を減らす方法を考案した。

 「Automatic error elimination by horizontal code transfer across multiple applications」(複数のアプリケーションをまたいだ水平コード転送による自動エラー除去)と題された論文の中で、MITの研究チームは「Code Phage」システムについて説明した。同システムは、ドナーとなるプログラムから、バグのあるコードやエラーを含むほかのアプリケーションに自動的にコードを転送する。

 テスト中、MITのチーム(Stelios Sidiroglou-Douskos氏、Eric Lahtinen氏、Fan Long氏、Martin Rinard氏)は7つのドナーアプリケーションを使って、受け取り側の複数のオープンソースプログラムに存在していた計10個のエラーを解消した。

 「(Code Phageは)ソースコードも記号情報も不要でバイナリドナーと連携するので、幅広いユースケースに対応できる。われわれの知る限り、Code Phageは複数のアプリケーションをまたいで自動的にコードを転送できる初めてのシステムだ」(同チーム)

 Code Phageが分析を開始するためには、2つのサンプル入力が必要となる。エラーを引き起こす入力と、エラーを引き起こさないシード入力だ。その後、Code Phageはアプリケーションデータベースを利用して、両方の入力を適切に処理できるドナープログラムを特定する。

 「ドナーには判断基準となる部分があり、受け取り側にはそれがない。これにより、エラーを引き起こす入力を適切に処理することが可能になるというのがわれわれの仮説だ。目標は、その部分をドナーから受け取り側に転送する(そして受け取り側のエラーを取り除く)ことだ」(同論文)

 この判断基準が特定されたら、Code Phageはドナーの条件分岐を調べて、シード入力とエラーを引き起こす入力に関して、異なる方向に進む分岐を見つける。その後、Code Phageはエラーを修正する正しい分岐を検出し、そのバグを修復するパッチを自動的に作成する。そして、このパッチが適用され、テストされる。

 MIT研究チームによると、Code Phageは整数オーバーフローや境界を越えたアクセス、ゼロ除算エラーなどのエラー修正に使用できるという。

この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

Special PR

特集

CIO

モバイル

セキュリティ

スペシャル

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]