最近のMicrosoftにのブログ投稿で、開発者がソリューションのセキュリティ脆弱性を検出するオープンソースツールが発表された。ツールはMicrosoft Application Inspectorと呼ばれ、GitHubから入手できる。組織が市場投入までの時間を短縮しようとすると、ソフトウェアの複雑さと、十分に吟味されていないオープンソースコンポーネントの利用により、見落としが生じる可能性がある。Application Inspectorは、カスタムコードソリューションで使用されている悪意のあるコードやバックドアを特定できる。
Microsoftは、カスタム開発で使用されている多くの外部ソフトウェアコンポーネントと、それらのコンポーネントに適用されている少しの精査をこのツールの結果として紹介した。MicrosoftのプログラムマネージャーであるGuy Acosta氏は次のように説明している:
エンジニアチームを信頼していたとしても、彼らはアプリケーション全体のたった一部のコードしか書かないことがあります。外部ソフトウェアコンポーネントが実際にはどんなことをするかをどれだけ理解していますか?数千のコントリビューターをインハウスのエンジニアと同じように信頼していることに気づくかもしれません。
Application Inspectorは、Microsoftアプリケーションにオープンソースプロジェクトが取り込まれた結果としてMicrosoftが使っている。このツールは「注意すべき」機能、メタデータ、ホームを呼び出すアプリケーションなど、リモートエンティティに対する暗号化と接続を識別できる。
ソースコードを解析するための多くの静的解析ツールは、貧弱または一貫性のないコーディング手法を特定できる。Application Inspectorはソースコードの意図を識別することにより、それを超えている。Microsoftはこれを示すコードの例を公開した。このコードではMicrosoft.com WebサイトへのWebリクエストを行っている。データはファイルシステムに書き込まれて、コンテンツがリスト化されている。
Application Inspectorがこのコードを解析すると、以下の操作が含まれていることを識別できる:
- FileOperation.Write
- Network.Connection.Http
- Process.DynamicExecution
イメージソース: https://www.microsoft.com/security/blog/2020/01/16/introducing-microsoft-application-inspector/
Microsoftが認識しているその他の利用ケースは、ソフトウェアの複数バージョンをまたいで発生するコードドリフトと、このツールを使用して導入される悪意のあるコードを特定する方法である。Acosta氏はさらに説明する:
私たちはApplication Inspectorを使ってコンポーネントの機能セットの主要な変更を特定します。これは、攻撃対象の増加から悪意のあるバックドアまでを示します。 私たちはこのツールをハイリスクコンポーネントの特定と、想定外の機能の特定に使用しています。暗号化、認証、シリアル化解除などに関係するコンポーネントが他に比べて高い影響を与える可能性が高いという理論のもとで、リスクの高いコンポーネントを特定します。
開発者はコマンドラインツールを通じてApplication Inspectorを実行させて、JSONやインタラクティブHTMLレポートのアウトプットを選択できる。
画像ソース: https://www.microsoft.com/security/blog/2020/01/16/introducing-microsoft-application-inspector/
Application Inspectorは、多くの人気のあるアプリケーションフレームワークと、Microsoft Azure, Amazon AWS, Google Cloud Platformのようなクラウドサービスをサポートしている。さらに、対象、非対称、ハッシュ、TLSのような暗号化実装も識別できる。
プラットフォームの識別、ファイルシステム操作、レジストリ、ユーザーアカウントのようなOS機能もサポートされている。最後に認証や承認スキームのようなセキュリティ機能も識別できる。