エンティティ ページのタイムラインのアクティビティをカスタマイズする
重要
- アクティビティのカスタマイズは、プレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用されるその他の法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。
- Microsoft Sentinel が、Microsoft Defender ポータルの Microsoft 統合セキュリティ オペレーション プラットフォーム内で一般提供されるようになりました。 詳細については、Microsoft Defender ポータルの Microsoft Sentinel に関する記事を参照してください。
はじめに
既定で用意されている Microsoft Sentinel のタイムラインで追跡および表示されるアクティビティに加えて、追跡するその他のアクティビティを作成し、それらもタイムラインに表示できます。 接続されている任意のデータ ソースのエンティティ データのクエリに基づいて、カスタマイズされたアクティビティを作成できます。 たとえば、次の方法でこの機能を使用できます。
既定で用意されている既存のアクティビティ テンプレートを変更して、エンティティ タイムラインに新しいアクティビティを追加する。
カスタム ログから新しいアクティビティを追加する。 たとえば、物理的なアクセス制御ログから、特定の制限された領域 (サーバー室など) にユーザーが出入りするアクティビティを、そのユーザーのタイムラインに追加できます。
作業の開始
- Azure portal での Microsoft Sentinel のユーザーは、下の [Azure portal] タブを選択します。
- Microsoft Defender ポータルでの統合セキュリティ オペレーション プラットフォームのユーザーは、[Defender ポータル] タブを選択します。
Microsoft Azure Sentinel のナビゲーション メニューから、 [Entity behavior](エンティティの動作) を選択します。
[エンティティの動作] ページで、画面の上部にある [エンティティ ページのカスタマイズ] (プレビュー) を選択します。
[Sentinel アクティビティのカスタマイズ] ページで、[自分のアクティビティ] タブに、作成したすべてのアクティビティの一覧が表示されます。[アクティビティ テンプレート] タブに、Microsoft セキュリティ研究者によりすぐに使用できるように提供されたアクティビティのコレクションが表示されます。 これらは、エンティティ ページのタイムラインで既に追跡および表示されているアクティビティです。
ユーザー定義アクティビティを作成していない限り、エンティティ ページの [アクティビティ テンプレート] タブの下に "すべて" のアクティビティが表示されます。
1 つのアクティビティを作成またはカスタマイズすると、エンティティ ページの [自分のアクティビティ] タブにそれらのアクティビティ "のみ" が表示されます。
エンティティ ページで、すぐに利用できるアクティビティを引き続き表示する場合は、追跡して表示するテンプレートごとにアクティビティを作成する必要があります。 以下の「アクティビティをテンプレートから作成する」の手順に従います。
アクティビティをテンプレートから作成する
[アクティビティ テンプレート] タブを選択すると、既定で使用できるさまざまなアクティビティが表示されます。 エンティティの種類とデータ ソースでこの一覧をフィルター処理できます。 一覧からアクティビティを選択すると、詳細ペインに次の情報が表示されます。
アクティビティの説明
アクティビティを構成するイベントを提供するデータ ソース
生データ内のエンティティを識別するために使用される識別子
このアクティビティの検出につながるクエリ
詳細ペインの下部にある [アクティビティの作成] ボタンを選択して、アクティビティ作成ウィザードを開始します。
[アクティビティ ウィザード - テンプレートからの新しいアクティビティの作成] が開きます。フィールドにはテンプレートのデータが既に設定されています。 [全般] タブと [アクティビティの構成] タブで自由に変更を加えるか、そのままの状態で、すぐに利用できるアクティビティを引き続き表示できます。
問題がなければ、 [確認と作成] タブを選択します。 [検証に成功しました] というメッセージが表示されたら、下部にある [作成] ボタンをクリックします。
アクティビティを最初から作成する
[アクティビティ] ページの上部にある [アクティビティの追加] をクリックして、アクティビティ作成ウィザードを開始します。
[アクティビティ ウィザード - 新しいアクティビティの作成] が開きます。フィールドは空白になっています。
[全般] タブ
アクティビティの名前を入力します (例: "グループに追加されたユーザー")。
アクティビティの説明を入力します (例: "Windows イベント ID 4728 に基づくユーザー グループ メンバーシップの変更")。
このクエリで追跡するエンティティの種類 (ユーザーまたはホスト) を選択します。
追加のパラメーターでフィルター処理すると、クエリを絞り込んだり、パフォーマンスを最適化したりするのに役立ちます。 たとえば、IsDomainJoined パラメーターを選択して、その値を True に設定すると、Active Directory ユーザーをフィルター処理できます。
アクティビティの初期状態を [有効] または [無効] に選択できます。
[次へ: アクティビティの構成] を選択して、次のタブに進みます。
[アクティビティの構成] タブ
アクティビティ クエリの作成
こちらでは、選択したエンティティのアクティビティを検出するために使用する KQL クエリを作成するか貼り付けます。そして、タイムラインでそれをどのように表示するかを決定します。
重要
クエリでは、組み込みのテーブルではなく、Advanced Security Information Model (ASIM) パーサーを使用することをお勧めします。 これにより、単一のデータ ソースではなく、現在または未来に関連するデータ ソースがクエリでサポートされます。
イベントの関連付けやカスタム アクティビティの検出のために、KQL ではエンティティの種類に応じた複数のパラメーターの入力が必要になります。 それらのパラメーターは対象となるエンティティのさまざまな識別子です。
クエリ結果とエンティティの間に一対一のマッピングを作成するため、強い識別子を選択することをお勧めします。 弱い識別子を選択すると、不正確な結果になるおそれがあります。 エンティティと強い識別子および弱い識別子の詳細をご確認ください。
次の表で、エンティティの識別子に関する情報を示します。
アカウントとホストのエンティティの強い識別子
クエリには少なくとも 1 つの識別子が必要です。
Entity | 識別子 | 説明 |
---|---|---|
アカウント | Account_Sid | Active Directory 内のアカウントのオンプレミス SID |
Account_AadUserId | Microsoft Entra ID のユーザーの Microsoft Entra オブジェクト ID。 | |
Account_Name + Account_NTDomain | SamAccountName と同様 (例: Contoso\Joe) | |
Account_Name + Account_UPNSuffix | UserPrincipalName と同様 (例: Joe@Contoso.com) | |
Host | Host_HostName + Host_NTDomain | 完全修飾ドメイン名 (FQDN) と同様 |
Host_HostName + Host_DnsDomain | 完全修飾ドメイン名 (FQDN) と同様 | |
Host_NetBiosName + Host_NTDomain | 完全修飾ドメイン名 (FQDN) と同様 | |
Host_NetBiosName + Host_DnsDomain | 完全修飾ドメイン名 (FQDN) と同様 | |
Host_AzureID | Microsoft Entra ID のホストの Microsoft Entra オブジェクト ID (Microsoft Entra ドメインに参加している場合) | |
Host_OMSAgentID | 特定のホストにインストールされているエージェントの OMS エージェント ID (ホストごとに一意) |
選択したエンティティに基づいて、使用可能な識別子が表示されます。 関連する識別子をクリックすると、その識別子がクエリ内のカーソルの位置に貼り付けられます。
Note
クエリには最大 10 個のフィールドが含まれる場合があるため、必要なフィールドを投影する必要があります。
検出されたアクティビティをエンティティのタイムラインに配置するには、投影されたフィールドに TimeGenerated フィールドが含まれている必要があります。
SecurityEvent
| where EventID == "4728"
| where (SubjectUserSid == '{{Account_Sid}}' ) or (SubjectUserName == '{{Account_Name}}' and SubjectDomainName == '{{Account_NTDomain}}' )
| project TimeGenerated, SubjectUserName, MemberName, MemberSid, GroupName=TargetUserName
タイムラインでのアクティビティの表示
便宜上、アクティビティの出力に動的パラメーターを追加することで、タイムラインでのアクティビティの表示方法を決定できます。
Microsoft Sentinel には、使用できる組み込みのパラメーターが用意されています。また、クエリで投影したフィールドに基づいて他のパラメーターを使用できます。
パラメーターには {{ParameterName}}
という形式を使用します。
アクティビティ クエリが検証に合格し、クエリ ウィンドウの下に [クエリ結果の表示] リンクが表示された後、 [使用可能な値] セクションを展開して、動的アクティビティ タイトルの作成時に使用できるパラメーターを表示できます。
特定のパラメーターの横にある [コピー] アイコンを選択して、そのパラメーターをクリップボードにコピーし、上の [アクティビティ タイトル] フィールドに貼り付けることができます。
次のパラメーターをクエリに追加します。
クエリで投影した任意のフィールド。
クエリに挙げられているエンティティのエンティティ識別子。
StartTimeUTC
– アクティビティの開始時刻 (UTC 時刻) を追加します。EndTimeUTC
– アクティビティの終了時刻 (UTC 時刻) を追加します。Count
– 複数の KQL クエリ出力を 1 つの出力にまとめます。count
パラメーターは、エディターに完全に表示されていない場合でも、次のコマンドをバックグラウンドでクエリに追加します。Summarize count() by <each parameter you’ve projected in the activity>
次に、エンティティページで [バケット サイズ] フィルターを使用すると、バックグラウンドで実行されるクエリにも次のコマンドが追加されます。
Summarize count() by <each parameter you’ve projected in the activity>, bin (TimeGenerated, Bucket in Hours)
次に例を示します。
クエリとアクティビティのタイトルに問題がなければ、 [次へ: 確認] を選択します。
[確認と作成] タブ
カスタム アクティビティのすべての構成情報を確認します。
[検証に成功しました] というメッセージが表示されたら、 [作成] をクリックしてアクティビティを作成します。 [自分のアクティビティ] タブで後からこれを編集または変更できます。
アクティビティを管理する
カスタム アクティビティは、 [自分のアクティビティ] タブから管理します。アクティビティの行の最後にある省略記号 ([...]) をクリックすると、次の操作を行えます。
- アクティビティを編集する。
- アクティビティを複製して、わずかに異なるものを新しく作成する。
- アクティビティを削除する。
- アクティビティ無効にする (削除はしない)。
エンティティ ページでアクティビティを表示する
エンティティ ページを表示するたびに、そのエンティティに対して有効になっているすべてのアクティビティ クエリが実行され、そのエンティティのタイムラインに最新の情報が表示されます。 タイムラインには、アクティビティの他にアラートとブックマークも表示されます。
[タイムライン コンテンツ] フィルターを使用すると、アクティビティのみ (またはアクティビティ、アラート、ブックマークの任意の組み合わせ) を表示できます。
[アクティビティ] フィルターを使用して、特定のアクティビティを表示または非表示にすることもできます。
次の手順
このドキュメントでは、エンティティ ページのタイムラインにカスタム アクティビティを作成する方法について説明しました。 Microsoft Azure Sentinel の詳細については、次の記事を参照してください。
- エンティティ ページの詳細を確認する。
- ユーザー/エンティティ行動分析 (UEBA) について学習する。
- エンティティと識別子の完全な一覧を確認する。