次の方法で共有


security: runHuntingQuery

名前空間: microsoft.graph.security

Microsoft 365 Defender でサポートされている特定のイベント、アクティビティ、またはエンティティ データのセットに対してクエリを実行して、環境内の特定の脅威を事前に検索します。

この方法は、Microsoft 365 Defender での高度なハンティング用です。 このメソッドには、Kusto クエリ言語 (KQL) のクエリが含まれています。 高度なハンティング スキーマ内のデータ テーブルと、そのデータをフィルター処理または検索するパイプ処理された一連の演算子を指定し、クエリ出力を特定の方法で書式設定します。

詳しくは、デバイス、メール、アプリ、ID にまたがる脅威の検出に関するページをご覧くださいKQL について説明します。

Microsoft 365 Defender ポータルで高度なハンティングを使用する方法については、「Microsoft 365 Defender で高度なハンティングを使用して脅威を事前に検出する」を参照してください。

この API は、次の国内クラウド展開で使用できます。

グローバル サービス 米国政府機関 L4 米国政府機関 L5 (DOD) 21Vianet が運営する中国

アクセス許可

この API の最小特権としてマークされているアクセス許可またはアクセス許可を選択します。 アプリで必要な場合にのみ、より高い特権のアクセス許可またはアクセス許可を使用します。 委任されたアクセス許可とアプリケーションのアクセス許可の詳細については、「アクセス許可の種類」を参照してください。 これらのアクセス許可の詳細については、「アクセス許可のリファレンス」を参照してください。

アクセス許可の種類 最小特権アクセス許可 より高い特権のアクセス許可
委任 (職場または学校のアカウント) ThreatHunting.Read.All 注意事項なし。
委任 (個人用 Microsoft アカウント) サポートされていません。 サポートされていません。
アプリケーション ThreatHunting.Read.All 注意事項なし。

HTTP 要求

POST /security/runHuntingQuery

要求ヘッダー

名前 説明
Authorization ベアラー {token}。 必須です。 認証と認可についての詳細をご覧ください。
Content-Type application/json. Required.

注:

クエリで ANSI 以外の文字を使用している場合 (たとえば、形式が正しくない文字や類似した文字を含む電子メールの件名に対してクエリを実行する場合)、Content-Type ヘッダーに を使用 application/json; charset=utf-8 します。

要求本文

要求本文で、 パラメーターの JSON オブジェクトを Query 指定し、必要に応じて パラメーターを Timespan 含めます。

パラメーター 種類 説明
クエリ String 必須です。 Kusto クエリ言語 (KQL) のハンティング クエリ。 詳細については、「 KQL クイック リファレンス」を参照してください
Timespan String 省略可能。 ISO 8601 形式でデータを照会する時間間隔。 既定値は 30 日です。つまり、startTime が指定されていない場合、クエリは 30 日後に振り返ります。 クエリと startTime パラメーターの両方で時間フィルターが指定されている場合は、より短い期間が適用されます。 たとえば、クエリに過去 7 日間のフィルターがあり、startTime が 10 日前の場合、クエリは 7 日間しか振り返りを返します。

次の例は、 パラメーターに使用できる形式を Timepsan 示しています。

  • 日付/日付: "2024-02-01T08:00:00Z/2024-02-15T08:00:00Z" - 開始日と終了日。
  • Duration/endDate: "P30D/2024-02-15T08:00:00Z" - 終了日より前の期間。
  • Start/duration: "2024-02-01T08:00:00Z/P30D" - 開始日と期間。
  • ISO8601期間: "P30D" - 以前の期間。
  • 単一の日付/時刻: "2024-02-01T08:00:00Z" - 終了時刻が既定で現在時刻に設定されている開始時刻。

応答

成功した場合、このアクションは 200 OK 応答コードと、応答本文で huntingQueryResults を返します。

例 1: 既定の期間を使用したクエリ

要求

次の例では、KQL クエリを指定し、次の処理を行います。

  • 高度なハンティング スキーマの DeviceProcessEvents テーブルを調べます。
  • powershell.exe プロセスがイベントを開始する条件をフィルター処理します。
  • 行ごとに、同じテーブルの 3 つの列の出力を指定します。 TimestampFileNameInitiatingProcessFileName
  • 値で出力を Timestamp 並べ替えます。
  • 出力を 2 つのレコード (2 行) に制限します。
POST https://graph.microsoft.com/v1.0/security/runHuntingQuery

{
    "Query": "DeviceProcessEvents | where InitiatingProcessFileName =~ \"powershell.exe\" | project Timestamp, FileName, InitiatingProcessFileName | order by Timestamp desc | limit 2"
}

応答

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.security.huntingQueryResults",
    "schema": [
        {
            "name": "Timestamp",
            "type": "DateTime"
        },
        {
            "name": "FileName",
            "type": "String"
        },
        {
            "name": "InitiatingProcessFileName",
            "type": "String"
        }
    ],
    "results": [
        {
            "Timestamp": "2024-03-26T09:39:50.7688641Z",
            "FileName": "cmd.exe",
            "InitiatingProcessFileName": "powershell.exe"
        },
        {
            "Timestamp": "2024-03-26T09:39:49.4353788Z",
            "FileName": "cmd.exe",
            "InitiatingProcessFileName": "powershell.exe"
        }
    ]
}

例 2: timespan パラメーターを省略可能に指定したクエリ

要求

この例では、KQL クエリを指定し、60 日前に高度なハンティング スキーマの deviceProcessEvents テーブルを調べます。

POST https://graph.microsoft.com/v1.0/security/runHuntingQuery

{
    "Query": "DeviceProcessEvents",
    "Timespan": "P90D"
}

応答

注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。

HTTP/1.1 200 OK
Content-type: application/json

{
    "schema": [
        {
            "name": "Timestamp",
            "type": "DateTime"
        },
        {
            "name": "FileName",
            "type": "String"
        },
        {
            "name": "InitiatingProcessFileName",
            "type": "String"
        }
    ],
    "results": [
        {
            "timestamp": "2020-08-30T06:38:35.7664356Z",
            "fileName": "conhost.exe",
            "initiatingProcessFileName": "powershell.exe"
        },
        {
            "timestamp": "2020-08-30T06:38:30.5163363Z",
            "fileName": "conhost.exe",
            "initiatingProcessFileName": "powershell.exe"
        }
    ]
}