Microsoft DefenderポータルでMicrosoft Sentinelを運用し、XBOW Security Platform(via Azure Function)コネクタを使っている場合、今回の更新で最優先に確認すべき点は、XBOW Public API 2026-04-01 への追従、ソリューション 3.0.1 への更新、400エラー処理、分析ルールのカスタム詳細キー変更です。Azure/Azure-Sentinelの公式PR「XBOW Sentinel Connector Update – April 2026」は2026年5月20日にマージされ、変更理由はXBOW API側の変更とされています。(GitHub)
影響を受けるのは、Microsoft Defenderそのもののエンドポイント保護設定ではなく、Microsoft SentinelにXBOWの資産・脆弱性・評価アクティビティを取り込んでいる環境です。既にXBOWコネクタを導入している管理者は、更新後にデータ取り込み、分析ルール、インシデントのグルーピング、Automation RuleやLogic Appsで参照しているフィールド名を確認してください。
Microsoft DefenderのXBOW Sentinel Connector更新でまず押さえるべき結論
今回の「Microsoft Defender documentation update: XBOW Sentinel Connector Update – April 2026」は、Microsoft Defenderポータル上でMicrosoft Sentinelを使う運用担当者にとって、検知ロジックとデータ取り込みの安定性に関わる更新です。
特に重要なのは、次の4点です。
| 確認項目 | 管理者が見るべきポイント | 放置した場合に起きやすい問題 |
|---|---|---|
| XBOW APIバージョン | 2026-04-01 に対応したコネクタへ更新されているか | API仕様差分による取り込み失敗、400エラー |
| 400エラー処理 | Azure Functionログに400 Bad Requestが出ていないか | 設定不備が一時的な通信障害に見えて原因特定が遅れる |
| User-Agent | プロキシ、WAF、API制御でUser-Agentを条件にしていないか | 更新後の通信が遮断される可能性 |
| 分析ルールのカスタム詳細 | FindingID、AssetID、OrganizationID などの新しいキーを参照しているか | インシデント連携、通知、プレイブックが期待通り動かない |
公式PRでは、変更点として「XBOW Public API 2026-04-01 への更新」「400エラー処理の更新」「User-Agentバージョンの更新」が挙げられ、バージョン更新とテスト完了も明記されています。(GitHub)
XBOW Sentinel Connectorとは何をするコネクタか
XBOW Sentinel Connectorは、XBOW Security PlatformのデータをMicrosoft Sentinelへ取り込むためのデータコネクタです。Microsoft Learnでは、XBOWコネクタが資産スナップショット、脆弱性の検出、評価アクティビティをMicrosoft Sentinelへ取り込み、Azure FunctionがXBOW APIをタイマーでポーリングすると説明されています。(Microsoft Learn)
取り込み先の主なLog Analyticsテーブルは次の3つです。
| テーブル | 主な用途 | 運用での確認例 |
|---|---|---|
XbowAssets_CL | XBOW上の資産スナップショット | 新しいWeb資産、到達性、URL、ライフサイクル確認 |
XbowFindings_CL | 脆弱性検出結果 | Critical/Highの未対応項目、証拠、影響、緩和策の確認 |
XbowAssessments_CL | 評価アクティビティ | ペンテスト評価の進行状況、状態変化、攻撃クレジット確認 |
Microsoft Learn上のデータコネクタ一覧でも、XBOWはMicrosoft Sentinelに取り込むコネクタとして掲載され、XbowAssets_CL、XbowFindings_CL、XbowAssessments_CL が関連テーブルとして示されています。(Microsoft Learn)
今回の主な変更点
XBOW Public API 2026-04-01 への対応
最も大きな変更は、XBOW Public APIのバージョンが 2026-04-01 に更新された点です。XBOW API Referenceでも 2026-04-01 がLatestとして表示されています。(XBOW Documentation)
コネクタ側のAzure Functionコードでは、XBOW APIバージョンとして 2026-04-01 が指定され、ヘッダーに X-XBOW-API-Version が含まれる構成になっています。(GitHub)
管理者が見るべきポイントは、単に「最新版にしたか」ではありません。APIバージョン変更では、レスポンス形式、必須パラメータ、ページング、エラー応答の扱いが変わることがあります。更新後は、次の観点で確認してください。
- Azure Functionが正常に実行されているか
XbowAssets_CL、XbowFindings_CL、XbowAssessments_CLに新しいログが入っているか- XBOW APIトークンが対象organizationにスコープされているか
- 既存のKQL、Workbook、Automation Ruleが古いフィールド名に依存していないか
ソリューションバージョンは 3.0.1 に更新
ReleaseNotesでは、3.0.1 の変更履歴として「XBOW API version to 2026-04-01」への更新に加え、評価イベントに AttackCredits と RecentEvents を追加したことが記載されています。(GitHub)
AttackCredits と RecentEvents は、SOC運用では見逃しにくい追加です。たとえば、単に「評価が実行された」だけでなく、評価の進行や状態変化を追いやすくなります。特に、自動ペンテストの結果を定例レビューやリスク管理に使っている組織では、ダッシュボードや週次レポートに反映する価値があります。
400エラーの扱いが明確化
更新後のコードでは、XBOW APIから400 Bad Requestが返った場合に、URLとレスポンス本文を含めて明示的にRuntimeErrorを発生させる処理になっています。(GitHub)
これは運用上、かなり重要です。400エラーは多くの場合、サーバー側障害ではなく、リクエスト内容、APIバージョン、認証情報、organization ID、パラメータ、スキーマ不一致などに起因します。更新後に400が出る場合は「しばらく待つ」よりも、設定値とAPI仕様の確認を優先してください。
400エラーが出たときの初動は次の順番が現実的です。
| 順番 | 確認対象 | 判断基準 |
|---|---|---|
| 1 | XBOW_API_TOKEN | 失効、権限不足、organizationスコープ違いがないか |
| 2 | XBOW_ORG_ID | XBOWコンソールURLやAPIで確認した組織IDと一致するか |
| 3 | APIバージョン | 2026-04-01 対応版のコネクタを使っているか |
| 4 | Azure Functionログ | 400のURL、レスポンス本文、発生タイミングを確認 |
| 5 | プロキシ/WAF | XBOW API向け通信やUser-Agent制御で拒否されていないか |
User-Agentバージョンの更新
PRではUser-Agentバージョンの更新も変更点に含まれています。更新後のコードでは、XBOW-Sentinel-Connector/{__version__} 形式でUser-Agentが組み立てられ、__version__ は 1.1 と定義されています。(GitHub)
通常、User-Agent変更だけでMicrosoft Sentinel側の設定を変える必要はありません。ただし、企業ネットワークで次のような制御をしている場合は確認が必要です。
- 送信プロキシでUser-Agent別の許可リストを使っている
- XBOW APIへの送信通信をWAFやCASBで制御している
- Azure Functionのアウトバウンド通信を細かく監査している
- APIアクセスログをUser-Agent単位で集計している
古いUser-Agent文字列を条件にした例外設定がある場合、更新後に通信がブロックされることがあります。
影響範囲:すべてのMicrosoft Defender環境が対象ではない
今回の更新は、Microsoft Defender for Endpointのセンサー設定やWindows Defenderのポリシー変更ではありません。影響を受けるのは、Microsoft SentinelでXBOW Security Platformコネクタを使っているワークスペースです。
Microsoft Learnでは、Microsoft Sentinelのデータコネクタ記事は「Microsoft DefenderポータルのMicrosoft Sentinel」と「AzureポータルのMicrosoft Sentinel」に適用されると記載されています。さらに、2027年3月31日以降はMicrosoft SentinelのAzureポータルサポートが終了し、Defenderポータルでの利用に移行する旨も案内されています。(Microsoft Learn)
そのため、今後の運用では「Azureポータルで設定できるか」だけでなく、Defenderポータル側での導線、権限、Content Hub、分析ルール、インシデント確認フローも合わせて整理しておくべきです。
影響を受ける可能性が高い環境
| 環境 | 影響 |
|---|---|
| XBOWコネクタをContent Hubから導入済み | ソリューション更新、分析ルール、取り込み確認が必要 |
| Azure FunctionでXBOW APIをポーリングしている | アプリ設定、ログ、実行状態の確認が必要 |
| Logic AppsやAutomation RuleでXBOWインシデントを処理している | カスタム詳細キー変更の影響を確認 |
| WorkbookやKQLでXBOWテーブルを参照している | AttackCredits、RecentEvents の活用余地あり |
| プロキシやWAFでAPI通信を制御している | User-Agent、宛先、認証エラーを確認 |
影響が小さい、または対象外になりやすい環境
| 環境 | 理由 |
|---|---|
| XBOWコネクタを使っていないMicrosoft Defender環境 | 今回の変更対象はXBOW Sentinel Connector |
| Defender for Endpoint単体運用 | エンドポイントセンサーやAVポリシー更新ではない |
| SentinelでXBOW以外のコネクタのみ使用 | XBOW固有のAPI・分析ルール変更のため |
| 手動でXBOWデータを別経路から取り込んでいる | 公式XBOW Azure Functionコネクタとは別管理になる可能性 |
管理者が確認すべき設定
Azure Functionのアプリ設定
更新後のコネクタでは、XBOW API、Azure Monitor Ingestion API、Azure Storage、Microsoft Entra IDの情報をAzure Functionのアプリ設定から読み込みます。コード上では、TENANT_ID、CLIENT_ID、CLIENT_SECRET、DCE_ENDPOINT、DCR_ID、XBOW_API_TOKEN、XBOW_ORG_ID、AzureWebJobsStorage などが必須設定として扱われています。(GitHub)
特に再展開や移行時は、次の設定を確認してください。
| 設定名 | 用途 | よくあるミス |
|---|---|---|
XBOW_API_TOKEN | XBOW API認証 | トークン失効、organizationスコープ違い |
XBOW_ORG_ID | 対象organizationの識別 | URLからコピーした値の誤り |
TENANT_ID | Microsoft Entraテナント | 別テナントのIDを指定 |
CLIENT_ID | App RegistrationのID | オブジェクトIDとアプリケーションIDの取り違え |
CLIENT_SECRET | App Registrationのシークレット | 期限切れ、値ではなくシークレットIDを登録 |
DCE_ENDPOINT | Azure Monitor Ingestionのエンドポイント | リージョン違い、古いDCE参照 |
DCR_ID | Data Collection Ruleのimmutable ID | Resource IDとimmutable IDの混同 |
AzureWebJobsStorage | Functionと同期状態の保存 | ストレージ再作成で状態が消える |
Azure Monitor Logs Ingestion APIでは、アプリ登録による認証、Log Analyticsテーブル、DCRが主要コンポーネントになり、DCRに対してアプリへMonitoring Metrics Publisherロールを付与する必要があります。(Microsoft Learn)
Data Collection Ruleのロール割り当て
XBOWコネクタはAzure Monitor Ingestion APIを使ってログを送ります。Microsoft Learnの手順でも、DCR作成後にアプリへ権限を付与し、Monitoring Metrics Publisherを割り当てる流れが示されています。(Microsoft Learn)
更新後に取り込みが止まった場合、APIトークンだけでなくDCR側のRBACも確認してください。App Registrationを作り直した、サブスクリプションを移した、DCRを再作成した、リソースグループを変更した場合に、ロール割り当てが外れていることがあります。
同期状態を保存するAzure Storage
コード上では、差分同期の状態がAzure Blob Storageに保存されます。コンテナー名は xbow-connector-state、Blob名は sync_state.json で、初回実行時は既存レコードを取り込む動きになります。(GitHub)
ここは運用で失敗しやすいポイントです。Storage Accountを削除したり、sync_state.json を消したりすると、コネクタが初回実行に近い状態で動き、過去データを再取り込みする可能性があります。結果として、Log Analyticsの取り込み量が増えたり、過去の検出が再度目立ったりすることがあります。
更新や移行前には、少なくとも次を確認してください。
| 操作 | 注意点 |
|---|---|
| Function Appを再作成 | AzureWebJobsStorage が変わると同期状態も変わる可能性 |
| Storage Accountを変更 | sync_state.json の移行要否を確認 |
| テスト環境で本番トークンを使う | 本番organizationのデータを重複取り込みするリスク |
| 障害調査でBlobを削除 | 復旧後に再取り込みが発生する可能性 |
分析ルールとインシデント連携で確認すべき変更
今回のPRでは、複数の分析ルールでカスタム詳細キーが更新されています。たとえば、Critical/High、Medium、Lowの検出ルールでは FindingId が FindingID に、AssetId が AssetID に、OrganizationId が OrganizationID に変更されています。新規資産検出ルールでも AssetId と OrganizationId が大文字ID表記へ変更されています。(GitHub)
この変更は小さく見えますが、SOC運用では影響が出やすい部分です。Microsoft SentinelのインシデントからLogic Appsを起動し、カスタム詳細をTeams通知、チケット作成、メール送信、Webhook連携に渡している場合、参照名が合わないと値が空になります。
確認すべき自動化の例
| 対象 | 確認内容 |
|---|---|
| Automation Rule | XBOWアラートを条件分岐しているか |
| Logic Apps | FindingId や AssetId を直接参照していないか |
| Teams通知 | Adaptive Cardに古いキー名を埋め込んでいないか |
| ITSM連携 | ServiceNow、Jiraなどに渡すフィールド名が変わっていないか |
| Workbook | カスタム詳細を前提にした表示項目がないか |
| KQL保存クエリ | extend や project で古い列名を使っていないか |
実務では、更新後すぐに本番インシデントで試すのではなく、テスト用のアラートまたは過去データを使って、通知本文・チケット項目・担当者割り当てまで確認するのがおすすめです。
更新後に実行したいKQL確認クエリ
更新後は、まず「データが入っているか」「新しいフィールドを使えるか」「Critical/Highの検出が見えるか」を確認します。
最終取り込み時刻を確認する
union
(XbowAssets_CL | summarize LastLogReceived=max(TimeGenerated) | extend TableName="XbowAssets_CL"),
(XbowFindings_CL | summarize LastLogReceived=max(TimeGenerated) | extend TableName="XbowFindings_CL"),
(XbowAssessments_CL | summarize LastLogReceived=max(TimeGenerated) | extend TableName="XbowAssessments_CL")
| project TableName, LastLogReceived
| order by LastLogReceived desc
Microsoft Learnとコネクタ設定では、XBOWの資産、検出結果、評価アクティビティがそれぞれ上記3テーブルに取り込まれる構成として説明されています。(Microsoft Learn)
Critical/Highの未対応Findingを確認する
XbowFindings_CL
| where State == "open"
| where Severity in ("critical", "high")
| project TimeGenerated, FindingId, FindingName, Severity, AssetId, AssetName, Summary, Mitigations
| sort by TimeGenerated desc
既存環境では列名が FindingId、AssetId として取り込まれる一方、アラートのカスタム詳細キーは FindingID、AssetID に更新されています。KQLでテーブル列を見る場合と、インシデントのカスタム詳細を見る場合を混同しないようにしてください。
Assessmentの追加情報を確認する
XbowAssessments_CL
| extend RecentEventsParsed = parse_json(RecentEvents)
| project TimeGenerated, AssessmentName, State, Progress, AttackCredits, RecentEventsParsed, AssetId, AssetName
| sort by TimeGenerated desc
RecentEvents はJSON文字列として格納されるため、Workbookやハンティングクエリで扱う場合は parse_json() を使うと見やすくなります。更新後のコードでは、assessment詳細を取得し、AttackCredits と RecentEvents をイベントに含める処理が追加されています。(GitHub)
移行・展開時の安全な進め方
XBOW Sentinel Connectorの更新は、いきなり本番に適用して終わりにするよりも、以下の順番で進めるとトラブルを減らせます。
| 手順 | 作業 | 成功条件 |
|---|---|---|
| 1 | 対象ワークスペースを洗い出す | XBOWコネクタ導入済みのSentinelワークスペースが分かる |
| 2 | 既存の分析ルールとAutomation Ruleを確認 | FindingId、AssetId、OrganizationId 参照箇所を把握 |
| 3 | ソリューションを 3.0.1 相当に更新 | Content HubまたはARM展開後にバージョンを確認 |
| 4 | App SettingsとDCR権限を確認 | Function実行時に認証・DCRエラーが出ない |
| 5 | 取り込み確認KQLを実行 | 3つのXBOWテーブルに新規ログが入る |
| 6 | インシデント生成を確認 | 分析ルール、グルーピング、カスタム詳細が期待通り |
| 7 | 自動化を確認 | Teams通知、ITSM連携、チケット作成で値が欠落しない |
展開時に特に注意したいのは、App RegistrationのシークレットとDCRロールです。Microsoft LearnのLogs Ingestion APIチュートリアルでも、シークレット値は保存後に再表示できないため安全に記録する必要があると説明されています。(Microsoft Learn)
よくある失敗と対処法
更新後にデータが入らない
まずAzure Functionの実行ログを確認します。400 Bad Requestが出ている場合は、APIトークン、organization ID、APIバージョン、リクエストパラメータを優先的に確認してください。Azure Monitor Ingestion API側のエラーであれば、DCE_ENDPOINT、DCR_ID、stream名、Monitoring Metrics Publisherロールを確認します。
インシデントは作成されるが自動通知の値が空になる
分析ルールのカスタム詳細キー変更が原因になりやすいです。FindingId ではなく FindingID、AssetId ではなく AssetID、OrganizationId ではなく OrganizationID を参照しているか確認してください。
更新後に過去データが再度目立つ
同期状態を保存しているStorage AccountやBlobが変わった可能性があります。sync_state.json が消えた、別Storageを参照している、テスト環境と本番環境で同じXBOW organizationを見ている、といったケースを確認してください。
User-Agent変更後にAPIへ接続できない
通常は意識しなくてもよい項目ですが、送信プロキシやWAFでUser-Agent単位の許可制御をしている場合は例外です。Azure Functionから https://console.xbow.com 側への通信がブロックされていないか、ネットワークログを確認してください。
開発者が確認すべき実装上のポイント
開発者やSOCエンジニアが独自に拡張している場合は、次の点を確認してください。
- API呼び出しヘッダーに
X-XBOW-API-Version: 2026-04-01が含まれるか - 400エラー時に例外内容がログへ出るため、ログの閲覧権限が過剰になっていないか
RecentEventsを文字列のまま扱うのか、KQLでJSONとして展開するのかAttackCreditsをスコアリングや優先度判定に使う場合、欠損値や0の扱いを決めているか- カスタムWorkbookで古いフィールド名や古いカスタム詳細キーを参照していないか
- Function App、Storage、DCR、Log Analyticsのリージョンやリソースグループを運用設計書に反映しているか
特に、RecentEvents はダッシュボードでそのまま表示すると読みにくい場合があります。SOC向け画面では、状態変化の時刻、イベント種別、対象資産を抽出して表示すると、調査時に使いやすくなります。
今回の更新で取るべき次のアクション
XBOW Sentinel Connectorを使っている場合は、まず対象ワークスペースを洗い出し、ソリューションが 3.0.1 相当に更新されているか確認してください。そのうえで、Azure Functionログ、3つのXBOWテーブルの最終取り込み時刻、DCRのロール割り当て、分析ルールのカスタム詳細キーを順番に確認します。
今回の更新は、単なるドキュメント上の表記変更ではなく、APIバージョン、エラー処理、評価データの拡張、分析ルールのキー変更が含まれます。特にAutomation RuleやLogic AppsでXBOWインシデントを処理している環境では、更新後の検証を省略しないことが重要です。
最後に、Microsoft SentinelはDefenderポータルでの運用へ移行が進んでいます。XBOWコネクタの更新確認と合わせて、Defenderポータル上での権限、Content Hub、インシデント確認、SOCの手順書も見直しておくと、今後の運用変更に対応しやすくなります。

コメント