Share via


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) コンテンツについて説明します。

詳細については、次を参照してください。