閱讀英文

共用方式為


Microsoft Copilot for Security 中的 KQL 外掛程式

使用 Kusto 查詢語言 (KQL) 查詢建立功能強大的外掛程式,以探索您的數據和探索模式。

KQL 技能設定

一般設定

這些設定是所有 KQL 技能通用的設定。

Settings:
  # What type of KQL endpoint to connect to.
  # One of { Defender, Sentinel, LogAnalytics, Kusto }
  Target: Sentinel
  # A URL to download the KQL query template from.
  # Specify either TemplatUrl or Template but not both.
  TemplateUrl: https://gist.githubusercontent.com/NitinKumarGoel/c862ba63878dd2624acb1b0e260f409a/raw/3a527014757b4ee1f00302a1b34a13e7b83ff77a/gistfile1.txt
  # An inline KQL query template.
  # Specify either TemplatUrl or Template but not both.
  Template: |-
    SigninLogs
    | where UserDisplayName == '{{user}}' or UserPrincipalName == '{{user}}'
    | project TimeGenerated, OperationName, UserDisplayName, UserPrincipalName, Location, ResourceDisplayName, ConditionalAccessStatus, IsInteractive
    | top 100 by TimeGenerated desc

下表顯示可針對任何 KQL 技能目標設定的 settings:

設定名稱 類型 描述 必要項目
Template 字串 KQL 提示範本。 最多支援 80,000 個字元。 是,如果未指定TemplateUrl。
TemplateUrl 字串 下載 KQL 提示範本的公用 URL (最多 80,000 個字元)。 是。 指定 TemplatUrl 或 Template,但不指定兩者。
PackageUrl 字串 ZIP 檔案的公用 URL,其中包含 KQL 提示範本。 注意: 這是在 SkillGroup 層級中指定。 類似於 GPT 技能 packageurl - 範例 是,如果未指定Template或TemplateUrl。
TemplateFile 字串 PackageUrl zip 檔案內的 KQL 提示範本的相對路徑 (最多 80,000 個字元)。 是,如果已指定 PackageUrl。

目標特定的設定

目標: Sentinel

這些設定適用於 KQL 技能,其中 TargetSentinel

Settings:
  # The ID of the AAD Organization that the Sentinel workspace is in.
  TenantId:
  # The id of the Azure Subscription that the Sentinel workspace is in.
  SubscriptionId:
  # The name of the Resource Group that the Sentinel workspace is in.
  ResourceGroupName:
  # The name of the Sentinel workspace.
  WorkspaceName:

目標: Kusto

這些設定適用於 KQL 技能,其中 TargetKusto

Settings:
  # The Kusto cluster URL.
  Cluster: 
  # The Kusto database name.
  Database: 

範例

Descriptor:
  Name: SampleDefenderKQL
  DisplayName: My Sample Defender KQL Plugin
  Description: Skills to query email logs in M365 Advanced Hunting

SkillGroups:
  - Format: KQL
    Skills:
      - Name: GetLatestEmailsByRecipient
        DisplayName: Get Latest Emails By Recipient
        Description: Fetches the latest emails received by the user with the specified email address
        Inputs:
          - Name: email
            Description: The email address of the recipient
            Required: true
        Settings:
          Target: Defender
          Template: |-
            EmailEvents
            | where RecipientEmailAddress =~ '{{email}}'
            | project Timestamp, NetworkMessageId, SenderFromAddress, SenderDisplayName, Subject, DeliveryLocation
            | top 100 by Timestamp desc