Microsoftは、オープンソースでクロスプラットフォームのソースコード解析ツール「Microsoft Application Inspector」を公開した。多種多様なプログラミング言語で記述されたコンポーネントを使用した数百万行のコードを解析できる。コードの時間的な変化はもちろん、特に「危険な」部分がどこなのかを特定できる。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Microsoftは2020年1月16日(米国時間)、オープンソースでクロスプラットフォームのソースコード解析ツール「Microsoft Application Inspector(Application Inspector)」を公開したと発表した。
Microsoftは高品質のソフトウェアとサービスを提供するため、オープンソースソフトウェア(OSS)を使って開発を行っている。だが、OSSを信頼することには固有のリスクが伴う。このような認識から、今回のツールを開発したとしている。
現代のソフトウェア開発では、組織内の別のチームが記述したコードはもちろん、外部のベンダー、オープンソースコミュニティーの「誰か」が作成したコードを使って、アプリケーションを構築することは珍しくない。その結果、何百ものコンポーネントを扱うことになる。このような手法にはメリットがある。コードを再利用することで、市場投入が早くなり、品質や相互運用性なども向上する。だが、副作用もある。複雑さが増え、リスクを伴うことだ。
社内の開発チームを信頼できたとしても、内製のコードがアプリケーション全体に占める割合は小さい。外部から調達したコンポーネントが実際に何を実行しているのか、明確に理解していない場合も少なくない。
Application Inspectorは、ソースコードから“興味深い”機能(暗号化の利用やリモートエンティティーへの接続など)やメタデータ(動作プラットフォームなど)を特定する。これによって開発者は、アプリケーションが使用するソフトウェアコンポーネントをよりよく理解できる。
Application Inspectorは一般的な静的解析ツールとは異なるという。同社によればこうだ。
「コードの中で出来の悪い部分を検出するだけではない。手動では特定するのに時間がかかる、あるいは特定が困難な、興味深い特徴を発見できる」
これはどのような意味なのだろうか。Microsoftは次のようなPythonで記述されたスニペットを使って説明している。
このスニペットは特定のURLからコンテンツをダウンロードし、ファイルシステムに書き込み、シェルコマンドを実行して、ファイルの詳細情報をリスト表示する。
このコードにApplication Inspectorを適用すると、次のように機能を3行で特定できるため、このプログラムが何を実行するかがよく分かる。
Application Inspectorは、多種多様なプログラミング言語で作成されたコンポーネントを使用した数百万行のソースコードを解析できる。こうした作業は手動では不可能だ。
同社は、Application Inspectorを次のような目的で使っているという。
Copyright © ITmedia, Inc. All Rights Reserved.