重要
- アクティビティのカスタマイズは プレビュー段階です。 ベータ版、プレビュー版、またはその他の一般提供にまだリリースされていない Azure 機能に適用される追加の法的条件については、 Microsoft Azure プレビューの追加使用条件 を参照してください。
- Microsoft Sentinel は、Microsoft Defender XDR または E5 ライセンスを持たないお客様を含め、Microsoft Defender ポータルで一般提供されています。 詳細については、 Microsoft Defender ポータルの Microsoft Sentinel を参照してください。
はじめに
既定で用意されている Microsoft Sentinel のタイムラインで追跡および表示されるアクティビティに加えて、追跡するその他のアクティビティを作成し、それらもタイムラインに表示できます。 接続されている任意のデータ ソースのエンティティ データのクエリに基づいて、カスタマイズされたアクティビティを作成できます。 たとえば、次の方法でこの機能を使用できます。
既定で用意されている既存のアクティビティ テンプレートを変更して、エンティティ タイムラインに新しいアクティビティを追加する。
カスタム ログから新しいアクティビティを追加する。 たとえば、物理的なアクセス制御ログから、特定の制限された領域 (サーバー室など) にユーザーが出入りするアクティビティを、そのユーザーのタイムラインに追加できます。
作業の開始
- Azure portal の Microsoft Sentinel のユーザーは、下の [Azure portal ] タブを選択します。
- Microsoft Defender ポータルのユーザーは、[ Defender ポータル ] タブを選択します。
Microsoft Sentinel ナビゲーション メニューから、[エンティティの 動作] を選択します。
[ エンティティの動作 ] ページで、画面の上部にある [エンティティのカスタマイズ] ページ (プレビュー) を選択します。
[ Sentinel アクティビティのカスタマイズ ] ページの [ マイ アクティビティ ] タブに、作成したすべてのアクティビティの一覧が表示されます。[ アクティビティ テンプレート ] タブには、Microsoft セキュリティ研究者によってすぐに提供されるアクティビティのコレクションが表示されます。 これらは、エンティティ ページのタイムラインで既に追跡および表示されているアクティビティです。
ユーザー定義アクティビティを作成していない限り、エンティティ ページには、[アクティビティ テンプレート] タブの下に一覧表示されているすべてのアクティビティが表示されます。
アクティビティを作成またはカスタマイズすると、エンティティ ページにはそれらのアクティビティ のみが 表示され、[ マイ アクティビティ ] タブに表示されます。
エンティティ ページで、すぐに利用できるアクティビティを引き続き表示する場合は、追跡して表示するテンプレートごとにアクティビティを作成する必要があります。 以下の「アクティビティをテンプレートから作成する」の手順に従います。
アクティビティをテンプレートから作成する
[ アクティビティ テンプレート ] タブを選択すると、既定で使用可能なさまざまなアクティビティが表示されます。 エンティティの種類とデータ ソースでこの一覧をフィルター処理できます。 一覧からアクティビティを選択すると、詳細ペインに次の情報が表示されます。
アクティビティの説明
アクティビティを構成するイベントを提供するデータ ソース
生データ内のエンティティを識別するために使用される識別子
このアクティビティの検出につながるクエリ
詳細ウィンドウの下部にある [ アクティビティの作成 ] を選択して、アクティビティ作成ウィザードを開始します。
アクティビティ ウィザード - テンプレートから新しいアクティビティを作成すると、そのフィールドがテンプレートから既に設定された状態で開きます。 [ 全般 ] タブと [ アクティビティ] 構成 タブで好きなように変更を加えたり、そのままにしてすぐに使えるアクティビティを表示したりすることもできます。
問題がなければ、[ 校閲と作成 ] タブを選択します。 検証に合格した メッセージが表示されたら、下部にある [作成 ] ボタンをクリックします。
アクティビティを最初から作成する
[アクティビティ] ページの上部にある [アクティビティの 追加 ] をクリックして、アクティビティの作成ウィザードを開始します。
アクティビティ ウィザード - 新しいアクティビティの作成が開き、フィールドが空白になります。
[全般] タブ
アクティビティの名前を入力します (例: "グループに追加されたユーザー")。
アクティビティの説明を入力します (例: "Windows イベント ID 4728 に基づくユーザー グループ メンバーシップの変更")。
このクエリで追跡するエンティティの種類 (ユーザーまたはホスト) を選択します。
追加のパラメーターでフィルター処理すると、クエリを絞り込んだり、パフォーマンスを最適化したりするのに役立ちます。 たとえば、 IsDomainJoined パラメーターを選択し、値を True に設定することで、Active Directory ユーザーをフィルター処理できます。
アクティビティの初期状態を [有効] または [無効] に選択できます。
[次へ: アクティビティの構成] を選択して、次のタブに進みます。
[アクティビティの構成] タブ
アクティビティ クエリの作成
こちらでは、選択したエンティティのアクティビティを検出するために使用する KQL クエリを作成するか貼り付けます。そして、タイムラインでそれをどのように表示するかを決定します。
重要
クエリでは、組み込みのテーブルではなく、 高度なセキュリティ情報モデル (ASIM) パーサー を使用することをお勧めします。 これにより、単一のデータ ソースではなく、現在または未来に関連するデータ ソースがクエリでサポートされます。
イベントの関連付けやカスタム アクティビティの検出のために、KQL ではエンティティの種類に応じた複数のパラメーターの入力が必要になります。 それらのパラメーターは対象となるエンティティのさまざまな識別子です。
クエリ結果とエンティティの間に一対一のマッピングを作成するため、強い識別子を選択することをお勧めします。 弱い識別子を選択すると、不正確な結果になるおそれがあります。 エンティティと強い識別子と弱い識別子の詳細について説明します。
次の表で、エンティティの識別子に関する情報を示します。
アカウントエンティティとホスト エンティティの厳密な識別子
クエリには少なくとも 1 つの識別子が必要です。
| エンティティ | 識別子 | 説明 |
|---|---|---|
| アカウント | 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_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 (ホストごとに一意) |
選択したエンティティに基づいて、使用可能な識別子が表示されます。 関連する識別子をクリックすると、その識別子がクエリ内のカーソルの位置に貼り付けられます。
注
クエリには 最大 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)
次に例を示します。
クエリとアクティビティのタイトルに問題がなければ、[ 次へ: 確認] を選択します。
上の例で使用されている次の項目の詳細については、Kusto ドキュメントを参照してください。
KQL の詳細については、 Kusto クエリ言語 (KQL) の概要に関するページを参照してください。
その他のリソース:
[確認と作成] タブ
カスタム アクティビティのすべての構成情報を確認します。
検証に 合格した メッセージが表示されたら、[ 作成 ] をクリックしてアクティビティを作成します。 後で [ マイ アクティビティ ] タブで編集または変更できます。
アクティビティを管理する
[ マイ アクティビティ ] タブからカスタム アクティビティを管理します。アクティビティの行の末尾にある省略記号 (...) をクリックして、次の操作を行います。
- アクティビティを編集する。
- アクティビティを複製して、わずかに異なるものを新しく作成する。
- アクティビティを削除する。
- アクティビティ無効にする (削除はしない)。
エンティティ ページでアクティビティを表示する
エンティティ ページを表示するたびに、そのエンティティに対して有効になっているすべてのアクティビティ クエリが実行され、そのエンティティのタイムラインに最新の情報が表示されます。 タイムラインには、アクティビティの他にアラートとブックマークも表示されます。
タイムライン コンテンツ フィルターを使用すると、アクティビティ (またはアクティビティ、アラート、ブックマークの任意の組み合わせ) のみを表示できます。
[ アクティビティ] フィルターを使用して、特定のアクティビティを表示または非表示にすることもできます。
次の手順
このドキュメントでは、エンティティ ページのタイムラインにカスタム アクティビティを作成する方法について説明しました。 Microsoft Azure Sentinel の詳細については、次の記事を参照してください。
- エンティティ ページの完全な図を取得します。
- ユーザーとエンティティの動作分析 (UEBA) について説明します。
- エンティティと識別子の完全な一覧を参照してください。