Microsoft Security Code Analysis について

Note

2022 年 12 月 31 日をもって、Microsoft Security Code Analysis (MSCA) 拡張機能は廃止されました。 MSCA は、Microsoft Security DevOps の Azure DevOps 拡張機能に置き換えられます。 構成に関する記事の手順に従い、拡張機能のインストールと構成を行ってください。

Microsoft Security Code Analysis 拡張機能を使用すると、チームは Azure DevOps の継続的インテグレーションと継続的配信 (CI/CD) パイプラインにセキュリティ コード分析を追加できます。 これは Microsoft の Microsoft セキュリティ開発ライフサイクル (SDL) の専門家が推奨する分析です。

一貫性のある UX のために、実行しているツールの複雑さは隠されて、セキュリティが単純になります。 ツールの NuGet ベースの配信により、チームはツールのインストールまたは更新を管理する必要がなくなります。 すべてのユーザーが、ビルド タスクのコマンド ラインと基本インターフェイスの両方を使用して必要に応じてツールを適切に制御できます。

チームでは、次のように強力な後処理機能を使用することもできます。

  • 保存用にログを発行する。
  • 開発者向けの実用的なレポートを生成する。
  • 回帰テストでビルドの中断を構成する。

Microsoft Security Code Analysis を使用する理由

簡素化されたセキュリティ

Azure DevOps パイプラインに Microsoft Security Code Analysis ツールを追加するのは、新しいタスクを追加するのと同じくらい簡単です。 タスクをカスタマイズするか、既定の動作を使用します。 タスクは Azure DevOps パイプラインの一部として実行され、さまざまな種類の結果を詳細に示すログが生成されます。

クリーン ビルド

ツールによってレポートされた初期の問題に対処した後、新しい問題の発生時にビルドを中断するようこの拡張機能を構成できます。 すべての pull request に対して継続的インテグレーション ビルドを設定することは簡単です。

設定したら放っておく

既定では、ビルド タスクとツールは最新の状態が維持されます。 更新されたバージョンのツールがあっても、ダウンロードしてインストールする必要はありません。 拡張機能によって、自動的に更新が行われます。

しくみ

拡張機能のビルド タスクによって、次のような複雑さが隠されます。

  • セキュリティ スタティック分析ツールを実行する。
  • ログ ファイルの結果を処理して、概要レポートを作成するかビルドを中断する。

Microsoft Security Code Analysis ツール セット

Microsoft Security Code Analysis 拡張機能により、重要な分析ツールの最新バージョンをすぐに利用できるようになります。 拡張機能には、Microsoft が管理するツールとオープンソース ツールの両方が含まれています。

対応するビルド タスクを使用してパイプラインを構成して実行すると、これらのツールはクラウドでホストされるエージェントに自動的にダウンロードされます。

このセクションでは、拡張機能で現在使用できる一連のツールについて説明します。 今後もツールが追加されますのでお待ちください。 また、追加を希望するツールについてご意見をお寄せください。

Anti-Malware Scanner

Anti-Malware Scanner ビルド タスクが Microsoft Security Code Analysis 拡張機能に含まれるようになりました。 このタスクは、Windows Defender が既にインストールされているビルド エージェント上で実行する必要があります。 詳細については、Windows Defender の Web サイトを参照してください。

BinSkim

BinSkim は、コンパイラの設定、リンカーの設定、およびバイナリ ファイルのその他のセキュリティ関連の特性を検証する、ポータブル実行可能 (PE) 形式の軽量なスキャナーです。 このビルド タスクでは、binskim.exe コンソール アプリケーションのコマンド ライン ラッパーが提供されます。 BinSkim はオープンソースのツールです。 詳細については、GitHub 上の BinSkim を参照してください。

Credential Scanner

ソース コードに格納されているパスワードやその他のシークレットは重要な問題です。 Credential Scanner は、この問題を解決するために役立つ独自のスタティック分析ツールです。 このツールによって、ソース コードとビルド出力に含まれる資格情報、シークレット、証明書、およびその他の機密コンテンツが検出されます。

Roslyn アナライザー

Roslyn アナライザーは、マネージド C# コードと Visual Basic コードを静的に分析するための Microsoft のコンパイラ統合ツールです。 詳細については、「Roslyn ベースのアナライザー」を参照してください。

TSLint

TSLint は拡張可能なスタティック分析ツールで、TypeScript コードに読みやすさ、保守のしやすさ、機能のエラーがないかどうかをチェックします。 最新のエディターやビルド システムで広くサポートされています。 独自の lint のルール、構成、およびフォーマッタを使用してカスタマイズできます。 TSLint はオープンソースのツールです。 詳細については、GitHub 上の TSLint を参照してください。

結果の分析と後処理

Microsoft Security Code Analysis 拡張機能には、3 つの後処理タスクもあります。 これらのタスクは、セキュリティツールのタスクによって検出された結果を分析するために役立ちます。 これらのタスクをパイプラインに追加すると、通常、他のすべてのツール タスク後に実行されます。

セキュリティ分析ログの発行

セキュリティ分析ログの発行ビルド タスクでは、ビルド中に実行されるセキュリティ ツールのログ ファイルが保持されます。 これらのログを確認して、調査とフォローアップを行うことができます。

ログ ファイルは .zip ファイル形式で Azure Artifacts に発行できます。 プライベート ビルド エージェントからアクセスできるファイル共有にコピーすることもできます。

セキュリティ レポート

セキュリティ レポートのビルド タスクでは、ログ ファイルが解析されます。 これらのファイルは、ビルド時に実行されるセキュリティ ツールによって作成されます。 その後、ビルド タスクによって 1 つの概要レポート ファイルが作成されます。 このファイルには、分析ツールで検出されたすべての問題が示されます。

このタスクは、特定のツールまたはすべてのツールの結果をレポートするように構成することができます。 また、エラーのみ、エラーと警告の両方など、報告する問題のレベルを選択することもできます。

分析後 (ビルドの中断)

分析後のビルド タスクを使用して、意図的にビルドの失敗を引き起こすビルドの中断を挿入できます。 1 つ以上の分析ツールによってコードの問題が報告された場合は、ビルドの中断を挿入します。

このタスクは、特定のツールまたはすべてのツールによって検出された問題のビルドを中断するように構成することができます。 また、エラーや警告など、検出された問題の重大度に基づいて構成することもできます。

Note

タスクが正常に完了する場合、設計上、各ビルド タスクは成功です。 これは、ツールによって問題が検出されてもされなくても真実であり、すべてのツールの実行を許可すればビルドは最後まで実行できます。

次のステップ

Microsoft Security Code Analysis をオンボードしてインストールする方法については、オンボードとインストールのガイドを参照してください。

ビルド タスクの構成の詳細については、構成ガイドまたは YAML の構成ガイドを参照してください。

この拡張機能と提供されるツールについてご不明な点がある場合は、FAQ ページを参照してください。