高度なセキュリティ情報モデル (ASIM) を使用するようにコンテンツを変更する

Microsoft Sentinelの正規化されたセキュリティ コンテンツには、正規化パーサーを統合する分析ルール、ハンティング クエリ、ブックが含まれます。

正規化されたすぐに使用できるコンテンツは、Microsoft Sentinelギャラリーとソリューションで見つけたり、独自の正規化されたコンテンツを作成したり、正規化されたデータを使用するように既存のカスタム コンテンツを変更したりできます。

この記事では、高度なセキュリティ情報モデル (ASIM) で正規化されたデータを使用するように、既存のMicrosoft Sentinel分析ルールを変換する方法について説明します。

正規化されたコンテンツが ASIM アーキテクチャにどのように適合するかを理解するには、 ASIM アーキテクチャの図を参照してください。

ヒント

また、パーサーの正規化と正規化されたコンテンツのMicrosoft Sentinelに関する詳細なウェビナーを見るか、スライドを確認してください。 詳細については、「次の手順」を参照してください。

正規化を使用するようにカスタム コンテンツを変更する

カスタム Microsoft Sentinel コンテンツで正規化を使用できるようにするには:

  • クエリに関連する 統合パーサーを 使用するようにクエリを変更します。

  • 正規化されたスキーマ フィールド名を使用するように、クエリ内のフィールド名を変更します。

  • 該当する場合は、クエリ内のフィールドの正規化された値を使用するように条件を変更します。

分析ルールの正規化のサンプル

たとえば、Infoblox DNS サーバーによって送信される 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

正規化されたソースに依存しないバージョンには、次の違いがあります。

  • Infoblox パーサーの代わりに、 _Im_Dns または imDns正規化されたパーサーが使用されます。

  • 正規化されたパーサーは 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

前の例で使用した次の項目の詳細については、Kusto のドキュメントを参照してください。

KQL の詳細については、「Kusto 照会言語 (KQL) の概要」を参照してください。

その他のリソース:

次の手順

この記事では、高度なセキュリティ情報モデル (ASIM) コンテンツについて説明します。

詳細については、以下を参照してください: