
Microsoft Application Inspector は、ソフトウェアのソースコード特性を分析するツールです。よく知られたライブラリやAPI呼び出しに基づいて、ファーストパーティまたはサードパーティのソフトウェアコンポーネントのコーディング特性を特定するのに役立ち、セキュリティおよび非セキュリティの両方のユースケースで有用です。数百のルールと正規表現パターンを使用して、ソースコードの興味深い特性を明らかにし、そのソフトウェアが何であるか、または何をするかを、使用するファイル操作、暗号化、シェル操作、クラウドAPI、フレームワークなどから判断するのに役立ちます。このツールは業界からも注目されており、OSSへの新しく価値ある貢献として、ZDNet、SecurityWeek、CSOOnline、Linux.com/news、HelpNetSecurity、Twitterなどで取り上げられ、Microsoft.comでも初めて紹介されました。
Application Inspector は従来の静的解析ツールとは異なり、「良い」パターンや「悪い」パターンを識別しようとはしません。単に、暗号化の使用などセキュリティに影響を与える機能を含む、400以上のルールパターンに基づいて検出結果を報告するだけです。これは、オープンソースやその他のコンポーネントが何をするのかを、限られたドキュメントや推奨事項に頼るのではなく、ソースを直接調べることで判断するために必要な時間を大幅に短縮するのに役立ちます。
このツールは、C、C++、C#、Java、JavaScript、HTML、Python、Objective-C、Go、Ruby、PowerShellなどのさまざまなプログラミング言語のスキャンをサポートし、さらに多くの言語にも対応しており、言語が混在したファイルを持つプロジェクトもスキャンできます。結果はHTML、JSON、テキスト形式で出力可能で、デフォルトはHTMLレポートで、以下に示すようなものです。

詳細な情報とヘルプについては、プロジェクトのWikiページ https://Github.com/Microsoft/ApplicationInspector/wiki をご参照ください。
dotnet tool install --global Microsoft.CST.ApplicationInspector.CLI を実行します。詳細は Wiki をご覧ください。
appinspector analyze -s path/to/srcapplicationinspector.cli.exe analyze -s path/to/srcMicrosoft Application Inspector は、アプリケーションの開発からデプロイに至るまで、セキュリティを確保するのに役立ちます。
設計の選択 - 不必要な機能や未知の機能を減らし、アプリケーションの攻撃対象領域を小さく保つとともに、期待される機能(例:業界標準の暗号化のみ)を検証できるように、ニーズに合ったコンポーネントを選択できるようにします。
機能の差分の特定 - コンポーネントのバージョン間の変更を検出します。これはバックドアの注入を検出するために重要です。
セキュリティコンプライアンスチェックの自動化 - ビルドパイプラインの一部として、追加のセキュリティ審査、承認、またはSDLコンプライアンスが必要な機能を持つコンポーネントを特定したり、すべてのエンタープライズアプリケーションに関するメタデータのリポジトリを作成するために使用します。
機能検出のためのルールの強力なデフォルトベースがあります。しかし、定義されていない機能識別パターンはまだ多くあります。皆さんのアイデアの提出や、いくつかのルールを自分で定義してみることをお勧めします。これは、誰もが使えるツールを提供するオープンソースエコシステムに実際に影響を与えるチャンスです。詳細はWikiの Rules セクションをご覧ください。
Application Inspector は GENERAL AUDIENCE リリースのステータスです。皆様のフィードバックは私たちにとって重要です。コントリビュートに興味がある場合は、CONTRIBUTING.md をご確認ください。
Application Inspector はコマンドラインツールまたは NuGet パッケージとして利用でき、Windows、Linux、MacOS でサポートされています。
プラットフォーム固有の ApplicationInspector CLI バイナリは、GitHub の releases page から入手できます。
C# ライブラリは NuGet で Microsoft.CST.ApplicationInspector.Commands として利用可能です。
.NET Global Tool は NuGet で Microsoft.CST.ApplicationInspector.CLI として利用可能です。
.NET Core バージョンを使用する場合は、.NET 6.0 以降がインストールされている必要があります。詳細は JustRunIt.md または Build.md をご覧ください。
> appinspector --help
ApplicationInspector.CLI 1.8.4-beta+976ee3cdd1
c Microsoft Corporation. All rights reserved.
analyze Inspect source directory/file/compressed file (.tgz|zip)
against defined characteristics
tagdiff Compares unique tag values between two source paths
exporttags Export the list of tags associated with the specified rules.
Does not scan source code.
verifyrules Verify custom rules syntax is valid
packrules Combine multiple rule files into one file for ease in
distribution
help Display more information on a specific command.
version Display version information.
特定のコマンドのヘルプを表示するには appinspector <command> --help を実行します。
Analyze コマンドは Application Inspector の主要機能です。
デフォルトの引数とルールを使用して、カレントディレクトリに output.html を生成します。
appinspector analyze -s path/to/files
appinspector analyze -s path/to/files -f sarif -o output.sarif
CI環境に適した、主要機能のサマリーを含むマークダウン出力を作成します。
appinspector analyze -s path/to/files -f markdown -o report.md
提供されたグロブパターンを使用して test フォルダと .git フォルダ内のすべてのファイルを除外し、カレントディレクトリに data.json というJSON出力を作成します。
appinspector analyze -s path/to/files -o data.json -f json -g **/tests/**,**/.git/**
コンソールインターフェースの使用に関する追加ヘルプは CLI Usage をご覧ください。
NuGet パッケージの使用に関するヘルプは NuGet Support をご覧ください。
build.md をご覧ください
このアプリケーションの使用は、Microsoft Privacy Statement に準拠しています。