マイクロソフトは、サードパーティ製ソフトウェアコンポーネントを利用する開発者を支援するため、ソースコード分析ツール「Microsoft Application Inspector」のソースコードを公開したと発表しました。Microsoft Application Inspectorは、JSONベースのルールエンジンを用いた静的解析により、ソフトウェアコンポーネントの重要な特性などを明らかにするように設計されたソースコードアナライザーです。
このコードアナライザーは、プログラミング手法の検出だけに限定されず、コード制御中に、通常は慎重な手動分析が必要となる特性を識別して強調表示するように設計されているため、同種の他のツールとは異なります。
ツールについてマイクロソフトが提供した説明によると:
Microsoft Application Inspectorは、「良い」モデルまたは「悪い」モデルを識別しようとはしません。 機能検出用の400を超えるルールテンプレートのセットを参照して、検出した内容を報告するのは内容です。 Microsoftによると、これには暗号化の使用など、セキュリティに影響を与える機能も含まれます。
このツールはコマンドラインから操作でき、クロスプラットフォームに対応しています。使用前にコンポーネントをスキャンし、ソフトウェアの種類や機能を特定するのに役立つように設計されています。
提供するデータは、ほとんど限られたドキュメントや推奨事項に頼るのではなく、ソースコードを直接調べることで、ソフトウェアコンポーネントの動作を判断するのにかかる時間を短縮するのに役立ちます。
Microsoft Application Inspectorは、C、C++、C#、Java、JavaScript、HTML、Go、PowerShellなど、さまざまなプログラミング言語の分析をサポートしており、 HTML、JSON、テキスト形式の出力にも対応しています。
Microsoft Application Inspectorの開発者によると、このツールは個人利用にも大規模利用にも対応できるよう設計されており、さまざまなプログラミング言語で構築されたコンポーネントの数百万行に及ぶソースコードを分析できるという。
マイクロソフトは、アプリケーションインスペクターを使用して、コンポーネントの機能セットに対する主要な変更を時間の経過とともに(バージョンごとに)識別します。これは、攻撃対象領域の増加から悪意のあるバックドアまで、あらゆるものを示すことができるためです。
彼らはまた、このツールを使用して、リスクの高いコンポーネントや、さらなる精査が必要な予期せぬ特性を持つコンポーネントを特定する。リスクの高いコンポーネントには、暗号化、認証、逆シリアル化などの分野に関わるものがあり、これらの分野では脆弱性がより大きな問題を引き起こす可能性が高い。
このツールの目的は、特定の特性に基づいてリスクのあるサードパーティ製ソフトウェアコンポーネントを迅速に特定することですが、セキュリティ上の問題のある多くの状況でも役立ちます。
基本的に、Microsoft Application Inspector の最も重要な機能は以下のとおりです。
- 静的分析を実行するJSONベースのルールエンジン。
- 多くの言語で作成されたコンポーネントからの数百万行のソースコードを分析する機能。
- リスクの高いコンポーネントと予期しない特性を持つコンポーネントを識別する機能。
- コンポーネントの機能セットへの変更をバージョンごとに識別する機能。これは、悪意のあるバックドアからより大きな攻撃対象領域まで、あらゆるものを示す可能性があります。
- JSONやHTMLを含む複数の形式で結果を生成する機能。
- Microsoft Azure、Amazon Web Services、Google Cloud PlatformサービスAPIをカバーする機能と、ファイルシステム、セキュリティ機能、アプリケーションフレームワークなどのオペレーティングシステム機能を検出する機能。
予想通り、プラットフォームと暗号化技術は十分に網羅されており、対称暗号、非対称暗号、ハッシュ、TLSがサポートされている。
機密情報や個人を特定できる情報など、データの種類をリスクについてチェックできます。
その他のチェックには、プラットフォームID、ファイルシステム、レジストリ、ユーザーアカウントなどのオペレーティングシステム機能、および認証や承認などのセキュリティ機能が含まれます。
最後に、 Microsoft Application Inspectorを試してみたい方は、 GitHubで入手できます。