ニュース
» 2020年01月24日 17時30分 公開

数百万行のコードを解析可能:Microsoft、ソースコード解析ツール「Application Inspector」をOSSとして公開

Microsoftは、オープンソースでクロスプラットフォームのソースコード解析ツール「Microsoft Application Inspector」を公開した。多種多様なプログラミング言語で記述されたコンポーネントを使用した数百万行のコードを解析できる。コードの時間的な変化はもちろん、特に「危険な」部分がどこなのかを特定できる。

[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 Microsoftは2020年1月16日(米国時間)、オープンソースでクロスプラットフォームのソースコード解析ツール「Microsoft Application Inspector(Application Inspector)」を公開したと発表した。

 Microsoftは高品質のソフトウェアとサービスを提供するため、オープンソースソフトウェア(OSS)を使って開発を行っている。だが、OSSを信頼することには固有のリスクが伴う。このような認識から、今回のツールを開発したとしている。

 現代のソフトウェア開発では、組織内の別のチームが記述したコードはもちろん、外部のベンダー、オープンソースコミュニティーの「誰か」が作成したコードを使って、アプリケーションを構築することは珍しくない。その結果、何百ものコンポーネントを扱うことになる。このような手法にはメリットがある。コードを再利用することで、市場投入が早くなり、品質や相互運用性なども向上する。だが、副作用もある。複雑さが増え、リスクを伴うことだ。

 社内の開発チームを信頼できたとしても、内製のコードがアプリケーション全体に占める割合は小さい。外部から調達したコンポーネントが実際に何を実行しているのか、明確に理解していない場合も少なくない。

静的解析ツールとの違いは?

 Application Inspectorは、ソースコードから“興味深い”機能(暗号化の利用やリモートエンティティーへの接続など)やメタデータ(動作プラットフォームなど)を特定する。これによって開発者は、アプリケーションが使用するソフトウェアコンポーネントをよりよく理解できる。

 Application Inspectorは一般的な静的解析ツールとは異なるという。同社によればこうだ。

 「コードの中で出来の悪い部分を検出するだけではない。手動では特定するのに時間がかかる、あるいは特定が困難な、興味深い特徴を発見できる」

 これはどのような意味なのだろうか。Microsoftは次のようなPythonで記述されたスニペットを使って説明している。

Pythonで記述したスニペット(出典:Microsoft

 このスニペットは特定のURLからコンテンツをダウンロードし、ファイルシステムに書き込み、シェルコマンドを実行して、ファイルの詳細情報をリスト表示する。

 このコードにApplication Inspectorを適用すると、次のように機能を3行で特定できるため、このプログラムが何を実行するかがよく分かる。

  • FileOperation.Write
  • Network.Connection.Http
  • Process.DynamicExecution

Application Inspectorが力を発揮する場面は?

 Application Inspectorは、多種多様なプログラミング言語で作成されたコンポーネントを使用した数百万行のソースコードを解析できる。こうした作業は手動では不可能だ。

 同社は、Application Inspectorを次のような目的で使っているという。

  • コードの変化を追う バージョン間でコンポーネントの機能セットに加えられた主要な変更を特定する。これにより、攻撃対象領域の拡大から、悪意あるバックドアまで、さまざまなことが明らかになる
  • 危険なコードを特定する 高リスクコンポーネントや、追加調査を要する予想外の機能を持つコンポーネントを特定する。これは、「暗号化や認証、デシリアライズに関わるコンポーネントの脆弱(ぜいじゃく)性は、他の部分の脆弱性よりも大きな影響を及ぼす可能性が高い」という考え方に基づく

Application Inspectorを使うには

Copyright © ITmedia, Inc. All Rights Reserved.

編集部からのお知らせ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。