今日は最近、弊社でもご用命が増えてきたMicrosoft Sentinelについてです。
Microsoft Sentinelでログを収集する際、データコネクタというのを設定しますが、データコネクタ自体はコンテンツハブと呼ばれるところから追加します。このとき、コンテンツハブからデータコネクタを追加すると一緒にデータコネクタと一緒に利用可能な分析ルールのテンプレートを追加してくれます。テンプレートが用意されるようになったおかげで自分で分析ルールを作らなければならない機会が少なくなったのですが、ただ問題なのはテンプレートを使うためにはテンプレートから分析ルールを作らなければならない点。
テンプレートを右クリックして作成するだけなんだけど、これが地味に面倒なんですね..
ということで今日はMicrosoft Sentinelの分析ルールのテンプレートから分析ルールをまとめて作成する方法を解説します。
準備
操作はPowerShellから行います。そのためMicrosoft Azure PowerShellを事前にインストールしておいてください。インストールが完了したら以下のコマンドレットを実行してAzureに接続してください。
Connect-AzAccount
接続後に以下のコマンドレットを実行すると自分のSentinelワークスペースにあるテンプレートの一覧を参照できます。
Get-AzSentinelAlertRuleTemplate -ResourceGroupName <リソースグループ名> -WorkspaceName <ワークスペース名>
どこの属性にどんな情報が入っているかがわかりますね。ちょっと見づらいけど..
まとめて追加
ここまでのことが確認できたら、あとは条件を指定して追加するだけです。
ここでは重要度 (Severity) が高 (High) のものだけを選択して追加するということをしてみたいと思います。
先ほどのGet-AzSentinelAlertRuleTemplateコマンドレットを使って重要度が高のものだけを抽出して$AlertRuleTemplateNames変数に保存して、
$AlertRuleTemplateNames=Get-AzSentinelAlertRuleTemplate -ResourceGroupName <リソースグループ名> -WorkspaceName <ワークスペース名> | Where-Object{$_.severity -match “High”}
保存できたら続けて以下のコマンドレットを実行すれば、まとめて追加ができます。
(1行で書いて実行してください)
foreach ($AlertRuleTemplateName in $AlertRuleTemplateNames){New-AzSentinelAlertRule -ResourceGroupName <リソースグループ名> -WorkspaceName <ワークスペース名> -Kind $AlertRuleTemplateName.Kind -AlertRuleTemplateName $AlertRuleTemplateName.Name -enabled -Query $AlertRuleTemplateName.Query -Severity $AlertRuleTemplateName.Severity -DisplayName $AlertRuleTemplateName.DisplayName -QueryFrequency $AlertRuleTemplateName.QueryFrequency -QueryPeriod $AlertRuleTemplateName.QueryPeriod -TriggerOperator $AlertRuleTemplateName.TriggerOperator -TriggerThreshold $AlertRuleTemplateName.TriggerThreshold}
そうするとこんな感じ。
Sentinelあるあるとして、ぶつかる問題だと思いますので覚えておくと便利ですよ
※注意
テンプレートから追加するときにエラーになるものがありますが、UEBAなどの機能を有効にしていないことが原因でそもそもそのテンプレートが使えないときとかにエラーになります。コマンドレット実行エラーではないので、エラー出力時はチェックするようにしてください。