Microsoftは2026年7月、Microsoft Security Exposure Managementの新機能として「Codename MDASH – Agentic code scanner」をプライベートプレビューで提供開始しました。結論から言うと、MDASHコードスキャンはDefender CLIとGitHub connectorの両方から実行できます。Defender CLIはローカル端末やCI/CDパイプラインからの実行、GitHub connectorはMicrosoft Defenderポータルからのリモートスキャンに向いています。検出結果はいずれもDefenderポータルに集約され、コードセキュリティリスクの優先順位付けに利用できます。(Microsoft Learn)
ただし、現時点では一般提供ではありません。利用にはプライベートプレビューへの参加、Microsoft Foundryの準備、権限設定などが必要です。すべてのMicrosoft 365環境ですぐに有効化できる機能ではない点に注意してください。
MDASH Agentic Code Scannerとは
MDASH Agentic Code Scannerは、複数のAIモデルと専門化されたAIエージェントを組み合わせて、リポジトリ内の脆弱性を調査するコードスキャン機能です。
単一のLLMにソースコードを渡して回答を得る仕組みではありません。Microsoftの説明では、100を超える専門エージェントが連携し、インジェクション、メモリ安全性、認証回避など、それぞれ異なる脆弱性クラスを調査します。(Microsoft Learn)
処理は、おおむね次の流れで進みます。
| 処理 | 主な内容 |
|---|---|
| Prepare | コールグラフやコードの複雑性を基に、調査すべきファイルや関数を絞り込む |
| Scan | 複数のAIモデルと専門エージェントが脆弱性を調査する |
| Validate | 汚染データの流れや型情報を分析し、検出内容の確度を検証する |
| Dedup | 重複する検出結果を統合し、対応可能な単位に整理する |
検証段階では、taint analysisやLanguage Server Protocolによる型解決も利用されます。さらに、複数モデルによる検討を通じて信頼度を調整し、誤検知を減らす設計です。Microsoftは、従来の静的解析よりも文脈を踏まえた深い分析を目指す機能として説明しています。(Microsoft Learn)
実務上は、既存のSASTや依存関係スキャンを直ちに置き換えるものではなく、従来のルールベース検査では判断しにくい問題を追加調査する仕組みとして評価するのが安全です。
MDASHコードスキャンはDefender CLIとGitHubのどちらで実行できるか
MDASH Agentic Code Scannerは、次の2つの経路から実行できます。
- Defender CLIから実行する
- GitHub connectorを通じてDefenderポータルから実行する
Microsoftは、最初の導入経路としてGitHub connectorによるリモートスキャンを推奨しています。一方、CI/CDへの組み込みやローカルに取得したコードの検査では、Defender CLIの方が柔軟です。(Microsoft Learn)
| 比較項目 | Defender CLI | GitHub connector |
|---|---|---|
| 実行場所 | ローカル端末、ビルドサーバー、CI/CD | Microsoft Defenderポータル |
| 対象 | ローカルにクローンしたリポジトリ | connectorに登録したGitHubリポジトリ |
| 実行方法 | コマンド | ポータル上の操作 |
| ローカルへの導入 | Defender CLIが必要 | 原則として不要 |
| 自動化 | CI/CDに組み込みやすい | 公式手順ではオンデマンドスキャンが中心 |
| ローカル出力 | HTML、SARIF | 基本的にDefenderポータルで確認 |
| ポータルへの集約 | 対応 | 対応 |
| 向いている運用 | 開発チーム、パイプライン、自動検査 | セキュリティ部門による集中管理 |
どちらを使用しても、最終的な検出結果はMicrosoft Security Exposure ManagementのMDASH Initiativeで管理できます。ポータル上では、CLIからのスキャンとリモートスキャンが区別して表示されます。(Microsoft Learn)
Defender CLIからMDASHコードスキャンを実行する方法
Defender CLIでは、ローカルにクローンしたリポジトリを対象として、ターミナルからAgentic Code Scannerを実行します。
基本的な実行コマンドは次の形式です。
defender scan ai-scan submit .
Windowsでは、配置方法によってdefender.exeとして実行します。
defender.exe scan ai-scan submit C:\src\sample-app
スキャンが完了すると、結果は実行ディレクトリに保存されるほか、Microsoft Defenderポータルにも送信されます。ローカルでは、人が確認しやすいHTMLレポートと、ツール連携に利用できるSARIF形式を扱えます。(Microsoft Learn)
Defender CLIが向いているケース
Defender CLIは、次のような環境に向いています。
- プルリクエストやリリース前にコードを自動検査したい
- GitHub connectorに依存せず、ローカルのリポジトリを検査したい
- GitHub ActionsやAzure DevOpsなどのCI/CDに組み込みたい
- SARIFを別のセキュリティ製品やダッシュボードに取り込みたい
- 開発者が修正前後の結果を手元で比較したい
CLIの認証方法には、ユーザーがサインインする対話型認証と、アプリ登録を利用するアプリベース認証があります。ローカルでの手動検査には対話型認証、CI/CDにはアプリベース認証が適しています。(Microsoft Learn)
CLIであっても解析はローカル完結ではない
注意したいのは、Defender CLIが「完全なローカルスキャナー」ではないことです。
CLIは手元の端末から処理を開始しますが、リポジトリのコードはMDASHのマルチモデルパイプラインに送信され、AIモデルを利用して解析されます。機密性の高いソースコードを扱う場合は、データの取り扱い、接続先、利用規約、社内承認を事前に確認する必要があります。(Microsoft Learn)
GitHub connectorからリモートスキャンを実行する方法
GitHub connectorを利用すると、GitHub OrganizationとMicrosoft Defenderポータルを接続し、登録したリポジトリをポータルからスキャンできます。
ローカル端末にDefender CLIを導入する必要がなく、セキュリティ担当者が複数リポジトリを集中管理しやすい方法です。Microsoftも、Agentic Code Securityの推奨オンボーディング経路としてGitHub connectorを案内しています。(Microsoft Learn)
基本的な流れは次のとおりです。
- Microsoft DefenderポータルでGitHub connectorを作成する
- GitHub Appを対象Organizationへインストールする
- 対象リポジトリをオンボードする
- MDASH Initiativeの「Manage scans」を開く
- 対象リポジトリを選択してスキャンを開始する
- Defenderポータルで結果を確認する
connectorの有効化後、オンデマンドスキャンが利用可能になるまで最大1時間かかる場合があります。(Microsoft Learn)
スキャンだけならGitHubの書き込み権限は必須ではない
GitHub connectorには、読み取りと書き込みの権限があります。
コードのスキャンとリポジトリ情報の取得だけであれば、読み取り権限で実行できます。書き込み権限は、GitHub上でIssueやプルリクエストを作成したり、セキュリティ情報を書き戻したりする場合に使用します。(Microsoft Learn)
最初の検証では読み取り権限だけを許可し、GitHubへの書き戻しが必要になった段階で書き込み権限を追加すると、過剰な権限付与を避けられます。
Defenderポータルで検出結果をどう優先順位付けするか
MDASHの価値は、脆弱性を検出することだけではありません。複数のリポジトリから得られた結果をMicrosoft Defenderポータルに集約し、対応すべき問題を絞り込める点にあります。
MDASH Initiativeでは、検出結果が主に次の3区分に整理されます。(Microsoft Learn)
| 区分 | 意味 | 実務での対応 |
|---|---|---|
| Validated by AI scanner | AIスキャナーが実在性を高く評価した重要な問題 | 修正担当者を割り当て、優先的に対応する |
| Flagged for review | 深刻度は高いが、AIだけでは十分に検証できなかった問題 | 開発者またはセキュリティ担当者がコードを確認する |
| Low priority | 深刻度または対応優先度が比較的低い問題 | バックログ化し、影響範囲を見て対応時期を決める |
各検出結果には、深刻度と信頼度が付与されます。単にCriticalやHighだけで並べるのではなく、「深刻度が高く、AIによる検証確度も高い問題」から対応できるように設計されています。(Microsoft Learn)
ただし、「Validated by AI scanner」と表示された問題でも、自動的に修正を本番環境へ適用するのは避けるべきです。影響範囲、再現条件、修正による副作用を人が確認し、テストを通してから反映する必要があります。
MDASH Agentic Code Scannerの導入に必要な準備
MDASHは、Defenderポータルでスイッチをオンにするだけの機能ではありません。プライベートプレビューのセットアップでは、複数のAzureおよびDefender設定が必要です。
プライベートプレビューへの参加可否を確認する
まず、自社テナントがプライベートプレビューの対象になっているかを確認します。
一般提供前の機能であるため、Microsoftの担当者やプレビュー窓口を通じた登録が必要になる可能性があります。本番利用を前提に環境を構築するのではなく、対象リポジトリを限定した評価計画を作成してから進めるのが安全です。
Microsoft Foundryの専用リソースを準備する
公式のセットアップ手順では、Azureサブスクリプションとリソースグループを用意し、MDASH専用のMicrosoft Foundryリソースを作成します。
さらに、指定された複数のAIモデルをデプロイし、プロジェクトエンドポイントとAPIキーをDefenderポータルへ登録します。Microsoftは、MDASH以外のワークロードと共用しない専用のFoundryエンドポイントを使用するよう案内しています。(Microsoft Learn)
プレビュー時点の公式手順では、各モデルに高いTokens Per Minuteの設定が求められます。また、セキュリティコードが通常のコンテンツフィルターに遮断されないよう、専用リソースに対して比較的許容範囲の広いフィルター設定を行います。ほかの生成AI用途と同じFoundryリソースを使い回すべきではありません。(Microsoft Learn)
必要な権限を割り当てる
初期オンボーディングには、Microsoft Entra IDのGlobal AdministratorまたはSecurity Administratorに相当する権限が必要です。
実際にスキャンを実行、アップロード、閲覧、管理するユーザーには、Microsoft Defender unified RBACで必要な権限を割り当てます。権限は「スキャン実行」「結果アップロード」「結果閲覧」「結果管理」に分かれているため、開発者とセキュリティ担当者で役割を分けられます。(Microsoft Learn)
GitHub connectorを作成する場合は、GitHub側でも対象OrganizationのOrganization Owner権限が必要です。(Microsoft Learn)
導入前に確認すべき注意点
日本リージョンの対応状況を確認する
プレビュー時点の公式ドキュメントでは、対応リージョンとして米国、欧州、英国、オーストラリア、インド、スイス、UAEが掲載されています。掲載されている一覧を見る限り、日本リージョンは含まれていません。UAEについてはCLIスキャンのみ対応とされています。(Microsoft Learn)
日本の組織が評価する場合は、次の点をMicrosoftへ確認する必要があります。
- 日本のテナントからプレビューに参加できるか
- ソースコードとスキャン結果がどのリージョンで処理されるか
- Microsoft Foundryリソースをどのリージョンに作成する必要があるか
- 社内のデータ所在地要件を満たせるか
既存のGitHub connectorと競合する可能性がある
同じGitHub OrganizationがAzureポータル側のGitHub connectorですでに接続されている場合、Defenderポータルから同じOrganizationを接続できない場合があります。
公式手順では、Defenderポータル側へ接続し直すには既存のAzureポータル側connectorを切断する必要があり、そのconnectorに関連するMicrosoft Defender for DevOps Security機能が利用できなくなると説明されています。(Microsoft Learn)
既存環境でDefender for DevOpsを運用している場合は、影響を確認せずにconnectorを削除してはいけません。
スキャンにはトークンが消費される
Agentic Code Scannerでは、解析中にAIモデルへのリクエストが発生し、トークンが消費されます。
Defenderポータルではスキャンごとのトークン消費量を確認できます。実行途中でキャンセルした場合も、それまでに消費したトークンは戻りません。大規模リポジトリをいきなりスキャンせず、小規模な対象から消費量と所要時間を測定するのが現実的です。(Microsoft Learn)
ポータルに表示される履歴には期間がある
MDASH Initiativeに表示されるスキャンと検出結果は、直近90日分です。長期的な改善状況を追跡する場合は、SARIFの保存、定期的なエクスポート、チケット管理システムへの転記などを検討してください。(Microsoft Learn)
Defender CLIとGitHub connectorの選び方
どちらか一方に統一する必要はありません。開発工程と管理目的に応じて使い分ける方法が適しています。
GitHub connectorを優先した方がよい組織
次の条件に当てはまる場合は、GitHub connectorから評価を始めると運用を整理しやすくなります。
- ソースコードをGitHub Organizationで集中管理している
- セキュリティ部門が複数リポジトリを横断して確認したい
- 開発者の端末にCLIを配布したくない
- Defenderポータルをコードリスク管理の中心にしたい
- まずは手動のオンデマンドスキャンで効果を確認したい
Defender CLIを優先した方がよい組織
次の条件に当てはまる場合は、Defender CLIが適しています。
- CI/CDの一部としてスキャンを実行したい
- リリース前やプルリクエスト単位で検査したい
- SARIFを既存の開発・セキュリティツールへ連携したい
- 開発者がローカルで結果を確認したい
- GitHub connectorに登録していないコードも評価したい
現実的には、GitHub connectorで全体的なリスクを把握し、修正対象となったリポジトリをDefender CLIで再スキャンする組み合わせも考えられます。
一般提供前に試すなら小規模なリポジトリから始める
MDASH Agentic Code Scannerは、複数モデルと専門エージェントを使い、従来の静的解析とは異なる角度からコードを調査できる点が特徴です。一方で、プライベートプレビューであり、セットアップ、リージョン、モデル利用料、コードの送信範囲など、事前に確認すべき項目も少なくありません。
評価を始める際は、まずプライベートプレビューへの参加可否と対応リージョンを確認してください。そのうえで、GitHub中心の集中管理ならGitHub connector、CI/CDや開発者主導の検査ならDefender CLIを選びます。
最初から本番システム全体を対象にせず、影響の小さい1つのリポジトリで試し、既存のSASTとの検出差、誤検知、トークン消費量、担当者の確認工数を測定します。AIの検出結果をそのまま採用せず、人によるトリアージと修正後テストを運用に組み込むことが、MDASHを安全に活用するための重要なポイントです。

コメント