Advanced Security Information Model (ASIM) を使用するようにコンテンツを変更する (パブリック プレビュー)
Microsoft Sentinel の正規化されたセキュリティ コンテンツには、統合された正規化パーサーで使用できる分析ルール、ハンティング クエリ、ブックが含まれています。
Microsoft Sentinel のギャラリーやソリューションで正規化された、すぐに利用できるコンテンツを見つける、独自の正規化されたコンテンツを作成する、正規化されたデータを使用するために既存のカスタム コンテンツを変更することができます。
この記事では、Advanced Security Information Model (ASIM) で正規化されたデータを使用するように既存の Microsoft Sentinel 分析ルールを変換する方法について説明します。
正規化されたコンテンツが ASIM アーキテクチャにどのように適合するかを理解するには、ASIM アーキテクチャの図を参照してください。
ヒント
また、Microsoft Sentinel の正規化パーサーと正規化されたコンテンツに関する詳しいウェビナーをこちらでご視聴いただけます。スライドはこちらでご確認いただけます。 詳細については、「次のステップ」を参照してください。
重要
現在、ASIM はプレビュー段階です。 Azure プレビューの追加使用条件には、ベータ版、プレビュー版、またはまだ一般提供されていない Azure 機能に適用される追加の法律条項が含まれています。
正規化を使用するようにカスタム コンテンツを変更する
カスタムの Microsoft Sentinel コンテンツで正規化を使用できるようにするには、次のようにします。
クエリに関連する統合パーサーを使用するには、クエリを変更します。
正規化されたスキーマ フィールド名を使用するために、クエリのフィールド名を変更します。
該当する場合は、クエリのフィールドの正規化された値を使用する条件を変更します。
分析ルールのサンプル正規化
たとえば、Infoblox DNS サーバーから送信された DNS イベントで動作する逆引き検索回数が多いと観測されたレア クライアント DNS 分析ルールを考えてみましょう。
let threshold = 200;
InfobloxNIOS
| where ProcessName =~ "named" and Log_Type =~ "client"
| where isnotempty(ResponseCode)
| where ResponseCode =~ "NXDOMAIN"
| summarize count() by Client_IP, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (InfobloxNIOS
| where ProcessName =~ "named" and Log_Type =~ "client"
| where isnotempty(ResponseCode)
| where ResponseCode =~ "NXDOMAIN"
) on Client_IP
| extend timestamp = TimeGenerated, IPCustomEntity = Client_IP
次のコードはソースに依存しないバージョンです。正規化を使用して、DNS クエリ イベントを提供するソースに対して同じ検出を提供します。 次の例では、組み込みの ASIM パーサーを使用します。
_Im_Dns(responsecodename='NXDOMAIN')
| summarize count() by SrcIpAddr, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (imDns(responsecodename='NXDOMAIN')) on SrcIpAddr
| extend timestamp = TimeGenerated, IPCustomEntity = SrcIpAddr
ワークスペースにデプロイされた ASIM パーサーを使用するには、最初の行を次のコードに置き換えます。
imDns(responsecodename='NXDOMAIN')
組み込みパーサーとワークスペースにデプロイされたパーサーの違い
上記の例の 2 つのオプションは機能的に同じです。 正規化されたソースに依存しないバージョンには、次の違いがあります。
_Im_Dns
またはimDns
の正規化されたパーサーは、Infoblox パーサーの代わりに使用されます。正規化されたパーサーは DNS クエリ イベントのみをフェッチするため、Infoblox バージョンの
where ProcessName =~ "named" and Log_Type =~ "client"
で行われるようなイベントの種類の確認は必要ありません。Client_IP
の代わりにSrcIpAddr
フィールドを使用します。パーサー パラメーターのフィルター処理は ResponseCodeName に使用され、明示的な
where
句は不要です。
注意
正規化された DNS ソースのサポートとは別に、正規化されたバージョンは短く、理解しやすくなります。
スキーマまたはパーサーでフィルター処理パラメーターがサポートされていない場合、フィルター処理の条件が元のクエリから隠される点を除いて、変更は似ています。 次に例を示します。
let threshold = 200;
imDns
| where isnotempty(ResponseCodeName)
| where ResponseCodeName =~ "NXDOMAIN"
| summarize count() by SrcIpAddr, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (imDns
| where isnotempty(ResponseCodeName)
| where ResponseCodeName =~ "NXDOMAIN"
) on SrcIpAddr
| extend timestamp = TimeGenerated, IPCustomEntity = SrcIpAddr
次のステップ
この記事では、Advanced Security Information Model (ASIM) コンテンツについて説明します。
詳細については、次を参照してください。
- Microsoft Sentinel の正規化パーサーと正規化されたコンテンツに関する詳しいウェビナーをこちらでご視聴いただけます。スライドはこちらでご確認いただけます。
- Advanced Security Information Model (ASIM) の概要
- Advanced Security Information Model (ASIM) のパーサー
- Advanced Security Information Model (ASIM) スキーマ
- Advanced Security Information Model (ASIM) コンテンツ