データ侵害通知・インシデントレスポンス(技術的側面)
- 山崎行政書士事務所
- 9月12日
- 読了時間: 7分

— Azure での検知・解析・封じ込め・証拠保全を“パラメータ”で実装する —
著者:山崎行政書士事務所 クラウド法務・アーキテクチャ支援チーム
発行日:2025-09-12
要旨(Abstract)
本稿は、Azure 環境におけるデータ侵害の検知・ログ分析・フォレンジック・自動応答・証跡化を、具体的な設定値(Retention、ポリシー、アラート閾値、テーブル名、KQL)まで掘り下げて提示する。テレメトリの取りこぼしゼロ設計(診断設定/DCR/Private Link)、ラテラル移動の早期検知(Sentinel 解析ルール/UEBA)、封じ込めの自動化(Logic Apps Playbook)、改ざん耐性ある保全(WORM/ハッシュ)を一体運用することで、MTTD/MTTR の短縮と監査可能性を同時に達成する。
1. 検知ベースライン ― 収集・保持・アラート設計
1.1 Azure Monitor:診断設定と保持
対象と送信先(最小構成)
送信先:Log Analytics(一次解析)/Event Hubs(二次 SIEM 連携)/Storage(長期保全)
対象と主カテゴリ(Resource-specific がある場合は優先)
Entra ID:Sign-in, Audit
Key Vault:AuditEvent
Storage:StorageBlobLogs / StorageFileLogs(または AzureDiagnostics: Blob/Queue/File)
SQL:SQLSecurityAuditEvents / SQLInsights(または AzureDiagnostics: SQL)
App Gateway/WAF:ApplicationGatewayAccessLog / ApplicationGatewayFirewallLog
Azure Firewall:AzureFirewallApplicationRule / NetworkRule / DNATRule
VNet Flow:Virtual Network Flow Logs(NSG Flow Logs はレガシー、移行推奨)
保持とアーカイブ(推奨初期値)
Log Analytics Hot:90 日(運用解析)
Log Analytics Archive:365 日(検索ジョブ想定)
監査用 Storage(WORM):1~7 年(法令・契約に準拠)
大容量ログ(Flow / Access):30~90 日 Hot、以降 Archive/Storage へライフサイクル移行
命名・タグ(例)
LAW:law-prd-sec-jpe(環境/用途/リージョン)
監査タグ:Retention=365D, WORM=True, Residency=JP
1.2 Azure Monitor:代表アラート(KQL サンプル)
大量ダウンロード(Storage)
StorageBlobLogs
| where TimeGenerated > ago(1h)
| summarize bytes=sum(tolong(ResponseBodySize)), ops=count() by ClientIP_s, AccountName, bin(TimeGenerated, 15m)
| where bytes > 50GB or ops > 20000
Key Vault:短時間に大量の鍵操作
AzureDiagnostics
| where Category == "AuditEvent" // Key Vault
| where TimeGenerated > ago(30m)
| summarize ops=count() by identity=tolower(CallerIPAddress), operation=OperationName, bin(TimeGenerated, 5m)
| where ops > 100
不可能移動(Impossible Travel)
SigninLogs
| where TimeGenerated > ago(24h)
| extend geo = iplocation(IPAddress)
| summarize firstSeen=min(TimeGenerated), lastSeen=max(TimeGenerated),
firstCountry=any(geo.Country), lastCountry=anyif(geo.Country, TimeGenerated==max(TimeGenerated))
by UserPrincipalName
| where firstCountry <> lastCountry
1.3 Azure Monitor:アクション
Action Group:ag-sec-incident
Teams:#security-incident
Webhook:SOAR 連携(Sentinel Playbook)
2. Microsoft Sentinel(SIEM):接続・解析・自動応答
2.1 データコネクタ
必須:Entra ID(Sign-in/Audit)、Defender(Endpoint/Identity/Cloud Apps)、Defender for Cloud、Microsoft 365(Ex/SharePoint/Teams)
任意:AWS CloudTrail、Syslog/CEF(オンプレ FW/Proxy)、SaaS(Box/Okta など)
取り込み後、テーブル健全性(遅延・空白期間)をワークブックで監視
2.2 解析ルール(Analytics)と UEBA
MultipleFailedLogins(失敗連続)
SigninLogs
| where TimeGenerated > ago(24h)
| where ResultType == "50126"
| summarize Count=count(), IPs=make_set(IPAddress) by UserPrincipalName
| where Count > 5
スケジュール:5 分/継続 1 時間
抑制(Suppression):60 分
重大度:High / 中規模なら Medium
Data Exfiltration(疑い)
union isfuzzy=true StorageBlobLogs, AzureDiagnostics
| where TimeGenerated > ago(1h)
| summarize bytes=sum(tolong(ResponseBodySize)) by UserIdentity_s, bin(TimeGenerated, 10m)
| join kind=leftouter (
SigninLogs | where TimeGenerated > ago(24h)
| summarize lastAuth=max(TimeGenerated) by UserPrincipalName
) on $left.UserIdentity_s == $right.UserPrincipalName
| where bytes > 20GB
UEBA(ユーザーとエンティティのふるまい分析)
直近 7~30 日の平常時プロファイルを学習させ、深夜帯の大量アクセスなど逸脱を優先度上げ。
2.3 自動応答(Playbook:Logic Apps)
BlockMaliciousIP-Playbook
トリガ:Sentinel アラート
処理:
Entra ID:対象アカウントサインイン無効(必要に応じセッション失効)
NSG/Firewall:攻撃元 IP を一時ブロック(タグ IR-TempBlock、TTL=2h)
Teams/Email:インシデント通知・トリアージ票起票
ServiceNow/Jira:自動チケット
承認ゲート:本番環境のネットワーク変更は Approvals を必須
3. Defender for Cloud:広域評価と“即時是正”
3.1 プラン・ポリシー
プラン:Defender for Cloud Plan 2(サーバ・データ・ID 横断)
コンプライアンス:ISO 27001 / NIST SP 800‑53 / CIS を有効化
推奨事項:deny/modify の Azure Policyと連携(公開 Endpoint 無効化、TLS1.2+、Key Vault RBAC)
3.2 代表アラートと一次対応
Unusual data access pattern(Storage) → Sentinel 検証、IP ブロック、SAS キー再発行
Elevation of privilege(ID) → 直ちに PIM 監査、該当ロール無効化、セッション失効
Malicious activity on VM → Defender for Endpoint で隔離、スナップショット取得
4. ログ分析とフォレンジック ― 証拠の“改ざん耐性”と再現性
4.1 初動 30 分(Preserve & Scope)
モニタリング停止はしない(証跡喪失防止)
影響範囲を時系列で把握(最初のアラート→横展開)
観測ログ(Activity、Sign-in、Resource-specific テーブル、Flow、WAF、FW)をインシデント ID でタグ
横展開の KQL 例(疑わしい IP の踏み台探索)
let suspiciousIP = "X.X.X.X";
union SigninLogs, AzureDiagnostics, StorageBlobLogs, ApplicationGatewayAccessLog
| where TimeGenerated > ago(7d)
| where tostring(IPAddress) == suspiciousIP or tostring(ClientIP_s) == suspiciousIP
| summarize events=count() by Target=tostring(UserPrincipalName), Resource=tostring(ResourceId), bin(TimeGenerated, 1h)
4.2 スナップショットと保全
VM ディスク:OS/データディスクの読み取り専用スナップショットを作成
ハッシュ:SHA-256 を取得し、ハッシュログをWORM へ保存
保全先:st-forensic-prd(immutable/バージョニング有効、Private Link、アクセスキー無効で RBAC のみ)
取得順序:メタ→ディスク→特定ログ(変化しやすい順に注意)
ハッシュ取得(例)
Windows: certutil -hashfile evidence.vhdx SHA256
Linux : sha256sum evidence.vhd
4.3 メモリ/プロセス(可能な範囲)
Windows:ProcDump 等による対象プロセスのダンプ(EDR 連携の Live Response で収集)
Linux:gcore / dd(安全な停止計画のもと)
収集物は専用の隔離サブスクリプションへ移送し解析
5. 封じ込めと根絶 ― “自動化+承認”のバランス
5.1 自動封じ込め(テンプレ)
ID:Revoke-AzureADUserAllRefreshToken 相当(サインイン無効化と併用)
NW:NSG/FW に一時ブロックルール(タグ/期限で管理)
キー:Storage SAS/Account Key / SQL 接続文字列を即時ローテーション
アプリ:App Service/Function の構成シークレット再デプロイ
5.2 人手を介すステップ
本番ネットワークの経路変更、重大ロールの剥奪、広域キーのローテは承認ゲート必須
回避策(Feature flag/WAF ルール調整)で短期封じ込め → 事後に恒久対策
6. 侵害通知のための“技術パック”
インシデント・サマリ(技術)
タイムライン(Z 時刻)/初検知~封じ込め所要時間(MTTD/MTTR)
影響資産(サブスクリプション/RG/リソース ID)
データカテゴリ・件数・推定流出量(上限/下限)・信頼度
攻撃ベクタ(初回認証、ラテラル移動、外部送出経路)
措置(封じ込め/根絶/再発防止)と残留リスク
監査証跡(アラート ID、KQL、エビデンスのハッシュ、WORM 保管 URL)
7. 運用メトリクスと演習
SLA/OKR:MTTD ≤ 15 分、MTTR ≤ 2 時間、High 重大度の 24h 以内根絶 100%
四半期演習(Purple Team):
フィッシング→トークン奪取→外部送出の再現試験
ルールの誤検知率と取りこぼしを平衡化
ポストモーテム:教訓→是正計画→再試験を 30 日でクローズ
付録 A:実装チェックリスト(技術・パラメータ)
[収集]
全リソース Diagnostic settings = On(Resource-specific優先)
送信先:LAW(Hot=90d, Archive=365d) / Storage(WORM=1-7y) / Event Hubs(任意)
VNet Flow Logs = On(NSG Flow Logs から移行)
[監視・検知]
Sentinel Connectors:EntraID, Defender, M365, Defender for Cloud(+必要SaaS/CEFs)
Analytics:失敗認証、データ大量DL、Impossible Travel、特権昇格、KV大量操作
UEBA = On(7-30日学習)
Action Group:メール/Teams/Webhook
[自動応答]
Playbook:アカウント無効化/セッション失効/NSG/FW一時ブロック/チケット起票
Approvals:ネットワーク変更系は必須
[保全]
Snapshot:OS/データディスク(ReadOnly)、SHA-256 取得
保全先:Storage(Immutable+Versioning, Private Link, RBACのみ)
ログ:KQL・クエリ結果・アラートIDを WORM に保存
[是正]
Key/SAS/Secrets ローテ、App 設定再デプロイ
ルールチューニング(誤検知/取りこぼし評価)
[演習]
四半期:表計画(シナリオ/期待反応時間/承認者)
指標:MTTD/MTTR、誤検知率、取りこぼし率、再現試験合格率
付録 B:代表 KQL ライブラリ(抜粋)
特権ロールの異常付与
AuditLogs
| where TimeGenerated > ago(24h)
| where OperationName has "Add member to role"
| summarize by TargetResources, InitiatedBy, bin(TimeGenerated, 5m)
AppGW WAF:ブロック急増
ApplicationGatewayFirewallLog
| where TimeGenerated > ago(1h)
| summarize blocks=count() by RuleSetVersion, bin(TimeGenerated, 5m)
| where blocks > 1000
Azure Firewall:外向き高帯域
AzureFirewallNetworkRule
| where TimeGenerated > ago(1h)
| summarize totalBytes=sum(tolong(SentBytes)) by SourceIp, DestinationIp, bin(TimeGenerated, 10m)
| where totalBytes > 10000000000 // ~10GB
山崎行政書士事務所のご支援(PR)
技術(Monitor/Sentinel/Defender/Key Vault/Private Link)× 法務(APPI/GDPR/通知義務・契約)を同じ運用・証跡パッケージに束ね、**“検知→封じ込め→通知→監査”**を最短で回す体制を設計・実装します。
アセスメント→ブループリント導入→KQL/Playbook 提供→演習→監査同席まで伴走。
金融・医療・公共での高規制案件のパターンをテンプレ化し、MTTD/MTTR 改善と監査適合を両立させます。
参照リンク集
Azure Monitor(診断設定・保持・アーカイブ)https://learn.microsoft.com/azure/azure-monitor/platform/diagnostic-settingshttps://learn.microsoft.com/azure/azure-monitor/logs/data-retention-archive
Log Analytics / Kusto(KQL)https://learn.microsoft.com/azure/azure-monitor/logs/log-query-overviewhttps://learn.microsoft.com/azure/data-explorer/kusto/query/
Virtual Network Flow Logs(Traffic Analytics v2)https://learn.microsoft.com/azure/network-watcher/traffic-analyticshttps://learn.microsoft.com/azure/network-watcher/network-watcher-nsg-flow-logging-overview
Microsoft Sentinel(SIEM/SOAR)https://learn.microsoft.com/azure/sentinel/https://learn.microsoft.com/azure/sentinel/tutorial-detect-threats-custom
Logic Apps(Sentinel Playbook)https://learn.microsoft.com/azure/sentinel/tutorial-respond-threats-playbookhttps://learn.microsoft.com/azure/logic-apps/logic-apps-overview
Defender for Cloudhttps://learn.microsoft.com/azure/defender-for-cloud/defender-for-cloud-introductionhttps://learn.microsoft.com/azure/defender-for-cloud/recommendations-reference
Storage の改ざん耐性(WORM/イミュータブル)https://learn.microsoft.com/azure/storage/blobs/immutable-policy-configure-versioning
Azure Firewall / App Gateway WAF ログhttps://learn.microsoft.com/azure/firewall/logs-and-metricshttps://learn.microsoft.com/azure/application-gateway/application-gateway-diagnostics
Entra ID(監査・サインイン・セッション失効)https://learn.microsoft.com/entra/identity/monitoring-health/concept-sign-in-logshttps://learn.microsoft.com/entra/identity/conditional-access/concept-conditional-access-session
Microsoft Incident Response(支援)https://learn.microsoft.com/security/incident-response/





コメント